Kho tháng 1/2007

Thứ tư, 31 Tháng một năm 2007 22:06:05 ICT

Dịch tài liệu trợ giúp của GNOME?

Hết sức tham vọng. Theo tình hình hiện tại thì số câu cần dịch khoảng 17000, phân nửa số câu dịch UI. Tuy nhiên tình hình cập nhật UI dạo này cực chậm, hầu hết do chị Clytie dịch. Chị Clytie mà vắng nhà là coi như vài tháng mới được cập nhật một lần.

Có lẽ để lại 17000 câu này cho năm sau. Biết đâu năm sau mình lại hứng...


Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh | GNOME, Tiếng Việt

Thứ hai, 29 Tháng một năm 2007 20:22:21 ICT

Duplicated bugs

Càng ngày càng thấy ghét cách đóng gói phần mềm ruby (cả rubygems). Tất cả các thông số cấu hình đều được lưu giữ trong rbconfig.rb và xài lại. Hậu quả trước mắt là một lượng lớn duplicated bug đổ vào bug 159922. Lỗi này có thể nói ảnh hưởng đến gần hết các ebuild ruby trong Gentoo. Ngoài lỗi này ra vẫn còn những lỗi tiềm ẩn khác (như bug 150384), chưa kể CFLAGS và LDFLAGS của Gentoo hoàn toàn bị bỏ qua. Mà cách cài đặt của rubygems không sạch sẽ chút nào. Mấy thứ tạm bợ trong quá trình build sẽ được chuyển nguyên xi vào hệ thống.

Shhhh...


Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh | Gentoo, Ruby

Thứ bảy, 27 Tháng một năm 2007 16:46:08 ICT

Tin tức Git

Có ba thứ quan trọng:

  • Git sắp tiến đến 1.5.0, có đủ thứ thay đổi không thể nhớ nổi. Theo như trong release notes của 1.5.0-rc2 thì có packed refs, git-add "mới", git-rm "mới", git-reset "mới", git-remote, git-prune "mới", git-gc, detached HEAD, sliding mmap, (partial) shallow clone.
  • Git đang được port sang Windows
  • Git User Manual

Những thứ được mong chờ sau 1.5.0:

  • Native win32 support!
  • Hoàn tất shallow clone
  • libgit
  • subproject support (cãi nhau quá trời rồi tới đâu rồi?)

Thế là đủ, chả cần gì thêm. Tương lai Git 2.0 hết sức tươi sáng!


Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh | Git, OSS

Thứ bảy, 27 Tháng một năm 2007 14:18:40 ICT

Bái bai Liferea. Hế lô Google Reader

Không thể suốt ngày xài một máy nữa nên cũng không thể nào dùng Liferea nữa. Chuyển sang Google Reader. Điểm hay của Google Reader là phần Trends (hình như mình bị nghiện số):

From your 35 subscriptions, over the last 30 days you read 355 items, starred 0 items, and shared 0 items.

Dẫn đầu danh sách là digg.com, Planet GNOME, delicious' network, Gentoo Universe và Slashdot. Để coi tháng sau nó thay đổi như thế nào. Sau khi phát hiện ra cái "Trends" này, tổng số subscription đã tăng lên 59. Để tháng sau nó tăng lên bao nhiêu


Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh

Chủ nhật, 21 Tháng một năm 2007 16:33:58 ICT

Tán phét

Mặc dù trang này không có phần bình luận là có chủ ý nhưng tại bạn lihavim dám chê Cùi Bắp nên phải chứng tỏ Cùi Bắp tuy cùi nhưng không có ghẻ.

Nay tạm dùng đỡ HaloScan để thêm phần bình loạn vào Cùi Bắp. HaloScan có cái dở là nạp javascript chứa thông tin tổng hợp về bình luận của toàn hệ thống ở đầu trang. Nghĩa là cái bờ-lốc này chạy càng lâu, càng nhiều tên đâm chọt thì nó càng chạy chậm. Ai biết cái commenting system nào khác xịn hơn thì .. comment vô dùm cái :D


Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh | Cùi Bắp

