Kho tháng 6/2008

Thứ bảy, 28 Tháng sáu năm 2008 13:26:31 ICT

Bàn về hai con cá

(không làm chúng ói được bằng cách nhìn hình mình, thì phải làm chúng ói bằng cách đọc những gì mình viết)

Trích từ Pisces - Song Ngư

Trong số những người chịu sự quản chiếu của sao Hải vương, hiếm có ai chạy theo danh vọng, quyền lực hoặc giàu sang. Không phải họ thờ ơ với những thứ đó. Nhưng họ không bao giờ chủ động săn đuổi chúng. Nếu Song Ngư nào có những thứ nói trên, thì nhiều khả năng là nhờ thừa kế hoặc có được do hôn nhân. Khẩu hiệu của Song Ngư là: “Tôi không muốn làm triệu phú, tôi chỉ muốn sống như triệu phú”. Trái tim của một Song Ngư điển hình không vương vấn tham vọng và thói hám của, bởi vì người đó hiểu rõ hơn ai khác rằng những thứ đó nhất thời như thế nào.

Sai lầm đời ta là thế. Lẽ ra ta phải nhận ra khẩu hiệu đời ta là "sống như triệu phú". Từ giờ trở đi bỏ câu "Đêm qua mơ dáng tằng tắng tăng".

Dựa vào khả năng trực giác bẩm sinh, Song Ngư không có một chút kiên trì bền bỉ nào, cứ thủng thẳng bơi theo dòng nước, bằng lòng với những gì mà cuộc sống tự nhiên mang đến. Rất ít Song Ngư có khả năng đấu tranh với hoàn cảnh, vượt qua lực cản của dòng chảy, nhưng chính những người hiếm hoi đó sẽ đạt được sự hài hoà và hạnh phúc lớn lao.

Còn ngược lại sẽ không hài hoà và thiếu hạnh phúc. Cái này nghe được.

Về bản chất, Song Ngư bình lặng và thờ ơ đến nỗi dường như không gì có thể làm cho nó mất thăng bằng. Sự cuồng nộ, độc ác, những xúc phạm, quy chụp, trách cứ đều trôi trượt qua, chẳng hề va chạm đến. Nếu bạn thông báo với Song Ngư rằng ngày mai trời sụp, người này cũng chỉ lơ đãng nghe, thậm chí còn có thể đáp lại bằng một cái ngáp mơ màng. Đôi khi bạn có cảm tưởng người này hoàn toàn không có cảm xúc. Nhưng không phải vậy. Cũng như khi bạn ném viên đá xuống hồ. Trong một khoảng thời gian, mặt nước cồn lên, những vòng sóng gợn trôi, nhưng sau đó trở lại phẳng lặng như trước. Song Ngư cũng vậy. Họ thậm chí có thể tức giận, và trong lúc nào đó trở nên ghê gớm, gai góc, nhưng tâm trạng như vậy nhanh chóng qua đi, thay bằng sự êm ả, điềm đạm khi trước.

Nói cách khác, đây là mô tả của "cõi vĩnh hằng", của cái chết. Mai quay lại nghe Death Metal.

Làm quen với Song Ngư, hãy để ý đến gót chân của họ. Đa số chúng rất đẹp, nhỏ nhắn (thậm chí cả đàn ông). Đôi khi có thể gặp Song Ngư có gót lớn, nhưng đó là trường hợp hiếm. Bàn tay của họ thon mỏng và rất đẹp. Nếu gặp Song Ngư có bàn tay to như của người cầm búa tạ, thì đó cũng lại là ngoại lệ. Da của Song Ngư thường mịn và trong. Tóc mảnh và nhạt màu. Mắt trong như nước, với hàng mi dài. Cung này ít có người cao. Dù thân hình thế nào, hầu hết Song Ngư có dáng vẻ rất uyển chuyển. Cảm tưởng dường như không phải họ đang đi, mà là đang bơi. Song Ngư thích uống nhiều, đủ các loại: nước đá, nước quả, cà phê, trà, soda… Trong số những người nghiện rượu, nhiều nhất là người sinh cuối tháng hai - nửa đầu tháng ba.

Hic... tui cao. Dù sao tui cũng đạt "uyển chuyển", theo nghĩa "như mây khói". Uống hả? Deeee... ra quán (không đường)!

Song Ngư sinh ra với mong muốn nhìn đời bằng cặp kính màu hồng. Thậm chí khi đã hiểu thế giới xung quanh nghiệt ngã như thế nào, nó vẫn chẳng chịu rút ra kết luận, chỉ lặn sâu hơn xuống đáy nước mát lành, nơi cảnh đẹp thật thần tiên. Các tài liệu chiêm tinh học ghi nhận rằng tính cách như vậy là điển hình cho cung Song Ngư.

Sai. Tui nhìn bằng cặp kính màu trắng. Nếu nói cho kỹ thì có chút màu xanh rêu, do có... rêu trên cái kính.

Mà càng xuống sâu càng tối, thấy cái gì mà đẹp. Ờ nhưng mà tối tối nó mới... đẹp :D

Nhà văn Song Ngư có thể năm này qua năm khác ngồi quán cà phê, bên những ly nước bất tận, kể rằng mình đang bận tâm tìm kiếm ý nghĩa của cuộc sống.

Mình cũng sắp đạt tầm nhà văn. Tại trưa nào cũng vật vờ trong quán cà phê, ngắm... chó. À, không chừng mình viết truyện cho chó được.

Nhờ biệt tài tái hiện và một trí nhớ độc đáo, nhiều Song Ngư đạt được những đỉnh cao chói sáng trong nghề diễn viên. Đó là những người đã khắc phục được tính ngại lao động vất vả của Song Ngư để bắt mình quen với công việc luyện tập bền bỉ trong nghệ thuật. Trí tưởng tượng hiếm có, tính hài hước tinh tế và cảm giác về cái đẹp – là những yếu tố khiến các sáng tác nghệ thuật ra đời dưới ngòi bút của Song Ngư dễ trở thành tuyệt tác.

Thằng lihavim mới khen mình có khiếu đóng phim ma. Đúng là ta có tài!

Song Ngư có ảo tưởng là sẽ sống lâu mãi mãi, do vậy họ chẳng hề quan tâm đến sức khoẻ.

Vế đầu sai. Nhưng vế sau đúng. Mà vế sau đúng bởi vì vế đầu sai.

Vũ khí mạnh nhất của Song Ngư là tính hài ước. Nhờ nó, họ có thể che giấu những cảm xúc mà họ không muốn lộ cho người ngoài, và có thể biểu hiện thái độ thực sự của mình đối với điều gì mà không muốn diễn đạt công khai.

Nhảm!

Song Ngư đầy tính thương người và luôn sẵn lòng giúp đỡ kẻ gặp nạn.

Hic.. lần thứ hai ta nhận ra ta không phải Song Ngư.

Tính cách đầy ảo tưởng của Song Ngư không phù hợp với một kim loại nào. Bù lại, có thể nhìn thấy hình ảnh của Song Ngư trong hai loại đá quý: amethyst tím và emerald màu lục trong. Hoa sen dịu dàng tượng trưng cho họ.

Phi kim!

Sống trong vùng nước sâu, chỉ thi thoảng nổi lên bề mặt, Song Ngư có một cuộc sống riêng biệt, đầy những trải nghiệm cô đơn mà không phải lúc nào cũng chia sẻ được cho người khác.

Gothic/Doom metal!

Danh nhân sinh cung Song Ngư:

Michael Bolton, Michelangelo Buonarroti, Enrico Caruso, Coco Chanel, Frédéric Chopin, Albert Einstein, Mikhail Gorbachev, Victor Hugo, Modest Mussorgsky, Marius Petipa, Auguste Renoir, Nicolai Rimsky-Korsakov, Gioacchino Rossini, Trịnh Công Sơn, John Steinback, Elizabeth Taylor, George Washington, Bruce Willis...

E hèm, và Mít tờ Bi Cờ Lao.

Nếu, ví thử, đến tuổi 25 mà Song Ngư vẫn đang phân vân không biết bơi theo con sóng nào, thì tình thế của bạn, nói một cách thẳng thắn, là hầu như tuyệt vọng. Tất nhiên chàng có thể quyết định một bước đi hệ trọng vào tuổi 35, nhưng cơ hội sẽ ít hơn nhiều. Nói "cơ hội" - ngụ ý là cơ hội cho cuộc sống chung thành công của các bạn.

Hic.. ai mua tim tui bán tim cho. Ế mất rồi.

Bản thân chàng thì trong trường hợp nào cũng bằng lòng với cuộc sống. Tất cả những gì chàng cần chỉ là chén cơm và ly rượu. Chế độ ăn kiêng như thế cũng hoàn toàn đủ để chàng tiếp tục thả mình theo những cơn mơ. Song, để nuôi được vợ con bằng thu nhập như vậy thì là vấn đề rất khó khăn. Với kiểu đàn ông này bạn có hai cách: hoặc phải là một người thừa kế giàu có; hoặc bạn phải làm việc hai nơi - cho bản thân và cho chàng.

Chà... một dĩa mồi, một ly rượu và một cái headphone nghe có lí hơn. Ờ thêm một cái máy tính.

Đàn ông Song Ngư hoàn toàn không có thành kiến. Chàng có thể đồng ý với bất kỳ người nào và không bao giờ lên án ai. Thật là một đức tính tốt, nhất là ví dụ nếu người mà chàng luôn cảm thông lại là bà cụ thân sinh ra bạn.

Nói cách khác, ba phải. Nói cách khác nữa, nó có quan tâm đâu mà kiến với gián. Nhảm tiếp.

