Kho tháng 8/2008

Thứ sáu, 29 Tháng tám năm 2008 16:56:19 ICT

Bố khỉ sao có đứa nào ở New Jersey với CVPM Quang Trung mà biết cái hẻm của mình nhỉ?


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

Thứ năm, 28 Tháng tám năm 2008 19:25:53 ICT

Ối giời ơi, sao tui lại đi tìm nhạc Việt thế này?


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

Thứ tư, 27 Tháng tám năm 2008 18:38:25 ICT

Nhờ.. nhờ.. ới! Đi chơi!

Ngẫu nhiên gần đây nghe lại một tập nhạc cũ (từng bị đánh giá thấp) và một bài nhạc mới. Ngẫu nhiên sao ghép lại rất đẹp.

Nói cái gì trước nhỉ? Nhăng Nhố, do Trần Thu Hà trình bày. Một bài rất nhố nhăng. Không thể nào chịu nổi cái giọng ỡm ờ, ư ử "Nhăng Nhố à Nhăng Nhố ơi, Nhăng Nhố đi chơi với ta một chiều. Hôm nay ta buồn lắm đấy. Hôm nay ta cô đơn làm sao..." Lời nhạc triết lý, đượm buồn, vẫn ẩn đâu đấy hi vọng.

Mỗi tội hi vọng đấy vẫn là hi vọng cho người dưng. Để cuối cùng vẫn "sương gió à, sương gió ơi, sương gió đi chơi với ta một đời".

Trở về với sương gió, lắng nghe âm thanh vi vút trong bài Intro, tập nhạc The Wind, The Trees And The Shadows Of The Past, phiêu lưu với gió, với cây. Chìm trong chất ghi ta lúc êm đềm lúc dữ dội. Dập dìu phiêu du ngược dòng ký ức. Rồi quay về với cái thực tại hết sức "gió sương".

The Morningside đã ghi tên mình vào danh sách những ban nhạc chỉ ra mỗi một tập nhạc, nhưng rất đáng nghe. Nghe để thòm thèm. Không u ám đến cùng cực như My Dying Bride, không rã rời như Saturnus, The Morningside tạo ra một cái không khí lãng đãng, nhẹ nhàng, êm ái (theo kiểu metal). Một tập nhạc doom metal, có thể nói là lạc quan.

Dĩ nhiên doom vẫn là doom, nó sầu hơn, thẫm hơn. Hết Outro, lại quay về với "Nhăng Nhố à, Nhăng Nhố ơi, Nhăng Nhố đi chơi với ta một chiều..." Một phút lặng. Một phút vui. Một phút ngước mắt lên.

Chiều tàn. Gió thổi. Lá xạc xào. Ta quay về với ta.

Tui nghĩ cũng hiếm khi có thể kết hợp được một tập nhạc doom metal với một bài hát/tập nhạc khác. Thậm chí với chính dòng metal cũng khó, đừng nói đến nhạc nhẹ. Cái sự buồn buồn của Nhăng Nhố lại có cái hay. Nó không quá xa cách với "Gió, cây và bóng đen quá khứ". Nó cũng không đến nỗi te tua thảm hại rồi hoà làm một với doom. Nhăng Nhố, Trần Tiến viết cho gái ăn sương. Nhưng tui lại chả thấy sương nào trong đó. Có chăng thấy một người giúp vơi nỗi lòng. Thấy một người vẫn mong đời đẹp hơn. Thấy dù gì "ta" vẫn sống với đời, dù chỉ trong giây phút.

Ối trời đất ơi! Ối Nhố Nhăng ơi! Nó cứ hát thế này sao chịu nổi.

TB. Thêm "Death, Come Near Me" vô chót. Nghe nó.. chà.. Lúc mới vô nhịp tình cảm đập bình thường. Đến "Gió, Cây, Bóng" nhịp giảm dần, yếu dần. Đến DCNM, nhịp bị cào bằng về không. Quay lại Nhăng Nhố, nhịp tăng trở lại. Hà hà.. kiểu này chắc đau tim quá.


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 | Nhạc

Thứ tư, 27 Tháng tám năm 2008 15:02:48 ICT

Bầm dập. Lủng một số lỗ. Thương cái sẹo quá.


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

Thứ tư, 27 Tháng tám năm 2008 13:22:56 ICT