Chủ nhật, 21 Tháng một năm 2007 15:47:06 ICT

Sự khác biệt giữa pipe và redirection trong bash

Có một khác biệt nho nhỏ, chưa hiểu cơ chế thế nào. Với lệnh redirection như bên dưới, thư mục hiện thời bị thay đổi theo:

while read i;do cd $i;done < list

Trong khi cũng với lệnh như thế nhưng dùng pipe thì thư mục hiện thời không bị thay đổi:

cat list|while read i;do cd $i;done

Có lẽ do khi dùng qua pipe, một shell mới được tạo ra để chạy vòng lặp while.


Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh | Mánh và mẹo, Linux

Thứ bảy, 20 Tháng một năm 2007 18:36:32 ICT

Đổi gnome-foot logo

Đọc HOWTO change gnome-foot into ubuntu logo xong, chảnh (mong bà con đại xá) mò vô gnome-panel code để xem có cách nào "chính thống" hơn không thì phát hiện ra cái icon này được đặt tên là "start-here" (theo cái gì icon naming standard gì gì đấy). Tìm ra trong /usr/share/icon-naming-utils/legacy-icon-mapping.xml có một phần là

        <icon name="start-here">
            <link>gnome-main-menu</link>
            <link>distributor-logo</link>
            <link>novell-button</link>
        </icon>

suy ra chỉ cần đặt tên cái của mình cho nó tương ứng với một trong mấy cái tên trên, hoặc thêm một entry mới vô cái đống trên thì xong. Đoán chơi chứ chưa thử.


Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh | GNOME, Linux, Mánh và mẹo

Thứ năm, 18 Tháng một năm 2007 22:43:08 ICT

Chửi

Chửi hơi bị nặng, mặc dù đôi khi cũng thấy một số điểm được nêu trong một số lập trình viên Windows. Trích dẫn của Alex Riesen:

But he is a typical windows-trained programmer. Lazy, unmotivated and happily married. He does programming by accident (was smart enough to learn the basics of the trade). Why would he want to take the an extra step of figuring out what that strange "0001-...patch" means? Now, I know him, would never think about sending him a real patch. I'm kinda grown and tired, and need the bastard, too. Someone younger will just call him idiot and "improve" the situation by telling him about "stupid windows" and "he should the right ways". Just to be answered "it worked for some millions programmers before you" and "I told your manager you making problems and are hard to communicate with".

Nếu nhìn ở góc độ khác, đây không phải chửi mà đơn thuần nêu lên một số quan điểm của lập trình viên Windows, tiêu biểu nhất là "gets the job done".


Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh

Chủ nhật, 14 Tháng một năm 2007 15:23:49 ICT

Sự kiện đầu năm

Đến giữa tháng mới nhận ra bỏ sót một số sự kiện đầu năm

Chẳng biết có còn sót cái nào nữa không. Sao bà con không ăn chơi mừng năm mới mà cứ mần hoài...


Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh | Linux, Ruby

Thứ ba, 09 Tháng một năm 2007 22:14:33 ICT

Báo cáo Nouveau

Khởi động

Mọi sự bắt đầu ở NVScreenInit (nv_driver.c), bao gồm khởi động DRI/DRM (NVDRIScreenInit trong nv_dri.c), NVMapMemNVinitDma. Phần DRI khởi động và kết nối như thế nào là bí mật của NVDRIScreenInit (hay đúng hơn là của DRIScreenInit).

Sau khi khởi động DRI/DRM xong. NVMapMem đòi cấp phát ba vùng nhớ NOUVEAU_MEM_FB gồm FB, CursorScratchBuffer (lệnh DRM_NOUVEAU_MEM_ALLOC).