Nhiều Song Ngư có sở thích quan tâm đến mọi lĩnh vực khác thường: yoga, tướng số, chiêm tinh, thiền, bói bàn tay, và các môn kỳ bí khác. Trong số họ có không ít ông đồng, bà cốt được tín nhiệm. Nhờ biệt tài nhìn thấu rõ tâm can người khác, Song Ngư ít khi nhầm lẫn về ý đồ đính thực của mọi người. Bạn không thể nào lừa dối được Song Ngư.

Không biết "ngắm chó" có được liệt vào loại "lĩnh vực khác thường" không ta?

Hãy tặng chàng một ước mơ cho bữa ăn sáng, một câu truyện dí dỏm cho bữa trưa, và một khúc nhạc Trịnh cho bữa tối, và chàng sẽ dâng tặng bạn cả thế gian này.

Câu này phải sửa lại một chút: Hãy cho ngủ nhiều hơn một chút vào bữa sáng, một tí cơm vào bữa trưa, nhạc và cồn vào bữa tối, và bạn sẽ có một bài nhảm cỡ cỡ thế này.

Không biết vì dạo này ta nhiều chuyện nên cái sparse checkout mới lặc lè, hay vì cái sparse checkout lè nhè nên ta tám nhiều đến thế?


Cập nhật 4 lần. Lần cuối: Fri Aug 26 00:20:24+0003 2022

Tác giả: pclouds | Liên kết tĩnh | Hâm, Trích dẫn

Thứ sáu, 27 Tháng sáu năm 2008 18:54:00 ICT

[NSFW] Khoe hàng!!

Buồn đời lôi cái Webcam Logitech cũ mà bác Thanh ủng hộ, gắn vô coi nó còn chạy không. Tiện tay chụp mấy tấm hình kỉ niệm. Rất riêng tư, rất sốc. Cấm trẻ em dưới 18 tuổi, trên 19 tuổi. Cấm Pêđê. Hình đã được Gimp để tẩy mụn xoá nếp nhăn giảm độ dày kính.

Nhìn nghiêng:

:http://www.flickr.com/photos/pclouds/2615875844/

Nhìn là có thể liên tưởng ngay "The Internet is for ...". Nhìn mặt:

:http://www.flickr.com/photos/pclouds/2615875846/

Phải công nhận bạn Bi vừa đẹp trai vừa xinh gái.

TB. Cái hay của Linux là hiếm khi nào gài vô xong là chạy tuốt. Lần này xém tí nữa thất vọng vì nó... chạy tuốt. Nhưng không sao. Cheese không chạy, vì HAL không cho Quickcam Express là video4linux. Mánh sau có lẽ không áp dụng được cho ai, dùng hal-set-property để thêm thông tin cho HAL, đánh lừa Cheese:

hal-set-property --udi /org/freedesktop/Hal/devices/usb_device_46d_870_noserial --key info.capabilities --strlist-pre video4linux
hal-set-property --udi /org/freedesktop/Hal/devices/usb_device_46d_870_noserial --key video4linux.device --string /dev/video0
qcset /dev/video0  compat=dblbuf # gstreamer

Cập nhật 5 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ứ ba, 24 Tháng sáu năm 2008 20:13:08 ICT

Symbian sẽ trở thành hệ điều hành nguồn mở?

Hmm.. biết đâu mình sẽ có động lực để sắm cái tèng teng trước khi sang tuổi băm? Biết đâu... Đâu có biết.