There is system-on-chip. Now "router-on-chip"?


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

Thứ tư, 27 Tháng tám năm 2008 12:18:52 ICT

http://ur1.ca/3yh tui nằm trong 1% còn lại, chuyên ăn cơm nhà lo chuyện công quả


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

Thứ ba, 26 Tháng tám năm 2008 13:09:15 ICT

cà phê, đọc Tuyết, nghe Under the violet moon, mình đã ở đâu nhỉ?


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

Chủ nhật, 24 Tháng tám năm 2008 16:54:42 ICT

Chơi dại. Dậy ko ăn uống, xách xe chạy theo ký ức đến hai cái nhà sách biết đã đóng cửa. Leo cầu về mém vô bệnh viện. Bờm!


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

Chủ nhật, 24 Tháng tám năm 2008 00:46:10 ICT

Tiếng Việt

Các bạn xì-tin 9x nên đọc cái này

Cái này me tặng cho you nè. Me giữ một cái, you giữ một cái. Chừng nào you nhìn thấy nó, you nghĩ tới me.

À, you lucky (may mắn) hơn me nhiều lắm, vì you có ba nè, you có má nè. Mỗi lần me đi học về, me buồn lắm. Me khóc hoài à... Er.. Má me nói me là... hổng có me, là má me kills herself (tự tử)...

Cố lên các bạn. "Nội công" tiếng Việt của các bạn đã đạt gần tới mức mất gốc. Ráng nữa đi các bạn. Chừng nào các bạn có thể nói như hai bé trên là các bạn đã đạt đạo.

Có ai thấy đau khi đọc những dòng trên? Hai cô bé trên xa quê từ nhỏ không nói. Còn các bạn 9x, các bạn sống ở Việt Nam mà?

Mấy thằng làm IT, thằng nào cũng hay chêm mấy chữ tiếng Anh vào khi nói. Nó như một thói quen, một phần là vì thuật ngữ chuyên ngành tiếng Anh quá nhiều mà lại thiếu thống nhất khi chuyển sang tiếng Việt. Một phần vì cái thói quen viết/suy nghĩ bằng tiếng Anh.

Có ai khi nói, phải dừng một tí để nghĩ, để tìm chữ tiếng Việt nói thay vì cứ tán tiếng Tây?


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, Hâm

Chủ nhật, 24 Tháng tám năm 2008 00:03:49 ICT

quay trở lại với lí thuyết "đèn pin, bóng tối và mấy viên bi"


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

Thứ sáu, 22 Tháng tám năm 2008 22:53:05 ICT

drove home like I was mad. !&##( why?


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

Thứ năm, 21 Tháng tám năm 2008 22:10:52 ICT

1 ngày hai cái ốp phơ là sao?


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

Thứ ba, 19 Tháng tám năm 2008 18:58:38 ICT

Mai phải dậy sớm đi thi. Trời ơi làm sao dậy sớm!


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

Thứ hai, 18 Tháng tám năm 2008 21:51:15 ICT

Thay đổi kích cỡ tmpfs

Tui xài tmpfs cho /tmp. Khổ nỗi mặc dù RAM đến 2GB và chưa bao giờ dùng đến 1GB, nhưng tui vẫn đặt /tmp.. 32MB. Khổ nữa là nhiều thằng không chấp nhận /tmp nhỏ thế. Ví dụ khi xem phim bằng flash chẳng hạn.

Rất may là có thể remount thay đổi kích thước tmpfs dễ dàng:

mount -o remount,size=64m /tmp

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

Chủ nhật, 17 Tháng tám năm 2008 16:16:23 ICT

Sài Gòn mưa

Hôm nay trời lại mưa. Ngày mưa chẳng biết làm gì, đành viết nhăng nhít vài dòng về... trời mưa. Bạn đã từng ở Sài Gòn? Bạn vẫn chưa bao giờ thưởng thức mưa Sài Gòn? Vậy bạn chẳng biết gì về Sài Gòn. Mưa Sài Gòn đỏng đảnh như cô gái Sài Gòn. Chợt đến chợt đi. Để lại ta... ướt sũng.