Khởi động DMA NVInitDma bao gồm cấp phát FIFO (DRM_NOUVEAU_FIFO_ALLOC) bao gồm command buffer (cmdbuf, được map vào pNv->dmaBase) và control registers (ctrl, được map vào pNv->FIFO). Tạo DMA object NvDmaFB NV_DMA_TARGET_VIDMEM. Tạo (DRM_NOUVEAU_OBJECT_INIT) thêm context object NvContextSurfaces, NvRectangle, NvScaledImage, NvRop, NvImagePattern, NvImageBlit, NvClipRectangle và NvSolidLine. Không xét AGP, EXA cho đời đỡ khổ.

Sau khi tạo xong tất cả, NVScreenInit chạy NVModeInit, trong đó chạy NVResetGraphics. Hàm này tiến hành gắn các object vào subchannel sau đó khởi động các object cho phù hợp. Các object này được dùng trong nv_exa, nv30_exa, nv_xaa, nv_video, trong đó nv30_exa dã man nhất khi dùng luôn NvSub3D.

Command buffer

Có vẻ như thanh ghi 0x10 và 0x11 điều khiển vị trí móc dữ liệu từ command buffer. 0x11 dùng để đọc còn 0x10 dùng để ghi. Thông qua hai thanh ghi ở vị trí này có thể biết card đang đọc lệnh tới đâu. Chưa hiểu lắm NVDmaWait, có thể tóm tắt là để dành sẵn N vùng trống để điền lệnh vào. Muốn gọi 1 lệnh C trên object A thì cứ NVDmaStart(pNv, A, C) rồi NvDmaNext...

Các lệnh sẽ được gửi cho phần cứng thông qua NVDmaKickoff nhưng được gọi gián tiếp qua NVBlockHandler (có lẽ được gọi khá liên tục) và NVDoSync (và NVSync) hoặc trực tiếp trong nv_exa, nv_video, nv_xaa. Không rõ cách gọi NVBlockHandler như thế nào. Nếu lệnh này được gọi khi đang ghi dở dang lệnh đang thực hiện trên FIFO?

DRM

Phần 2D đơn giản chỉ có thế. Phần 3D cũng sẽ đơn giản gần gần như thế: tạo ra các object liên quan, cho nó vào subchannel xong gọi cách lệnh liên quan của object đó... (phần này nằm trong Mesa) Hai cái nhức đầu còn lại là Context switch và Graphic context switch.

Đầu mối lần mò Nouveau DRM là nouveau_fifo.c, nơi chứa nouveau_ioctls (được dùng trong linux-core/nouveau_drv.c)

Quy trình nạp DRM khá lằng ngoằng. Hàm load được gọi khi nạp module (tương tự cho unload). firstopen được gọi trong drm_setup (được gọi trong drm_open, mở /dev/drm). Đa số còn lại là IOCTLs do driver tự quản nên cũng không cần quan tâm thư mục linux-core lắm.

Hàm quan trọng nhất khi khởi tạo card là nouveau_firstopen trong nouveau_state.c, đưa card vào trạng thái "ngon lành". Hàm quan trọng thứ nhì là nouveau_fifo_init. Sau khi đã vào thế, để sử dụng 3D, DRI sẽ tạo một FIFO queue mới với nouveau_fifo_alloc (mặc dù mối quan hệ giữa DRI và DRM chưa được rõ ràng lắm)

Context switch -- RAMFC

Các công việc được thực hiện trong nouveau_fifo_instmem_configure. Các thành phần gồm RAMHT (hash table), RAMRO (runout table), RAMFC (fifo context table). RAMFC gồm 32 FIFO, mỗi FIFO 128 entry. Phần khởi động ban đầu, có vẻ chỉ cần đặt đúng RAMFC offset (với NV40). Cần kiểm tra các giá trị này khi dùng nv.

Phần còn lại nằm trong nouveau_fifo_alloc bao gồm cấp phát cmdbuf, khởi động fifo context nouveau_*_context_init và điều chỉnh PFIFO (là cái quái gì?) nếu tạo FIFO đầu tiên bằng nouveau_fifo_context_restore (độc lập card?).

