Thursday, September 22, 2005

Giải pháp từ điển với Stardict

Lâu nay tôi vẫn dùng Kdict trên Linux desktop của mình và LacViet MTD trên Windows. Sở dĩ tôi thích dùng Kdict là vì nó có thể tìm trong nhiều bộ từ điển một lúc, wordnet, web1913, hay foldoc có thể bù vào phần từ vựng còn thiếu của anhviet.

Sau khi đọc thread này trên VNOSS tôi quyết định thử stardict trên … Windows trước. Thử tiếp trên Linux, kết quả ngoài sự mong đợi: tìm từ trong nhiều bộ từ điển, trong cửa sổ giải nghĩa có thể click để tra tiếp từ bằng chuột giữa (middle-click), tra từ nhanh với copy-and-see ;). Tra một từ theo chuỗi nghĩa Anh-Việt Việt-Việt hoặc Việt-Anh Anh-Anh thật dễ dàng với stardict. Giờ đây, có thể yên tâm với bộ từ điển trên cả Linux và Windows.

Dữ liệu từ điển có thể tải xuống từ: http://james.dyndns.ws/pub/Dictionary/StarDict-James/ cho các từ điển Anh-Pháp-Nga-Đức-Việt và http://sourceforge.net/projects/cctv cho các từ điển Wordnet-Foldoc. Chỉ cần bung các file dữ liệu này vào “/usr/share/stardic/dic” hoặc “~/.stardict/dic” trên Linux, hay “Program Files\Stardict\dic” trên Windows.

Mẹo sử dụng với Windows: để tra từ nhanh dạng Scan, chọn từ cần tra, Ctrl+C để copy sau đó nhấn phím Scan (Shift, Alt, Ctrl) (vì thế nên mới gọi là copy-and-see ;))

Stardict giờ là sự lựa chọn số một của tôi cho từ điển.

Monday, September 19, 2005

BugMeNot Lookup on toolbar

BOSECO blog post một tip hay để tìm account "chùa" trên BugMeNot. Khá hữu ích khi cần đọc tài liệu ở một số site cần đăng ký.

Kéo link dưới đây rồi thả vào Link toolbar trên browser, mỗi lần đến site nào cần login click lên button và ... hưởng.

BugMeNot Lookup

Tuesday, September 13, 2005

Bash remote logger - rlogger.sh

Bạn có nhiều web server (apache) hoặc proxy server (squid) và muốn chứa access log tập trung ở một chỗ cho tiện việc phân tích và quan sát real-time? Cách tốt nhất dựng một log server tập trung và dùng giao thức syslog để gửi log về từ các server. Apache, squid, lại không hỗ trợ gửi access log trực tiếp qua syslog. Nếu máy chủ có trình biên dịch C, bạn có thể dùng SnareApacheSnareSquid để gửi log đến syslog server tập trung.

Shell script này (rlogger.sh) cũng thực hiện công việc tương tự, mục đích sử dụng trên các server được cài đặt "ngặt nghèo" không có trình biên dịch như IPCop/Smoothwall.



Update: Sửa lỗi "echo $MSG" khiến access log của squid không thể được duyệt đúng với SARG 2.0.9 do mất ký tự


--rlogger.sh--

#!/bin/bash
# bash remote logger
# simple logger(1) which sends log data to remote loghost via UDP

# (c) 2005 - Long Dinh Le
# released under GPL license

# usage sample:
# rlogger.sh loghost -p local6.info -f /var/log/squid/access.log

# TODO: add more error checking functions

# predefined facility and severity values
faclilities=(kernel=0 user=1 mail=2 daemon=3 auth=4 syslog=5 cron=9 authpriv=10 ftp=11 local0=16 local1=17 local2=18 local3=19 local4=20 local5=21 local6=22 local7=23)

severities=(emerg=0 alert=1 crit=2 err=3 warning=4 notice=5 info=6 debug=7)

# default values
PORT="514"
FACILITY=1
SEVERITY=6
TAIL="/usr/bin/tail -F"
NOHUP="/usr/bin/nohup"
AWK="/usr/bin/awk"

# misc functions
usage(){
echo
echo "Usage: `basename $0` -p . -f "
echo
echo "Facilities: ${faclilities[*]%=*}"
echo "Severities: ${severities[*]%=*}"
echo
echo "Default: facility=user, severity=info"
echo
exit 0
}

error() {
echo "Error: $1"
echo
exit 1
}