Cái phần ướt sũng ấy cũng nhờ Sài Gòn. Ngày mưa, phố thành sông. Từ những dòng suối róc rách trong các con hẻm, đến những dòng sông bình lặng ngoài xa lộ. Mưa Sài Gòn rất đáng yêu. Trong cái tí tách mưa rơi, dắt xe tản bộ ngắm trời mây. Ngắm những khuôn mặt nhễ nhại nước mưa, đầy nghị lực của người Sài Gòn.

Mưa. Những dòng kênh khô cháy nay như sống lại trong biển nước, đua nhau khoe sắc, toả hương ngào ngạt. Sài Gòn thay áo tím. Rác lờ lững như lục bình trôi.

Trời mưa, nước tạo thành những chiến hào bao quanh các thành luỹ. Sài Gòn ngày nay vẫn mang dáng dấp thành Gia Định khi xưa. Những người Sài Gòn xưa xả thân cứu nước. Những người Sài Gòn nay kiên gan sống chung với ngập.

Để thưởng thức mưa Sài Gòn, nên dùng xe đạp. Ngoài lí do "chết bugi xe máy", chạy xe đạp chầm chậm, để thưởng thức đúng chất mưa Sài Gòn. Mưa đêm. Phố phường lấp lánh những giọt mưa. Những dòng sông loang loáng ánh đèn đường. Từng dòng xe rẽ sóng lướt đi. Sình lướt nhè nhẹ qua tai như gió thoảng, đọng lại trên vai áo. Trên lề đường thi thoảng lại bắt gặp những chiếc xe chết máy. Chủ xe, những người Sài Gòn với khuôn mặt dàu dàu nhưng vui tính và hiếu khách, hồ hởi vẫy tay chào đón bạn đến với Sài Gòn. Đến bùng binh, cảnh tượng như một đoá hoa người ngàn cánh. Đâu đó vang câu ca

"Em đi qua Phú Nhuận thấy con xe đang nằm ngủ.

Con sông là quán trọ, và xe tên lãng du.

Em đi qua Phú Nhuận, í a con xe còn trẻ.

Con sông đâu có ngờ, ngày kia xe sẽ già."

Trời mưa. Những du khách nước ngoài sững sờ trước vẻ đẹp hùng vĩ của mưa Sài Gòn, gương mặt vẫn chưa hết ngỡ ngàng. Họ tung tăng xắn quần lội bì bõm trong dòng nước như một trải nghiệm mới trong cuộc sống, tay chỉ tíu tít "Coi chừng chỗ đó nước sâu!". Các em bé bán vé số buồn miệng ca "có miếng nước, có miếng rác, có chỗ nào đi được thì đi..." Dòng xe trầm bổng bài Tình ca.

Người Sài Gòn đi xa vẫn khắc trong tim "Em đi em nhớ quê nhà. Nhớ cơn mưa lớn, nhớ ngày kẹt xe". Khốn nạn thay cho những kẻ sống ở Sài Gòn mà không nhận ra Sài Gòn duyên dáng biết chừng nào. Vậy các bạn ơi, đồng hương của tôi ơi, ta hãy cũng nhau cất cao bài ca "Thành phố trẻ" nhằm tôn vinh xóm nhỏ của chúng ta:

"Thành phố ta, rất trẻ...

Thành phố ta, ngập nước!!!

Nà na ná ná ná nà na, ná ná nà na, na na nà na..."


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

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

Chủ nhật, 17 Tháng tám năm 2008 23:12:47 ICT

Giác ngộ là khi ta nhìn gái đẹp như chẳng có gì =)) (Đường xưa mây trắng tr. 298)


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

Chủ nhật, 17 Tháng tám năm 2008 17:18:25 ICT

Dzăn.. miểng quá trời


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

Chủ nhật, 17 Tháng tám năm 2008 16:07:48 ICT

Quyết tâm.. làm dzăn!


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

Chủ nhật, 17 Tháng tám năm 2008 16:02:35 ICT

Mưa quá trời làm sao đi mua Tuyết??


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

Thứ sáu, 15 Tháng tám năm 2008 22:39:52 ICT

