Kho tháng 11/2005
Thứ tư, 30 Tháng mười một năm 2005 00:20:25 JST
Lỗi link thư viện
Build Rhythmbox CVS, gặp một lỗi rất quái đản: libgobject báo không định
nghĩa g_intern_static_string
, trong khi mình đã cài glib CVS và có
hàm đó trong libglib-2.0.so (kiểm tra qua nm
). Rốt cuộc lỗi là do khi
gọi lệnh link, Rhythmbox dùng lệnh đại loại như sau:
gcc .. -lglib-2.0 -L/home/pclouds/local/lib -lglib-2.0 ..
thằng glib thứ hai là thằng glib trên hệ thống (2.8.2, không có
g_intern_static_string
). Bỏ mấy thằng -lglib-2.0 đằng sau đi thì
chạy tốt.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ bảy, 26 Tháng mười một năm 2005 23:35:11 JST
Ruby on Rails!
Nghe đồn Ruby On Rails đã lâu nhưng vẫn chưa có dịp thử. Hôm nay xem sơ qua tutorial và 15m intro video, thật sự ấn tượng!
Ít nhất, Ruby On Rails là một môi trường tốt để làm prototype (heh.. bye bye Eleven). Ruby On Rails hỗ trợ test/debug hơi bị hay (theo dõi SQL query, evaluate biến, can thiệp vào chương trình, test case ..).
Viết RoR bằng Ruby rất rõ ràng dễ hiểu (từng đọc sơ về Ruby nhưng giờ quên sạch, vậy mà đọc code vẫn có thể đoán được ý nghĩa). Với những tính năng như vậy thì việc mô phỏng lại RoR trên một nền ngôn ngữ khác như PHP là một điều khó vì chưa chắc có thể tạo được một môi trường y chang như RoR.
Tuy nhiên performance của Ruby là một vấn đề đáng bàn, cách đây vài tháng có đọc được một bài về performance hơi bị tệ của Ruby. Cũng chưa biết cách RoR xử lý security, form.. và những thứ chi tiết khác trong web development như thế nào. Vài bữa chắc thử viết một chương trình nhỏ bằng RoR xem sao (hoặc móc code 1 RoR app về vọc).
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ bảy, 26 Tháng mười một năm 2005 03:04:10 JST
Hiện các partition trong Nautilus
Bật khoá /system/storage/display_internal_hard_drives
là true, Nautilus
sẽ hiện tất cả các partition đã mount trong hệ thống.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ năm, 24 Tháng mười một năm 2005 20:10:21 JST
Không klik!
Đọc lướt qua một số tài liệu trên http://klik.atekon.de/docs/ và kết luận: không klik!
Klik là một giải pháp dạng hack. Tuy nhiên có một tư tưởng hay từ klik: file .cmg. Thay vì cung cấp một file binary dạng .cmg, ta cung cấp một tập cả ebuild đủ để build gói đó và toàn bộ dependency cần thiết.
Không thể cung cấp các binary dependency dạng binary vì không biết được cấu hình thực sự của máy sử dụng như thế nào, cung cấp gói binary chứa mọi dependency chỉ có thể làm dạng dynamic, mà làm thế thì để portage tự giải quyết gọn hơn nhiều. Giải pháp dùng ebuild tar ball (.tbe) sẽ tránh lưu toàn bộ cây Portage ở client (tốn cỡ vài trăm mb đến 500mb).
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ năm, 24 Tháng mười một năm 2005 05:41:29 JST
Pango và CP1258
Buồn đời móc Pango CVS về compile chơi. Pango vừa mới fix Bug 101079: opentype font suppor for diacritics for Latin/Greek/Cyrillic letters.
Móc về dùng OpenType font (Doulos SIL) thì đẹp hơn thật. Tuy nhiên không rõ Pango có tự động dùng precomposed glyph nếu có hay chưa (chắc chưa quá).
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ năm, 24 Tháng mười một năm 2005 05:20:57 JST
Mở tập tin bằng gnome-open
gnome-open được dùng để kêu Gnome mở một tập tin nào đó theo cách gnome. Vd,
gnome-open http://www.google.com
sẽ chạy epiphany (hoặc firefox tùy cấu hình),
gnome-open myreport.pdf
sẽ chạy evince ... đỡ mắc công nhớ lệnh gọi khi dùng từ command line.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ ba, 22 Tháng mười một năm 2005 00:01:11 JST
Gtk+ Online
Thêm một cái sự hâm nữa trong tuyển tập hâm: đưa Gtk+ lên Web. Gtk+ có thể hoạt động với nhiều backend khác nhau, trong đó có X11, DirectFB... vậy sao không làm cho Gtk+ apps hoạt động như một Webserver? Lag sẽ là một vấn đề to có thể làm cho ứng dụng không hoạt động được. Kệ nó, hâm mà.
Cập nhật 1 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ hai, 21 Tháng mười một năm 2005 21:02:49 JST
HAL
Mò mò thử mới thấy mấy cái CD-ROM với iPod của mình có thể mount trong
GNOME mà không cần entry trong fstab. Đúng là dùng command line riết nên
lạc hậu, không theo kịp thời đại. Thông tin được sử dụng là từ trong
hal (dùng hal-device để liệt kê các thiết bị hal thấy). Vẫn chưa
hiểu cơ chế của HAL lắm, không rõ nó đã dùng cái script gì để mount nhỉ.
Trong /usr/share/hal/fdi/policy/10osvendor/10-storage-policy.fdi
có đề
cập đến /media
(khoá storage.policy.default.mount_root
) nhưng chưa
biết chương trình nào dùng mấy cái này và dùng như thế nào.
emerge hal-device-manager
nó hiện một mớ device lằng nhằng trong máy,
y như Device Manager của Windows mặc dù mức độ chi tiết thông tin của
device không bằng. Lần đầu tiên trong đời em biết máy mình có "Sleep
Button", mà nó nằm ở đâu nhỉ? :D
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ hai, 21 Tháng mười một năm 2005 16:52:31 JST
Gentoo Website redesign
Dù chưa là chính thức, nhưng cũng sắp sửa thành chính thức:
http://wwwredesign.gentoo.org.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ sáu, 18 Tháng mười một năm 2005 05:25:32 JST
Bí Nục brainstorm
"Bí Nục" Linux (tạm gọi vậy) tuy không phải là Em G tuy nhiên Em G có thể là một thử nghiệm Gentoo xem có thể làm Bí Nục được hay không.
Việc tạo một distro, giai đoạn gian khó và mất thời gian đầu tiên là tạo cho ra cái CD. Cái này Catalyst có thể hoàn thành tốt. Với hệ thống dựa trên RPM như FC, SuSE, Mandriva hay Debian, vẫn không rõ công đoạn này được thực hiện như thế nào (đặc biệt là việc xác định thứ tự build các gói). Trên nguyên tắc các hệ thống khác cũng có thể xây dựng build pkg list dựa trên thông tin dependency trên từng gói. Tuy nhiên spec của từng gói nằm chung một cục trong SRPMS, chuyện móc ra để làm cũng hơi cực và chậm hơn. Tách rời spec và source là một ưu điểm của Gentoo. Phần nào upstream thì không động vào. Phần nào do Gentoo làm ra thì nằm tập trung trên Portage tree. Do tập trung spec vào chung một chỗ nên việc móc spec tạo build pkg list dễ dàng hơn. Các distro khác, có lẽ phải extract spec ra trước khi tạo build pkg list.
Một vấn đề khác với Gentoo là làm sao tạo được app pkg và dev pkg. Portage không quan tâm lắm đến chuyện này. Chuyển này có thể được xử lý như một dạng post process trên .tbz2, móc tất cả thông tin chắc chắn không cần thiết khi chạy ra 1 pkg riêng (dev pkg) phần còn lại sẽ tạo ra (app pkg). Một script đơn giản để duyệt danh sách các gói trên hệ thống và cài đặt các gói dev tương ứng không phải là chuyện quá khó.
Chuyện nâng cấp thế nào là một vấn đề khó, đặc biệt khi nâng cấp core pkgs (các pkg nào khác phải nâng cấp theo?). Bí Nục nên làm theo cách bin distro dùng: tạo ra các release và nâng cấp theo từng release. Tuy nhiên mỗi release sẽ chỉ giới hạn vào core packages. Các ứng dụng không thật sự cần thiết cho hệ thống không nằm trong core packages (vd, inkscape, gimp, openoffice ...) và những ứng dụng này sẽ được build theo từng core pkg release. Nâng cấp core sẽ kéo theo nâng cấp các pkg non-core (trừ khi spec xác định rằng pkg non-core của release trước vẫn tương thích với release sau - giảm download nếu nâng cấp qua mạng).
Việc quản lý gói, nếu vẫn dùng Portage thì nên giữ nguyên hệ thống quản
lý gói của Gentoo (/var/db/pkg
), có lẽ nên nén lại (patch portage).
Nếu dùng RPM hay các hệ thống khác thì tốc độ nhanh hơn so với
text-based /var/db/pkg
, bù lại phải giải quyết bài toán quay ngược lại
distro nguồn khi cài dev pkg: phục hồi /var/db/pkg
. Cách dễ nhất là
lưu thông tin /var/db/pkg
của mỗi gói vào trong dev pkg.
Tương thích với distro thông dụng là tốt, tuy nhiên các distro hiện này hình như chả có thằng nào tương thích với thằng nào. Việc tương thích với một distro khác không phải distro nguồn là một điều hơi .. chua.
Gentoo cực yếu khoảng cấu hình hệ thống (đối với người dùng bình thường). Đây là thế mạnh của FC, SuSE, Mandriva (và có lẽ Ubuntu). Tuy nhiên do các tool cấu hình thường được thiết kế đặc trưng cho từng distro, việc "port" tool này qua Gentoo/Bí Nục hơi bị khó (kinh nghiệm port system-config-* sang Gentoo).
Nhắc đến config tool không thể không nói đến Installer cho distro. Chuyện này Gentoo thua. Có thể xem xét Anaconda port nhưng có gì đó không ổn lắm. CD nên được thiết kế để có thể chạy live trực tiếp từ CD. Sau đó có thể chạy installer và copy qua HD nếu muốn (Knoppix??). Tuy nhiên làm cách này, quá trình cài đặt có lẽ sẽ chậm hơn so với dùng CD chuyên dùng để cài đặt. (Có thể không nếu đọc trực tiếp từ CD thay vì đọc từ hệ thống đang chạy, vốn được bung ra từ CD nén).
Phần tương thích Windows, chưa nghĩ ra gì sáng sủa.
Phần preconfig là một vấn đề. Preconfig chính là điểm khác nhau của các distro. Mỗi distro có hệ thống config riêng không tương thích với nhau. Nếu start from scratch sẽ mất nhiều thời gian config/test. Nếu chọn một distro thì khó có thể lấy config set của distro khác gắn qua.
Phần detect và cấu hình phần cứng, có trời mới biết. HPT/Bí Nục sẽ được thiết kế cho một số cấu hình máy tính xác định nên phần này cũng nhẹ (trừ khi sau đó user nâng cấp hệ thống bằng tay). Không rõ các distro khác làm việc này thế nào. Kudzu đáng để xem xét lại lần nữa.
Việc dùng Gentoo để tạo Bí Nục có cái lợi là có thể tạo thêm những distro khác (vd, gateway server, mail server ...). Chỉ cần tạo thêm profile mới cho những "distro" này. Các thay đổi riêng của mỗi "distro" sẽ nằm trên portage overlay của distro đó, không đụng chạm gì nhau. Không rõ Ubuntu giải quyết chuyện tương thích với Debian ra sao nhỉ?
Các soft được chọn cho Bí Nục sẽ là một vấn đề vì chín người mười tám ý. Nếu đủ resource thì sẽ tạo hai phiên bản Bí Nục cho GNOME và KDE. Nếu không, e hèm.. hơi.. căng..
Klik rất đáng để xem xét. Tuy nhiên nếu dùng Gentoo, khả năng "klik" chưa rõ tới đâu.
Túm lại là .. chưa túm được gì hết :D
5:30 sáng ngồi nghĩ lung tung trong khi bài tập chưa làm. Hâm thật.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ năm, 17 Tháng mười một năm 2005 17:40:07 JST
Giành giật từng giây GNOME startup
Analyzing and Improving GNOME Startup time cho ra kết quả:
- GConf default settings 7 giây
- GConf translation 2 giây
- GConf đọc từ từ 2 giây
- Nạp xscreensaver sau 1 giây
- Dùng mcpp thay cpp (xrdb) 1.5 giây
- Patch ld.so 3 giây
- Cache bonobo-activation 1 giây
- Bỏ X Font server khoảng 5 giây
Tổng cộng, giành lại được khoảng 50% thời gian startup. Do hầu hết các cải tiến hình như vẫn chưa được đưa vào upstream nên có lẽ cần thử bằng tay xem nó có đúng như vậy hay không.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ ba, 15 Tháng mười một năm 2005 22:07:16 JST
Gaptain và lập trình Gtk+ từ bash
Sực nhớ đến Gaptain đã hai năm trời không đụng tới. Nhớ thêm Zenity rồi nghĩ đến một cách khác để lập trình bash với Gtk+ hiệu quả hơn, cho phép tương tác nhiều hơn. Một dạng gần như Gtk+ server với bash làm client.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Chủ nhật, 13 Tháng mười một năm 2005 23:13:54 JST
GDM và script khởi động
Script khởi động GDM cho riêng X cho từng user là ~/.xprofile
.
~/.xprofile
dùng để chạy xcompmgr
:
xcompmgr -cCfF -r7 -o.65 -l-10 -t-8 -D7&
Do xvnkb và một số thứ khác cũng dùng chỉ cho X nên chuyển qua
~/.xprofile
luôn:
if [ -f /usr/lib/xvnkb.so ]; then
export LD_PRELOAD=/usr/lib/xvnkb.so
export GTK_IM_MODULE=xim
fi
export XLIB_SKIP_ARGB_VISUALS=1
xcompmgr -cCfF -r7 -o.65 -l-10 -t-8 -D7&
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Chủ nhật, 13 Tháng mười một năm 2005 21:59:39 JST
Gentoo xorg-x11 và DRI
Sao khi chuyển qua xorg-x11 rc1 xong dri teo (thiệt ra hồi đó xài vesa, làm gì
có dri :D ). Mém xíu nữa là vọc code xf86-video-i810, may là
emerge -pv xf86-video-i810
mới thấy mình chưa enable use flag dri
:P
Kinh nghiệm xương máu: luôn luôn coi kỹ use flag trong emerge -pv
đặc
biệt với những gói nhiều dependency như xorg-x11
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Chủ nhật, 13 Tháng mười một năm 2005 13:58:06 JST
mybackground-properties với protected workspace
Hồi sinh mybackground-properties, thêm tính năng bảo vệ workspace (chưa biết làm sao, dùng gnome-screensave/xscreensaver??)
Cập nhật 1 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ bảy, 12 Tháng mười một năm 2005 16:02:58 JST
Gentoo Handbook say bye bye Stage 1/2
Bug 105809 đã được giải quyết. Gentoo Handbook không còn chứa các chỉ dẫn cài đặt từ Stage 1 và Stage 2 nữa. Stage 1/2 vẫn có thể dùng nhưng đừng la um sùm vì sẽ không có official support :) Hy vọng giảm bớt tình trạng cứ nhào vô dùng Gentoo là chơi ngay Stage 1, xong lại la um sùm sao Gentoo này, sao Gentoo nọ.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ bảy, 12 Tháng mười một năm 2005 15:35:14 JST
Locale tập 2
Chỉnh thêm một tí, viết hoa chữ năm trong date +%c.
Patch 1
--- vi_VN.orig 2005-11-12 14:59:47.000000000 +0900 +++ vi_VN2 2005-11-12 14:59:33.000000000 +0900 @@ -233,8 +233,8 @@ mon_grouping 3;3 positive_sign "" negative_sign "<U002D>" -int_frac_digits 4 -frac_digits 4 +int_frac_digits 0 +frac_digits 0 p_cs_precedes 0 p_sep_by_space 0 n_cs_precedes 1 @@ -264,19 +264,19 @@ "<U0054><U0068><U1EE9><U0020><U006E><U0103><U006D>";/ "<U0054><U0068><U1EE9><U0020><U0073><U00E1><U0075>";/ "<U0054><U0068><U1EE9><U0020><U0062><U1EA3><U0079>" -abmon "<U0054><U0068><U0031>";/ - "<U0054><U0068><U0032>";/ - "<U0054><U0068><U0033>";/ - "<U0054><U0068><U0034>";/ - "<U0054><U0068><U0035>";/ - "<U0054><U0068><U0036>";/ - "<U0054><U0068><U0037>";/ - "<U0054><U0068><U0038>";/ - "<U0054><U0068><U0039>";/ +abmon "<U0054><U0068><U0030><U0031>";/ + "<U0054><U0068><U0030><U0032>";/ + "<U0054><U0068><U0030><U0033>";/ + "<U0054><U0068><U0030><U0034>";/ + "<U0054><U0068><U0030><U0035>";/ + "<U0054><U0068><U0030><U0036>";/ + "<U0054><U0068><U0030><U0037>";/ + "<U0054><U0068><U0030><U0038>";/ + "<U0054><U0068><U0030><U0039>";/ "<U0054><U0068><U0031><U0030>";/ "<U0054><U0068><U0031><U0031>";/ "<U0054><U0068><U0031><U0032>" -mon "<U0054><U0068><U00E1><U006E><U0067><U0020><U0067><U0069><U00EA><U006E><U0067>";/ +mon "<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U1ED9><U0074>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U0068><U0061><U0069>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U0062><U0061>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U0074><U01B0>";/ @@ -286,12 +286,12 @@ "<U0054><U0068><U00E1><U006E><U0067><U0020><U0074><U00E1><U006D>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U0063><U0068><U00ED><U006E>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U01B0><U1EDD><U0069>";/ - "<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U1ED9><U0074>";/ - "<U0054><U0068><U00E1><U006E><U0067><U0020><U0063><U0068><U1EA1><U0070>" -d_t_fmt "<U0025><U0041><U002C><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U006E><U0103><U006D><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + "<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U01B0><U1EDD><U0069><U0020><U006D><U1ED9><U0074>";/ + "<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U01B0><U1EDD><U0069><U0020><U0068><U0061><U0069>" +d_t_fmt "<U0025><U0041><U002C><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U004E><U0103><U006D><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>" t_fmt "<U0025><U0054>" -am_pm "<U0073><U00E1><U006E><U0067>";"<U0063><U0068><U0069><U1EC1><U0075>" +am_pm "<U0041><U004D>";"<U0050><U004D>" t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U0020><U0025><U0070>" date_fmt "<U0025><U0041><U002C><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U006E><U0103><U006D><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" END LC_TIME @@ -315,7 +315,7 @@ % LC_NAME category. % name_fmt "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074>/ -<U0025><U0067>" +<U0025><U006D><U0025><U0074><U0025><U0067>" name_gen "" name_mr "<U00D4><U002E>" name_mrs "<U0042><U002E>"
Patch 2:
--- vi_VN.orig.1 2005-11-12 15:14:31.000000000 +0900 +++ vi_VN2.1 2005-11-12 15:14:32.000000000 +0900 @@ -233,8 +233,8 @@ mon_grouping 3;3 positive_sign "" negative_sign "-" -int_frac_digits 4 -frac_digits 4 +int_frac_digits 0 +frac_digits 0 p_cs_precedes 0 p_sep_by_space 0 n_cs_precedes 1 @@ -264,19 +264,19 @@ "Thứ năm";/ "Thứ sáu";/ "Thứ bảy" -abmon "Th1";/ - "Th2";/ - "Th3";/ - "Th4";/ - "Th5";/ - "Th6";/ - "Th7";/ - "Th8";/ - "Th9";/ +abmon "Th01";/ + "Th02";/ + "Th03";/ + "Th04";/ + "Th05";/ + "Th06";/ + "Th07";/ + "Th08";/ + "Th09";/ "Th10";/ "Th11";/ "Th12" -mon "Tháng giêng";/ +mon "Tháng một";/ "Tháng hai";/ "Tháng ba";/ "Tháng tư";/ @@ -286,12 +286,12 @@ "Tháng tám";/ "Tháng chín";/ "Tháng mười";/ - "Tháng một";/ - "Tháng chạp" -d_t_fmt "%A, %d %B năm %Y %T %Z" + "Tháng mười một";/ + "Tháng mười hai" +d_t_fmt "%A, %d %B Năm %Y %T %Z" d_fmt "%d/%m/%Y" t_fmt "%T" -am_pm "sáng";"chiều" +am_pm "AM";"PM" t_fmt_ampm "%I:%M %p" date_fmt "%A, %d %B năm %Y %T %Z" END LC_TIME @@ -315,7 +315,7 @@ % LC_NAME category. % name_fmt "%p%t%f%t/ -%g" +%m%t%g" name_gen "" name_mr "Ô." name_mrs "B."
Locale:
escape_char / comment_char % % % Vietnamese language locale for Vietnam % Source: glibc locale and info from vietnamese native speakers % Address: % Contact: Pablo Saratxaga % Email: pablo@mandrakesoft.com % Tel: % Fax: % Language: vi % Territory: VN % Revision: 1.1 % Date: 2004-01-09 % Users: general % Repertoiremap: % Charset: UTF-8 % Distribution and use is free, also % for commercial purposes. LC_IDENTIFICATION title "Vietnamese language locale for Vietnam" source "glibc locale and info from vietnamese native speakers" address "" contact "Pablo Saratxaga" email "pablo@mandrakesoft.com" tel "" fax "" language "Vietnamese" territory "Vietnam" revision "1.1" date "2004-01-09" % category "vi_VN:2000";LC_IDENTIFICATION category "vi_VN:2000";LC_CTYPE category "vi_VN:2000";LC_COLLATE category "vi_VN:2000";LC_TIME category "vi_VN:2000";LC_NUMERIC category "vi_VN:2000";LC_MONETARY category "vi_VN:2000";LC_MESSAGES category "vi_VN:2000";LC_PAPER category "vi_VN:2000";LC_NAME category "vi_VN:2000";LC_ADDRESS category "vi_VN:2000";LC_TELEPHONE category "vi_VN:2000";LC_MEASUREMENT END LC_IDENTIFICATION LC_CTYPE copy "i18n" translit_start % dong sign -> d// -> dd <U20AB> "<U0111>";"<U0064><U0064>" translit_end END LC_CTYPE LC_COLLATE % Copy the template from ISO/IEC 14651 copy "iso14651_t1" % A( A^ E^ O+ U+ DD are treatead as base letters % ordering of accents is: grave, hook, tilde, acute, dot below % a a( a> b c d d/ e e> f g h i j k l m n o o+ p q r s t u u+ v w x y z collating-symbol <a(> collating-symbol <a/>> collating-symbol <d//> collating-symbol <e/>> collating-symbol <o/>> collating-symbol <o9> collating-symbol <u9> collating-symbol <HOK> reorder-after <BAS> <GRA> <HOK> <TIL> <ACA> <PCT> reorder-after <a> <a(> <a/>> reorder-after <d> <d//> reorder-after <e> <e/>> reorder-after <o> <o/>> <o9> reorder-after <u> <u9> reorder-after <U0061> <U1EA3> <a>;<HOK>;<MIN>;IGNORE <U1EA1> <a>;<PCT>;<MIN>;IGNORE <U0103> <a(>;<BAS>;<MIN>;IGNORE <U1EB1> <a(>;<GRA>;<MIN>;IGNORE <U1EB3> <a(>;<HOK>;<MIN>;IGNORE <U1EB5> <a(>;<TIL>;<MIN>;IGNORE <U1EAF> <a(>;<ACA>;<MIN>;IGNORE <U1EB7> <a(>;<PCT>;<MIN>;IGNORE <U00E2> <a/>>;<BAS>;<MIN>;IGNORE <U1EA7> <a/>>;<GRA>;<MIN>;IGNORE <U1EA9> <a/>>;<HOK>;<MIN>;IGNORE <U1EAB> <a/>>;<TIL>;<MIN>;IGNORE <U1EA5> <a/>>;<ACA>;<MIN>;IGNORE <U1EAD> <a/>>;<PCT>;<MIN>;IGNORE reorder-after <U0041> <U1EA2> <a>;<HOK>;<CAP>;IGNORE <U1EA0> <a>;<PCT>;<CAP>;IGNORE <U0102> <a(>;<BAS>;<CAP>;IGNORE <U1EB0> <a(>;<GRA>;<CAP>;IGNORE <U1EB2> <a(>;<HOK>;<CAP>;IGNORE <U1EB4> <a(>;<TIL>;<CAP>;IGNORE <U1EAE> <a(>;<ACA>;<CAP>;IGNORE <U1EB6> <a(>;<PCT>;<CAP>;IGNORE <U00C2> <a/>>;<BAS>;<CAP>;IGNORE <U1EA6> <a/>>;<GRA>;<CAP>;IGNORE <U1EA8> <a/>>;<HOK>;<CAP>;IGNORE <U1EAA> <a/>>;<TIL>;<CAP>;IGNORE <U1EA4> <a/>>;<ACA>;<CAP>;IGNORE <U1EAC> <a/>>;<PCT>;<CAP>;IGNORE reorder-after <U0064> <U0111> <d//>;<BAS>;<MIN>;IGNORE <U00F0> <d//>;<PCL>;<MIN>;IGNORE reorder-after <U0044> <U0110> <d//>;<BAS>;<CAP>;IGNORE <U00D0> <d//>;<PCL>;<CAP>;IGNORE reorder-after <U0065> <U1EBB> <e>;<HOK>;<MIN>;IGNORE <U1EBD> <e>;<TIL>;<MIN>;IGNORE <U1EB9> <e>;<PCT>;<MIN>;IGNORE <U00EA> <e/>>;<BAS>;<MIN>;IGNORE <U1EC1> <e/>>;<GRA>;<MIN>;IGNORE <U1EC3> <e/>>;<HOK>;<MIN>;IGNORE <U1EC5> <e/>>;<TIL>;<MIN>;IGNORE <U1EBF> <e/>>;<ACA>;<MIN>;IGNORE <U1EC7> <e/>>;<PCT>;<MIN>;IGNORE reorder-after <U0045> <U1EBA> <e>;<HOK>;<CAP>;IGNORE <U1EBC> <e>;<TIL>;<CAP>;IGNORE <U1EB8> <e>;<PCT>;<CAP>;IGNORE <U00CA> <e/>>;<BAS>;<CAP>;IGNORE <U1EC0> <e/>>;<GRA>;<CAP>;IGNORE <U1EC2> <e/>>;<HOK>;<CAP>;IGNORE <U1EC4> <e/>>;<TIL>;<CAP>;IGNORE <U1EBE> <e/>>;<ACA>;<CAP>;IGNORE <U1EC6> <e/>>;<PCT>;<CAP>;IGNORE reorder-after <U0069> <U1EC9> <i>;<HOK>;<MIN>;IGNORE <U1ECB> <i>;<PCT>;<MIN>;IGNORE reorder-after <U0049> <U1EC8> <i>;<HOK>;<CAP>;IGNORE <U1ECA> <i>;<PCT>;<CAP>;IGNORE reorder-after <U006F> <U1ECF> <o>;<HOK>;<MIN>;IGNORE <U1ECD> <o>;<PCT>;<MIN>;IGNORE <U00F4> <o/>>;<BAS>;<MIN>;IGNORE <U1ED3> <o/>>;<GRA>;<MIN>;IGNORE <U1ED5> <o/>>;<HOK>;<MIN>;IGNORE <U1ED7> <o/>>;<TIL>;<MIN>;IGNORE <U1ED1> <o/>>;<ACA>;<MIN>;IGNORE <U1ED9> <o/>>;<PCT>;<MIN>;IGNORE <U01A1> <o9>;<BAS>;<MIN>;IGNORE <U1EDD> <o9>;<GRA>;<MIN>;IGNORE <U1EDF> <o9>;<HOK>;<MIN>;IGNORE <U1EE1> <o9>;<TIL>;<MIN>;IGNORE <U1EDB> <o9>;<ACA>;<MIN>;IGNORE <U1EE3> <o9>;<PCT>;<MIN>;IGNORE reorder-after <U004F> <U1ECE> <o>;<HOK>;<CAP>;IGNORE <U1ECC> <o>;<PCT>;<CAP>;IGNORE <U00D4> <o/>>;<BAS>;<CAP>;IGNORE <U1ED2> <o/>>;<GRA>;<CAP>;IGNORE <U1ED4> <o/>>;<HOK>;<CAP>;IGNORE <U1ED6> <o/>>;<TIL>;<CAP>;IGNORE <U1ED0> <o/>>;<ACA>;<CAP>;IGNORE <U1ED8> <o/>>;<PCT>;<CAP>;IGNORE <U01A0> <o9>;<BAS>;<CAP>;IGNORE <U1EDC> <o9>;<GRA>;<CAP>;IGNORE <U1EDE> <o9>;<HOK>;<CAP>;IGNORE <U1EE0> <o9>;<TIL>;<CAP>;IGNORE <U1EDA> <o9>;<ACA>;<CAP>;IGNORE <U1EE2> <o9>;<PCT>;<CAP>;IGNORE reorder-after <U0075> <U1EE7> <u>;<HOK>;<MIN>;IGNORE <U1EE5> <u>;<PCT>;<MIN>;IGNORE <U01B0> <u9>;<BAS>;<MIN>;IGNORE <U1EEB> <u9>;<GRA>;<MIN>;IGNORE <U1EED> <u9>;<HOK>;<MIN>;IGNORE <U1EEF> <u9>;<TIL>;<MIN>;IGNORE <U1EE9> <u9>;<ACA>;<MIN>;IGNORE <U1EF1> <u9>;<PCT>;<MIN>;IGNORE reorder-after <U0055> <U1EE6> <u>;<HOK>;<CAP>;IGNORE <U1EE4> <u>;<PCT>;<CAP>;IGNORE <U01AF> <u9>;<BAS>;<CAP>;IGNORE <U1EEA> <u9>;<GRA>;<CAP>;IGNORE <U1EEC> <u9>;<HOK>;<CAP>;IGNORE <U1EEE> <u9>;<TIL>;<CAP>;IGNORE <U1EE8> <u9>;<ACA>;<CAP>;IGNORE <U1EF0> <u9>;<PCT>;<CAP>;IGNORE reorder-after <U0079> <U1EF3> <y>;<GRA>;<MIN>;IGNORE <U1EF7> <y>;<HOK>;<MIN>;IGNORE <U1EF9> <y>;<TIL>;<MIN>;IGNORE <U1EF5> <y>;<PCT>;<MIN>;IGNORE reorder-after <U0059> <U1EF2> <y>;<GRA>;<CAP>;IGNORE <U1EF6> <y>;<HOK>;<CAP>;IGNORE <U1EF8> <y>;<TIL>;<CAP>;IGNORE <U1EF4> <y>;<PCT>;<CAP>;IGNORE reorder-end END LC_COLLATE LC_MONETARY int_curr_symbol "<U0056><U004E><U0044><U0020>" currency_symbol "<U20AB>" mon_decimal_point "<U002C>" mon_thousands_sep "<U002E>" mon_grouping 3;3 positive_sign "" negative_sign "<U002D>" int_frac_digits 0 frac_digits 0 p_cs_precedes 0 p_sep_by_space 0 n_cs_precedes 1 n_sep_by_space 0 p_sign_posn 1 n_sign_posn 1 END LC_MONETARY LC_NUMERIC decimal_point "<U002C>" thousands_sep "<U002E>" grouping 3;3 END LC_NUMERIC LC_TIME abday "<U0043><U004E>";/ "<U0054><U0032>";/ "<U0054><U0033>";/ "<U0054><U0034>";/ "<U0054><U0035>";/ "<U0054><U0036>";/ "<U0054><U0037>" day "<U0043><U0068><U1EE7><U0020><U006E><U0068><U1EAD><U0074>";/ "<U0054><U0068><U1EE9><U0020><U0068><U0061><U0069>";/ "<U0054><U0068><U1EE9><U0020><U0062><U0061>";/ "<U0054><U0068><U1EE9><U0020><U0074><U01B0>";/ "<U0054><U0068><U1EE9><U0020><U006E><U0103><U006D>";/ "<U0054><U0068><U1EE9><U0020><U0073><U00E1><U0075>";/ "<U0054><U0068><U1EE9><U0020><U0062><U1EA3><U0079>" abmon "<U0054><U0068><U0030><U0031>";/ "<U0054><U0068><U0030><U0032>";/ "<U0054><U0068><U0030><U0033>";/ "<U0054><U0068><U0030><U0034>";/ "<U0054><U0068><U0030><U0035>";/ "<U0054><U0068><U0030><U0036>";/ "<U0054><U0068><U0030><U0037>";/ "<U0054><U0068><U0030><U0038>";/ "<U0054><U0068><U0030><U0039>";/ "<U0054><U0068><U0031><U0030>";/ "<U0054><U0068><U0031><U0031>";/ "<U0054><U0068><U0031><U0032>" mon "<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U1ED9><U0074>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U0068><U0061><U0069>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U0062><U0061>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U0074><U01B0>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U006E><U0103><U006D>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U0073><U00E1><U0075>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U0062><U1EA3><U0079>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U0074><U00E1><U006D>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U0063><U0068><U00ED><U006E>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U01B0><U1EDD><U0069>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U01B0><U1EDD><U0069><U0020><U006D><U1ED9><U0074>";/ "<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U01B0><U1EDD><U0069><U0020><U0068><U0061><U0069>" d_t_fmt "<U0025><U0041><U002C><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U004E><U0103><U006D><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>" t_fmt "<U0025><U0054>" am_pm "<U0041><U004D>";"<U0050><U004D>" t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U0020><U0025><U0070>" date_fmt "<U0025><U0041><U002C><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U006E><U0103><U006D><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" END LC_TIME % yes: Va^ng / Da. % no: Kho^ng LC_MESSAGES yesstr "<U0043><U00F3>" nostr "<U004B><U0068><U00F4><U006E><U0067>" yesexpr "<U005E><U005B><U0031><U0079><U0059><U0063><U0043><U005D><U002E><U002A>" noexpr "<U005E><U005B><U0030><U006E><U004E><U006B><U004B><U005D><U002E><U002A>" END LC_MESSAGES LC_PAPER height 297 width 210 END LC_PAPER LC_NAME % This is the ISO_IEC TR14652 Locale definition for the % LC_NAME category. % name_fmt "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074>/ <U0025><U006D><U0025><U0074><U0025><U0067>" name_gen "" name_mr "<U00D4><U002E>" name_mrs "<U0042><U002E>" name_miss "<U0043><U002E>" name_ms "" END LC_NAME LC_ADDRESS % This is the ISO_IEC TR14652 Locale definition for the % LC_ADDRESS postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/ <U0025><U0062><U0025><U0065><U0025><U0072>" country_name "<U0056><U0069><U1EC7><U0074><U0020><U006E><U0061><U006D>" lang_name "<U0056><U0069><U1EC7><U0074><U0020><U006E><U0067><U1EEF>" country_ab2 "<U0056><U004E>" country_ab3 "<U0056><U004E><U004D>" country_num 704 END LC_ADDRESS LC_TELEPHONE % This is the ISO_IEC TR14652 Locale definition for the % tel_int_fmt "<U002B><U0025><U0063><U0020><U003B><U0025><U0061><U0020>/ <U003B><U0025><U006C>" int_prefix "<U0038><U0034>" int_select "<U0030><U0030>" END LC_TELEPHONE LC_MEASUREMENT measurement 1 END LC_MEASUREMENT
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ bảy, 12 Tháng một năm 2005 01:25:36 JST
Locale mới cập nhật
Đây là thành quả sau khi áp dụng các bước chỉnh locale
escape_char /
comment_char %
%
% Vietnamese language locale for Vietnam
% Source: glibc locale and info from vietnamese native speakers
% Address:
% Contact: Pablo Saratxaga
% Email: pablo@mandrakesoft.com
% Tel:
% Fax:
% Language: vi
% Territory: VN
% Revision: 1.1
% Date: 2004-01-09
% Users: general
% Repertoiremap:
% Charset: UTF-8
% Distribution and use is free, also
% for commercial purposes.
LC_IDENTIFICATION
title "Vietnamese language locale for Vietnam"
source "glibc locale and info from vietnamese native speakers"
address ""
contact "Pablo Saratxaga"
email "pablo@mandrakesoft.com"
tel ""
fax ""
language "Vietnamese"
territory "Vietnam"
revision "1.1"
date "2004-01-09"
%
category "vi_VN:2000";LC_IDENTIFICATION
category "vi_VN:2000";LC_CTYPE
category "vi_VN:2000";LC_COLLATE
category "vi_VN:2000";LC_TIME
category "vi_VN:2000";LC_NUMERIC
category "vi_VN:2000";LC_MONETARY
category "vi_VN:2000";LC_MESSAGES
category "vi_VN:2000";LC_PAPER
category "vi_VN:2000";LC_NAME
category "vi_VN:2000";LC_ADDRESS
category "vi_VN:2000";LC_TELEPHONE
category "vi_VN:2000";LC_MEASUREMENT
END LC_IDENTIFICATION
LC_CTYPE
copy "i18n"
translit_start
% dong sign -> d// -> dd
<U20AB> "<U0111>";"<U0064><U0064>"
translit_end
END LC_CTYPE
LC_COLLATE
% Copy the template from ISO/IEC 14651
copy "iso14651_t1"
% A( A^ E^ O+ U+ DD are treatead as base letters
% ordering of accents is: grave, hook, tilde, acute, dot below
% a a( a> b c d d/ e e> f g h i j k l m n o o+ p q r s t u u+ v w x y z
collating-symbol <a(>
collating-symbol <a/>>
collating-symbol <d//>
collating-symbol <e/>>
collating-symbol <o/>>
collating-symbol <o9>
collating-symbol <u9>
collating-symbol <HOK>
reorder-after <BAS>
<GRA>
<HOK>
<TIL>
<ACA>
<PCT>
reorder-after <a>
<a(>
<a/>>
reorder-after <d>
<d//>
reorder-after <e>
<e/>>
reorder-after <o>
<o/>>
<o9>
reorder-after <u>
<u9>
reorder-after <U0061>
<U1EA3> <a>;<HOK>;<MIN>;IGNORE
<U1EA1> <a>;<PCT>;<MIN>;IGNORE
<U0103> <a(>;<BAS>;<MIN>;IGNORE
<U1EB1> <a(>;<GRA>;<MIN>;IGNORE
<U1EB3> <a(>;<HOK>;<MIN>;IGNORE
<U1EB5> <a(>;<TIL>;<MIN>;IGNORE
<U1EAF> <a(>;<ACA>;<MIN>;IGNORE
<U1EB7> <a(>;<PCT>;<MIN>;IGNORE
<U00E2> <a/>>;<BAS>;<MIN>;IGNORE
<U1EA7> <a/>>;<GRA>;<MIN>;IGNORE
<U1EA9> <a/>>;<HOK>;<MIN>;IGNORE
<U1EAB> <a/>>;<TIL>;<MIN>;IGNORE
<U1EA5> <a/>>;<ACA>;<MIN>;IGNORE
<U1EAD> <a/>>;<PCT>;<MIN>;IGNORE
reorder-after <U0041>
<U1EA2> <a>;<HOK>;<CAP>;IGNORE
<U1EA0> <a>;<PCT>;<CAP>;IGNORE
<U0102> <a(>;<BAS>;<CAP>;IGNORE
<U1EB0> <a(>;<GRA>;<CAP>;IGNORE
<U1EB2> <a(>;<HOK>;<CAP>;IGNORE
<U1EB4> <a(>;<TIL>;<CAP>;IGNORE
<U1EAE> <a(>;<ACA>;<CAP>;IGNORE
<U1EB6> <a(>;<PCT>;<CAP>;IGNORE
<U00C2> <a/>>;<BAS>;<CAP>;IGNORE
<U1EA6> <a/>>;<GRA>;<CAP>;IGNORE
<U1EA8> <a/>>;<HOK>;<CAP>;IGNORE
<U1EAA> <a/>>;<TIL>;<CAP>;IGNORE
<U1EA4> <a/>>;<ACA>;<CAP>;IGNORE
<U1EAC> <a/>>;<PCT>;<CAP>;IGNORE
reorder-after <U0064>
<U0111> <d//>;<BAS>;<MIN>;IGNORE
<U00F0> <d//>;<PCL>;<MIN>;IGNORE
reorder-after <U0044>
<U0110> <d//>;<BAS>;<CAP>;IGNORE
<U00D0> <d//>;<PCL>;<CAP>;IGNORE
reorder-after <U0065>
<U1EBB> <e>;<HOK>;<MIN>;IGNORE
<U1EBD> <e>;<TIL>;<MIN>;IGNORE
<U1EB9> <e>;<PCT>;<MIN>;IGNORE
<U00EA> <e/>>;<BAS>;<MIN>;IGNORE
<U1EC1> <e/>>;<GRA>;<MIN>;IGNORE
<U1EC3> <e/>>;<HOK>;<MIN>;IGNORE
<U1EC5> <e/>>;<TIL>;<MIN>;IGNORE
<U1EBF> <e/>>;<ACA>;<MIN>;IGNORE
<U1EC7> <e/>>;<PCT>;<MIN>;IGNORE
reorder-after <U0045>
<U1EBA> <e>;<HOK>;<CAP>;IGNORE
<U1EBC> <e>;<TIL>;<CAP>;IGNORE
<U1EB8> <e>;<PCT>;<CAP>;IGNORE
<U00CA> <e/>>;<BAS>;<CAP>;IGNORE
<U1EC0> <e/>>;<GRA>;<CAP>;IGNORE
<U1EC2> <e/>>;<HOK>;<CAP>;IGNORE
<U1EC4> <e/>>;<TIL>;<CAP>;IGNORE
<U1EBE> <e/>>;<ACA>;<CAP>;IGNORE
<U1EC6> <e/>>;<PCT>;<CAP>;IGNORE
reorder-after <U0069>
<U1EC9> <i>;<HOK>;<MIN>;IGNORE
<U1ECB> <i>;<PCT>;<MIN>;IGNORE
reorder-after <U0049>
<U1EC8> <i>;<HOK>;<CAP>;IGNORE
<U1ECA> <i>;<PCT>;<CAP>;IGNORE
reorder-after <U006F>
<U1ECF> <o>;<HOK>;<MIN>;IGNORE
<U1ECD> <o>;<PCT>;<MIN>;IGNORE
<U00F4> <o/>>;<BAS>;<MIN>;IGNORE
<U1ED3> <o/>>;<GRA>;<MIN>;IGNORE
<U1ED5> <o/>>;<HOK>;<MIN>;IGNORE
<U1ED7> <o/>>;<TIL>;<MIN>;IGNORE
<U1ED1> <o/>>;<ACA>;<MIN>;IGNORE
<U1ED9> <o/>>;<PCT>;<MIN>;IGNORE
<U01A1> <o9>;<BAS>;<MIN>;IGNORE
<U1EDD> <o9>;<GRA>;<MIN>;IGNORE
<U1EDF> <o9>;<HOK>;<MIN>;IGNORE
<U1EE1> <o9>;<TIL>;<MIN>;IGNORE
<U1EDB> <o9>;<ACA>;<MIN>;IGNORE
<U1EE3> <o9>;<PCT>;<MIN>;IGNORE
reorder-after <U004F>
<U1ECE> <o>;<HOK>;<CAP>;IGNORE
<U1ECC> <o>;<PCT>;<CAP>;IGNORE
<U00D4> <o/>>;<BAS>;<CAP>;IGNORE
<U1ED2> <o/>>;<GRA>;<CAP>;IGNORE
<U1ED4> <o/>>;<HOK>;<CAP>;IGNORE
<U1ED6> <o/>>;<TIL>;<CAP>;IGNORE
<U1ED0> <o/>>;<ACA>;<CAP>;IGNORE
<U1ED8> <o/>>;<PCT>;<CAP>;IGNORE
<U01A0> <o9>;<BAS>;<CAP>;IGNORE
<U1EDC> <o9>;<GRA>;<CAP>;IGNORE
<U1EDE> <o9>;<HOK>;<CAP>;IGNORE
<U1EE0> <o9>;<TIL>;<CAP>;IGNORE
<U1EDA> <o9>;<ACA>;<CAP>;IGNORE
<U1EE2> <o9>;<PCT>;<CAP>;IGNORE
reorder-after <U0075>
<U1EE7> <u>;<HOK>;<MIN>;IGNORE
<U1EE5> <u>;<PCT>;<MIN>;IGNORE
<U01B0> <u9>;<BAS>;<MIN>;IGNORE
<U1EEB> <u9>;<GRA>;<MIN>;IGNORE
<U1EED> <u9>;<HOK>;<MIN>;IGNORE
<U1EEF> <u9>;<TIL>;<MIN>;IGNORE
<U1EE9> <u9>;<ACA>;<MIN>;IGNORE
<U1EF1> <u9>;<PCT>;<MIN>;IGNORE
reorder-after <U0055>
<U1EE6> <u>;<HOK>;<CAP>;IGNORE
<U1EE4> <u>;<PCT>;<CAP>;IGNORE
<U01AF> <u9>;<BAS>;<CAP>;IGNORE
<U1EEA> <u9>;<GRA>;<CAP>;IGNORE
<U1EEC> <u9>;<HOK>;<CAP>;IGNORE
<U1EEE> <u9>;<TIL>;<CAP>;IGNORE
<U1EE8> <u9>;<ACA>;<CAP>;IGNORE
<U1EF0> <u9>;<PCT>;<CAP>;IGNORE
reorder-after <U0079>
<U1EF3> <y>;<GRA>;<MIN>;IGNORE
<U1EF7> <y>;<HOK>;<MIN>;IGNORE
<U1EF9> <y>;<TIL>;<MIN>;IGNORE
<U1EF5> <y>;<PCT>;<MIN>;IGNORE
reorder-after <U0059>
<U1EF2> <y>;<GRA>;<CAP>;IGNORE
<U1EF6> <y>;<HOK>;<CAP>;IGNORE
<U1EF8> <y>;<TIL>;<CAP>;IGNORE
<U1EF4> <y>;<PCT>;<CAP>;IGNORE
reorder-end
END LC_COLLATE
LC_MONETARY
int_curr_symbol "<U0056><U004E><U0044><U0020>"
currency_symbol "<U20AB>"
mon_decimal_point "<U002C>"
mon_thousands_sep "<U002E>"
mon_grouping 3;3
positive_sign ""
negative_sign "<U002D>"
int_frac_digits 0
frac_digits 0
p_cs_precedes 0
p_sep_by_space 0
n_cs_precedes 1
n_sep_by_space 0
p_sign_posn 1
n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
decimal_point "<U002C>"
thousands_sep "<U002E>"
grouping 3;3
END LC_NUMERIC
LC_TIME
abday "<U0043><U004E>";/
"<U0054><U0032>";/
"<U0054><U0033>";/
"<U0054><U0034>";/
"<U0054><U0035>";/
"<U0054><U0036>";/
"<U0054><U0037>"
day "<U0043><U0068><U1EE7><U0020><U006E><U0068><U1EAD><U0074>";/
"<U0054><U0068><U1EE9><U0020><U0068><U0061><U0069>";/
"<U0054><U0068><U1EE9><U0020><U0062><U0061>";/
"<U0054><U0068><U1EE9><U0020><U0074><U01B0>";/
"<U0054><U0068><U1EE9><U0020><U006E><U0103><U006D>";/
"<U0054><U0068><U1EE9><U0020><U0073><U00E1><U0075>";/
"<U0054><U0068><U1EE9><U0020><U0062><U1EA3><U0079>"
abmon "<U0054><U0068><U0030><U0031>";/
"<U0054><U0068><U0030><U0032>";/
"<U0054><U0068><U0030><U0033>";/
"<U0054><U0068><U0030><U0034>";/
"<U0054><U0068><U0030><U0035>";/
"<U0054><U0068><U0030><U0036>";/
"<U0054><U0068><U0030><U0037>";/
"<U0054><U0068><U0030><U0038>";/
"<U0054><U0068><U0030><U0039>";/
"<U0054><U0068><U0031><U0030>";/
"<U0054><U0068><U0031><U0031>";/
"<U0054><U0068><U0031><U0032>"
mon "<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U1ED9><U0074>";/
"<U0054><U0068><U00E1><U006E><U0067><U0020><U0068><U0061><U0069>";/
"<U0054><U0068><U00E1><U006E><U0067><U0020><U0062><U0061>";/
"<U0054><U0068><U00E1><U006E><U0067><U0020><U0074><U01B0>";/
"<U0054><U0068><U00E1><U006E><U0067><U0020><U006E><U0103><U006D>";/
"<U0054><U0068><U00E1><U006E><U0067><U0020><U0073><U00E1><U0075>";/
"<U0054><U0068><U00E1><U006E><U0067><U0020><U0062><U1EA3><U0079>";/
"<U0054><U0068><U00E1><U006E><U0067><U0020><U0074><U00E1><U006D>";/
"<U0054><U0068><U00E1><U006E><U0067><U0020><U0063><U0068><U00ED><U006E>";/
"<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U01B0><U1EDD><U0069>";/
"<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U01B0><U1EDD><U0069><U0020><U006D><U1ED9><U0074>";/
"<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U01B0><U1EDD><U0069><U0020><U0068><U0061><U0069>"
d_t_fmt "<U0025><U0041><U002C><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U006E><U0103><U006D><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
t_fmt "<U0025><U0054>"
am_pm "<U0041><U004D>";"<U0050><U004D>"
t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U0020><U0025><U0070>"
date_fmt "<U0025><U0041><U002C><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U006E><U0103><U006D><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
END LC_TIME
% yes: Va^ng / Da.
% no: Kho^ng
LC_MESSAGES
yesstr "<U0043><U00F3>"
nostr "<U004B><U0068><U00F4><U006E><U0067>"
yesexpr "<U005E><U005B><U0031><U0079><U0059><U0063><U0043><U005D><U002E><U002A>"
noexpr "<U005E><U005B><U0030><U006E><U004E><U006B><U004B><U005D><U002E><U002A>"
END LC_MESSAGES
LC_PAPER
height 297
width 210
END LC_PAPER
LC_NAME
% This is the ISO_IEC TR14652 Locale definition for the
% LC_NAME category.
%
name_fmt "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074>/
<U0025><U006D><U0025><U0074><U0025><U0067>"
name_gen ""
name_mr "<U00D4><U002E>"
name_mrs "<U0042><U002E>"
name_miss "<U0043><U002E>"
name_ms ""
END LC_NAME
LC_ADDRESS
% This is the ISO_IEC TR14652 Locale definition for the
% LC_ADDRESS
postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
<U0025><U0062><U0025><U0065><U0025><U0072>"
country_name "<U0056><U0069><U1EC7><U0074><U0020><U006E><U0061><U006D>"
lang_name "<U0056><U0069><U1EC7><U0074><U0020><U006E><U0067><U1EEF>"
country_ab2 "<U0056><U004E>"
country_ab3 "<U0056><U004E><U004D>"
country_num 704
END LC_ADDRESS
LC_TELEPHONE
% This is the ISO_IEC TR14652 Locale definition for the
%
tel_int_fmt "<U002B><U0025><U0063><U0020><U003B><U0025><U0061><U0020>/
<U003B><U0025><U006C>"
int_prefix "<U0038><U0034>"
int_select "<U0030><U0030>"
END LC_TELEPHONE
LC_MEASUREMENT
measurement 1
END LC_MEASUREMENT
</pre>
Hai cái diff của bước trên theo sau:
<pre>
<font color="00A040"><strong>--- vi_VN0 2005-11-12 00:40:35.000000000 +0900</strong></font>
<font color="00A040"><strong>+++ vi_VN2 2005-11-12 01:01:46.000000000 +0900</strong></font>
<font color="A0A000"><strong>@@ -233,8 +233,8 @@</strong></font>
mon_grouping 3;3
positive_sign ""
negative_sign "<U002D>"
<font color="FF0000"><strong>-int_frac_digits 4</strong></font>
<font color="FF0000"><strong>-frac_digits 4</strong></font>
<font color="0000FF"><strong>+int_frac_digits 0</strong></font>
<font color="0000FF"><strong>+frac_digits 0</strong></font>
p_cs_precedes 0
p_sep_by_space 0
n_cs_precedes 1
<font color="A0A000"><strong>@@ -264,19 +264,19 @@</strong></font>
"<U0054><U0068><U1EE9><U0020><U006E><U0103><U006D>";/
"<U0054><U0068><U1EE9><U0020><U0073><U00E1><U0075>";/
"<U0054><U0068><U1EE9><U0020><U0062><U1EA3><U0079>"
<font color="FF0000"><strong>-abmon "<U0054><U0068><U0031>";/</strong></font>
<font color="FF0000"><strong>- "<U0054><U0068><U0032>";/</strong></font>
<font color="FF0000"><strong>- "<U0054><U0068><U0033>";/</strong></font>
<font color="FF0000"><strong>- "<U0054><U0068><U0034>";/</strong></font>
<font color="FF0000"><strong>- "<U0054><U0068><U0035>";/</strong></font>
<font color="FF0000"><strong>- "<U0054><U0068><U0036>";/</strong></font>
<font color="FF0000"><strong>- "<U0054><U0068><U0037>";/</strong></font>
<font color="FF0000"><strong>- "<U0054><U0068><U0038>";/</strong></font>
<font color="FF0000"><strong>- "<U0054><U0068><U0039>";/</strong></font>
<font color="0000FF"><strong>+abmon "<U0054><U0068><U0030><U0031>";/</strong></font>
<font color="0000FF"><strong>+ "<U0054><U0068><U0030><U0032>";/</strong></font>
<font color="0000FF"><strong>+ "<U0054><U0068><U0030><U0033>";/</strong></font>
<font color="0000FF"><strong>+ "<U0054><U0068><U0030><U0034>";/</strong></font>
<font color="0000FF"><strong>+ "<U0054><U0068><U0030><U0035>";/</strong></font>
<font color="0000FF"><strong>+ "<U0054><U0068><U0030><U0036>";/</strong></font>
<font color="0000FF"><strong>+ "<U0054><U0068><U0030><U0037>";/</strong></font>
<font color="0000FF"><strong>+ "<U0054><U0068><U0030><U0038>";/</strong></font>
<font color="0000FF"><strong>+ "<U0054><U0068><U0030><U0039>";/</strong></font>
"<U0054><U0068><U0031><U0030>";/
"<U0054><U0068><U0031><U0031>";/
"<U0054><U0068><U0031><U0032>"
<font color="FF0000"><strong>-mon "<U0054><U0068><U00E1><U006E><U0067><U0020><U0067><U0069><U00EA><U006E><U0067>";/</strong></font>
<font color="0000FF"><strong>+mon "<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U1ED9><U0074>";/</strong></font>
"<U0054><U0068><U00E1><U006E><U0067><U0020><U0068><U0061><U0069>";/
"<U0054><U0068><U00E1><U006E><U0067><U0020><U0062><U0061>";/
"<U0054><U0068><U00E1><U006E><U0067><U0020><U0074><U01B0>";/
<font color="A0A000"><strong>@@ -286,12 +286,12 @@</strong></font>
"<U0054><U0068><U00E1><U006E><U0067><U0020><U0074><U00E1><U006D>";/
"<U0054><U0068><U00E1><U006E><U0067><U0020><U0063><U0068><U00ED><U006E>";/
"<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U01B0><U1EDD><U0069>";/
<font color="FF0000"><strong>- "<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U1ED9><U0074>";/</strong></font>
<font color="FF0000"><strong>- "<U0054><U0068><U00E1><U006E><U0067><U0020><U0063><U0068><U1EA1><U0070>"</strong></font>
<font color="0000FF"><strong>+ "<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U01B0><U1EDD><U0069><U0020><U006D><U1ED9><U0074>";/</strong></font>
<font color="0000FF"><strong>+ "<U0054><U0068><U00E1><U006E><U0067><U0020><U006D><U01B0><U1EDD><U0069><U0020><U0068><U0061><U0069>"</strong></font>
d_t_fmt "<U0025><U0041><U002C><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U006E><U0103><U006D><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
t_fmt "<U0025><U0054>"
<font color="FF0000"><strong>-am_pm "<U0073><U00E1><U006E><U0067>";"<U0063><U0068><U0069><U1EC1><U0075>"</strong></font>
<font color="0000FF"><strong>+am_pm "<U0041><U004D>";"<U0050><U004D>"</strong></font>
t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U0020><U0025><U0070>"
date_fmt "<U0025><U0041><U002C><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U006E><U0103><U006D><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
END LC_TIME
<font color="A0A000"><strong>@@ -315,7 +315,7 @@</strong></font>
% LC_NAME category.
%
name_fmt "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074>/
<font color="FF0000"><strong>-<U0025><U0067>"</strong></font>
<font color="0000FF"><strong>+<U0025><U006D><U0025><U0074><U0025><U0067>"</strong></font>
name_gen ""
name_mr "<U00D4><U002E>"
name_mrs "<U0042><U002E>"
</pre>
patch 2
<pre>
<font color="00A040"><strong>--- vi_VN.orig.1 2005-11-12 01:18:49.000000000 +0900</strong></font>
<font color="00A040"><strong>+++ vi_VN2.1 2005-11-12 01:18:57.000000000 +0900</strong></font>
<font color="A0A000"><strong>@@ -233,8 +233,8 @@</strong></font>
mon_grouping 3;3
positive_sign ""
negative_sign "-"
<font color="FF0000"><strong>-int_frac_digits 4</strong></font>
<font color="FF0000"><strong>-frac_digits 4</strong></font>
<font color="0000FF"><strong>+int_frac_digits 0</strong></font>
<font color="0000FF"><strong>+frac_digits 0</strong></font>
p_cs_precedes 0
p_sep_by_space 0
n_cs_precedes 1
<font color="A0A000"><strong>@@ -264,19 +264,19 @@</strong></font>
"Thứ năm";/
"Thứ sáu";/
"Thứ bảy"
<font color="FF0000"><strong>-abmon "Th1";/</strong></font>
<font color="FF0000"><strong>- "Th2";/</strong></font>
<font color="FF0000"><strong>- "Th3";/</strong></font>
<font color="FF0000"><strong>- "Th4";/</strong></font>
<font color="FF0000"><strong>- "Th5";/</strong></font>
<font color="FF0000"><strong>- "Th6";/</strong></font>
<font color="FF0000"><strong>- "Th7";/</strong></font>
<font color="FF0000"><strong>- "Th8";/</strong></font>
<font color="FF0000"><strong>- "Th9";/</strong></font>
<font color="0000FF"><strong>+abmon "Th01";/</strong></font>
<font color="0000FF"><strong>+ "Th02";/</strong></font>
<font color="0000FF"><strong>+ "Th03";/</strong></font>
<font color="0000FF"><strong>+ "Th04";/</strong></font>
<font color="0000FF"><strong>+ "Th05";/</strong></font>
<font color="0000FF"><strong>+ "Th06";/</strong></font>
<font color="0000FF"><strong>+ "Th07";/</strong></font>
<font color="0000FF"><strong>+ "Th08";/</strong></font>
<font color="0000FF"><strong>+ "Th09";/</strong></font>
"Th10";/
"Th11";/
"Th12"
<font color="FF0000"><strong>-mon "Tháng giêng";/</strong></font>
<font color="0000FF"><strong>+mon "Tháng một";/</strong></font>
"Tháng hai";/
"Tháng ba";/
"Tháng tư";/
<font color="A0A000"><strong>@@ -286,12 +286,12 @@</strong></font>
"Tháng tám";/
"Tháng chín";/
"Tháng mười";/
<font color="FF0000"><strong>- "Tháng một";/</strong></font>
<font color="FF0000"><strong>- "Tháng chạp"</strong></font>
<font color="0000FF"><strong>+ "Tháng mười một";/</strong></font>
<font color="0000FF"><strong>+ "Tháng mười hai"</strong></font>
d_t_fmt "%A, %d %B năm %Y %T %Z"
d_fmt "%d/%m/%Y"
t_fmt "%T"
<font color="FF0000"><strong>-am_pm "sáng";"chiều"</strong></font>
<font color="0000FF"><strong>+am_pm "AM";"PM"</strong></font>
t_fmt_ampm "%I:%M %p"
date_fmt "%A, %d %B năm %Y %T %Z"
END LC_TIME
<font color="A0A000"><strong>@@ -315,7 +315,7 @@</strong></font>
% LC_NAME category.
%
name_fmt "%p%t%f%t/
<font color="FF0000"><strong>-%g"</strong></font>
<font color="0000FF"><strong>+%m%t%g"</strong></font>
name_gen ""
name_mr "Ô."
name_mrs "B."
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ bảy, 12 Tháng một năm 2005 01:09:13 JST
Chỉnh locale - State of the art
Chỉnh locale là chuyện hết sức vui.
# Bước 1, chuyển locale sang dạng thức có thể chỉnh được: cat vi_VN.orig|sed 's/<U\([0-9A-F]\{4\}\)>/<U\{\&#x\1;\}>/g'|uvconv -f ncr-hex -t utf-8 > vi_VN # Bước 2, chỉnh. # Bước 3, chuyển ngược lại (lạy chúa, ác mộng!) uvconv -f utf-8 -t ncr-hex vi_VN |sed 's/<U{&#x\([0-9a-fA-F]*\);}>/<U\1>/g'|perl -pe 's/<U{(.)}>/sprintf "<U%x>",unpack('C',$1)/ge' |sed 's/<U\([0-9A-Fa-f]\{3\}\)>/<U0\1>/g;s/<U\([0-9A-Fa-f]\{2\}\)>/<U00\1>/g'|perl -pe 's/<U([0-9A-Fa-f]{4})>/"<U".uc($1).">"/ge' > vi_VN2 # Bước 4, diff coi nó sửa cái quái gì, đồng thời để kiểm tra bước ác mộng trên làm sai cái gì diff -u vi_VN.orig vi_VN2 # Bước 5, phát sinh ra dạng thức dễ coi hơn và diff lần nữa :( cat vi_VN.orig|sed 's/<U\([0-9A-F]\{4\}\)>/\&#x\1;/g'|uvconv -f ncr-hex -t utf-8 > vi_VN.orig.1 cat vi_VN2|sed 's/<U\([0-9A-F]\{4\}\)>/\&#x\1;/g'|uvconv -f ncr-hex -t utf-8 > vi_VN2.1 diff -u vi_VN.orig.1 vi_VN2.1 # Bước cuối, cập nhật locale hệ thống localedef -v -ci vi_VN2 -f UTF-8 vi_VN.UTF-8
Cập nhật 1 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ sáu, 11 Tháng một năm 2005 22:04:46 JST
Browser robot
Cần một cái browser xịn (gecko-based) cho phép mở shell và điều khiển bằng tay (dạng như bash shell). Nếu không mở shell thì mở socket để shell móc vô cũng tốt.
Cập nhật 1 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ sáu, 11 Tháng một năm 2005 18:46:46 JST
Who am I?
Hưởng ứng phong trào QuizFarm trên Gentoo Planet. Ta là .. batman! :P
You scored as
Batman, the Dark Knight. As the Dark Knight of Gotham, Batman is a
vigilante who deals out his own brand of justice to the criminals and corrupt
of the city. He follows his own code and is often misunderstood. He has few
friends or allies, but finds comfort in his cause.
Which Action Hero Would You Be? v. 2.0 created with QuizFarm.com |
Hơn một năm sau, kiểm tra lại, vẫn là batman :(
You scored as
Batman, the Dark Knight. As the Dark Knight of Gotham, Batman is a
vigilante who deals out his own brand of justice to the criminals and corrupt
of the city. He follows his own code and is often misunderstood. He has few
friends or allies, but finds comfort in his cause.
Which Action Hero Would You Be? v. 2.0 created with QuizFarm.com |
Cập nhật 3 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ năm, 10 Tháng một năm 2005 20:09:01 JST
Cos hieeur khoong?
Neeus banj hieeur dduwowcj cais nayf, chucs mungf banj gia nhaapj hooij nhuwngx thawngf khungf.
[16:04] <pclouds> dhson: chayj xen ddeer chuwngs tor minhf laf hawcs cowf
[16:04] * dhson nhif quanh khoong thaays ai ddeer "chuwngs tor" hic hic
[16:04] <pclouds> mk daan xaif vni maf bats gox telex, phee quas]
[16:05] <dhson> pclouds, gox telex lej hown VNI
[16:05] <dhson> khoong phari nhaasc tay leen
[16:05] <pclouds> dhson: thi gox nhes ?
[16:05] <pclouds> xem ai gox nhanh hown lolz
[16:05] <dhson> Oh, no
[16:05] * dhson moor cof
[16:06] <dhson> nhanh hown laf nhanh hown so vowis chinsh minhf thooi
[16:06] <pclouds> gox taif lieeuj kyx thuaatj vuaf tieengs anh vuwaf tieengs vieetj
[16:06] <dhson> uwf, khi ddos howi phuwsc tapj
[16:07] <b1nhb00ng> boos khir nos chuws, gox thees nayf maf ddocj ddc af?
[16:07] <dhson> Nhuwng config hotkey laij 1 chust ddeer nos on/off tieesng V nhanh thif cungx ok
[16:07] <dhson> b1nhb00ng, thif bojn /me hocj b1nhb00ng chuws ai
[16:08] <dhson> thaays hay quas
[16:08] <pclouds> b1nhb00ng: dduwngf chocj em cuwowif chungs nos nhinf chungs nos bieets em chat
[16:08] <b1nhb00ng> khi nayx gox nhaamf, queen bor daaus chuws cos phair muoons gox thees ddaau
[16:08] <dhson> tsb bonj mrchuoi ngu nhuw bof
[16:08] <b1nhb00ng> )
[16:08] <dhson> sao khoong vieest tieesng V nhuw vaajy cho pher
[16:09] <dhson> bayf ddawjt xvnkb
[16:09] <dhson> )
[16:09] <mrchuoi> pclouds, la`m 1 ca'i filter cho xchat, filter loa.i "encoding" na`y tha`nh VIQR hoa(.c utf-8
[16:09] <mrchuoi> L0Lz
[16:09] <pclouds> tawng cuwowngf khar nawng xuwr lys cuar brain lolz
[16:09] <b1nhb00ng> ddungs ra thif ngayf xuwa, cacs kuj ddeeuf dungf "charset" nayf ddeer guwir ddieenj tins
[16:09] <dhson> mrchuoi, ddusng laf ngu laau
[16:09] <mrchuoi> dhson, the^' tho^i
[16:09] <mrchuoi>
[16:09] <pclouds> tho6i chuye63ng qua vni hi1 hi1
[16:09] <dhson> mrchuoi, quay bafn fism 7 vongf
[16:10] <pclouds> go4 nhanh ho7n ha83n
[16:10] <mrchuoi> pclouds, L0Lz
[16:10] <dhson> mrchuoi, ddusng laf duw howi
[16:10] <dhson> cuws lo convert noj kia
[16:10] * dhson thaays thees nayf toost chasn
[16:10] <mrchuoi> hehehe
[16:11] <pclouds> ngoons nguwx mois cuar hawcs cowf vn
[16:11] <dhson> hahaha
[16:11] <dhson> hay quas
[16:11] <pclouds> bonj taay nhinf chir cos ddieecs
[16:11] <dhson> bonj ta nhinf cungx ddieesc
[16:11] <mrchuoi> tuo?ng pha't ca'i minh chi mo+'i
[16:11] <mrchuoi>
[16:11] <mrchuoi> ca'c ku. nha` ta dda~ du`ng ha`ng ma^'y the^' ky?
[16:11] <mrchuoi> L0Lz
[16:11] <pclouds> *\khoong dduwowcj chocj cuwowif*
[16:12] <dhson> cho bojn asc min nhuw pmquan heest cuwar firewall
[16:12] <dhson> mrchuoi, thif taij con chaus ngu quas
[16:12] <mrchuoi> hahaha the^' thi` ku. ddu'ng la` dek bie^'t gi`
[16:12] <dhson> khoong bieest duwx dinf truyeefn thoongs
[16:12] <pclouds> mrchuoi: cais nayf goij laf tieens hoas
[16:12] <pclouds> quay laij thowif ddoof ddas
[16:12] <dhson> pclouds, tieesn hoas theo hinhf tro^n oosc
[16:12] <pclouds> dhson: yep yep
[16:13] <dhson> af la Marx
[16:13] <pclouds> vaf chur nghiax duy vaatj bieenj chuwngs
[16:13] <pclouds> lolz
[16:13] <dhson> hahah
[16:13] <mrchuoi> chu? nghi~a con va^.t ... bie^'n chu?ng
[16:13] <mrchuoi> L0Lz
[16:13] <dhson> mrchuoi, ddunsg laf dek hieeru gif vee "chieets hojc"
[16:14] <dhson> oh, /me oom bujng cuwowif
[16:14] <pclouds> mrchuoi: khoong phair, phair goij laf thoais hoas hoawcj ddootj bieens
[16:14] <dhson> car lux hojc trof tuwowngr /me ddieen
[16:15] <pclouds> chungs ddaau ngowf dhson ddieen thieetj
[16:15] <dhson> )
[16:15] <mrchuoi> L0LzZzzZZZzzz
[16:15] <dhson> ddungs thees
[16:15] <dhson> thees mowis ngu asc
[16:15] <dhson> )
[16:16] <pclouds> dhson: thees laf chungs ta laij tieens hoas dduwowcj theem moot buwowcs
[16:16] <dhson> mrchuoi> chu? nghi~a con va^.t ... bie^'n chu?ng <---- cho leen title cura IRC ddi
[16:16] <pclouds> sawps thanhf nguwowif rooif, hus hus
[16:16] * dhson nghe pclouds "hus hus" maf rowjn soongs luwng
[16:17] <dhson> nhows towis film gif veef hanhf tinh khir
[16:17] <dhson> )
[16:17] <dhson> hahah, hoom nay laxo vnoss maf xem log chawsc tes xiur
[16:18] <b1nhb00ng> cos maf chuwir ddoongr leen mootj hooif rooif fawns
[16:18] <pclouds> quis a ddow quowf
[16:18] <pclouds> quis a ddow chiu rownf
[16:19] <dhson> ???
[16:19] <pclouds> quis a ddow quan tu mak owf be ddow quay
[16:19] <mrchuoi> l0lz
[16:19] <dhson> caau nayf thif thua
[16:19] <mrchuoi> no' ha't tie^'ng Anh
[16:19] <mrchuoi>
[16:19] <pclouds> so lets xif ta ghi vinhf
[16:20] <pclouds> 2 level encoding
[16:20] <dhson> ah, nos hast we r the world thif phari
[16:20] <dhson> hahah )
[16:20] <pclouds> theem cais xor filter nuwax laf nhinf ddieecs luoon
[16:21] <dhson> miaj, ngoon nguwx phast trieern towis cowx nayf nuwax laf cufng
[16:21] <dhson> b1nhb00ng, khoong ngof minhf ddax gaay hoaj cho IRC
[16:22] <dhson> chir vif queen on xvnkb maf ra noong nooix nayf
[16:22] <b1nhb00ng> ddungs rooif
[16:23] <pclouds> his his, giowf maf bieens tieengs Anh sang katakana xong dungf telex nuas thif ddoos thawngf naof hieeur dduwowcj
[16:23] <b1nhb00ng> thawngf bi kia, mayf bij taaur hoar nhaapj ma rooif ddaays, lo maf tawng cuwowngf xem pr0n ddi
[16:23] <pclouds> b1nhb00ng: cho em xin tis pron ddi
[16:23] <dhson> chir 1 xow sayr cura 1 anh b1nhb00ng maf vongf tronf tieesn hoas quay nhanh vafi thees kyr
[16:24] <pclouds> xem taij choox, share cho tui. kia mootj tis luoon
[16:24] <mrchuoi> b1nhb00ng, xem pr0n cuar jp thif cangf cos nguy cow, vif toanf carro k0 thooi
[16:24] <mrchuoi>
[16:24] <b1nhb00ng> dhson: em coos ys lamf thees ddaays chuws )
[16:24] <b1nhb00ng> mrchuoi: haha, uh, toanf bij pixelized heets rooif
[16:24] *** vnoss_ [n=vnoss@169.199-78-194.adsl-fix.skynet.be] has joined #vietlug
[16:25] <mrchuoi> haha, kuj vnoss_ voo
[16:25] <mrchuoi>
[16:25] <b1nhb00ng> kekeke
[16:25] <dhson> thaasy chuwa, mrchuoi sau 1 lusc ngoan coos cungx chuyeern qua encoding mowis ruif
[16:25] * b1nhb00ng bopj vnoss_
[16:25] * vnoss_ chu+a co' cafe sa'ng, ddau o'c mu. ma^~m, ko no'i chuyen dduoc
[16:26] * pclouds khoong hieeur vnoss nois gif
[16:26] <dhson> voo 1 ly cafe ddi kuj
[16:26] <dhson> pclouds, owf owf, kuj aasy nois tieesng cura khir
[16:26] <dhson> chuwa tieesn hoas
[16:26] <chairuou> hooif xuwa tao gox thees nayf hoaif
[16:26] *** vnoss_ [n=vnoss@169.199-78-194.adsl-fix.skynet.be] has quit [Client Quit]
[16:27] <dhson> cos ai cos pron khoong?
[16:27] * pclouds khuyeen vnoss khoong neen uoongs cafe, minhf uoongs cafe neen giowf tieens hoas ra thees nayf
[16:27] *** vnoss_ [n=vnoss@169.199-78-194.adsl-fix.skynet.be] has joined #vietlug
[16:27] <dhson> pr0n mowis aays
[16:28] * dhson oom bujng cuwowif chary car nuwowsc mawst
[16:28] *** b1nhb00ng changed the topic to: Welcome to #vietlug | http://forum.vnoss.org | SmartQuestions [beta] - http://zecoj.com/sq/ | VnTeX 3.02 @ http://vntex.org | 10.11.05 13:54:41 GMT+7 b1nhb00ng reinvented TELEX
[16:28] <dhson> b1nhb00ng, theem aau cura mrchuoi voo luoon
[16:29] <dhson> CN con vaajt bieejn chuwsng
[16:29] <chairuou> dhson, bacs cos bieets gox TELEX cawcj ddaau
[16:29] <chairuou> gox sai mej nos heets rooif
[16:29] *** b1nhb00ng changed the topic to: Welcome to #vietlug | http://forum.vnoss.org | SmartQuestions [beta] - http://zecoj.com/sq/ | VnTeX 3.02 @ http://vntex.org | 10.11.05 13:54:41 GMT+7 b1nhb00ng reinvented TELEX | QOTW (mrchuoi): "chu? nghi~a con va^.t ... bie^'n chu?ng"
[16:30] <pclouds> chucs muwngf chairuou ddax tieens hoas theem mootj buwowcs
[16:30] <dhson> chairuou, owf, /me thichs gox daaus lung tung ddaay
[16:30] <vnoss_> sao /me thay toa`n kieu go~ telex "raw" the nhi?
[16:30] <dhson> ddos laf suwj tieesn hoas
[16:30] <dhson> chuwx Telex phari bor daaus sau
[16:30] <dhson> hahaha )
[16:30] <dhson> nhuwng chuwx telex tieesn hoas bor daaus lung tung
[16:31] <dhson> thees mowi goij laf bieejn chuwsng cura tieesn hoas
[16:31] <pclouds> dhson: dder nghij bor daaus sau chuwx
[16:31] <dhson> pclouds, thees thif conf gif laf tieesn hoas
[16:31] <dhson> tieesn hoas 1 vongf phari khasc truwowsc chuws
[16:31] <dhson> cuws gox thoair masi
[16:31] <pclouds> cais ddos laf phaan hoas
[16:32] <pclouds> daanf daanf sex daanx ddeens thoais hoas
[16:32] <pclouds> tuwowng lai cuar dhson ddos
[16:32] <dhson> thoais hoas cungx laf taast yeesu cura tieesn hoas
[16:33] <mrchuoi> the^m thuye^'t tie^'n thoa'i ... luo~ng hoa'
[16:33] <mrchuoi> L0Lz
[16:33] <dhson> vnoss_, bafn chuyeejn Philo phari dungf chuwx Phajn kieeru nayf
[16:33] <pclouds> mootj lys thuyeets tieens hoas heets suwcs laf .. tieens hoas
[16:33] *** skz0 [n=SeekZero@220.231.106.231] has joined #vietlug
[16:34] <dhson> Bafn chuyeejn tieesn hoas maf vieest bawngf tieesng V thif chawrng hoas ra ai cungx hieeur maf khoong caafn nghix af? )
[16:34] <pclouds> hoongr chuwngf hooif xuwa marx nois chuyeenj vois engel theo kieeur nayf, ddocj nhaamf neen vieets ra dvbc
[16:34] <dhson> hahahahh ddusng ddos pclouds
[16:34] <pclouds> ddocj ddungs lamf gif cos dvbc
[16:35] <dhson> ddojc ddusng thif ra con vaajt bc
[16:36] <pclouds> ows, ddungs quas
[16:36] <dhson> pclouds, vuwaf phast hieejn ra 1 bis maajt vix ddaij cura lichj suwr
[16:36] <dhson> thanks to b1nhb00ng mistaken
[16:36] <pclouds> dhson: yups yups
[16:37] <pclouds> suwj bieens dij laf nguoonf goocs cuar moij vaans ddeef
[16:37] <dhson> thooi, /me ddi lafm vieejc tieesp
[16:37] <pclouds> vaf chungs ta ddang bieens ..
[16:37] <dhson> ))
[16:37] <mrchuoi> tha'i
[16:37] <mrchuoi>
[16:37] * dhson khoong ngowf vietlug toanf "chieest ra" thuws duwx
[16:38] <pclouds> phaanf sau ai thichs gif thif cuws ddieenf voo theo ys minhf\
Chaam ngoon hoom nay: Moij nguwowif laf moij.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ tư, 09 Tháng một năm 2005 23:02:57 JST
Dia mới sắp phát hành
Từ Dia mail archive:
As you may have noticed, Dia development has been fairly slow the last couple months. For my part, it's been blocked by a combination of needing to work down a minus on my flextime at work plus buying an apartment and moving to it which has taken almost all my spare time. Things have now quieted down a bit, and I am starting to look at what's needed for a 0.95 release again. We still have a number of open bugs, currently 1 blocker, 8 criticals and 5 majors[1]. That should be reduced significantly before we can go to release test. The UML Class object has had serious problems, but is getting better. I hope to be able to whittle away at the bugs in November and try for a release around Christmas. But the next two weeks, I will be on the west coast of USA for some much needed vacation. Have fun everybody!
-Lars
Hy vọng sẽ có Dia mới đầu 2006. Dia CVS có khá nhiều thay đổi so với Dia 0.94 hiện giờ.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ ba, 08 Tháng một năm 2005 22:52:26 JST
Gaim và "Invisible login" với Yahoo account
mikado làm một cái patch để hỗ trợ tính năng đăng nhập yahoo không online. Theo dõi thêm trên VnOSS Forum.
Cache lại cái patch của mikado để lỡ ... :
diff -Naur gaim-1.5.0/src/account.c gaim-1.5.0-yinvisible-2/src/account.c --- gaim-1.5.0/src/account.c 2005-06-17 20:08:51.000000000 +0700 +++ gaim-1.5.0-yinvisible-2/src/account.c 2005-11-08 19:25:30.000000000 +0700 @@ -41,6 +41,7 @@ TAG_PROTOCOL, TAG_NAME, TAG_PASSWORD, + TAG_INVISIBLE, TAG_ALIAS, TAG_USERINFO, TAG_BUDDYICON, @@ -520,6 +521,16 @@ } void +gaim_account_set_login_invisible(GaimAccount *account, gboolean value) +{ + g_return_if_fail(account != NULL); + + account->login_invisible = value; + + schedule_accounts_save(); +} + +void gaim_account_set_proxy_info(GaimAccount *account, GaimProxyInfo *info) { g_return_if_fail(account != NULL); @@ -793,6 +804,14 @@ return gaim_account_get_ui_bool(account, ui, "auto-login", FALSE); } +gboolean +gaim_account_get_login_invisible(const GaimAccount *account) +{ + g_return_val_if_fail(account != NULL, FALSE); + + return account->login_invisible; +} + GaimProxyInfo * gaim_account_get_proxy_info(const GaimAccount *account) { @@ -998,6 +1017,8 @@ data->tag = TAG_NAME; else if (!strcmp(element_name, "password")) data->tag = TAG_PASSWORD; + else if (!strcmp(element_name, "invisible")) + data->tag = TAG_INVISIBLE; else if (!strcmp(element_name, "alias")) data->tag = TAG_ALIAS; else if (!strcmp(element_name, "userinfo")) @@ -1080,6 +1101,13 @@ } } } + else if (data->tag == TAG_INVISIBLE) { + if (*buffer != '\0') + if (!strcmp(buffer, "yes")) + gaim_account_set_login_invisible(data->account, TRUE); + else + gaim_account_set_login_invisible(data->account, FALSE); + } else if (data->tag == TAG_ALIAS) { if (*buffer != '\0') gaim_account_set_alias(data->account, buffer); @@ -1316,6 +1344,11 @@ g_free(esc); } + if (gaim_account_get_login_invisible(account)) + fprintf(fp, " <invisible>%s</invisible>\n", "yes"); + else + fprintf(fp, " <invisible>%s</invisible>\n", "no"); + if ((alias = gaim_account_get_alias(account)) != NULL) { esc = g_markup_escape_text(alias, -1); fprintf(fp, " <alias>%s</alias>\n", esc); diff -Naur gaim-1.5.0/src/account.h gaim-1.5.0-yinvisible-2/src/account.h --- gaim-1.5.0/src/account.h 2005-03-18 09:53:27.000000000 +0700 +++ gaim-1.5.0-yinvisible-2/src/account.h 2005-11-08 19:25:31.000000000 +0700 @@ -56,6 +56,7 @@ char *buddy_icon; /**< The buddy icon. */ gboolean remember_pass; /**< Remember the password. */ + gboolean login_invisible; char *protocol_id; /**< The ID of the protocol. */ @@ -263,6 +264,14 @@ gboolean value); /** + * Sets whether or not this account should login invisible. + * + * @param account The account. + * @param value @c TRUE if it should login invisible. + */ +void gaim_account_set_login_invisible(GaimAccount *account, gboolean value); + +/** * Sets the account's proxy information. * * @param account The account. @@ -451,6 +460,15 @@ const char *ui); /** + * Returns whether or not this account should login invisible. + * + * @param account The account. + * + * @return @c TRUE if it should login invisible. + */ +gboolean gaim_account_get_login_invisible(const GaimAccount *account); + +/** * Returns the account's proxy information. * * @param account The account. diff -Naur gaim-1.5.0/src/gtkaccount.c gaim-1.5.0-yinvisible-2/src/gtkaccount.c --- gaim-1.5.0/src/gtkaccount.c 2005-06-30 11:01:24.000000000 +0700 +++ gaim-1.5.0-yinvisible-2/src/gtkaccount.c 2005-11-08 19:25:31.000000000 +0700 @@ -113,6 +113,7 @@ GtkWidget *alias_entry; GtkWidget *remember_pass_check; GtkWidget *auto_login_check; + GtkWidget *login_invisible_check; /* User Options */ GtkWidget *user_frame; @@ -752,7 +753,16 @@ gtk_box_pack_start(GTK_BOX(vbox), dialog->auto_login_check, FALSE, FALSE, 0); gtk_widget_show(dialog->auto_login_check); - + + /* Login Invisible */ + dialog->login_invisible_check = + gtk_check_button_new_with_label(_("Login invisible")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->login_invisible_check), + FALSE); + gtk_box_pack_start(GTK_BOX(vbox), dialog->login_invisible_check, + FALSE, FALSE, 0); + gtk_widget_show(dialog->login_invisible_check); + /* Set the fields. */ if (dialog->account != NULL) { if (gaim_account_get_password(dialog->account)) @@ -770,6 +780,10 @@ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(dialog->auto_login_check), gaim_account_get_auto_login(dialog->account, GAIM_GTK_UI)); + + gtk_toggle_button_set_active( + GTK_TOGGLE_BUTTON(dialog->login_invisible_check), + gaim_account_get_login_invisible(dialog->account)); } if (dialog->prpl_info != NULL && @@ -1378,6 +1392,11 @@ gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(dialog->auto_login_check))); + /* Login Invisible */ + gaim_account_set_login_invisible(dialog->account, + gtk_toggle_button_get_active( + GTK_TOGGLE_BUTTON(dialog->login_invisible_check))); + /* Password */ value = gtk_entry_get_text(GTK_ENTRY(dialog->password_entry)); diff -Naur gaim-1.5.0/src/protocols/yahoo/yahoo.c gaim-1.5.0-yinvisible-2/src/protocols/yahoo/yahoo.c --- gaim-1.5.0/src/protocols/yahoo/yahoo.c 2005-08-04 07:57:44.000000000 +0700 +++ gaim-1.5.0-yinvisible-2/src/protocols/yahoo/yahoo.c 2005-11-08 19:25:41.000000000 +0700 @@ -1836,8 +1836,10 @@ sprintf(byte, "%c", delimit_lookup[lookup]); strcat(resp_96, byte); } - - pack = yahoo_packet_new(YAHOO_SERVICE_AUTHRESP, YAHOO_STATUS_AVAILABLE, 0); + if (account->login_invisible) + pack = yahoo_packet_new(YAHOO_SERVICE_AUTHRESP, YAHOO_STATUS_INVISIBLE, 0); + else + pack = yahoo_packet_new(YAHOO_SERVICE_AUTHRESP, YAHOO_STATUS_AVAILABLE, 0); yahoo_packet_hash(pack, 0, name); yahoo_packet_hash(pack, 6, resp_6); yahoo_packet_hash(pack, 96, resp_96);
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ ba, 08 Tháng một năm 2005 00:55:06 JST
Trình bắt lỗi chính tả đơn giản
gnome-vi vẫn còn gặp những lỗi chính tả hết sức đơn giản và chỉ cần một bộ bắt lỗi chính tả dựa trên tiếng là đủ phát hiện.
Cập nhật 1 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ hai, 07 Tháng một năm 2005 23:30:20 JST
Cairo và recording
Do Cairo hoạt động cũng giống như dạng batch command của GDI, OpenGL hay PS (đoán vậy). Và nếu Gtk+ đã chuyển hoàn toàn sang dùng Cairo (hy vọng), thì tại sao không thể hook vào cairo để thu lại toàn bộ tập lệnh đó (tập lệnh gửi ra cairo để vẽ nên desktop) và phát lại sau?
Như vậy có thể tạo ra một dạng "animation format" mới, cô đọng hơn và có vẻ giống .wmf và .swf
Mục đầu tiên mở hàng cho phân loại mới: "Hâm" (hy vọng bác vnpenguin không đăng ký nhãn hiệu thương mại cho chữ này và không kiện) :D (tên cũ "Todo").
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ hai, 07 Tháng một năm 2005 23:19:36 JST
Sabayon demo
Sabayon là công cụ dụng để quản lý cấu hình GConf cho toàn hệ thống. Alexander Larsson có làm một cái flash để minh hoạ Sabayon.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Chủ nhật, 06 Tháng một năm 2005 00:11:50 JST
Web-based Source Navigator
Source Navigator có khả năng phân tích code cực tốt, chỉ tội UI xấu quá. Sao không đưa sourcenav lên web nhỉ? Dùng làm cross reference và code review là tuyệt vời!
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ bảy, 05 Tháng một năm 2005 22:58:46 JST
Firefox/Mozilla/Epiphany crash với Composite/Damage
Lỗi được giải thích trên Bug 1336: đây là lỗi flash plugin (và chừng nào chưa có open source flash plugin thì miễn sửa), dùng lệnh sau:
export XLIB_SKIP_ARGB_VISUALS=1 ; firefox
Với ai dùng Composite luôn thì nên cho vào ~/.profile
luôn cho gọn.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ bảy, 05 Tháng một năm 2005 17:54:42 JST
xorg-x11 modular
Bản module hoá của xorg-x11 được tách thành 296 gói! Các bộ font, các ứng dụng X tiền sử, các thư viện, các protocol và các driver đều được tách thành gói riêng. Woohoo! Với số lượng gói như vậy, việc cấu hình/cài đặt xorg-x11 cũng nhức đầu không kém linux kernel. Bù lại ta có thể bỏ bớt những thứ không cần dùng. Giờ bà con có thể cài X app trên server mà không cần cài X server :)
Cài đặt xorg-x11 mới chỉ dùng khoảng 100 gói, còn 196 gói khác để dành cho tự khám phá :D
Vừa cài đặt lại xorg-x11, vừa chạy X cũng có cái thú. X vẫn chạy, nhưng start X app mới thì toi vì đã lỡ xoá mất X khỏi máy rồi :D Ai định vừa chạy X vừa nâng cấp nên chạy tất cả những ứng dụng X cần thiết rồi hãy unmerge X.
Cài đặt xong, restart X. Tiêu. ModulePath
trong xorg.conf
không còn
đúng (giá trị cũ là /usr/lib/modules
, giá trị mới là
/usr/lib/xorg/modules
) dẫn đến lỗi bí ẩn: "không thể nạp module
bitmap/pcidata" :( Cần emerge thêm xf86-video-vesa
, xf86-input-mouse
và xf86-input-keyboard
:(( Ngoài ra, xterm cũng chết ngắc nên phải
reemerge. Tất cả các extension trong X đều được tắt để bảo đảm không còn
sự cố.
Rốt cuộc cũng khởi động được X, phù..
UPDATE: Cái tội ngu không chịu đọc hướng dẫn. :(
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ bảy, 05 Tháng một năm 2005 14:28:30 JST
Gõ ký tự Unicode đặc biệt
Từ trang Unicode - Wikipedia, the free encyclopedia: với GNOME, dùng Ctrl + Shift + mã hex để gõ unicode.
Lưu ý: Cách này chỉ áp dụng với Input Method Default
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ bảy, 05 Tháng một năm 2005 11:25:44 JST
Locale tiếng Việt
Đây là locale tiếng Việt được thông dịch lại cho dễ đọc:
escape_char /
comment_char %
%
% Vietnamese language locale for Vietnam
% Source: glibc locale and info from vietnamese native speakers
% Address:
% Contact: Pablo Saratxaga
% Email: pablo@mandrakesoft.com
% Tel:
% Fax:
% Language: vi
% Territory: VN
% Revision: 1.1
% Date: 2004-01-09
% Users: general
% Repertoiremap:
% Charset: UTF-8
% Distribution and use is free, also
% for commercial purposes.
LC_IDENTIFICATION
title "Vietnamese language locale for Vietnam"
source "glibc locale and info from vietnamese native speakers"
address ""
contact "Pablo Saratxaga"
email "pablo@mandrakesoft.com"
tel ""
fax ""
language "Vietnamese"
territory "Vietnam"
revision "1.1"
date "2004-01-09"
%
category "vi_VN:2000";LC_IDENTIFICATION
category "vi_VN:2000";LC_CTYPE
category "vi_VN:2000";LC_COLLATE
category "vi_VN:2000";LC_TIME
category "vi_VN:2000";LC_NUMERIC
category "vi_VN:2000";LC_MONETARY
category "vi_VN:2000";LC_MESSAGES
category "vi_VN:2000";LC_PAPER
category "vi_VN:2000";LC_NAME
category "vi_VN:2000";LC_ADDRESS
category "vi_VN:2000";LC_TELEPHONE
category "vi_VN:2000";LC_MEASUREMENT
END LC_IDENTIFICATION
LC_CTYPE
copy "i18n"
translit_start
% dong sign -> d// -> dd
₫ "đ";"dd"
translit_end
END LC_CTYPE
LC_COLLATE
% Copy the template from ISO/IEC 14651
copy "iso14651_t1"
% A( A^ E^ O+ U+ DD are treatead as base letters
% ordering of accents is: grave, hook, tilde, acute, dot below
% a a( a> b c d d/ e e> f g h i j k l m n o o+ p q r s t u u+ v w x y z
collating-symbol <a(>
collating-symbol <a/>>
collating-symbol <d//>
collating-symbol <e/>>
collating-symbol <o/>>
collating-symbol <o9>
collating-symbol <u9>
collating-symbol <HOK>
reorder-after <BAS>
<GRA>
<HOK>
<TIL>
<ACA>
<PCT>
reorder-after <a>
<a(>
<a/>>
reorder-after <d>
<d//>
reorder-after <e>
<e/>>
reorder-after <o>
<o/>>
<o9>
reorder-after <u>
<u9>
reorder-after a
ả <a>;<HOK>;<MIN>;IGNORE
ạ <a>;<PCT>;<MIN>;IGNORE
ă <a(>;<BAS>;<MIN>;IGNORE
ằ <a(>;<GRA>;<MIN>;IGNORE
ẳ <a(>;<HOK>;<MIN>;IGNORE
ẵ <a(>;<TIL>;<MIN>;IGNORE
ắ <a(>;<ACA>;<MIN>;IGNORE
ặ <a(>;<PCT>;<MIN>;IGNORE
â <a/>>;<BAS>;<MIN>;IGNORE
ầ <a/>>;<GRA>;<MIN>;IGNORE
ẩ <a/>>;<HOK>;<MIN>;IGNORE
ẫ <a/>>;<TIL>;<MIN>;IGNORE
ấ <a/>>;<ACA>;<MIN>;IGNORE
ậ <a/>>;<PCT>;<MIN>;IGNORE
reorder-after A
Ả <a>;<HOK>;<CAP>;IGNORE
Ạ <a>;<PCT>;<CAP>;IGNORE
Ă <a(>;<BAS>;<CAP>;IGNORE
Ằ <a(>;<GRA>;<CAP>;IGNORE
Ẳ <a(>;<HOK>;<CAP>;IGNORE
Ẵ <a(>;<TIL>;<CAP>;IGNORE
Ắ <a(>;<ACA>;<CAP>;IGNORE
Ặ <a(>;<PCT>;<CAP>;IGNORE
 <a/>>;<BAS>;<CAP>;IGNORE
Ầ <a/>>;<GRA>;<CAP>;IGNORE
Ẩ <a/>>;<HOK>;<CAP>;IGNORE
Ẫ <a/>>;<TIL>;<CAP>;IGNORE
Ấ <a/>>;<ACA>;<CAP>;IGNORE
Ậ <a/>>;<PCT>;<CAP>;IGNORE
reorder-after d
đ <d//>;<BAS>;<MIN>;IGNORE
ð <d//>;<PCL>;<MIN>;IGNORE
reorder-after D
Đ <d//>;<BAS>;<CAP>;IGNORE
Ð <d//>;<PCL>;<CAP>;IGNORE
reorder-after e
ẻ <e>;<HOK>;<MIN>;IGNORE
ẽ <e>;<TIL>;<MIN>;IGNORE
ẹ <e>;<PCT>;<MIN>;IGNORE
ê <e/>>;<BAS>;<MIN>;IGNORE
ề <e/>>;<GRA>;<MIN>;IGNORE
ể <e/>>;<HOK>;<MIN>;IGNORE
ễ <e/>>;<TIL>;<MIN>;IGNORE
ế <e/>>;<ACA>;<MIN>;IGNORE
ệ <e/>>;<PCT>;<MIN>;IGNORE
reorder-after E
Ẻ <e>;<HOK>;<CAP>;IGNORE
Ẽ <e>;<TIL>;<CAP>;IGNORE
Ẹ <e>;<PCT>;<CAP>;IGNORE
Ê <e/>>;<BAS>;<CAP>;IGNORE
Ề <e/>>;<GRA>;<CAP>;IGNORE
Ể <e/>>;<HOK>;<CAP>;IGNORE
Ễ <e/>>;<TIL>;<CAP>;IGNORE
Ế <e/>>;<ACA>;<CAP>;IGNORE
Ệ <e/>>;<PCT>;<CAP>;IGNORE
reorder-after i
ỉ <i>;<HOK>;<MIN>;IGNORE
ị <i>;<PCT>;<MIN>;IGNORE
reorder-after I
Ỉ <i>;<HOK>;<CAP>;IGNORE
Ị <i>;<PCT>;<CAP>;IGNORE
reorder-after o
ỏ <o>;<HOK>;<MIN>;IGNORE
ọ <o>;<PCT>;<MIN>;IGNORE
ô <o/>>;<BAS>;<MIN>;IGNORE
ồ <o/>>;<GRA>;<MIN>;IGNORE
ổ <o/>>;<HOK>;<MIN>;IGNORE
ỗ <o/>>;<TIL>;<MIN>;IGNORE
ố <o/>>;<ACA>;<MIN>;IGNORE
ộ <o/>>;<PCT>;<MIN>;IGNORE
ơ <o9>;<BAS>;<MIN>;IGNORE
ờ <o9>;<GRA>;<MIN>;IGNORE
ở <o9>;<HOK>;<MIN>;IGNORE
ỡ <o9>;<TIL>;<MIN>;IGNORE
ớ <o9>;<ACA>;<MIN>;IGNORE
ợ <o9>;<PCT>;<MIN>;IGNORE
reorder-after O
Ỏ <o>;<HOK>;<CAP>;IGNORE
Ọ <o>;<PCT>;<CAP>;IGNORE
Ô <o/>>;<BAS>;<CAP>;IGNORE
Ồ <o/>>;<GRA>;<CAP>;IGNORE
Ổ <o/>>;<HOK>;<CAP>;IGNORE
Ỗ <o/>>;<TIL>;<CAP>;IGNORE
Ố <o/>>;<ACA>;<CAP>;IGNORE
Ộ <o/>>;<PCT>;<CAP>;IGNORE
Ơ <o9>;<BAS>;<CAP>;IGNORE
Ờ <o9>;<GRA>;<CAP>;IGNORE
Ở <o9>;<HOK>;<CAP>;IGNORE
Ỡ <o9>;<TIL>;<CAP>;IGNORE
Ớ <o9>;<ACA>;<CAP>;IGNORE
Ợ <o9>;<PCT>;<CAP>;IGNORE
reorder-after u
ủ <u>;<HOK>;<MIN>;IGNORE
ụ <u>;<PCT>;<MIN>;IGNORE
ư <u9>;<BAS>;<MIN>;IGNORE
ừ <u9>;<GRA>;<MIN>;IGNORE
ử <u9>;<HOK>;<MIN>;IGNORE
ữ <u9>;<TIL>;<MIN>;IGNORE
ứ <u9>;<ACA>;<MIN>;IGNORE
ự <u9>;<PCT>;<MIN>;IGNORE
reorder-after U
Ủ <u>;<HOK>;<CAP>;IGNORE
Ụ <u>;<PCT>;<CAP>;IGNORE
Ư <u9>;<BAS>;<CAP>;IGNORE
Ừ <u9>;<GRA>;<CAP>;IGNORE
Ử <u9>;<HOK>;<CAP>;IGNORE
Ữ <u9>;<TIL>;<CAP>;IGNORE
Ứ <u9>;<ACA>;<CAP>;IGNORE
Ự <u9>;<PCT>;<CAP>;IGNORE
reorder-after y
ỳ <y>;<GRA>;<MIN>;IGNORE
ỷ <y>;<HOK>;<MIN>;IGNORE
ỹ <y>;<TIL>;<MIN>;IGNORE
ỵ <y>;<PCT>;<MIN>;IGNORE
reorder-after Y
Ỳ <y>;<GRA>;<CAP>;IGNORE
Ỷ <y>;<HOK>;<CAP>;IGNORE
Ỹ <y>;<TIL>;<CAP>;IGNORE
Ỵ <y>;<PCT>;<CAP>;IGNORE
reorder-end
END LC_COLLATE
LC_MONETARY
int_curr_symbol "VND "
currency_symbol "₫"
mon_decimal_point ","
mon_thousands_sep "."
mon_grouping 3;3
positive_sign ""
negative_sign "-"
int_frac_digits 4
frac_digits 4
p_cs_precedes 0
p_sep_by_space 0
n_cs_precedes 1
n_sep_by_space 0
p_sign_posn 1
n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
decimal_point ","
thousands_sep "."
grouping 3;3
END LC_NUMERIC
LC_TIME
abday "CN";/
"T2";/
"T3";/
"T4";/
"T5";/
"T6";/
"T7"
day "Chủ nhật";/
"Thứ hai";/
"Thứ ba";/
"Thứ tư";/
"Thứ năm";/
"Thứ sáu";/
"Thứ bảy"
abmon "Th1";/
"Th2";/
"Th3";/
"Th4";/
"Th5";/
"Th6";/
"Th7";/
"Th8";/
"Th9";/
"Th10";/
"Th11";/
"Th12"
mon "Tháng giêng";/
"Tháng hai";/
"Tháng ba";/
"Tháng tư";/
"Tháng năm";/
"Tháng sáu";/
"Tháng bảy";/
"Tháng tám";/
"Tháng chín";/
"Tháng mười";/
"Tháng một";/
"Tháng chạp"
d_t_fmt "%A, %d %B năm %Y %T %Z"
d_fmt "%d/%m/%Y"
t_fmt "%T"
am_pm "sáng";"chiều"
t_fmt_ampm "%I:%M %p"
date_fmt "%A, %d %B năm %Y %T %Z"
END LC_TIME
% yes: Va^ng / Da.
% no: Kho^ng
LC_MESSAGES
yesstr "Có"
nostr "Không"
yesexpr "^[1yYcC].*"
noexpr "^[0nNkK].*"
END LC_MESSAGES
LC_PAPER
height 297
width 210
END LC_PAPER
LC_NAME
% This is the ISO_IEC TR14652 Locale definition for the
% LC_NAME category.
%
name_fmt "%p%t%f%t/
%g"
name_gen ""
name_mr "Ô."
name_mrs "B."
name_miss "C."
name_ms ""
END LC_NAME
LC_ADDRESS
% This is the ISO_IEC TR14652 Locale definition for the
% LC_ADDRESS
postal_fmt "%z%c%T%s/
%b%e%r"
country_name "Việt nam"
lang_name "Việt ngữ"
country_ab2 "VN"
country_ab3 "VNM"
country_num 704
END LC_ADDRESS
LC_TELEPHONE
% This is the ISO_IEC TR14652 Locale definition for the
%
tel_int_fmt "+%c ;%a /
;%l"
int_prefix "84"
int_select "00"
END LC_TELEPHONE
LC_MEASUREMENT
measurement 1
END LC_MEASUREMENT
Thảo luận về locale này trên VnOSS Forum
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ sáu, 04 Tháng một năm 2005 19:17:35 JST
Pango và "phông tổ hợp"
Bug 101079 (mở từ 2002) đang cố giải quyết chuyện phông tổ hợp (composed characters) không hiển thị đúng khi dùng Pango. Patch mới nhất (27-10-2005) có được cái screenshot sau:
\
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ sáu, 04 Tháng một năm 2005 00:38:26 JST
Portage bug #44796
Sùng cái bug 44796 quá, luộc luôn. Rõ ràng là Portage Developer có trình độ hơn hẳn, post cái patch khác nhìn gọn hơn, tính năng tốt hơn :)
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ năm, 03 Tháng một năm 2005 16:08:12 JST
screendump patch 2
Patch lại lần nữa, hỗ trợ utf-8, background color, buffer dump (dùng option -Hh thay vì -H).
Left File Command Options Right ┌<─~/Desktop─────────────────────────v>┐┌<─~/Desktop─────────────────────────v>┐ │ Name │ Size │ MTime ││ Name │ Size │ MTime │ │/.. │UP--DIR│ ││/.. │UP--DIR│ │ │~AOTS │ 18│Th09 29 20:08││~AOTS │ 18│Th09 29 20:08│ │/Hình ảnh │ 4096│Th10 21 20:37││/Hình ảnh │ 4096│Th10 21 20:37│ │/Tải về │ 8192│Th11 3 10:57││/Tải về │ 8192│Th11 3 10:57│ │/tam │ 4096│Th11 2 22:34││/tam │ 4096│Th11 2 22:34│ │/www.gui~ese.org│ 4096│Th09 19 08:54││/www.gui~ese.org│ 4096│Th09 19 08:54│ │*Tẹc mi ~desktop│ 296│Th05 5 2005││*Tẹc mi ~desktop│ 296│Th05 5 2005│ │*Tẹc mi ~desktop│ 314│Th05 5 2005││*Tẹc mi ~desktop│ 314│Th05 5 2005│ │*Tẹc mi ~desktop│ 265│Th07 2 11:10││*Tẹc mi ~desktop│ 265│Th07 2 11:10│ │*Tẹc mi ~desktop│ 263│Th07 2 11:10││*Tẹc mi ~desktop│ 263│Th07 2 11:10│ │ aots-notes.txt │ 14061│Th10 18 22:33││ aots-notes.txt │ 14061│Th10 18 22:33│ │ aots-notes.txt~│ 12917│Th09 28 22:14││ aots-notes.txt~│ 12917│Th09 28 22:14│ │ │ │ ││ │ │ │ │ │ │ ││ │ │ │ │ │ │ ││ │ │ │ ├──────────────────────────────────────┤├──────────────────────────────────────┤ │/www.guidetojapanese.org ││/Hình ảnh │ └──────────────────────────────────────┘└──────────────────────────────────────┘ Hint: Leap to frequently used directories in a single bound with C-\. pclouds@mg ~/Desktop $ 1Help 2Menu 3View 4Edit 5Copy 6RenMov 7Mkdir 8Delete 9PullDn 10Quit
../include/synfigapp-0.0: synfigapp ../include/synfigapp-0.0/synfigapp: action.h layerparamconnect.h action_param.h layerparamdisconnect.h action_system.h layerparamset.h activepointadd.h layerraise.h activepointremove.h layerremove.h activepointset.h layersetdesc.h activepointsetoff.h main.h activepointseton.h selectionmanager.h activepointsetsmart.h settings.h activepointsimpleadd.h timegather.h blineconvert.h timepointscopy.h blinepointtangentmerge.h timepointsdelete.h blinepointtangentsplit.h timepointsmove.h canvasadd.h uimanager.h canvasinterface.h valuedescconnect.h canvasremove.h valuedescconvert.h canvasrenddescset.h valuedescdisconnect.h colorset.h valuedescexport.h cvs.h value_desc.h editmode.h valuedesclink.h editmodeset.h valuedescset.h gradientset.h valuenodeadd.h groupaddlayers.h valuenodeconstset.h groupremove.h valuenodedynamiclistinsert.h groupremovelayers.h valuenodedynamiclistinsertsmart.h grouprename.h valuenodedynamiclistloop.h inputdevice.h valuenodedynamiclistremove.h instance.h valuenodedynamiclistremovesmart.h keyframeadd.h valuenodedynamiclistrotateorder.h keyframeduplicate.h valuenodedynamiclistunloop.h keyframeremove.h valuenodelinkconnect.h keyframesetdelta.h valuenodelinkdisconnect.h keyframeset.h valuenoderemove.h keyframewaypointset.h valuenoderename.h layeractivate.h valuenodereplace.h layeradd.h waypointadd.h layerduplicate.h waypointremove.h layerencapsulate.h waypointset.h layerlower.h waypointsetsmart.h layermove.h waypointsimpleadd.h ../info: dir screen.info-1 screen.info-3 screen.info-5 screen.info screen.info-2 screen.info-4 ../lib: libsynfigapp.la libsynfigapp.so.0.0.0 libsynfig.so.0 synfig libsynfigapp.so libsynfig.la libsynfig.so.0.0.0 libsynfigapp.so.0 libsynfig.so pkgconfig ../lib/pkgconfig: ETL.pc synfig.pc ../lib/synfig: modules ../lib/synfig/modules: liblyr_freetype.la libmod_filter.so.0 libmod_noise.la liblyr_freetype.so libmod_filter.so.0.0.0 libmod_noise.so liblyr_freetype.so.0 libmod_geometry.la libmod_noise.so.0 liblyr_freetype.so.0.0.0 libmod_geometry.so libmod_noise.so.0.0.0 liblyr_std.la libmod_geometry.so.0 libmod_particle.la liblyr_std.so libmod_geometry.so.0.0.0 libmod_particle.so liblyr_std.so.0 libmod_gif.la libmod_particle.so.0 liblyr_std.so.0.0.0 libmod_gif.so libmod_particle.so.0.0.0 libmod_bmp.la libmod_gif.so.0 libmod_png.la libmod_bmp.so libmod_gif.so.0.0.0 libmod_png.so libmod_bmp.so.0 libmod_gradient.la libmod_png.so.0 libmod_bmp.so.0.0.0 libmod_gradient.so libmod_png.so.0.0.0 libmod_dv.la libmod_gradient.so.0 libmod_ppm.la libmod_dv.so libmod_gradient.so.0.0.0 libmod_ppm.so libmod_dv.so.0 libmod_imagemagick.la libmod_ppm.so.0 libmod_dv.so.0.0.0 libmod_imagemagick.so libmod_ppm.so.0.0.0 libmod_ffmpeg.la libmod_imagemagick.so.0 libmod_yuv420p.la libmod_ffmpeg.so libmod_imagemagick.so.0.0.0 libmod_yuv420p.so libmod_ffmpeg.so.0 libmod_jpeg.la libmod_yuv420p.so.0 libmod_ffmpeg.so.0.0.0 libmod_jpeg.so libmod_yuv420p.so.0.0.0 libmod_filter.la libmod_jpeg.so.0 libmod_filter.so libmod_jpeg.so.0.0.0 ../man: man1 ../man/man1: screen.1 ../share: applications mime-info pixmaps screen ../share/applications: synfigstudio.desktop ../share/mime-info: synfigstudio.keys synfigstudio.mime ../share/pixmaps: about_dialog.png gradient_icon.png real_icon.png about_icon.png group_icon.png rectangle_icon.png angle_icon.png info_icon.png rotate_icon.png bline_icon.png integer_icon.png saveall_icon.png blinepoint_icon.png keyframe_icon.png scale_icon.png bool_icon.png keyframe_lock_all.png segment_icon.png canvas_icon.png keyframe_lock_future.png sif_icon.png canvas_pointer_icon.png keyframe_lock_none.png sketch_icon.png children_icon.png keyframe_lock_past.png smooth_move_icon.png circle_icon.png layer_icon.png string_icon.png clear_redo_icon.png list_icon.png swap_colors_icon.png clear_undo_icon.png meta_data_icon.png synfig_icon.png color_icon.png mirror_icon.png time_track_icon.png draw_icon.png navigator_icon.png valuenode_icon.png duplicate_icon.png normal_icon.png vector_icon.png eyedrop_icon.png pastecanvas_icon.png width_icon.png fill_icon.png polygon_icon.png zoom_icon.png ../share/screen: utf8encodings ../share/screen/utf8encodings: 01 02 03 04 18 19 a1 bf c2 c3 c4 c6 c7 c8 cc cd d6 pclouds@mg ~/local/bin $
Patch:
diff -ur --exclude Makefile --exclude '*.o' screen-4.0.2/fileio.c screen-4.0.2.new/fileio.c --- screen-4.0.2/fileio.c 2003-09-08 23:25:28.000000000 +0900 +++ screen-4.0.2.new/fileio.c 2005-11-03 15:57:38.000000000 +0900 @@ -342,6 +342,65 @@ #endif } +static void +PrintHtml(FILE *f,struct mline *w_mlines,int j) +{ + if (((char *)w_mlines->attr)[j] +#ifdef FONT + || ((char *)w_mlines->font)[j] +#endif +#ifdef COLOR + || ((char *)w_mlines->color)[j] +#endif +#ifdef COLORX + || ((char *)w_mlines->colorx)[j] +#endif + ) + { + fputs("<span class=\"",f); + if (((char *)w_mlines->attr)[j]) + fprintf(f,"attr_%x",(int)((unsigned char *)w_mlines->attr)[j]); +#ifdef font + if (((char *)w_mlines->font)[j]) + fprintf(f," font_%x",(int)((unsigned char *)w_mlines->font)[j]); +#endif +#ifdef COLOR + if (((char *)w_mlines->color)[j] & 0x0f) + fprintf(f," color_%x",(int)((unsigned char *)w_mlines->color)[j] & 0x0f); + if (((char *)w_mlines->color)[j] & 0xf0) + fprintf(f," hicolor_%x",(int)((((unsigned char *)w_mlines->color)[j]) & 0xf0) >> 4); +#endif +#ifdef COLORX + if (((char *)w_mlines->colorx)[j]) + fprintf(f," colorx_%x",(int)((unsigned char *)w_mlines->colorx)[j]); +#endif + fputs("\">",f); + } +#ifdef UTF8 + if (fore->w_encoding == UTF8) + { + fprintf(f,"&#%d;",((int)((unsigned char *)w_mlines->image)[j] | (int)(unsigned char)((char *)w_mlines->font)[j] << 8)); + fprintf(f,"<!-- %02x%02x -->",(int)(unsigned char)((char *)w_mlines->font)[j],(int)((unsigned char *)w_mlines->image)[j]); + } +#else + fprintf(f,"&#%d;",(int)(unsigned char)p[j]); +#endif + if (((char *)w_mlines->attr)[j] +#ifdef FONT + || ((char *)w_mlines->font)[j] +#endif +#ifdef COLOR + || ((char *)w_mlines->color)[j] +#endif +#ifdef COLORX + || ((char *)w_mlines->colorx)[j] +#endif + ) + { + fputs("</span>",f); + } +} + /* * needs display for copybuffer access and termcap dumping */ @@ -467,6 +526,41 @@ { switch (dump) { + case DUMP_HTML: + case DUMP_HTML_SCROLLBACK: + if (!fore) + break; + if (*mode == 'a') + { + putc('>', f); + for (j = fore->w_width - 2; j > 0; j--) + putc('=', f); + fputs("<\n", f); + } + fputs("<pre class=\"screendump\">",f); + if (dump == DUMP_HTML_SCROLLBACK) + { + for (i = 0; i < fore->w_histheight; i++) + { + p = (char *)(WIN(i)->image); + for (k = fore->w_width - 1; k >= 0 && p[k] == ' '; k--) + ; + for (j = 0; j <= k; j++) + PrintHtml(f,WIN(i),j); + fprintf(f,"\n"); + } + } + for (i = 0; i < fore->w_height; i++) + { + p = (char *)fore->w_mlines[i].image; + for (k = fore->w_width - 1; k >= 0 && p[k] == ' '; k--) + ; + for (j = 0; j <= k; j++) + PrintHtml(f,&fore->w_mlines[i],j); + fprintf(f,"\n"); + } + fputs("</pre>",f); + break; case DUMP_HARDCOPY: case DUMP_SCROLLBACK: if (!fore) diff -ur --exclude Makefile --exclude '*.o' screen-4.0.2/process.c screen-4.0.2.new/process.c --- screen-4.0.2/process.c 2003-09-18 21:53:54.000000000 +0900 +++ screen-4.0.2.new/process.c 2005-11-03 16:02:03.000000000 +0900 @@ -1135,6 +1135,18 @@ args++; argc--; } + if (argc > 1 && !strcmp(*args, "-H")) + { + mode = DUMP_HTML; + args++; + argc--; + } + if (argc > 1 && !strcmp(*args, "-Hh")) + { + mode = DUMP_HTML_SCROLLBACK; + args++; + argc--; + } if (*args && args[1]) { Msg(0, "%s: hardcopy: too many arguments", rc_name); diff -ur --exclude Makefile --exclude '*.o' screen-4.0.2/screen.h screen-4.0.2.new/screen.h --- screen-4.0.2/screen.h 2003-08-22 21:28:43.000000000 +0900 +++ screen-4.0.2.new/screen.h 2005-11-03 14:24:14.000000000 +0900 @@ -255,6 +255,8 @@ #define DUMP_HARDCOPY 1 #define DUMP_EXCHANGE 2 #define DUMP_SCROLLBACK 3 +#define DUMP_HTML 4 +#define DUMP_HTML_SCROLLBACK 5 #define SILENCE_OFF 0 #define SILENCE_ON 1
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ năm, 03 Tháng một năm 2005 00:50:44 JST
Phần mềm biên tập hoạt cảnh - Synfig
Theo quảng cáo, thử Synfig, phần mềm dùng để tạo animation. Nhìn cũng đẹp, nhưng hổng biết xài :D
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ ba, 01 Tháng một năm 2005 19:36:15 JST
Chụp hình terminal với <i>script</i>
Nhờ bác skz0 trên Diễn đàn VNOSS nên tìm ra script. script có thể dùng để record lại toàn bộ output của console và sau đó replay lại bằng scriptreplay.pl. Để xem kết quả của script, chỉ cần cat nội dung tập tin do script tạo ra là xong. Tuy nhiên không tìm thấy chương trình để chuyển output của script thành html. Để làm việc này, hổng chừng phải viết nguyên cái terminal hoặc móc code của terminal khác (như screen, xterm ...) :(
Bởi vậy, cách tốt nhất là tiếp tục patch screen :)
BTW, khỏi tìm đâu xa. script đã nằm sẵn trên máy rồi, gói util-linux.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017