Thông tin thiết lập context (8 dword, mặc dù dùng có 4) bao gồm dma_put, dma_get, cmdbuf và một mớ cờ. cmdbuf regs nằm đâu đó ở vùng 0x00800000 (RAMIN, chứa RAMFC, nằm ở 0x00700000)

Vậy để thiết lập context, cần đọc ráo trọi vùng RAMIN và xem xét .. hic.. từng dword trong đó. Có thể sẽ cần đọc thêm một số thanh ghi khác nữa.

Đặt 0x86078 vào offset 0x10 trong FIFO context thì nouveau_demo hoạt động. Các ứng dụng GL segfault sau khi _glapi_add_dispatch fail

Graphic context switch -- PGRAPH

Từ từ tính

Kế hoạch

  • Xem xét xem tụi nó đã làm gì với NV4x, NV20 và NV10 phần FIFO Context, kiểm tra lại với mấy cái dump của renouveau.
  • Xem thông tin trong renouveau có đủ xài không hay lại phải dùng đến nv-clock.
  • Móc mmio-patch về nếu cần (hi vọng không cần cho tới khi đụng PGRAPH)

Cập nhật 3 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh | Linux, OSS, Hâm

Thứ ba, 09 Tháng một năm 2007 14:16:26 ICT

Thức đêm

Thức đêm mới biết đêm dài

Thức đêm mới biết ngày ... dài hơn đêm


Cập nhật 3 lần. Lần cuối: Thu Aug 25 14:40:58+0003 2022

Tác giả: pclouds | Liên kết tĩnh | Hâm

Chủ nhật, 07 Tháng một năm 2007 20:58:04 ICT

Thống kê bàn phím

Theo thống kê từ 30/8/2006 đến nay. Tốp mười lệnh dùng nhiều nhất lần lượt là ls git vi fg cd grep emerge make rm cb (cuibap), biến động từ ls với khoảng 7500 lần gọi cho đến cb hơn 1000 lần gọi.

Danh sách các lệnh thường dùng tiếp theo gồm dict, cat, find, less, for, ebuild, man, ruby, diff, mv, tar, cp, df, cvs, echo, gcc, rake, gzip, utf8toviscii, mkdir, tail, watch, fsck, repoman, irb, xterm, gem, bg, pdflatex, gqview, ps, head, du, g-gem, wget, locate, perl, wc, ssh, pwd, vimdiff, svn, file, htop, source, mplayer, sed, links, epiphany, gdb.

Trên đây là thống kê cách lệnh đầu tiên trong chuỗi lệnh nếu dùng pipe. Nếu ngắt pipe ra đếm luôn cũng không có thay đổi mấy. Trong tốp 10, less vươn lên đứng sau grep. ruby vượt lên thay ví trí less, sau find. tar vượt trước ebuild để đứng sau tar, theo sau là utf8toviscii. tail, sed, wc, head lần lượt nhảy lên xếp sau mv. xargs, echo, gzip, while, sort, awk, cut có bước tăng nhất định.

Xét về mặt ghép nối ống, khoảng 4500 lệnh ống trong tổng số gần 60000 lệnh (vị chi gõ khoảng 60000/150=400 lệnh một ngày :P). Trong số đó tỉ lệ nối một ống chiếm đa số (3254 lệnh). Lệnh hai, ba, bốn ống chiếm 793, 219, 114. Có hai lệnh khắc nghiệt nhất, một lệnh chín ống và một lệnh mười ống (làm sao mình có thể gõ nổi vậy trời?). Vinh dự của ứng dụng được "tặng" hai lệnh đáng biểu dương đó là TeX live (nói đúng ra nó không đến mười ống vì đếm nhầm toán tử || của bash):