Neo Freerunner cũng mới ra. Sao cái nỗ lực bất động của mình lung lay quá :(

Chó cắn! Đang rối tung với hai lựa chọn nữa là Android với Nokia N810 (Android thì chưa chắc "mở", nhưng cứ thế đã), giờ lại thêm MotoMing a1600/a1800. Mặc dù Motorola không thân gì với Linux lắm (vẫn sùng vụ modem SM56), nhưng chắc cũng quậy được. Khó quá!


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

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

Thứ bảy, 21 Tháng sáu năm 2008 21:52:41 ICT

Làm vườn kỹ thuật cao: Cắt tỉa lưu lượng mạng

Mấy hôm trước tự nhiên bon chen ráng kéo "Kungfu Panda" về, qua đường torrent. Hậu quả là ngắm net cao vút, trong khi tốc độ download thật sự có thể đi cạnh tranh với rùa, còn duyệt mạng quay về với thuở modem 28kbps. Tình thế thật sự phải chọn, hoặc tắt torrent, hoặc tiến hành cắt tỉa băng thông.

Lời đầu tiên. Làm vườn là một nghệ thuật cao quý, mặc dù người làm vườn thường nghèo (cũng như mấy thằng ác min hiếm khi giàu). Và bởi gì là nghệ thuật nên làm hơi bị khó, huống hồ gì đây là "nghệ thuật kỹ thuật cao". "Tài liệu làm vườn" trong trường hợp này là Chapter 9. Queueing Disciplines for Bandwidth Management.

Lời thứ hai. Đừng có thấy hay quá bắt chước. Trong hầu hết các trường hợp, đồng bào ta đều bị cắt băng thông ở cấp ISP, với máy cắt cỡ như máy tuốt lúa. Không cần tự cắt thì cũng đã đứt rồi. Chỉ cần tự cắt khi chính mình có khả năng cắt cổ mình bởi những chương trình có khả năng tàn phá cao, như P2P.

Đấy. Vậy trước hết là phải vì mọi người một tí. Nếu bạn có khả năng làm chậm toàn mạng chỉ vì P2P. Trước hết hãy tự trừng phạt mình bằng cách giới hạn tổng dung lượng mình có thể sử dụng, chừa băng thông cho người khác, với một dòng ngắn gọn thế này:

tc qdisc add dev eth0 root tbf rate 56kbit latency 50ms burst 1540

Lệnh "tc" (traffic shaping) có cú pháp giống y chang "ip" đã từng đề cập. Sẽ cần bật một số tuỳ chọn kernel để hỗ trợ traffic shaping. Ở đây ta gắn vào gốc của eth0 "bộ lọc" (qdisc) TBF(Token Bucket Filter) với tốc độ tối đa 56kbit và mấy cái lăng nhăng khác.

Quay lại nguyên tắc hoạt động của traffic shaping. Không phải lệnh trên đặt tốc độ download là 56kbit (download gì mà chậm thế!) mà là đặt ngưỡng upload. Vấn đề khá dễ hiểu: tiền trong tay quan là của quan. Ai đó gửi đồ cho mình chẳng lẽ mình quăng bỏ? Cái mình gửi cho người khác thì dĩ nhiên, muốn gửi hay không là quyền của mình. Kernel sẽ nhân danh "mình" thực hiện nhiệm vụ cao cả bảo đảm toàn hệ thống không thể gửi ra eth0 quá 56kbit mỗi giây. Nếu lố, nó có thể quăng bỏ những gói cần gửi, hoặc chờ một khoảng thời gian...

Vậy hạn chế tốc độ upload thì liên quan gì? Băng thông bị tiêu thụ nhiều nhất là do download. Nếu muốn hạn chế, phải nắm đầu thằng download trước. Nắm upload là một cách để nằm đầu thằng nắm đầu download. Đa số các giao thức đều có một cách để bên nhận gửi xác nhận với bên gửi là "tao nhận được rồi, gửi tiếp đi". Nếu bên gửi không thấy xác nhận, sẽ ngừng không gửi tiếp (biết đâu thằng nhận, nhận nhiều quá hộc máu chết rồi). Vậy bằng cách giảm tốc độ upload, ta giảm tốc độ xác nhận "đã nhận", gián tiếp làm giảm tốc độ download. Đây không phải là một khoa học chính xác, bởi vậy nên mới tán cho nó cái mác "nghệ thuật... kĩ thuật cao".

Một thứ khác có liên quan là tốc độ đáp ứng của một dịch vụ mạng. Nghĩ đơn giản, nếu chửi một đứa nào đó trên mạng YIM chẳng hạn, mất bao lâu nó sẽ chửi lại mình? Điều đó tuỳ thuộc vào việc mất bao lâu câu chửi của mình xuất hiện trên màn hình của nó. Các gói dữ liệu gửi ra sẽ được đưa vào hàng đợi (trước hết là hàng đợi trong kernel) chờ đến lượt mình được gửi đi. Nếu dùng P2P chẳng hạn, hàng đợi này sẽ đầy nhóc các gói của P2P, do đó "gói chửi" sẽ mất một khoảng thời gian nhất định trước khi rời máy, lại mất thêm một tí nữa trước khi rời ISP... Cộng tất cả lại sẽ mất khá lâu. Hậu quả là "sao mình chửi nó mà nó không chửi mình, nó không còn iu mình nữa chăng?" Đây chính là thứ mà tham số "latency 50ms" đề cập bên trên.

Quay lại bộ lọc TBF. Bà con sẽ phải bỏ thời gian ra đọc. Tuy nhiên có thể hình dung cách hoạt động của TBF như sau. TBF là một băng chuyền cung cấp hộp rỗng ở một tốc độ xác định (tham số rate). Mỗi khi có một gói muốn đi ra, một hộp rỗng sẽ được lấy khỏi băng chuyền, cho gói đó vào rồi quăng qua cho kernel gửi đi. Vậy chừng nào mà tốc độ gói còn chậm hơn tốc độ băng chuyền, ta vẫn đủ hộp để đóng gói, thế giới vẫn hoà bình.

Khi P2P hoạt động, lượng gói cần ra sẽ ào ạt, nhanh hơn tốc độ băng chuyền hộp. Băng chuyền này có một độ dài cố định (tham số burst) xác định số hộp chứa được. Với lượng gói dữ liệu quá nhiều, số hộp trên băng chuyền sẽ được dùng hết trong một thời gian ngắn. Không còn hộp, không đóng gói, khỏi đi ra, tốc độ upload buộc phải giảm đến tối đa tốc độ của băng chuyền. Nhiệm vụ hoàn tất! Mấy cái tham số còn lại, đọc tài liệu.

Hai cái qdisc (bộ lọc) khác nên xem là pfifo_fast phân loại dữ liệu dựa trên TOS(Type Of Service) được ghi trong các gói IP. Nguyên tắc đơn giản, gói nào có TOS cao (đúng ra là nằm trong band nào) sẽ ra trước. Các gói khác sẽ phải đợi cho đến khi "tầng lớp trên" đều đã được xuất ngoại hết. Bộ lọc còn lại là SFQ(Stochastic Fairness Queueing) làm việc theo nguyên tắc cào bằng chủ nghĩa, tất cả các đường truyền đều có khả năng đi ra như nhau.

Như vậy, nếu xác định tham số hợp lí, một máy sẽ không dùng hết băng thông. Máy khác sẽ có đường đi ra đi vô. Tuy nhiên vậy không sướng. Chẳng lẽ torrent bằng máy này và ssh/duyệt web ở máy khác? Ta cần cắt tỉa một cách tinh tế hơn, chào mừng đến với classful qdisc.

Với classful qdisc, ta sẽ có hai loại là qdisc (mấy cái bộ lọc nói nãy giờ) và class. Qdisc là những thằng có khả năng giảm tốc độ upload. Class là những đầu mối để gắn filter, dùng để quyết định một gói có thuộc về quyền xử lí của mình hay không. Qdisc và class sẽ hợp thành một "cây quyết định", xác định phải đối xử thế nào với gói nào. Classful qdisc là một vấn đề nhất đầu. Có một cái ultimate traffic conditioner nhưng ít nhất phải hiểu, đủ để có khả năng dọn dẹp cái đống hổ lốn đó, hoặc tinh chỉnh nếu cần.

"Ultimate traffic conditioner" dùng qdisc htb hoặc cbq, hàng hiệu, cao cấp. Ở đây một cái qdisc bèo hơn, prio, sẽ được dùng để nói qua các thứ cần biết trong classful qdisc. Ta sẽ nói trước hết về "cây quyết định". Mỗi nút trong cái cây này hoặc là qdisc, hoặc là class. Mỗi nút "class" sẽ được xác định bằng một cặp hai số, M:N. Nút "qdisc" được xác định bằng một số M:. Mỗi classful qdisc sẽ có một mớ nút con là class. Ta sẽ bằng đầu ở gốc, nút gốc có tên là "root" (quá dễ đoán). Vậy ta gắn qdisc prio, tên là 1: vào gốc của eth0

tc qdisc add dev eth0 root handle 1: prio

Có thể kiểm tra lại kết quả bằng "tc qdisc". Mỗi qdisc prio mặc định sẽ tạo ba class, tương ứng với ba "band" của nó. Do ta đặt tên qdisc là 1:, ta sẽ có ba class 1:1, 1:21:3. Mặc định các gói sẽ được cho vào một trong ba "band" dựa theo TOS (y chang như qdisc pfifo_fast). Cách hành xử của prio cũng y chang pfifo_fast, band 1 là band "quí tộc", band 2 là tầng lớp trung lưu, band 3 thuộc dạng bán mặt cho đất bán lưng cho trời. Chừng nào band 1 còn thì ưu tiên band 1, chừng nào hết band 1 thì tính sổ band 2, cứ thế. Ta có thể cắt tỉa từng band luôn, bằng cách thêm qdisc vào từng band. Qdisc ưa chuộng là sfq cho hai band cao cấp, tbf cho band bèo nhèo:

tc qdisc add dev eth0 parent 1:1 handle 10: sfq
tc qdisc add dev eth0 parent 1:2 handle 20: sfq
tc qdisc add dev eth0 parent 1:3 handle 30: tbf rate 40kbit latency 100ms burst 1500

Sau khi đã gắn qdisc vào ba band, ta có thể theo dõi thành quả bằng "tc -s qdisc". Nó sẽ cho biết mỗi band nhận được bao nhiêu (và trong trường hợp band cuối dùng tbf, cho biết đã vứt bao nhiêu gói). Cứ thử ssh, sẽ thấy band 1 được dùng. Đa phần dữ liệu còn lại rơi vào band 3.

Ví dụ trong trường hợp của tui, tui dùng https cho gmail và google reader. Hai thằng tui không muốn chậm trong bất kì trường hợp nào. Tui sẽ nâng giao thức https lên cấp "quí tộc", cho vào band 1, bằng filter. Mấy cái filter này có vẻ nhức đầu, tốt nhất cứ làm theo ví dụ và sửa đôi chút. Trường hợp của tui là

tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dport 443 0xffff flowid 1:1

443 là số cổng https. Đổi sang số cổng khác nếu muốn "lên đời" một cổng nào đó (cổng 53 của DNS có vẻ là một ứng cử viên tốt). "Ultimate traffic conditioner" có thêm một số cách dùng filter khác. Coi nếu thích.

Đấy. Chuyến tham quan thế là hết. Giờ ngồi đó và bắt đầu đọc!


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ứ bảy, 21 Tháng sáu năm 2008 16:52:31 ICT

HOWTO dùng Linux khi cúp điện

Bài này thuộc dạng HOWTO cao cấp, người bình thường đọc không hiểu.

Làm thế nào để dùng Linux khi cúp điện? Có rất nhiều thứ để thực hiện. Nhưng trước hết là dùng git (tại vì cúp điện thì lấy mạng đâu ra).

Rồi. Sau khi đã có mọi thứ mình cần trên máy. Ta bắt đầu giảm nguồn tiêu thụ:

  • Loại bỏ tất cả các kernel module không cần thiết
  • Tắt card mạng, loại bỏ kernel module xử lí USB
  • Chỉnh cpufreq governor về "powersave"
  • Tắt X, trở về console truyền thống
  • Tắt các ứng dụng chạy định kì, như cron
  • Bật "laptop_mode" nhằm hạn chế truy cập đĩa
  • Giảm độ sáng màn hình về mức gần tối thiểu
  • Mở powertop ra, ngắm "wakeups-from-idle per call" ở mức 7 (một desktop bình thường, con số này lớn hơn 80).
  • Mở thư mục cần làm việc ra, "git grep blah" một cái cho nó nạp tất tần tật từ đĩa lên memory cache
  • Hạn chế biên dịch trừ khi thật cần thiết
  • Khi cần đi vệ sinh, dùng hibernate-ram

ACPI dự đoán dùng được gần 4 giờ. Mới xài được hơn một tiếng, có điện trở lại. Khốn nạn.


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

Thứ ba, 17 Tháng sáu năm 2008 20:33:35 ICT

Có một (vài) bài ca không bao giờ quên

Vâng, có một vài bài ca khó mà quên bởi những ấn tượng sâu đậm về những bài ca đó. Bài đầu tiên, "The internet is for ..." (cứ tìm chuỗi đó trên Google). Hết sức hồn nhiên nhí nhảnh (pha nhảm nhí). Bài thứ hai nửa nhảm nhí mà nửa nghiêm túc, Code Monkey. Bạn nào lỡ gắn (tạm thời) đời mình với nghiệp "cóc cóc" sẽ rất là đồng cảm với bài này, đặc biệt những bạn nào đang cày Web. Trích dẫn chút để câu khách:

Code Monkey get up, get coffee. Code Monkey go to work.

Code Monkey have a boring meeting, with boring manager Rob

Rob say Code Monkey very dilligent, but his output stink.

His code not functional nor elegent, what do Code Monkey think?

Code Monkey think maybe manager want to write god damned login page himself

Code Monkey not say it out loud, Code Monkey not crazy, just proud.

Dĩ nhiên để đời thêm hương vị, Code Monkey cũng cần "thư kí"

Code Monkey hang around the frontdesk, tell your sweater look nice

Code Monkey offer buy you soda, bring you cup, bring you ice.

Và dĩ nhiên bộ dạng bèo nhèo, đồng lương cũng èo uột của Code Monkey thì làm gì kiếm được thư kí

You say no thank you for soda, cause soda make you fat

Anyway you busy with the telephone, no time for chat

Code Monkey have long way back to his cubicle, he sit down pretend to work

Code Monkey not thinking so straight, Code Monkey not feeling so great

Cái đó giải thích hết sức rõ ràng lí do tại sao hầu hết lập trình viên làm việc không hiệu quả. Thà không có, hoặc có "trọn gói". Còn không thì... kẹt lắm.

Cũng có một số bài thú vị khác, như Free Software Song. Tuy nhiên hôm nay sẽ giới thiệu một bài mang tính vĩ đại hơn nhiều.

Xin trân trọng giới thiệu God Wrote in Lisp.

(hình chỉ mang tính minh hoạ)

Không đề cập nhiều ở đây, chỉ biết bài hát sẽ đề cập nhiều chủ đề hấp dẫn, như assembler, C++, UNIX, COBOL...

And God wrote in Lisp code

Every creature great and small.

Don’t search the disk drive for man.c,

When the listing’s on the wall.

And when I watch the lightning

Burn unbelievers to a crisp,

I know God had six days to work,

So he wrote it all in Lisp.

Bài này dĩ nhiên hâm. Vui lòng chứng tỏ mình không hâm bằng cách đừng có bình luận bài này là "hâm".


Cập nhật 4 lần. Lần cuối: Thu Aug 25 17:43:17+0003 2022

Tác giả: pclouds | Liên kết tĩnh | Hâm, Nhạc, Liễu, Trích dẫn

Thứ hai, 16 Tháng sáu năm 2008 04:01:09 ICT

Suối nguồn: hết

Một tuyên ngôn của Howard Roark. Một phản tuyên ngôn của Ellsworth Toohey. Sự gục ngã của hiệp sĩ Gail Wynand.


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, Sách

Thứ bảy, 14 Tháng sáu năm 2008 22:04:36 ICT

Death, Come Near Me lên hạng ba những bài được nghe nhiều nhất

Không có gì đáng ngạc nhiên. Một tuyệt tác. Mỗi tội dài gấp ba những bài thông thường nên đường thăng tiến có hơi lận đận. Nếu DCNM(Death, Come Near Me) chỉ dài có 5 phút thì DCNM đã vượt Sleeping Sun từ lâu rồi. Dù là đồng hạng ba với Solitary ground, nhưng rõ ràng Solitary ground không có cửa cản bước DCNM.

Như vậy nếu tính theo đại diện cao nhất của từng ban nhạc thì thứ tự như sau:

  1. Nightwish (Sleeping Sun — 1)
  2. Metallica (Low Man’s Lyric — 2)
  3. Draconian (Death, Come Near Me — 3)
  4. Epica (Solitary Ground — 3)
  5. Johnathan Coulton (Code Monkey — 5)
  6. Tristania (Midwintertears — 8 )
  7. Lacrimosa (The Party Is Over — 14)
  8. Edenbridge (Forever Shine On — 20)
  9. Apocalyptica (Far Away extended version — 23)
  10. Within Temptation (Restless — 28 )
  11. Beseech (Gimme Gimme Gimme — 30)
  12. ABBA (The Winner Takes It All — 33)
  13. Blackmore’s Night (Wish You Were Here — 35)
  14. Scorpions (Holiday — 36)
  15. Chantal Kreviazuk (Leaving On A Jet Plane — 38 )
  16. Persephone (Wishful — 42)

Draconian đồng thời là ban nhạc thứ hai, sau Tristania, phá ngưỡng 2000 lần nghe, xếp thứ hai tổng sắp các ban nhạc được nghe nhiều nhất. Đáng tiếc là giờ cà phê trưa không có Internet, nên ABBA, Persephone, Alanis Morissette, Blackmore's Night hay The Cranberries hơi bị thua thiệt. Sáu tháng còn lại, không hi vọng có nhiều thay đổi trong nhóm mười ban nhạc đầu bảng, trừ việc Persephone nhiều khả năng sẽ vượt Nightwish chiếm hạng 5. Nightwish đi xuống bởi hai lí do:

  • Nhạc Nightwish không nhiều ở cơ quan, lại khá lộn xộn. Trong khi dạo này hay nghe theo từng album chứ không nhảy từa lưa như xưa (trừ Lacrimosa)
  • Hơi chán Nightwish từ sau khi Dark Passion Play được phát hành

Tốp dưới cũng không có ứng cử viên nào mới, trừ My Dying Bride đang từ từ lê lếch leo từng bậc một. Đường còn xa nếu My Dying Bride muốn vào tốp 20.

Nhân dịp vừa hết nửa năm, xem lại coi sáu tháng rồi mình đã nghe những gì. Tính theo bài nhạc, nói đơn giản thế này: Deadlands của Tristania đứng thứ nhì (một ứng cử viên tiềm tàng, dù thứ hạng tổng sắp hiện thời của Deadlands chỉ mới 37). Phần còn lại, từ một đến mười lăm, do... Persephone nắm hết: Wishful, Strange, My Greatest Day, Untitled, The Man Who Swallowed My Soul, Coming Home, Stained, Buried, Immersion, Blue, Mean, Merciless, Stranger, Everlasting, My Prayer. Persephone xứng đáng có một bài cảm nhận riêng.

Phần thứ tự còn lại cho đến 50 cũng đơn giản: hoặc Draconian, hoặc Tristania. Đại diện ABBA, Another Town, Another Train đứng thứ 57.

Với sự độc chiếm gần như toàn bộ của bộ ba trên trong bảng sắp hạng các bản nhạc, không ngạc nhiên gì khi bộ ba này chiếm ba thứ hạng đầu trong bảng tổng sắp các ban nhạc, sáu tháng đầu năm. Tiếp theo là Lacrimosa, Blackmore's Night, ABBA, Epica, Queensryche, Within Temptation và, một ứng cử viên mới lên chút xíu đã xuống, Theatres des Vampires.


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ứ tư, 11 Tháng sáu năm 2008 17:12:25 ICT

Linh tinh chuyện dùng Linux trên VirtualBox

Ghi lại một số trục trặc (nhảm nhí) khi cài đặt một cái mạng Linux ảo để cày.

Chuyện đầu tiên là mạng miếc. Phải nói Linux càng ngày càng phức tạp, khó hiểu, khó nắm bắt. Bạn cần cài hai máy gần y chang như nhau. Do đó bạn quyết định cài máy đầu tiên. Sau đó "ghost" một cái để tạo cái đĩa cứng cho máy thứ hai. Vụ này dễ, chỉ cần "VBoxManage clonevdi source.vdi dest.vdi" là xong. Sau khi xong cái dest.vdi, tạo cái máy ảo xài dest.vdi, chạy nó, nó nhận ra card mạng, nạp đúng module, nhưng ifconfig không thấy gì ráo! Vấn đề nằm ở phần Linux cố làm ra vẻ thân thiện với người dùng, nói cách khác ngắn gọn hơn là /etc/udev/rules.d/70-persistent-net.rules.

Quay về chuyện hồi xửa hồi xưa. Bạn có hai cái card mạng, cắm vô có được eth0 và eth1 (nhưng nói thiệt không biết cái nào là cái nào, phải thử). Một ngày đẹp trời bạn tháo hai cái card ra tân trang, xong cắm vô lộn chỗ, nó đổi eth0 thành eth1, và eth1 thành eth0 (do cách đánh số tuỳ vào vị trí phần cứng)! Đó là chuyện xưa. Ngày nay để tránh trường hợp đó, udev/hotplug được dùng (cụ thể là /etc/udev/rules.d/75-persistent-net-generator.rules) để phát hiện ra những card mạng mới và cố định MAC với mã ethX (lưu trong 70-persistent-net.rules đã đề cập).

Chuyện có vậy. Vấn đề với máy ảo là khi tạo cái máy ảo mới, bạn có một cái card mạng mới, với MAC mới, trong khi cái đĩa cứng mới lại lưu thông tin MAC cũ. Vì lí do nào đó (không chừng lỗi), cái 70-persistent-net.rules không cho phép ethX mới xuất hiện. Giải pháp hết sức đơn giản, xoá béng thằng 70-persistent-net.rules.

Một giải pháp khác đề cập trong ticket 660 là bỏ qua vùng địa chỉ MAC của VirtualBox (trong 75-persistent-net-generator.rules):

ATTR{address}=="08:00:27:*", GOTO="persistent_net_generator_end"

Quay về VirtualBox. Ai muốn co cái đĩa cứng ảo của mình lại (tại xài không hết), thì có thể xem: Keeping filesystem images sparse hoặc Tip: (Better) Shrinking of Ext(2/3) partitions. Cái chương trình zerofree xinh xắn đó hoạt động tốt, co 1.4GB còn 800MB.

Cuối cùng là chuyện lập mạng Ethernet ảo. Chuyện này không khó, thiên hạ làm rầm trời. Ghi lại cho vui. Để có một cái mạng Ethernet, nhất thiết phải cần cái Hub. "Hub ảo" ở đây có tên kĩ thuật là "Ethernet bridge", khi cấu hình kernel nó tên là "802.1d Ethernet Bridging", module tên "bridge.ko", điều khiển bằng brctl trong gói net-misc/bridge-utils. Sau khi có hub, dĩ nhiên cần mấy cọng cáp mạng. "Cáp ảo" ở đây là "tun/tap device".

Giả sử ta có hai máy ảo A và B. Ta sẽ "sắm ảo" hai cọng cáp, lấy tên là tap0 và tap1:

tunctl -t tap0 -u pclouds
ip link set tap0 up
tunctl -t tap1 -u pclouds
ip link set tap1 up

Lí do đặt user "pclouds" (dĩ nhiên tự động đổi sang user cần dùng) là để VirtualBox có thể sử dụng được mấy cọng cáp này mà không cần root. Nếu không thích "-u", cứ vô tư tham khảo bug 7362. "Gắn cáp" vào hai máy A và B bằng cách chọn loại kết nối là "Host Interface" và "Interface Name" là tap0/tap1 tương ứng:

VBoxManage modifyvm A -nic1 hostif
VBoxManage modifyvm A -hostifdev1 tap0
VBoxManage modifyvm A -cableconnected1 on
VBoxManage modifyvm B -nic1 hostif
VBoxManage modifyvm B -hostifdev1 tap1
VBoxManage modifyvm B -cableconnected1 on

Giờ ta sẽ phải sắm cái hub mới, cho nó cái tên br0. Sau đó gắn hai cọng cáp vào hub.

brctl addbr br0
brctl addif br0 tap0
brctl addif br0 tap1
brctl show # kiểm tra cho chắc

Cái "hub" này có một cọng dây vô hình nối vào máy thật (host). Ta sẽ đặt thông tin IP cho cái máy thật mà giả này, để liên lạc với hai cái máy ảo kia.

ip link set br0 up
ip addr add 192.168.1.1/24 dev br0

Lưu ý là khác với cấu hình tun/tap bình thường cho VirtualBox, cấu hình này không đặt địa chỉ mạng cho tap0 lẫn tap1. Dây nhợ thì làm gì có địa chỉ!

Về cơ bản như thế là xong. Máy A muốn nói chuyện với máy thật, dùng IP của br0. Máy thật muốn nói chuyện với A hoặc B, dùng IP (cùng vùng mạng) do hay máy đó đặt (hoặc qua dhcp). Dĩ nhiên hay máy A và B tự do tâm sự với nhau. Muốn thêm bao nhiêu máy, cứ thêm bấy nhiêu tapX rồi "brctl addif" nó vào. Muốn theo dõi cứ tcpdump -l -X -s 0 -i br0.


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, OSS, Mánh và mẹo

Thứ ba, 10 Tháng sáu năm 2008 20:14:09 ICT

FreeBSD cảm nhận đầu tiên

Vậy là cuối cùng cũng có thể vỗ ngực (nhẹ nhẹ) nói "biết xài UNIX". Trước tới giờ toàn dùng Linux. Đúng ra mấy hôm trước đã gặp FreeBSD (một người nhờ chỉnh một số thứ trên "Linux"), cũng biết dùng ports (mò đại mà trúng). Nhưng chưa cài đặt FreeBSD bao giờ.

Cái sự chảnh, không thèm đọc kỹ tài liệu, làm hố, quăng 7.0-RELEASE-i386-bootonly.iso vô chạy. Đến lúc nó đòi các gói qua CD. Cứ unmount hoài không ra, lại tưởng bệnh VirtualBox. Mèn, vụ đẩy ra đút vào này từ hồi Red Hat 6.2 đã có, thế mà FreeBSD thì không. Không hiểu vì sao "Emergency Holographic Shell" của FreeBSD không chạy được lệnh gì cả, trừ "cd".

Sau khi thọc ngoáy một hồi, lên được cái shell mới coóng. Mò mẫm cấu hình card mạng (pcn0). Cũng xong, nhưng ping không chạy. FreeBSD route thì không biết xài. Đã vậy do cài minimal nên thậm chí "man route" cũng không có luôn. Sờ anh Google mãi anh ấy mới bảo do dòng "media: Ethernet none", thử luôn ifconfig pcn0 media 10baseT/UTP không ăn thua. Kết quả là phải dùng chip Am79C970A! Lận đận mãi cũng tạo được user pclouds, chạy sshd. Xem route table bằng.. hic.. netstat -rn (mò mờ mắt trong man route)

Cấu hình FreeBSD nằm khá nhiều trong rc.conf (Gentoo cũng từng như thế hồi 2004, nhưng gần đây phần cấu hình này được rải ra trong /etc/conf.d)

Lần đầu xài FreeBSD, gặp.. panic. Cái gì đó trap 12. Thất vọng ê chề.

Vài bữa tới mò cho hết FreeBSD handbook. Trông cũng hay hay, mặc dù chưa thấy cái hay nổi bật nào.


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 | OSS

Thứ hai, 09 Tháng sáu năm 2008 19:20:54 ICT

iproute2 dành cho người lạc hậu (xài ifconfig/route)

Một quản trị Linux điển hình sẽ hết sức yêu mến routeifconfig. Tuy nhiên có một công cụ khác cũng có khả năng tương đương, lại tiềm ẩn những tính năng nâng cao, mà có lẽ ai cũng biết (mỗi tội không chịu dùng): ip. iptc là hai công cụ thuộc gói iproute2. Gói này được nhắc đến trong một tài liệu có tên nghe rất kêu: Linux Advanced Routing & Traffic Control. Có lẽ chính vì chữ "advanced" mà bà con chạy có cờ.

iproute2 đúng là để dùng ở mức cao cấp, cung cấp những tính năng cao cấp như advanced routing, load balancing, traffic shaping, tunnelling... Tuy nhiên, "ip" cũng có thể được dùng ở mức bình dân: thay thế cho ifconfig và route. Ưu điểm của "ip" so với ifconfig và route là cách sử dụng thống nhất, gõ lệnh ngắn gọn, và dĩ nhiên là khả năng chuyển lên mức "cao cấp" dễ dàng.

Bài này sẽ đề cập một số thao tác thường dùng của ifconfig/route và lệnh ip tương ứng. Để bắt đầu, có thể gõ "ip help". ip có một số lệnh con như link, address, route, tunnel... Ta sẽ chỉ quan tâm address, link và route. Để xem cách sử dụng từng lệnh, gõ giống như "ip route help". Nói chung nếu xem phần trợ giúp này thì khác nhức đầu. Đó là lí do của bài này.

Hãy bắt đầu bằng việc xem cấu hình interface. Lệnh thường dùng sẽ là "ifconfig". Nhìn từ góc nhìn của iproute2, ifconfig hiện cùng lúc hai thông tin: thông tin IP (layer 3) và data-link (layer 2). Với iproute2, hai thông tin này được tách riêng, tương ứng, thành hai lệnh "ip address" và "ip link". Để xem thông tin, đơn giản gõ:

ip address

hoặc

ip link

Mỗi lệnh như trên sẽ có một hành động liên quan. Hành động mặc định khi không chọn hành động nào cả là "show". Lệnh trên hoàn toàn tương đương với ip addr show hoặc ip link show. Để xem một interface, ta phải ghi "show" tường minh. Ví dụ ip addr show eth0

Tiếp đến là một lệnh đơn giản dùng để bật hoặc tắt một interface. Với ifconfig đó là "ifconfig eth0 up" hoặc "ifconfig eth0 down". Với iproute2, sẽ là một trong hai lệnh sau:

ip link set eth0 up
ip link set eth0 down

Lệnh iproute2 trực quan hơn so với ifconfig. Một số thông số khác như mtu, multicast, MAC address... cũng có thể đặt qua "ip link set".

Sau khi đã bật một interface, ta sẽ muốn đặt địa chỉ cho nó. Với iproute2, nó là

ip address {add|change|replace} PREFIX dev eth0
ip address del PREFIX dev eth0

PREFIX là một khái niệm được dùng nhiều trong hướng dẫn của ip. Nó là địa chỉ mạng xuyệt số bit mạng, hay CIDR.

Vậy là thiết lập xong cấu hình interface. Với cấu hình route, lệnh sử dụng là "ip route"

  • Xem bằng "ip route" hoặc "ip route list"
  • Thêm route bằng "ip route add". Ví dụ "ip route add 10.0.0.2 via 10.0.0.1 dev eth2"
  • Đổi route bằng "ip route replace", dùng giống y chang "ip route add". Ví dụ "ip route replace default via 10.0.0.254"
  • Xoá route bằng "ip route del"
  • Xoá sạch tất tần tật bằng "ip route flush"

Có một cái mới trong "ip route" là "ip route get", dùng để xác định xem, với một IP cho trước, thì nó sẽ đi đâu, dựa trên bảng dẫn đường đang dùng.

Ngoài lề, "ip route" (và bạn bè "ip rule" của nó) là nền tảng của "advanced routing". Trong đó bảng dẫn đường không chỉ đơn giản là một bảng, mà có thể là nhiều bảng. Việc xác định địa chỉ nguồn nào dùng bảng nào là công việc của "ip rule".

Nãy giờ xem qua các lệnh "ip", dễ nhận ra tính nhất quán trong cấu trúc lệnh. Sau một tí thời gian làm quen sẽ quen với "phong cách iproute2". Tuy nhiên rõ ràng gõ lệnh không ngắn hơn. Thật ra có thể gõ các lệnh "ip" cực ngắn:

  • "ip a" thay cho "ip address"
  • "ip r" thay cho "ip route" ("ip ru" thay cho "ip rule")
  • "ip l" thay cho "ip link"

Như vậy, để kiểm tra cấu hình mạng, chỉ cần gõ mười hai phím, và không cần dùng TAB (đỡ hư TAB).

Để kết thúc, hãy khoe hàng một lệnh dùng làm load balancing ở mức routing. Hết sức đơn giản (ở đây giả định hai gateway, thích thêm bao nhiêu thì cứ nối thêm vào):

ip route replace default nexthop via GW1-ADDR nexthop via GW2-ADDR

(lưu ý lệnh này không chạy, thông báo invalid argument, nếu chưa bật tính năng "advanced routing" trong kernel)

Ày, đừng có chê nó dở. Dĩ nhiên là nó dở. Mần load balancing chính hiệu thì lệnh đó đâu có đủ. Để khoe thôi!

Hi vọng sẽ có dịp (ý là có hứng) để viết tiếp về advanced routing dùng iproute2, ipv6 và biết đâu cả traffic shaping.


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ứ bảy, 07 Tháng sáu năm 2008 17:46:03 ICT

Internet HTVC

Mới lắp thử cái HTVC Internet. Nó dùng một cục Cable Modem Thompson TCM420. Nói chung về tốc độ thì không nói (mà nói chung nhanh quá để làm gì, có bao giờ xài hết đâu, trừ khi hốt phim). Cái cáp Ethernet cũng chả có gì đáng nói. Cái hay là cắm cọng USB vào máy, nó nhận ra ngay và gắn mác "eth3" cái rụp! Một hiện tượng cực cực kỳ lạ (đặc biệt lạ đối với máy này do dùng kernel được "thiết kế đặc biệt"). Té ra nó dùng cái gì đó mà module cdc_ether xử lí ngon lành.

Do có lẽ là đấu nối trực tiếp không qua router như ADSL, nên máy trở nên trần truồng trước Internet. Chuyện này cũng không xấu với những thằng hay thọc ngoáy máy tính và ADSL router lại là rào cản. Nhưng cũng không hay lắm, đặc biệt là các máy chạy Windows.

Kết quả traceroute:

 2  user1-116-111-232.enet.vn (116.111.232.1)  72.737 ms  10.463 ms  13.953 ms
 3  user100-171.enet.vn (203.190.171.100)  99.964 ms  91.578 ms  86.958 ms
 4  if-6-2.core3.HK2-HongKong.teleglobe.net (216.6.95.113)  300.967 ms 303.832 ms  283.952 ms
 5  if-5-0-0.core1.TV2-Tokyo.teleglobe.net (116.0.82.2)  287.965 ms 256.621 ms  250.988 ms
     MPLS Label=3147 CoS=0 TTL=1 S=1
 6  if-0-0-0-736.mcore3.LAA-LosAngeles.teleglobe.net (209.58.61.34) 335.940 ms  334.723 ms  338.975 ms
     MPLS Label=1185 CoS=0 TTL=1 S=1

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ứ năm, 05 Tháng sáu năm 2008 23:21:52 ICT

Suối nguồn (2)

Ôi, Dominique! Hiệp nữ của anh! Quyến rũ chết người. Một nữ Don Juan. Tiếng "không" thật ngọt ngào. Thần tượng của giới... không còn trẻ. "Ông dang hai bàn tay ra, nhún vai bất lực." Nói như kiểu một thằng thường hay nói, "chim sẻ làm sao hiểu đại bàng" Hú hú

Mẹ kiếp cứ đà này giống như mình đang chép lại nguyên cuốn truyện quá. Trích chương XVII

Ông đứng dậy, tươi cười và cầm tay Dominique. "Tôi đã nghĩ là sẽ ghé vào trên đường về nhà," ông nói. "Tôi có điều này cần nói với em. Mọi chuyện thế nào, cô bé?"

"Như tôi mong đợi."

Cô kéo mũ ra và ném nó xuống chiếc ghế đầu tiên cô nhìn thấy. Tóc cô ẹp xuống tạo thành một gợn sóng phẳng ngang trán và đổ thành một đường thẳng tới đôi vai; trông nó mềm mại và căng, như một chiếc mũ bơi bằng kim loại bóng và nhạt màu. Cô đi đến cửa sổ và đứng nhìn ra ngoài, phía trên thành phố. Cô hỏi mà không quay lại: "Anh muốn nói gì với tôi?"

Alvah Scarret quan sát cô một cách thích thú. Từ lâu ông đã từ bỏ tất cả các cố gắng vượt qua việc nắm bàn tay cô khi không cần thiết hay vỗ vào vai cô; ông đã thôi không nghĩ đến chủ đề đó, nhưng ông có một cảm giác lờ mờ, nửa tỉnh táo, mà ông đã tổng kết cho bản thân mình trong mấy từ: Biết đâu đấy.

"Tôi có tin vui cho em đây, cô bé." Ông nói. "Tôi có một kế hoạch nhỏ, chỉ là một chút sắp xếp lại, và tôi đã nghĩ ra phải kết hợp mấy thứ với nhau để thành lập một Ban Phúc lợi Phụ nữ. Em biết đấy, giáo dục, kinh tế gia đình, chăm sóc trẻ nhỏ, vị thành niên phạm pháp và tất cả những vấn đề khác cần được đảm đương bởi một người. Và tôi thấy không ai làm tốt hơn cô gái nhỏ của tôi đây."

"Anh muốn nói là tôi?" cô hỏi mà không quay lại.

"Còn ai vào đây nữa. Ngay khi Gail trở về, tôi sẽ xin ông ta duyệt."

Cô quay lại và nhìn vào mặt ông, hai cánh tay cô bắt chéo vào nhau, bàn tay nắm lấy khuỷu tay.

Cô nói: "Cảm ơn Alvah. Nhưng tôi không muốn làm công việc đó."

"Em nói không muốn công việc đó là ý làm sao?"

"Là ý tôi không muốn làm công việc đó."

"Chúa ơi, em có nhận ra rằng đấy là một bước tiến như thế nào không?"

"Tiến tới cái gì?"

"Sự nghiệp của em."

"Tôi chưa bao giờ nói tôi dự định có một sự nghiệp."

"Nhưng em hẳn không muốn cứ viết mãi một cột báo nhỏ ở trang cuối chứ!"

"Không phải mãi mãi. Chỉ đến khi nào tôi chán."

"Nhưng em hãy nghĩ đến điều em có thể làm trong một cuộc chơi thật sự. Hãy nghĩ đến việc Gail có thể làm cho em một khi em được ông ta quan tâm!"

"Tôi không muốn được ông ta quan tâm."

"Nhưng chúng tôi cần em, Dominique. Giới phụ nữ sẽ hoàn toàn đi theo em, sau tối nay."

"Tôi không nghĩ như vậy."

"Tại sao chứ, tôi đã giữ hai cột báo để đăng chuyện về cuộc mít-tinh và bài diễn thuyết của em."

Cô với lấy điện thoại và đưa ống nghe cho ông. Cô nói:

"Anh nên bảo họ bỏ nó đi."

"Tại sao?"

Cô lục một đống giấy lộn xộn trên bàn, tìm kiếm những tờ được đánh máy và đưa chúng cho ông.

"Đây là bài diễn thuyết tôi đã viết tôi nay," cô nói.

Ông liếc nhìn mảnh giấy. Ông bóp trán một cái, không nói gì. Sau đó ông chộp lấy điện thoại và yêu cầu đăng một thông báo càng ngắn gọn càng tốt về buổi mít-tinh và không nói tên người diễn thuyết.

"Được rồi," Dominique nói khi ông ta hạ ống nghe xuống. "Tôi bị sa thải chứ?"

Ông ta lắc đầu một cách buồn thảm. "Cô muốn như vậy chứ?"

"Không nhất thiết."

"Tôi sẽ ém chuyện này đi." Ông làu bàu. "Tôi sẽ không cho Gail biết."

"Nếu như anh muốn vậy. Tôi không quan tâm, thế nào cũng được."

"Nghe này, Dominique -- Ồ, tôi biết, tôi không được phép đặt câu hỏi -- nhưng tôi chỉ thắc mắc vì cái quái gì mà em cứ luôn làm những chuyện như thế?"

"Chẳng vì cái quái gì cả."

"Xem nào, em biết đấy, tôi đã nghe nói về cái bữa tiệc phô trương ấy, nơi mà em đã đưa ra một số nhận xét về chính chủ đề này. Thế rồi em lại đến và nói những điều thế kia trong buổi mít-tinh cấp tiến."

"Cả hai đều đúng, đúng không?"

"Thì, đúng rồi, nhưng nếu em đã chọn việc nói ra thì tại sao em không đảo ngược hai dịp với nhau?"

"Làm thế thì có ý nghĩa gì?"

"Thế việc em làm thì có ý nghĩa gì?"

"Không, chẳng có ý nghĩa gì cả. Nhưng nó làm tôi thích thú."

"Tôi không hiểu em, Dominique. Em đã từng làm thế này rồi. Em cứ đồng ý làm việc, rồi em làm mọi thứ rất tốt, và khi em sắp sửa có thể tiến một bước dài về phía trước thì em lại phá hỏng tất bằng cách gây ra một việc như thế này. Tại sao chứ?"

"Có lẽ đó chính là lý do tại sao đấy."

"Em có thể nói cho tôi -- như với một người bạn, vì tôi thích em và quan tâm tới em -- xem em thực sự theo đuổi cái gì?"

"Tôi nghĩ điều đấy rất rõ ràng. Tôi không theo đuổi điều gì cả."

Ông dang hai bàn tay ra, nhún vai bất lực.

Cô mỉm cười vui vẻ.

"Có gì mà trông anh phải thiểu não thế nhỉ? Tôi cũng thích anh, Alvah, và tôi quan tâm đến anh. Thậm chí tôi còn thích nói chuyện với anh -- điều này còn hay hơn. Bây giờ hãy ngồi yên nào và thư giãn đi, tôi sẽ mang cho anh một ly rượu. Anh cần một ly rượu, Alvah ạ."

Cô mang cho ông một cái ly để lạnh với những viên đá kêu lanh canh trong bầu không khí yên lặng. "Em là một đứa bé dễ thương, Dominique," ông nói.

"Tất nhiên rồi. Tôi chính là như thế."

Cô ngồi xuống mặt bàn, hai bàn tay xoè ra phía sau lưng, người dựa lên hai cánh tay và đôi chân đung đưa chầm chậm. Cô nói:

"Anh biết đấy. Alvah, sẽ thật khủng khiếp nếu như tôi có một công việc mà tôi thực sự muốn."

"Thế đấy, trong hết thảy mọi điều! Trong hết thảy những điều ngốc nghếch em nói! Ý của em là sao?"

"Chỉ thế thôi. Rằng sẽ thật khủng khi khi có một công việc mà tôi thích và tôi không muốn mất nó."

"Tại sao?"

"Bởi vì tôi sẽ phải phụ thuộc vào anh -- anh là một người tuyệt vời, Alvah, nhưng mà anh không thực sự gây hứng thú cho ai và tôi không cho là sẽ hay ho khi phải cúi mình trước một cái roi trong tay anh -- thôi nào, đừng phản đối tôi, đó có thể là một cây roi nhỏ rất lịch sự, và chính điều này lại càng làm cho sự việc trở nên tồi tệ hơn. Tôi có thể phải phụ thuộc vào sếp Gail của chúng ta -- tôi chắc rằng ông ta là người vĩ đại, chỉ có điều tôi chắc chắn là tôi không bao giờ thèm để ý đến ông ta."

"Cái gì làm cho em có thái độ điên rồ như vậy nhỉ? Khi mà em biết rằng Gail và tôi có thể làm bất cứ điều gì cho em, và riêng cá nhân tôi thì..."

"Không phải chỉ có thế đâu, Alvah. Không phải là vì riêng anh. Nếu như tôi tìm thấy một công việc, một kế hoạch, một ý tưởng hay một người mà tôi muốn -- tôi có thể phải phụ thuộc vào nó hoàn toàn. Mọi thứ đều có những mối dây dẫn đến những thứ khác. Tất cả chúng ta đã quá ràng buộc lẫn nhau. Chúng ta đều đang trong một cái lưới, cái lưới đó đang chờ, và chúng ta bị mắc vào đó chỉ bởi vì một ham muốn duy nhất. Anh mong muốn một thứ gì đó và nó trở thành quý giá đối với anh. Anh có biết ai đang đứng kia, sẵn sàng cướp nó khỏi tay anh không? Anh không thể biết, nó có thể ở rất sâu và rất xa, nhưng có ai đó sẵn sàng và anh sẽ sợ tất cả bọn họ. Và anh sẽ luồn cúi, anh sẽ bò, anh sẽ van xin và anh sẽ chấp nhận họ -- chỉ để họ cho anh có cái anh muốn. Và hãy nhìn xem, anh đã chấp nhận ai."

"Nếu như tôi đúng trong việc hiểu rằng cô đang phê phán nhân loại nói chung..."

"Anh biết không, điều đó thật kỳ cục -- cái ý nghĩ của chúng ta về nhân loại nói chung ấy. Chúng ta đều có một hình ảnh mơ hồ, lung linh khi chúng ta nói đến nhân loại nói chung -- như một cái gì đó trang nghiêm, to lớn và quan trọng. Nhưng trên thực tế, tất cả những gì chúng ta biết về nó chỉ là những người mà chúng ta gặp hằng ngày. Nhìn họ xem! Anh có thấy cái gì to lớn và trang nghiêm ở họ không? Chẳng có cái quái gì ngoài các bà nội trợ cò kè mặc cả bên những chiếc xe đẩy hàng, hay bọn trẻ con rớt rãi lòng thòng viết bậy viết bạ lên vỉa hè, hay bọn gái mới lớn say xỉn? Hay những kẻ tương tự như thế về tinh thần? Thực ra, cũng có thể có chút kính trọng với những người phải chịu đựng khổ sở. Họ còn có một chút tư cách nào đấy. Nhưng anh đã bao giờ nhìn bọn họ khi bọn họ sung sướng chưa? Đấy là lúc anh thấy sự thật. Hãy nhìn những kẻ đang tiêu những đồng tiền mà bọn họ đã bán mình để có chúng --- ở các công viên giải trí hay ở các buổi biểu diễn. Cứ nhìn lũ người giàu có và có cả thế giới dưới chân họ. Cứ xem xem họ chọn cái gì để giải trí. Hãy quan sát bọn họ trong các quán rượu hạng sang. Đấy chính là cái nhân loại nói chung của anh đấy. Tôi không muốn động vào chúng."

"Nhưng khỉ thật! Em không nên nhìn nhận vấn đề như thế. Đấy đâu phải là tất cả. Vẫn có cái tốt kể cả trong những người tồi tệ nhất. Ai cũng có cái tử tế mà."

"Thế lại càng tệ. Thật là xúc động làm sao khi thấy một người có một hành động anh hùng, và rồi sau đó lại được biết rằng anh ta đến các buổi biểu diễn tạp kỹ hổ lốn để giải trí. Hay thấy một người vẽ một bức tranh tuyệt tác và rồi được biết rằng anh ta ngủ với bất cứ con điếm nào anh ta gặp?"

"Thế em muốn gì? Sự hoàn hảo chăng?"

"Hoàn hảo hoặc không gì cả. Cho nên anh thấy đấy tôi chọn cái không gì cả."

"Điều đó không có ý nghĩa gì cả."

"Tôi chọn một ham muốn duy nhất mà một người có thể thực sự cho phép chính bản thân mình. Sự tự do, Alvah ạ, tự do."

"Em gọi đó là tự do?"

"Không đòi hỏi gì. Không mong chờ gì. Không phụ thuộc vào cái gì."

"Thế nếu em tìm thấy cái mà em muốn thì sao?"

"Tôi sẽ không tìm kiếm nó. Tôi sẽ không chọn việc nhìn thấy nó. Nó sẽ là một phần thế giới đáng yêu của các anh. Tôi sẽ phải chia sẻ nó với tất cả các anh -- tôi sẽ không làm như thế. Anh biết không, tôi không bao giờ mở lại bất kỳ một quyển sách tuyệt hay nào mà tôi đã từng đọc và say mê. Đọc lại những cuốn sách này làm cho tôi đau khổ khi phải nghĩ đến những cặp mắt khác cũng đã đọc nó và rồi phải nghĩ những cặp mắt đó thuộc về ai. Những điều như vậy không thể bị chia sẻ. Không phải với những người như thế."

"Dominique, thật không bình thường khi có tình cảm quá mạnh như thế về bất cứ cái gì."

"Đó là cách có tình cảm duy nhất của tôi. Hoặc là tôi sẽ chẳng có tình cảm gì."

"Dominique, em yêu quý" ông nói với một giọng sốt sắng, quan tâm chân thành, "Tôi ước gì tôi là cha em. Em đã trải qua bi kịch gì trong tuổi thơ của mình thế không biết?"

"À, không hề. Tôi có một tuổi thơ tuyệt vời. Tự do, bình yên và không bị làm phiền quá nhiều bởi bất kỳ ai. Thực tình thì tôi luôn cảm thấy một nỗi buồn chán thường xuyên. Nhưng tôi đã quen với nó."

"Tôi nghĩ em là sản phẩm không may của cái thời đại này. Đó là điều mà tôi thường nói. Chúng ta ích kỷ, quá suy đồi. Nếu như chúng ta khiêm cung quay lại với những đức hạnh đơn giản..."

"Alvah, sao anh lại có thể nói những điều như thế nhỉ? Nó chỉ dành cho những bài xã luận của anh và..." Cô ngừng lại, nhìn vào mắt ông: hai con mắt ngạc nhiên và có chút thương tổn. Sau đó cô cười to. "Tôi sai rồi. Anh thực sự tin tưởng vào tất cả những cái đó. Nếu như đấy thực sự là niềm tin hoặc cái gì đấy mà mặt anh thể hiện. Ôi, Alvah! Đó chính là lý do vì sao tôi lại thích anh. Đo là lý do tại sao tôi lại đang lặp lại, vào chính lúc này, cái điều mà tôi đã làm tối nay tại buổi mít-tinh."

"Cái gì?" ông bối rối hỏi.

"Nói chuyện như tôi đang nói với anh đây -- với anh như chính anh. Thật dễ chịu khi nói chuyện với anh về những thứ này. Anh biết không, Alvah, người nguyên thủy đã tạc tượng các vị thần của họ giống như hình dáng con người? Thử nghĩ xem bức tượng của anh trông như thế nào nhỉ -- tượng anh khoả thân, có đủ bụng và tất cả mọi thứ."

"Nào, cái này thì liên quan gì đây?"

"Chả liên quan đến cái gì cả, bạn thân mến ạ. Thứ lỗi cho tôi." Cô nói thêm: "Anh biết đấy, tôi yêu những bức tượng đàn ông khoả thân. Đừng có thần người ra thế. Tôi nói là tượng. Tôi có riêng một bức. Đấy là tượng Helios. Tôi có được nó từ một tu viện bảo tàng ở châu Âu. Tôi đã rất vất vả mới có được nó -- tất nhiên là người ta không bán bức tượng. Tôi nghĩ tôi đã phải lòng bức tượng, Alvah ạ. Tôi đem nó về nhà với tôi."

"Nó đâu rồi? Tôi muốn xem một cái gì đó mà em thích, để đổi gió."

"Nó bị vỡ rồi."

"Bị vỡ? Một cái tượng đã được đưa vào bảo tàng? Làm sao lại có chuyện đó?"

"Tôi đã đập nó."

"Thế nào?"

"Tôi đã ném nó xuống một ống thông hơi. Ở phía dưới có một cái nền bê tông."

"Em hoàn toàn điên rồi à? Tại sao?"

"Để không người nào khác có thể nhìn thấy bức tượng nữa."

"Dominique!"

Cô lắc mạnh đầu như thể rũ bỏ câu chuyện; mái tóc dày thẳng của cô rối thành một đường gợn, trông giống như một con sóng gợn trên một mặt hồ thuỷ ngân đang hoá lỏng một nửa. Cô nói: "Tôi xin lỗi, bạn yêu quý. Tôi không muốn làm anh sốc. Tôi nghĩ tôi có thể nói chuyện với anh vì anh là người đã miễn dịch với cú sốc. Lẽ ra tôi không nên làm vậy. Chẳng ích gì, tôi đoán thế."

Cô nhẹ nhàng nhảy xuống khỏi bàn.

"Về nhà đi, Alvah," cô nói. "Đã muộn rồi. Tôi mệt. Hẹn gặp anh ngày mai nhé."


Cập nhật 4 lần. Lần cuối: Thu Aug 25 17:43:17+0003 2022

Tác giả: pclouds | Liên kết tĩnh | Sách, Trích dẫn

Thứ năm, 05 Tháng sáu năm 2008 00:23:52 ICT

Suối nguồn

Trích chương VII Suối nguồn

Tối hôm đó, Keating -- không hề báo trước -- trèo lên căn phòng của Roark, hồi hộp gõ cửa, và bước vào một cách vui vẻ. Anh thấy Roark đang ngồi trên cửa sổ hút thuốc.

"Tình cờ đi ngang qua" Keating nói, "mà lại đang rỗi rãi; rồi tôi nhớ ra cậu sống ngay đây, Howard; và tôi nghĩ tôi sẽ ghé qua thăm cậu một cái vì đã lâu không gặp."

"Tôi biết anh muốn gì rồi," Roark nói. "Được rồi. Bao nhiêu?"

"Cậu có ý gì, hả Howard?"

"Anh biết tôi có ý gì."

"Sáu mươi nhăm đô một tuần," Keating buộc miệng. Đây không phải là phương án tinh vi mà anh đã chuẩn bị trước, thế nhưng anh đã không lường trước rằng chẳng cần phương án nào hết. "Sáu mươi nhăm đô là lương khởi điểm. Nếu cậu nghĩ như thế chưa đủ, thì có thể tôi sẽ..."

"Sáu mươi nhăm đô là đủ."

"Cậu... cậu sẽ đến làm việc với chúng tôi hả, Howard?"

"Bao giờ anh muốn tôi bắt đầu?"

"Thì... càng sớm càng tốt! Thứ Hai?"

"Được"

"Cảm ơn, Howard!"

"Với một điều kiện," Roark nói. "Tôi sẽ không làm bất kỳ một công việc thiết kế nào hết. Không gì hết. Không vẽ chi tiết. Không vẽ nhà chọc trời kiểu Louis XV nào. Hãy để tôi tránh xa phần mỹ thuật nếu anh muốn giữ tôi ở đó. Hãy để tôi làm trong bộ phận kỹ thuật. Cho tôi đi giám sát công trình, ở công trường ấy. Nào, giờ thì anh có muốn tôi vào làm nữa không?"

"Tất nhiên rồi. Điều kiện nào cũng được. Cậu sẽ thích chỗ đó, cậu cứ chờ xem. Cậu sẽ thích Francon. Chính ông ấy cũng từng làm cho Cameron đấy."

"Ông ta chẳng nên khoe khoang về việc đó."

"Ừm..."

"Không. Đừng lo gì cả. Tôi sẽ không nói thế trước mặt ông ta đâu. Tôi sẽ chẳng nói với bất cứ ai. Đó có phải là điều anh muốn biết không?"

"Ôi, không, tôi không lo gì cả, tôi thậm chí không nghĩ đến điều đó."

"Thế thì mọi chuyện đã xong. Chào anh. Gặp lại vào thứ Hai."

"À, ừ... nhưng tôi cũng chẳng vội lắm, thực ra tối đến để gặp cậu và..."

"Có chuyện gì vậy, Peter? Có gì làm anh lo lắng à?"

"Không... Tôi..."

"Anh muốn biết vì sao tôi nhận lời làm chứ gì?" -- Roark cười, chẳng bực bội mà cũng chẳng quan tâm -- "Có phải thế không? Tôi sẽ nói cho anh, nếu anh muốn biết. Tôi chẳng quan tâm mình sẽ làm việc tiếp ở đâu. Tôi chẳng muốn làm việc cho bất cứ kiến trúc sư nào ở đây cả. Nhưng tôi phải làm việc ở đâu đó, cho nên chỗ đó có là ông Francon của anh thì cũng chẳng sao -- nếu tôi có thể nhận được cái tôi muốn. Tôi đang bán mình, và tôi sẽ bán mình kiểu đó -- ít nhất vào lúc này."

"Thật sự, Howard ạ, cậu không cần nhìn sự việc như thế. Chẳng có giới hạn nào về việc thăng tiến của cậu trong công ty bọn tôi, một khi cậu đã quen với nó. Rồi cậu sẽ thấy một văn phòng thực sự trông như thế nào. Sau cái ổ chuột của Cameron..."

"Chó chết, chúng ta sẽ không nói chuyện đó, Peter!"

"Tôi không định phê phán hay... tôi không có ý gì cả." Keating không biết phải nói gì và cũng chẳng biết nên cảm thấy thế nào. Đó là một chiến thắng, nhưng nó có vẻ trống rỗng. Nhưng dù sao đó cũng vẫn là một chiến thắng và anh cảm thấy anh muốn có thể yêu mến Roark.

"Howard, ra ngoài uống chút gì đó đi, đại loại là để ăn mừng dịp này."

"Xin lỗi Peter. Đó không phải một phần của công việc."

Khi đến đây, Keating đã chuẩn bị tinh thần để huy động tối đa sự cẩn thận và tế nhị của mình; anh đã đặt được mục đích mà anh không nghĩ mình sẽ đạt được; anh biết anh không nên mạo hiểm, không nên nói gì nữa và nên đi. Nhưng có một cái gì đó không thể giải thích được, một cái gì vượt trên tất cả những tính toán thực dụng, đang thúc đẩy anh. Anh buộc miệng nói:

"Cậu có thể là con người một lần trong đời cậu được không?"

"Cái gì?"

"Là con người! Đơn giản. Tự nhiên."

"Nhưng tôi là con người."

"Chẳng lẽ cậu không bao giờ thoải mái được à?"

Roark cười, bởi anh đang ngồi trên khung cửa sổ và dựa vào tường một cách trễ nải, đôi chân dài đung đưa, điếu thuốc là kẹp hờ hững giữa những ngón tay thả lỏng.

"Ý tôi không phải thế!" Keating nói. "Tại sao cậu không thể ra ngoài uống nước với tôi?"

"Để làm gì?"

"Tại sao lúc nào cậu cũng cần phải có mục đích thế? Tại sao lúc nào cậu cũng cứ phải nghiêm túc quá thể như thế? Cậu không thể làm việc mà không cần lý do như mọi người khác được à? Cậu quá nghiêm túc, quá già nua. Cái gì với cậu cũng nghiêm trọng, cũng vĩ đại, cũng ý nghĩa, mọi giây, mọi phút, ngay cả khi cậu ngồi yên. Chả nhẽ cậu không thể thoải mái ra một chút à? Không thể vớ vẩn đi một chút được à?"

"Không."

"Cậu không mệt mỏi vì phải làm người hùng à?"

"Tôi có gì là người hùng?"

"Chẳng gì cả. Tất cả. Tôi không biết. Nó không phải là việc cậu làm. Nó là cái mà cậu làm cho mọi người xung quanh cậu cảm thấy."

"Cái gì?"

"Cái không-bình-thường. Sự căng thẳng. Khi tôi ở cạnh cậu -- nó luôn luôn giống như một lựa chọn. Hoặc cậu -- hoặc phần còn lại của thế giới. Tôi không muốn kiểu lựa chọn đấy. Tôi không muốn là người ngoài cuộc. Tôi muốn là người trong cuộc. Thế giới có rất nhiều điều đơn giản và dễ chịu. Không phải lúc nào cũng phải đấu tranh và từ bỏ. Nhưng mà với cậu thì lúc nào là đấu tranh và từ bỏ."

"Tôi đã từ bỏ cái gì?"

"Ồ, cậu sẽ chẳng bao giờ từ bỏ cái gì cả? Cậu sẽ bước qua xác người ta để đạt được cái cậu muốn. Nhưng cậu từ bỏ chính bằng cách không bao giờ ham muốn nó."

"Đó là bởi vì người ta không thể muốn cả hai thứ."

"Hai thứ gì?"

"Nghe này, Peter. Tôi chưa bao giờ nói với anh những điều anh vừa nói. Cái gì làm cho anh thấy như thế? Tôi chưa bao giờ yêu cầu anh phải lựa chọn giữa tôi và bất kỳ cái gì khác. Cái gì làm anh cảm thấy có một sự lựa chọn? Cái gì làm cho anh khó chịu khi cảm thấy điều đó -- nếu mà anh chắc chắn rằng tôi sai?"

"Tôi... tôi không biết." Anh nói thêm: "Tôi không biết cậu đang nói về cái gì." Và sau đó anh đột ngột hỏi:

"Howard, tại sao cậu căm ghét tôi?"

"Tôi không căm ghét anh."

"Đấy, vấn đề là ở đấy! Thế ít nhất tại sao cậu lại không căm ghét tôi?"

"Tại sao tôi lại phải căm ghét anh?"

"Để ít nhất cũng cho tôi một cái gì đó. Tôi biết cậu không thể thích tôi. Cậu không thể thích ai cả. Bởi vậy sẽ tử tế hơn khi công nhận sự tồn tại của mọi người bằng cách căm ghét họ."

"Tôi không tử tế Peter ạ."

Và khi Keating thấy không có gì để nói nữa, Roark nói thêm:

"Về nhà đi Peter. Anh đã có cái anh muốn. Hãy để mọi sự như thế. Hẹn gặp anh thứ Hai."

Trích dẫn lúc này có hơi vội vã, khi chỉ mới đọc được một góc cuốn truyện. Nhưng...

Có một chút gì đó của Howard Roark, một phần nhiều của Henry Cameron, và cả chút gì đó của Peter Keating. Cũng may chưa thấy phần nào của Guy Francon. Khốn khiếp. Khốn khổ. Khốn nạn. Hế hế.


Cập nhật 4 lần. Lần cuối: Thu Aug 25 17:43:17+0003 2022

Tác giả: pclouds | Liên kết tĩnh | Sách, Trích dẫn

Chủ nhật, 01 Tháng sáu năm 2008 19:04:12 ICT

Hàng xóm trên del.icio.us

Có một cái script bằng python để tìm người giống mình trên del.icio.us. Đáng tiếc là script dỏm quá, chạy ngốn gần hết 2GB RAM mà chả mần ăn ra gì. Bởi vậy nên trở về phương pháp truyền thống: shell script (lưu ý, không biết nó làm gì thì đừng có chạy, có rm -rf / trong đống bầy nhầy đó đó).

NPAGES=22 # đếm số trang khi xem 100 entry một trang
USER=pclouds
export LANG=C
for i in $(seq 1 $NPAGES)
do
	wget -x http://del.icio.us/$USER?page=$i'&'setcount=100
done
grep /url/ del.icio.us/* |
	sed 's,.*\(/url/[a-z0-9]*\).*,\1,g' |
	while read i
	do
		[ -f "del.icio.us$i" -o -f "del.icio.us.nyud.net:8080$i" ] ||
			echo http://del.icio.us.nyud.net:8080$i
	done |
	xargs -n 5 wget -x
mv del.icio.us.nyud.net:8080/url/* del.icio.us/url
cd del.icio.us/url
mkdir tmp
for i in *
do
	[ -f tmp/$i ] || grep 'class="who" href="/' $i |
	sed 's,.*class="who" href="\/\([^"]*\)".*,\1,' |
	grep -v $USER > tmp/$i
done
cat tmp/*|sort|uniq -c|sort -nr

Dùng Coral Cache là tại vì chỉ cần nói chuyện với del.icio.us cỡ trăm lần là nó phong toả, cỡ vài tiếng sau mới dùng lại được. Kết quả, sau một tí nhào trộn nữa, thì ra được cái này:

:http://www.flickr.com/photos/pclouds/2540607575/

Danh sách thật sự thì ba người "giống tui nhất" không nằm trong network của tui. Người thứ tư là zvn, không hổ danh là… bạn tui, bookmark giống hơi bị nhiều (30).

Dĩ nhiên là cũng không đúng lắm nếu chỉ tính số bookmark giống nhau. Nhưng mà thôi, làm nhiều nhức đầu. Phần còn lại từ từ ngâm cứu bổ sung vô network sau.


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