# DO NOT MODIFY FROM HERE
[ "$#" -lt 3 ] && usage

HOST="$1"
shift
# converting facility.severity into priority
[ "$1" = "-p" ] && {
FACILITY=${2%.*}
SEVERITY=${2#*.}
for ((i=0; i<${#faclilities[*]}; i++)); do [ "$FACILITY" = ${faclilities[$i]%=*} ] && FACILITY=${faclilities[$i]#*=} done for ((i=0; i<${#severities[*]}; i++)); do [ "$SEVERITY" = ${severities[$i]%=*} ] && SEVERITY=${severities[$i]#*=} done shift 2 } PRIORITY=$(($FACILITY*8 + $SEVERITY)) # testing logfile for read permission [ "$1" = "-f" ] && { shift LOGFILE="$1" } [ -f "$LOGFILE" -a -r "$LOGFILE" ] || error "$LOGFILE does not exist or cannot read" # connect to the loghost vi UDP # check connection error
exec 3<> /dev/udp/$HOST/$PORT

HEADER="<$PRIORITY>"

$NOHUP $TAIL $LOGFILE | while read MSG; do
echo "$MSG" | $AWK '{ print "'"$HEADER"'"$0 }' >&3
done &

--rlogger.sh--

Thursday, September 08, 2005

Edit legacy Visio drawing on Linux: any solution?

Cần phải chỉnh sửa lại mấy cái tài liệu người khác làm bằng MS Word (có biểu đồ vẽ bằng MS Visio 2003) trên Linux. OpenOfice 2.0 tuy có hơi trục trặc với file tạo từ MS Word với heading, paragraph, bullet, … nhưng nói chung có thể “dàn xếp được”. Kẹt một cái hình vẽ bằng Visio thì không có cách nào sửa lại được. Thử bằng cách dùng Visio lưu lại dưới dạng SVG rồi mở bằng Dia nhưng không thành công, Dia chỉ hiện mỗi background trắng xoá. (Dia thậm chí không không thể mở lại đúng file SVG mà nó export ra, chỉ với một hình đơn giản!).

Theo lời khuyên của mrchuoi, thử lưu lại dưới dạng XML (.vdx) rồi dùng vdxtosvg để chuyển sang dạng SVG, hy vọng sẽ mở được với Dia. Rất tiếc là Visio 2003 lưu file XML theo stylesheet kiểu gì đó mà mà vdxtosvg không thể hiểu được. Kết quả: thất bại hoàn toàn, đành phải ngậm ngùi vẽ lại trong OpenOffice. Còn có giải pháp nào khác khả thi không?

Sunday, September 04, 2005

Conexant HSF softmodem full speed hack

Cái laptop HP và PC ở nhà đều xài internal modem chipset Conexant, loại HSF vì lý do rẻ tiền (USD 9). Trên Linux chỉ có duy nhất driver của Linuxant là làm việc được với loại này. Linuxant cho bản driver miễn phí dùng với tốc độ tối đa 14.4 Kbps, để lướt net với cái sofmodem này quả là một cực hình. Tìm kiếm chán chê trên net cuối cùng cũng tìm được một cách để hack cái driver miễn phí này làm việc với full speed 56 Kbps trên FC4, kernel 2.6.x. Cách làm như sau:
- Download hsfmodem-7.18.00.05full_k2.6.11_1.1369_FC4-1fdr.i686.rpm hoặc hsfmodem-7.18.00.05full.tar.gz về từ Linuxant
- Install theo hướng dẫn
- Dùng hexedit (hoặc khexedit) edit file /usr/lib/hsfmodem/modules/binaries/linux-2.6.11-1.1369-FC4/hsfengine.ko (với bản cài đặt RPM) hoặc /usr/lib/hsfmodem/modules/imported/hsfengine-i386.O (với bản cài đặt từ .tar.gz), sửa giá trị tại offset 0x2659D từ 74 thành 75.
Theo quan sát của mình, có thể tìm đến offset tương tự trong các phiên bản trước đó bằng cách tìm kiếm theo pattern "74638b55", sau đó sửa giá trị giống như trên.

Vậy là có thể yên tâm lướt net với HSF softmodem.

Friday, September 02, 2005

Blog client

Để post trên blogger với blog client, tốt nhất là nên dùng:
  • Trên Windows: BloggerForWord addon, không còn gì đơn giản hơn

  • Trên Linux: Drivel, chỉ có chú này hỗ trợ blogger 2.0 API