find archive/texmf/lists/ -type f|grep -v /bin-|grep -v /collection-|grep -v /lib-|while read i;do PN=$(basename $i);TPM=archive/texmf-dist/tpm/$PN.tpm; [ -f $TPM ] || TPM=archive/texmf/tpm/$PN.tpm;[ -f $TPM ] || TPM=archive/texmf-doc/tpm/$PN.tpm;DESCRIPTION=$(grep '<TPM:Title>.*</TPM:Title>' $TPM|sed 's,.*<TPM:Title>\(.*\)</TPM:Title>.*,\1,'); echo $DESCRIPTION;done
find archive/texmf/lists/ -type f|grep -Ev '/(bin|collection|lib|scheme)-'|while read i;do PN=$(basename $i);TPM=archive/texmf-dist/tpm/$PN.tpm; [ -f $TPM ] || TPM=archive/texmf/tpm/$PN.tpm;[ -f $TPM ] || TPM=archive/texmf-doc/tpm/$PN.tpm;DESCRIPTION=$(grep '<TPM:Title>.*</TPM:Title>' $TPM|sed 's,.*<TPM:Title>\(.*\)</TPM:Title>.*,\1,'); echo $DESCRIPTION;done

Có 17 lệnh quá dài (hơn 550 ký tự) đến nỗi bashlogger phải cắt bớt nên chả biết lệnh dài nhất là bao nhiêu. Mặc dù có lẽ đây là thành quả cắt dán để emerge sau khi chạy revdev-rebuild.

Làm thêm một thống kê vui để có một cái nhìn về mức độ tổn hại của bàn phím. Danh sách các phím phải chịu đựng nhiều nhất lần lượt là et/isa l-r.gomndcpufbvh012xykw'_|3=8*6z54~ rồi đến A\$C9T;RDNE:SOLI7M"G>,q<()PHU&F[B]}{VjX+^Y%K#?WZQvà cuối cùng là a-còng vàJ!. Chấm than chỉ "được" gõ 109 lần. Trong khi e` được gõ cỡ 95000 lần (tàn nhẫn). Nhìn sơ qua thì có vẻ tay trái phải hoạt động cật lực hơn tay phải. Enter đoán chừng gõ cỡ 13000 lần. Dĩ nhiên danh sách này loại ra một số phím bầm dập mãn tính như Tab, Ctrl, Shift. À và thống kê phím không thật sự chính xác vì chỉ đếm trên terminal, hơn nữa phần tab-completion cũng như bash history bị bỏ qua.


Cập nhật 3 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh | Linux

Thứ bảy, 06 Tháng một năm 2007 19:17:18 ICT

Phông mono cho tiếng Việt: Terpinus! Khai chiến DejaVu Sans

Hoàn thành "Terpinus" (người bạn Việt Nam của Terminus). Terpinus hỗ trợ các cỡ phông chữ như Terminus: từ 12 đến 32 (thực tế nó chạy đâu đó từ 8 đến hai mươi mấy). Bạn Terpinus có thêm 86 glyph bổ sung dành cho tiếng Việt. Terpinus có thể dùng để chạy ở cả console nhưng chưa kiểm tra.

Ai có nhu cầu sử dụng Terpinus, hãy lấy Terminus 4.20 về sau đó dùng patch này (250KB). Khi đó Terminus sẽ hoá thân thành Terpinus.

Mọi ý kiến ý cò hãy gửi cho pclouds nhà ở gmail chấm com.

Đích kế tiếp: DejaVu Sans. Trong bộ DejaVu thì ba phông Sans, Sans Condense và Sans Light có đủ glyph tiếng Việt, ba phông còn lại không đủ glyph (nhưng chắc thêm dễ do chúng toàn là phông tổ hợp)


Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh | Tiếng Việt, OSS

Thứ sáu, 05 Tháng một năm 2007 15:48:05 ICT

Bốn bài female fronted metal xuất sắc nhất

Định viết cuối 2006. Lần lữa đến 2007 vẫn chưa xong. Nói ngắn gọn, bốn bài xuất sắc nhất xếp theo thứ tự là:

  1. Sleeping Sun của Nightwish
  2. Death, Come near me của Draconian
  3. Solitary Ground của Epica
  4. Forever Shine On của Edenbridge

