Tên đầy đủ là Nguyễn Thành Luân.
Hiện đang học Barchelor of Business, chuyên ngành Business Information System (BIS) tại RMIT Vietnam, TP HCM.
Thích khá nhiều thứ tùm lum, cái gì cũng muốn biết nhưng chả cái gì ra cái gì. Cái blog này dùng để ghi chép những cái gì đọc được hay tự nhiên nghĩ đến.
Thứ Hai, tháng 2 01, 2010
About me
Thứ Hai, tháng 7 21, 2008
Slackware 12.1 on 6910p
Wireless:
echo "Connecting to linksys"
iwconfig ath0 essid "linksys"
iwlist ath0 scan
iwconfig ath0 essid "linksys"
iwconfig ath0 mode "Managed"
iwconfig ath0 rate "auto"
ifconfig ath0 up
iwconfig
/sbin/dhcpcd ath0
Source: http://www.linuxforums.org/forum/slackware-linux-help/43349-using-slackware-both-ehternet-card-pcmcia-wifi.html
Vứt tạm.
Thứ Năm, tháng 8 02, 2007
Mấy cái lệnh vim
Lâu nay chỉ xài một số cái, trong khi nó có cả lô cả lốc lệnh, trong đó có cả lệnh di chuyển, giúp tăng tốc độ hiệu chỉnh. Ghi tạm mấy cái thấy cần ra, đỡ quên, khi nào cần nhìn thì nhìn.
- fx Nhảy đến từ bắt đầu bằng x gần nhất.
- Fx Như f, nhảy ngược.
- tx Như f, nhưng nhảy đến ngay trước từ đó.
- ; Thực hiện lại f
- w Nhảy 1 từ.
- b Nhảy ngược 1 từ.
- ( và ) Nhảy đến đầu và cuối câu.
- % Nhảy qua lại mấy cái dấu ngoặc đi với nhau.
- Ctrl-f và Ctrl-b Xuống và lên trang.
- Ctrl-d và Ctrl-u Xuống và lên nửa trang.
- Ctrl-e và Ctrl-y Cuộn cả trang lên và xuống, nhưng vẫn giữ nguyên con trỏ.
- * Nhảy đến từ giống từ đang đứng.
- # Giống *, nhảy ngược.
- ma Đánh dấu vị trí với tên a.
- `a Đến chỗ đánh dấu tên a.
- :marks Danh sách các thằng đã đánh dấu
- `. Đến dòng chỉnh sửa cuối cùng.
- . Thực hiện lại lệnh cuối cùng.
- D Xoá đến cuối dòng.
- > và < Đẩy dòng vô hoặc ra.
- K Mở man của từ đang đứng.
- :reg Liệt kê mấy cái thằng trong bàng nhớ
- "kyy Đăng ký tên k, sao cả dòng
- "kp Dán cái thằng tên k
- :runtime! syntax/2html.vim
Bảng nhớ
hoặc source $VIM/vim70/syntax/2html.vim Tô màu code, xuất ra html.
Thứ Năm, tháng 7 26, 2007
Merge - Diff3
Hê hê, cuối cùng cũng hiểu được sơ sơ về thằng này. Có vẻ o'reilly nó viết dễ hiểu hơn man page .
Chung quy lại nó dùng để trộn 3 tệp lại. Cách xài:
merge [Tham số] tệp1 tệp2 tệp3
Trong đó tệp 2 là tệp gốc, 2 tệp 1 và 3 là những tệp được sửa đổi từ tệp 2. Lệnh sẽ ghi những thay đổi của tệp 1 và tệp 3 so với tệp 2, vào tệp 1.
Lệnh sẽ báo xung đột (conflict) nếu tệp1 và tệp 3 cùng được sửa chung (common segment) 1 đoạn nào đó. Ngồi thử cái định nghĩa "đoạn" (segment) của nó là thế nào thì thấy, đoạn này giới hạn trong 3 dòng, tức nếu thay đổi của tệp 1 và tệp 3 trên cùng 1 dòng hay 1 dòng trên (hay dưới) thì nó báo xung đột().
Tham số:
-A Xuất "xung đột" : ra dạng như diff3 (coi cái đã).
-p Xuất ra stdout thay vì ghi vào tệp1.
-L Xài để thay mấy cái tên tệp trong out của "xung đột" (sao nói thế này kỳ kỳ cà :-/).
Ví dụ: -L x -L y -L z tệp1 tệp2 tệp3
Mà cái lệnh này hơi quái (mình xài đồ cũ hay do chính nó không hỗ trợ nhỉ?), trong help thì thấy có viết các tham số (options) gần nhau sau cái dấu - như vầy
merge -AeEpqxX3, nhưng xài thì không có cho, bắt viết riêng rẽ ra, ví dụ
merge -A -p.
----------
Diff3
Tiện thể đọc luôn về nó, nói chung cấu trúc nó xuất ra cũng không có gì lạ.
Trong man, nó có nói về thứ tự đặc tệp (tương tự merge):
diff3 [OPTION]... MYFILE OLDFILE YOURFILE
Nó sẽ lấy tệp thứ 2 để đối chiếu với 2 tệp còn lại.
Để phân cách các phần, nó xài ====, và nếu thay đổi chỉ có ở tệp 1 hoặc 3 thì nó sẽ ghi số thứ tự của tệp đó tiếp sau dấu bằng.
Địa chỉ xuất vầy:
[thứ tự tệp]:[toạ độ][ký hiệu]
Toạ độ và ký hiệu tương tự diff.
Diff - Patch
Man của mấy thằng này dài quá, nhìn là thấy ớn, không muốn đọc rồi , đành đi xem người ta xài sao rồi đọc cái tham số đó.
Diff
Ra là thằng này chơi được cả với thư mục luôn, tiện hỉ. Ở đây, người ta xài luôn 1 tràng:
diff -Naur olddir newdir > new-patch
- or -
diff -Naur oldfile newfile >new-patch
Mấy cái tham số:
-N Coi tệp thiếu như một tệp trống, cái này hình như chơi để mần cái tệp mới.
-a Coi thằng mô cũng như tệp văn bản.
-r Chui vô ngõ ngách để mần.
---
Path
Thằng này cũng khá dễ dùng. Nó lấy nguồn từ stdin hoặc dùng tham số -i để chỉ ra tệp để patch. Mặc định nó sẽ xuất ra cái file được chỉ trong tệp patch, hoặc dùng -o để chỉ ra tệp xuất ra sau khi thực hiện.
Một số tham số khác:
-b Xài để dự phòng cái tệp mình sửa.
-d Chỉ ra thư mục để xài.
-R Đảo ngược 2 tệp khai báo trong đầu đề (header) của tệp patch.
Còn một tham số nữa là -p
Ví dụ, trong đó chỉ ra cái đường dẫn là /duong/dan/den/mo/day:
-p0 Cho lại nguyên.
-p0 duong/dan/den/mo/day
-p1 dan/den/mo/day
...
Còn lại mấy cái tham số, hoặc thấy không cần, hoặc đọc không hiểu :P.
---
Nguồn:
-How to create and use a patch in Linux
-Commands Reference, Volume 4
-patch (Unix)
---
Còn merge đọc chưa hiểu nó viết quái vì, có lẽ cần gặm nhấm thêm.
Thứ Hai, tháng 7 16, 2007
Diff
Diff là cái quái gì? Là cái chương trình để so sánh các tệp theo dòng. Nó xài thuật toán LCS[1] (hình như khi học pascal có học về nó rồi nhưng quên rồi, pascal còn quên huống hồ nó :P)để so sánh tệp.
Cấu trúc lệnh:
diff [tham số] tệp_gốc tệp_mới
Diff nó 3 định dạng xuất ( và nhiều hơn nữa), gồm dạng thường, ngữ cảnh (context), thống nhất (unified), trong đó 2 kiểu sau có thể dùng để xài với patch. Được cái xuất ra, coi bằng vim thì cái nào cũng đẹp :P.
1/Kiểu thường
Đây là kiểu mặc định mà diff nó xuất ra. Thằng này làm phát là đi thẳng vào vấn đề, không có cái "đầu" (header).
Ký hiệu:
"a" là thêm vô (add)
"c" là sửa (change)
"d" là xoá (delete)
Đứng trước ký hiệu là địa chỉ (dạng: "dòng_đầu, dòng cuối")của tệp gốc, sau là địa chỉ tệp mới.
Cái dấu < là ở tệp gốc, > là tệp mới. Với sửa đổi (c), giữa thằng cũ và thằng mới có dòng ---.
2/Kiểu ngữ cảnh (context)
Thêm vô -c để diff nó xuất ra dạng này. Khác với cái trên, thằng này có thêm cái phần header, thông báo về tệp nó đang so sánh.
Cách biểu diễn của nó cũng khác, thêm vô thì có dấu +, xoá thì dấu - ở đầu dòng. Còn dấu ! để chỉ dòng thay đổi. Ngoài ra, trước và sau thay đổi nó (mặc đinh) thêm vô 3 dòng không có sự thay đổi. Để thay đổi số lượng dòng này thì xài -C num, trong đó num là số dòng.
Giá trị toạ độ cũng tương tự kiểu thường, khác chút là nó màu mè hơn, Toạ độ tệp gốc có *** còn mới có ---.
3/Kiểu thống nhất (unified)
Cũng gần như tương tự kiểu ngữ cảnh, nhưng được rút gọn hơn, có vẻ dễ nhìn hơn. Để diff xuất ra dạng này, thêm -u (hay -U num).
Đầu nó cũng có header. Toạ độ của thằng này có thay đổi chút chút. Thay vì dạng "đầu, cuối" thì đổi thành "đầu, tổng" trong đố tổng là tổng số dòng nó xài. Đầu ký hiệu của tệp gốc là dấu -, tệp mới là +, thích cái kiểu này hơn kiểu ngữ cảnh. Ký hiệu tạo độ (change hunks hay chunks)cũng được rút ngắn lại còn một dòng dạng:
@@ -R +R @@
Các dòng thêm vô, có dấu + ở đầu, xoá thì có -. Dòng thay đổi cũng đưa về dạng như thế.
---------------------------------------
Nguồn: Diff
---------------------------------------
[1]LCS - Longest Common Subsequence
Chủ Nhật, tháng 7 15, 2007
Google services
Hờ, sáng ra coi feed, đọc bài này. Hehe, tưởng tụi nó xài script để xài mấy cái này với Opera, vì trước tụi này không chịu xi nhê với opera. Khi đó tức lộn ruột :)).
Mở thử Google notebook, Docs, hehe, chơi ngoan lành rồi :D. Nhưng coi thằng Google page creator thì vẫn chưa chịu cho vô, sao tụi google nó không làm nốt nhỉ, mất công khi nào cần upload lại phải sang firefox bắt gà b-).
Thứ Ba, tháng 7 03, 2007
Slackware 12 released
Slackware 12 vừa ra lò nóng hổi (2/7/2007), vừa thổi... chưa xơi :)). Thời gian tính từ lúc phát hành bản 11 đến bản 12 khá nhanh so với thời gian 10 ->11. So với bản 11 có một số thay đổi "hơi" lớn:
- Xài kernel mới, bản 2.6.21.5 thay vì xài 2.4 là mặc định.
- X11 lên 7.
- Gcc xài 4.1.12 tuy nhiên vẫn có gói gcc 3.4.6 để trong pasture cho ai cần.
- Python từ 2.4 lên 2.5
- Công cụ quản lý gói thấy quảng cáo là ngon lành hơn, không biết răng, để khi mô cập nhật xài thử.
Còn lại mấy cái linh tinh, không quan trọng với mình. Nhìn lại mấy cái cập nhật vừa nói trên cũng không ảnh hưởng chi đến mình nhiều, trừ thằng quản lý gói, là đồ hay dùng. Có lẽ thằng này là lý do chính đáng nhất để nâng cấp. Lần này nâng cấp chắc in hướng dẫn ra cả làm cả đọc chắc ăn.
Upgrade
List file
Change log
Thời gian nâng cấp: Dời lại đã, đang nhác :P