Buồn ngủ quá. Thôi để mai :(


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

Thứ sáu, 15 Tháng tám năm 2008 21:44:25 ICT

tập làm văn


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

Thứ năm, 14 Tháng tám năm 2008 20:36:49 ICT

Thằng nào đang cào đĩa của ông?

Thường khi thấy máy chạy ì ạch, thao tác đầu tiên là mở top/htop lên xem coi tiến trình nào đang nuốt hết CPU (và nếu thấy mặt nó ghét ghét là giết luôn!). Truy cập đĩa ồ ạt cũng có thể dẫn đến tình trạng ì ạch tương tự. Vậy làm sao biết tiến trình nào đang cào đĩa?

Nếu bạn mò trên mạng thì sẽ thấy một chương trình tên "iotop". Tuy nhiên tui khuyên không nên dùng (tại vì tui thấy nó viết bằng.. Python, mà mấy cái tiện ích kiểu này tui khoái "nhanh, nhỏ, gọn").

Chương trình được tin dùng, dĩ nhiên là htop. Tuy nhiên cần bảo đảm bật tuỳ chọn --enable-tasktasks (với Gentoo đây là mặc định). Cũng cần hỗ trợ từ phía kernel. Bạn sẽ cần bật CONFIG_TASKSTATSCONFIG_TASK_IO_ACCOUNTING (trong phần "General setup"). Để biết kernel hỗ trợ chưa, kiểm tra xem có tập tin /proc/self/io hay không.

Vậy thôi. Giờ thì ngắm htop và chém giết. Mở htop lên, F2 để chỉnh cột. Chọn "Columns" rồi thêm cột "IO_RATE" (hoặc mấy cái IO khác) vào.


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

Chủ nhật, 10 Tháng tám năm 2008 22:02:54 ICT

scp/sftp cho chó gặm

Thứ nhất, scp không hỗ trợ resume. Nghĩa là một khi đứt mạng là phải làm lại từ đầu. Thứ nhì, sftp hỗ trợ resume, nhưng bản sftp client của openssh thì không. Nếu dùng WinSCP thì được hỗ trợ.

Vậy để có thể "resume" trên Linux, giải pháp là dùng rsync qua ssh. Phần còn lại vui lòng hỏi anh Google (hay Yahoo).


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

Thứ bảy, 09 Tháng tám năm 2008 22:28:14 ICT

Lại chuyện meo mẩn

Cuối cùng cũng chép xong mớ gmail. Hết sức là kinh dị. Tổng cộng tuy "chỉ" có 200K lá thôi, nhưng theo đánh số IMAP thì 400K. Nghĩa là bạn Bi cũng đã xoá hết phân nửa số thư nhận được rồi. Cho vô git xong tốn hết 1.1GB. Nén gzip tốn 1GB còn bzip2 thì tốn 0.9GB. Để "khơi khơi" thì du -s --si nó báo 2.6GB (GMail thì nói tui xài 1.9GB). Nói chung phải coi lại git.

Vậy, sau khi có quá trời thông tin, bạn Bi lại ngứa tay vẽ hay cái đồ thị chơi cho vui. Khủng khiếp!

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

Cái trên là lượng thư gửi đi theo từng tháng. Cũng không hiểu tháng 7 năm 2006, có cái sự kiện động trời gì xảy ra mà tui lại gửi ra đến hơn 200 lá??

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

Mà vậy còn đỡ. Nhìn lượng thư nhận được mới ngất. Tui vẫn biết là hộp thư của tui nhận rất nhiều. Nhưng tui không thể tin nổi là tháng vừa rồi tui nhận đến hơn 8000 lá. Tình hình meo mẩn có lẽ bắt đầu "có vấn đề" từ đầu 2005 (2000 lá), trở nên tồi tệ hơn vào đầu 2006 (trên 4000) và khủng hoảng vào giữa 2007 (trên 6000) và coi bộ trở nên vô lí từ tháng trước (trên 8000 lá).

Giai đoạn hoàn kim là từ lúc tạo tài khoản GMail (giữa 2003) cho đến cuối 2004, hầu như gửi nhận không bao nhiêu.

Kết luận, tui cần đi cai Internet.


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ứ bảy, 09 Tháng tám năm 2008 16:42:04 ICT

finished downloading gmail, phew..


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

Thứ bảy, 09 Tháng tám năm 2008 14:34:17 ICT

search term of the day: "lisp fpga"


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

Thứ bảy, 09 Tháng tám năm 2008 12:14:20 ICT

Jun 28 rồi, còn 1 tháng nữa


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

Thứ bảy, 09 Tháng tám năm 2008 01:00:01 ICT

Tin không?

Đạo giáo và khoa học khác nhau ở một điểm. Đối với đạo giáo thì câu hỏi cơ bản là "tin hay không?". Đối với khoa học thì đó là "đúng hay sai?" (nói theo nghĩa có phù hợp với thực tế hay không, có tuân theo các quy tắc khách quan hay không).

Vậy con người có bao nhiêu phần "tin" và bao nhiêu phầng "đúng"? Có lẽ cũng tương đương tỉ lệ người theo tôn giáo và những người làm khoa học.

Nói cho cùng thì giới khoa học vẫn phải "tin", bởi vì mô hình thế giới này chưa hoàn toàn được chứng minh là "đúng". Ví dụ nhà khoa học nào cũng tin rồi có một ngày khoa học sẽ giải thích được toàn bộ thế giới.

Xét một cách "khoa học" thì đời là một bài toán NP-complete, không có lời giải. Suy ra không có chuyện chứng minh đúng, cứ theo heuristic mà lần. Nếu tin thì làm theo.

Vậy không có đạo "đúng", cũng không có đạo "sai". Túm lại mình đang đi vào con đường "con người không nhận thức được thế giới khách quan".

Ôi.. ba phải quá, chẳng đáng tin.


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 | Hâm

Thứ sáu, 08 Tháng tám năm 2008 22:05:22 ICT

Metaproxy

Do hoàn cảnh đưa đẩy, tui bị buộc phải dùng nhiều proxy đồng thời, tuỳ đích đến. Vậy nên phát sinh một nhu cầu hết sức chính đáng: một "proxy cấp 2" chuyên chọn lọc các yêu cầu và chuyển cho proxy phù hợp. Chương trình phục vụ mục đích tương tự thật ra cũng , có điều chảnh không dùng.

Vậy là chương trình có ý nghĩa đầu tiên mang họ Liễu của tui ra đời: metaproxy, được viết bằng Liễu Kim Giang. Nó là một cái proxy hết sức đơn giản: nó chẳng làm gì hết, chỉ đẩy yêu cầu cho phía đối tác xử lý hết. Giờ muốn chọn đường, chỉ cần điều chỉnh hàm choose-proxy.

Có một cái hay là qua chuyện này hiểu thêm tí về giao thức HTTP, cách hoạt động của proxy (proxy đơn giản là một web server, trừ chuyện xử lý CONNECT). Mọi chuyện chỉ phức tạp tí với yêu cầu CONNECT: sau phần http header trả lời mọi chuyện có ổn thoả không, client và server có toàn quyền sử dụng kết nối hai chiều (full-duplex).

Rồi, tới giờ khoe hàng!!

;; Define your own rules here
;; return a pair of server address and port
(define (choose-proxy host)
  (values host 80))

(define (http-read-line port)
  (read-line port #\newline #t))

(define (read-write read-port write-port)
  (define (do-read-write read-port write-port)
    (let ((text (read-char read-port)))
      (cond ((eof-object? text)
	     (close-port write-port))
	    (else
	     (write-char text write-port)
	     (force-output write-port)
	     (do-read-write read-port write-port)))))

  (with-exception-catcher
   (lambda (e)
     (and (port? read-port) (close-port read-port))
     (and (port? write-port) (close-port write-port)))
   (lambda ()
     (do-read-write read-port write-port))))

(define (make-proxy port)
  ;; Read lines from port until reaching empty line
  ;; construct a list of lines with read order
  (define (read-http-headers port)
    (let loop ((headers '()))
      (let ((line (http-read-line port)))
	(cond ((eof-object? line)
	       #f)
	      ((string=? line "\r\n")
	       (reverse headers))
	      (else
	       (loop (cons line headers)))))))

  ;; trim #\space #\newline and #\return from string
  (define (trim-string string)
    (let* ((len (string-length string))
	   (start (let loop ((idx 0))
		    (if (and (< idx len)
			     (or (eq? #\space (string-ref string idx))
				 (eq? #\newline (string-ref string idx))
				 (eq? #\return (string-ref string idx))))
			(loop (+ idx 1))
			idx)))
	   (end (let loop ((idx (- len 1)))
		  (if (and (>= idx 0)
			   (or (eq? #\space (string-ref string idx))
			       (eq? #\newline (string-ref string idx))
			       (eq? #\return (string-ref string idx))))
		      (loop (- idx 1))
		      (+ idx 1)))))
      (substring string start end)))

  (define (get-attribute string attr-name)
    (let ((idx (+ 1 (string-length attr-name))) ; 1 for colon
	  (len (string-length string)))
      (cond ((eq? idx #f)
	     #f)
	    (else
	     (trim-string (substring string idx len))))))

  (let ((request (http-read-line port)))
    (if (string-ci=? "CONNECT " (substring request 0 (string-length "CONNECT ")))
	(let* ((prefix (string-length "CONNECT "))
	       (headers (read-http-headers port))
	       (colon-idx (let loop ((idx prefix))
			    (if (char=? #\: (string-ref request idx))
				idx
				(loop (+ idx 1)))))
	       (space-idx (let loop ((idx colon-idx))
			    (if (char=? #\space (string-ref request idx))
				idx
				(loop (+ idx 1)))))
	       (host (substring request prefix colon-idx))
	       (port-number (string->number (substring request (+ colon-idx 1) space-idx)))
	       (newport (open-tcp-client (list port-number: port-number
					       server-address: host))))
	  (print "Passing through " host " " port-number "\n")
	  (display "HTTP/1.0 200 OK\r\n\r\n" port)
	  (force-output port)
	  newport)

	(let* ((headers (read-http-headers port)) ; else
	       (host (let loop ((lst headers))
		       (cond ((eq? lst '())
			      #f)
			     ((string-ci=? "Host: " (substring (car lst) 0 (string-length "Host: ")))
			      (car lst))
			     (else
			      (loop (cdr lst)))))))

	  (cond ((string? host)
		 (print request host)
		 (call-with-values
		     (lambda ()
		       (choose-proxy (get-attribute host "Host")))
		   (lambda (server-address port-number)
		     (let ((newport (open-tcp-client (list port-number: port-number
							   server-address: server-address))))
		       (display request newport)
		       (let loop ((lst headers))
			 (display (car lst) newport)
			 (and (pair? (cdr lst))
			      (loop (cdr lst))))
		       (display "\r\n" newport) ; header end
		       (force-output newport)
		       newport))))
		(else
		 (print "Unknown method " request host headers)
		 #f))))))


(define (redirect sock)
  (let* ((newsock (make-proxy sock))
	 (read-thread (make-thread (lambda() (read-write sock newsock))))
	 (write-thread (make-thread (lambda() (read-write newsock sock)))))
    ;(display text newsock)
    ;(force-output newsock)
    (thread-start! read-thread)
    (thread-start! write-thread)))


(define (listen-thread sock)
  (redirect (read sock))
  (listen-thread sock))

(listen-thread (open-tcp-server 8080))

Nói chung phần xử lý I/O hiện tại không tốt lắm nên khi qua proxy, các bạn sẽ "được" ưu tiên giảm tốc độ. Chuyện này sẽ xử lý sau (thậm chí nhúng C vào nếu cần). À, metaproxy sẽ lắng nghe ở cổng 8080, địa chỉ 127.0.0.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 | OSS, Liễu

Thứ tư, 06 Tháng tám năm 2008 19:19:28 ICT

Linux's back (Ubuntu though). Will replace it with Gentoo (again) some time.


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

Thứ tư, 06 Tháng tám năm 2008 00:36:01 ICT

Tình hình là sắp phải xài Windows :(( Lần đầu tiên cảm thấy.. bất lực, é


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

Thứ ba, 05 Tháng tám năm 2008 19:24:10 ICT

http://ur1.ca/1q0 don't ever mention "hobby" or people will show you most weird languages on the world =))


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

Thứ hai, 04 Tháng tám năm 2008 20:26:40 ICT

Chép gmail về nhà

Dạo này xu hướng "offline" của tui ngày càng rõ. Hôm qua lại nổi điên, quyết định chép hết meo mẩn mấy năm trời của mình trên gmail (200 kí thư, tổng cộng gần 2GB). Công cụ chép cũng bưởi thôi: fetchmail với procmail. Cũng chả cấu hình chi nhiều. $HOME/.procmailrc ngắn gọn như vầy:

:0
/var/tmp/gmail/

Còn $HOME/.fetchmailrc thì dài hơn chút:

skip gmail
	via imap.gmail.com proto imap
	user pclouds pass emiubiemquibivimoilanbihatemvui ssl
	folder "[Gmail]/All Mail"
	keep
	mda "/usr/bin/procmail -f %F -d %T"

Có mỗi cái kẹt là do lượng thư quá xá nhiều. Cứ lấy một hồi là sẽ bị đứt. Mà do dùng fetchmail gmail -a -v. Nếu đứt mà gõ y chang như vậy là nó sẽ lấy lại từ đầu. Thành ra phải đâm thọt fetchmail chút đỉnh để nó chiều ý mình:

--- fetchmail-6.3.8/driver.c	2007-02-19 01:56:10.000000000 +0700
+++ fetchmail-6.3.8.new/driver.c	2008-08-04 19:48:02.569775415 +0700
@@ -428,6 +428,7 @@
     int fetchsizelimit = ctl->fetchsizelimit;
     int msgsize;
     int initialfetches = *fetches;
+    int from_num = 1;
 
     if (ctl->server.base_protocol->getpartialsizes && NUM_NONZERO(fetchsizelimit))
     {
@@ -474,7 +475,10 @@
      */
     force_retrieval = !peek_capable && (ctl->errcount > 0);
 
-    for (num = 1; num <= count; num++)
+    if (getenv("FETCHFROM"))
+    	from_num = atoi(getenv("FETCHFROM"));
+    printf("From %d\n", from_num);
+    for (num = from_num; num <= count; num++)
     {
 	flag suppress_delete = FALSE;
 	flag suppress_forward = FALSE;

Cái patch này thêm một tính năng khá cùi là đọc biến FETCHFROM và bỏ qua từ đầu cho tới khúc đó. Thành ra nếu bị đứt kết nối sau khi lấy thư 13234 chẳng hạn, có thể chạy lại với lệnh FETCHFROM=13234 fetchmail gmail -a -v (lẽ ra nên dùng 13235, nhưng kệ, trùng một thư cũng chả chết ai).

Không tự động cũng dở. Nhưng kệ, làm biếng. Bây giờ nó mới lấy được có 27 kí thư à. Lấy xong cho vô git repository, chứ quăng vô thư mục kiểu Maildir, chắc hệ thống sụm luôn.

Ừm.. sau phút bốc đồng, quyết định dùng offlineimap cho nhanh gọn lẹ. Cấu hình đơn giản, tạo tập tin ~/.offlineimaprc rồi chạy offlineimap -u TTY.TTYUI.

[general]
accounts = GMail

[Account GMail]
localrepository = Local
remoterepository = Remote

[Repository Local]
type = Maildir
localfolders = /var/tmp/gmail

[Repository Remote]
type = Gmail
remotehost = imap.gmail.com
remoteuser = pclouds@gmail.com
remotepass = emiubiemquibivimoilanbihatemvui
ssl = yes
maxconnections = 3
realdelete = no
folderfilter = lambda f: f in [ '[Gmail]/All Mail', '[Gmail]/Sent Mail' ]

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

Chủ nhật, 03 Tháng tám năm 2008 21:02:22 ICT

Linux Counter

Sau khi ăn no ngủ say cả ngày hôm nay, hứng chí vô Linux Counter coi chơi. Tình hình là từ 2004 trở đi, vai trò của Linux Counter có vẻ không còn đáng kể như trước.

Khỉ gió. Đến nay số lượng người dùng Linux ở VN vẫn chưa vượt ngưỡng 90! Nhảm nhí hơn nữa là dân Linux Hà Nội đông hơn Sài Gòn đến 7 người. Mò vui thì chỉ có bác Nguyễn Duy Thọ là cổ lổ sĩ nhất, với ID 81151, mà như bác tự khai là dùng Linux từ cuối 1996. Cũng chỉ có vài người ở VN có ID nhỏ hơn tui à hè hè.

Phải phát động chiến dịch "Linux Counter" mới được. Mục tiêu là vượt... Bhutan, chiếm hạng 172.


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ứ sáu, 01 Tháng tám năm 2008 21:07:36 ICT

Star wars time


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

Thứ sáu, 01 Tháng tám năm 2008 19:55:13 ICT

雨が降ってる


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