Nói dài dòng, đây là bốn bài mang lại nhiều cảm xúc nhất. Bài đầu tiên, Sleeping Sun, đứng đầu danh sách là điều nhiển nhiên khi trong bảng sắp hạng các bài được nghe nhiều nhất thì Sleeping Sun đứng đầu với 239 lần nghe, bỏ xa bài về nhì là Low Man's Lyric của Metallica đến 139 lần!

Nhạc Nightwish luôn luôn mạnh mẽ và bay bổng. Và có lẽ bài bay cao nhất chính là Sleeping Sun. Trong bốn bài, đây là bài đầy màu sắc nhất. Âm điệu metal trong Sleeping Sun không chát chúa hay quá ồn ào, tạo không gian phát huy chất giọng của Tarja. Khởi đầu với tiếng Piano thánh thót, nhịp bass chậm và ấm, Sleeping Sun đưa ta rời mặt đất, tiến về hào quang:

I wish for this night time

To last for a life-time

The darkness around me

Shores of solar sea

Oh how I wish to go down with the sun

Sleeping

Weeping

With you

Không có nhiều điều để nói về Sleeping Sun. Đơn giản nghe và thưởng thức. Tuy nói Sleeping Sun được nghe nhiều nhất, nhưng gần đây thì không phải vậy. Vinh dự đó thuộc về Draconian với tuyệt tác Death, Come near me (DCNM) và một số album khác trong đó phải kể đến Where the lovers mournThe burning halo. DCNM có vị trí khá khiêm tốn (171). Đơn giản là bởi vì DCNM dài đến 15 phút. Nghe bốn bài DCNM hết một giờ. Cùng thời gian đó có thể nghe được 10 đến 12 bài khác.

DCNM là một bản ballad mượt mà mở đầu với tiếng piano và violon nghe như âm thanh ai oán. Buồn mà không tuyệt vọng. Nghe nhẹ tênh. Cũng có thể nhẹ tênh do không còn bấu víu vào hy vọng nữa, không cần hi vọng nữa. Tiếng ghita điện trong DCNM vẫn thể hiện rõ sự thô ráp đặc trưng của dòng metal nhưng không quá nặng và gắt như thường gặp. Sự kết hợp giữa giọng grunt và giọng nữ càng làm nổi bật sự khác biệt giữa 2 chất giọng, tạo cảm giác thật chông chênh. Lời nhạc DCNM thật đẹp:

O Death, come near me,

Save me from this empty, cold world

O Life, you have killed me,

So spare me from this cauldron of misery!

Cũng phải nói thêm Draconian nhả chữ tuyệt vời trong DCNM: "save me ... from this empty ... cold ... world". Nghe trống trải, lạnh tanh. Trong DCNM, đến với Death không phải là đến với cái xấu xa mà là đi tìm sự giải thoát. Cả hai bài đều bay bổng, theo hai cách khác nhau. Trong khi Sleeping Sun đưa ta đến mặt trời thì DCNM đưa ta về gần với cái chết, về cái tâm con người. Cả hai đích đến đều tăm tối (Sleeping Sun ít ra vẫn có "một phút huy hoàng rồi chợt tắt").

Cả hai bài không làm xáo động cảm xúc. Ngược lại nó đưa về trạng thái tĩnh lặng, bình thản. Nói khô khan một chút, nếu Sleeping Sun là 0+ thì DCNM là 0-. Nghe Sleeping Sun và DCNM, thấy đời chả còn gì đáng làm hơn là ngồi.. nghe tiếp.

Xét về chất giọng của hai ban nhạc. Tarja Turunen trong Sleeping Sun mạnh mẽ hơn. Lisa Johansson của DCNM sắc bén hơn, chém ngọt ngào mà đau đớn, đặc biệt khi sóng đôi với giọng grunt.

Nhiều khả năng DCNM và Sleeping Sun sẽ tiếp tục giữ vững hai vị trí đầu bảng. Hai bài thứ ba và thứ tư vẫn chưa đủ lực để có thể hi vọng chiếm hai vị trí này. Điều giống nhau giữa Sleeping Sun và DCNM là nhịp điệu chậm (nói đúng ra cả bốn bài đều chậm). Nếu nói Sleeping Sun là nhạc hùng tráng thì DCNM sẽ là bi tráng.

Cảm nhận cô đọng của bài thứ ba, Solitary Ground, là: buồn tan nát. Cô đơn, hụt hẫng, lạc lối, đâu đó có cả tuyệt vọng. Nói như cách của Draconian là "Such an exquisite pride in my suffering... alone, all alone with the emotional streams of my soul...". Epica không nhìn đời bằng con mắt căm hận và tàn nhẫn như Draconian, mà lại bi quan đến tê tái. Cũng may, đây không phải là bài đặc trưng cho Epica. Solitary Ground dùng chủ yếu Piano với Violon.

In me there's still a place that fulfills me,

A sanctity here that I call home

I run to when winter descends

If I try can I find solid ground?

Or am I just wasting time?

Vậy để tìm ra con đường ta đi, ta phải làm gì? Nghe "Forever Shine On" :D

I still believe

In the love I found so long

You're the air that I breathe

Let us dream a dream

Forever shine on

Forever Shine On dùng bass nhiều hơn, tạo một cái nền bồng bềnh để giọng hát trong trẻo, mượt mà và êm dịu của Sabine Edelsbacher bay đi, cao vút (cao nhất trong bốn bài).

Forever Shine On không có khởi đầu, cũng không có kết thúc, cứ hát mãi. Mãi mãi "I still believe"...


Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh | Nhạc

Thứ năm, 04 Tháng một năm 2007 17:20:51 ICT

Wishlist 2007

  • Chạy được AIXGL trên cái card Riva TNT2 (nouveau). Tìm hiểu "X màu mè" (Composite, Glitz, AIXGL, XGL, RandR)
  • Bảo đảm chất lượng dịch của GNOME-VI
  • Mono cơ bản, GTK#, ASP.NET. Ngó qua D lần nữa
  • Kiên quyết không để thất thoát thêm chữ Kanji nào nữa (500). Nếu may mắn thì nhắm đích 1000
  • 100 từ tiếng Nga, Hàn, Tây Ban Nha (có nên thêm tiếng Đức không cà)
  • Hỗ trợ phông tiếng Việt trên X
  • Hỗ trợ gõ tiếng Việt trên X/GTK+ (gtk-xvnkb, vnkb-applet, kêu gọi bọn chúng hỗ trợ GTK+ Input Method tốt hơn)
  • Ruby On Rails, phần JS. Hoàn tất punbbonrails
  • Quyết tâm làm sạch đống bùi nhùi dev-ruby hay ít ra cũng để nó không bùi nhùi hơn
  • Đưa TeXlive vào Gentoo
  • May ra thì ngó chút chút tới Flash, Cairo
  • Rhythmbox/GStreamer toàn tập
  • VSpell 1.0!!!
  • Nhân đánh vspell thì ngó luôn tới cái TTS/SR/OCR tiếng Việt (tiếng Việt toàn tập)
  • Không làm ngoài giờ (mà không có lương). Cân bằng giữa việc có lương và việc không có lương.
  • LISP yêu dấu. Emacs yêu thương.
  • G-Gem
  • Điện tử
  • ConTeXt tập cơ bản
  • Không xài điện thoại di động
  • Sắm cái laptop (full linux support)
  • Không ghi thêm gì nữa vào wishlist
  • Có thể làm được mọi thứ trong wishlist!

Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh

Thứ tư, 03 Tháng một năm 2007 19:42:22 ICT

Phông phiếc, Việt viết: Perminus

Cạnh tranh với phông Tervinus của bác Quý, sửa lại Terminus để cho ra đời "Perminus" (giờ nghĩ lại, lẽ ra phải gọi là "Terpinus" chớ cà). Perminus sẽ bị xoá sổ nếu tác giả Terminus đưa các glyph mới vào Terminus.

Sự khác biệt giữa Perminus và Tervinus: một bên vẫn giữ nguyên bản chất phông chữ bitmap của Terminus, một bên chuyển sang dạng vector.

Vẫn còn nhiều thứ phải làm, bao gồm ba cỡ phông chưa sửa (24, 28, 32 -- 6 phông) cộng thêm hai phông ter-u14v và ter-u16v nữa. Tổng cộng còn phải luộc 430 glyph nữa :( Tuy nhiên ba phông 12, 14, 16 đã tạm đủ xài. Chôm được cái dấu hỏi ba pixel của Verdana, dùng trong những trường hợp dấu kép rất phù hợp. Cần chỉnh lại các phông 12, 14 -- những phông làm lúc mới làm quen và kích thước nhó nên khó điều chỉnh.

Một số ghi chú khi thêm tiếng Việt cho Terminus:

  • Chữ ỵ thường là một chữ khó xử lý vì dấu chấm nằm ngay đuôi y
  • Chấp nhận hi sinh chiều cao một số chữ hoa nhằm có chỗ để điền dấu. Các glyph có dấu kép rất khó tìm ra đủ chỗ để vẽ dấu cho ra hồn.
  • Riêng với O hoa, thà chết không rút ngắn chiều cao chữ O vì dễ nhầm lẫn với o thường. Chấp nhận dấu dính liền với chữ (cũng coi như một cách để phân biệt O và o).
  • U và u cũng có một khác biệt tinh tế là một pixel nằm ngay chân phải của u thường. Tuy vậy cũng nên hạn chế co U hoa lại để mắc công phải ngó chăm chăm chân phải của u để biết đó là hoa hay thường.
  • Với I hoa, khi rút ngắn thì nên kéo dãn hai chân để phân biệt với i thường.
  • Chả thể tìm ra dấu móc ư ơ coi được. Cần làm cho dấu móc trong ư và ơ ngang bằng nhau, nếu không những tiếng có hai chữ ươ đi kèm trông sẽ rất xấu.
  • Chuẩn hoá lại dấu hỏi to dạng đậm (7 pixel) và dạng thường (5 pixel). Huỷ bỏ dấu hỏi "siêu đậm" 10 pixel. Nếu được chuẩn hoá luôn dấu ngã (hơi khó). Dấu sắc và huyền chỉ cần coi sơ lại. Dấu nặng cần thống nhất vị trí, đôi khi nằm lệch về trước, đôi khi nằm lệch về sau.

Hí hí, soạn vim với Perminus trông cũng được gớm. Mỗi tội dấu ngã gốc của Terminus xấu quá. Chắc phải kêu tụi nó sửa lại (nếu tác giả bọn nó trả lời)

Mục tiêu kế tiếp sau khi đã hoàn tất phông chữ Monospace: phông chữ Sans Serif và Serif. Trước hết sẽ thử xem DejaVu chất lượng thế nào. Nếu ẹ quá thì sẽ thêm hint cho một vài phông trong urwvn. Chuẩn bị vác bàn phím đi học lập trình font hinting :D


Cập nhật 3 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh | Tiếng Việt, OSS

Thứ ba, 02 Tháng một năm 2007 09:13:18 ICT

"tcptee" bằng netcat

Theo Netcat — network connections made easy, có thể tạo một cái "tcptee" như sau:

mknod backpipe p
nc −l −p 80 0<backpipe | tee −a inflow | nc localhost 81 | tee −a outflow 1>backpipe

Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh | Linux, Mánh và mẹo

Thứ hai, 01 Tháng một năm 2007 18:14:56 ICT

GNOME sử dụng Subversion

Tin tốt đầu năm. Sau khi "lần thử trước":2006-07-15T00_28_23 "thất bại":2006-07-16T15_50_06, lần này GNOME đã chuyển sang Subversion thành công (trừ khoảng hơn mười module chắc cần phải chuyển bằng tay)


Cập nhật 1 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017

Tác giả: pclouds | Liên kết tĩnh | GNOME, OSS