Never ask how to use, just wonder how to make...

Dec 28, 2008

Every OS suck

Bài hát cũng có thể xem là một biên niên sử máy tính và hệ điều hành từ những năm 1970 đến nay. Tác giả của bài hát này là nhóm Three Dead Trolls in a Baggie.

Chúc các bạn cuối tuần vui vẻ ^^.

The lyric:

You see, I come from a time in the nineteen-hundred-and-seventies when
computers were used for two things - to either go to the moon, or play
Pong… nothing in between. Y’see, you didn’t need a fancy operating
system to play Pong, and the men who went to the moon — God Bless ‘em —
did it with no mouse, and a plain text-only black-and-white screen,
and 32 kilobytes of RAM.

But then ’round ’bout the late 70’s, home computers started to do a
little more than play Pong… very little more. Like computers started
to play non-Pong-like games, and balance checkbooks, and why… you
could play Zaxxon on your Apple II, or… write a book! All with a
computer that had 32 kilobytes of RAM! It was good enough to go to
the moon, it was good enough for you.

It was a golden time. A time before Windows, a time before mouses, a
time before the internet and bloatware, and a time…
before every OS sucked.



Well, way back in the olden times,
my computer worked for me.
I’d laugh and play, all night and day,
on Zork I, II and III.

The Amiga, VIC-20 and the Sinclair II,
The TRS 80 and the Apple II,
they did what they were supposed to do,
wasn’t much… but it was enough.

But then Xerox made a prototype,
Steve Jobs came on the scene,
read “Of Mice and Menus,” Windows, Icons
a trash, and a bitmap screen.

Well Stevie said to Xerox,
“Boys, turn your heads and cough.”
And when no-one was looking,
he ripped their interfaces off.

Stole every feature that he had seen,
put it in a cute box with a tiny little screen,
Mac OS 1 ran that machine,
only cost five thousand bucks.

But it was slow, it was buggy,
so they wrote it again,
And now they’re up to OS 10,
they’ll charge you for the Beta, then charge you again,
but the Mac OS still sucks.

Every OS wastes your time,
from the desktop to the lap,
Everything since Apple Dos,
Just a bunch of crap.

From Microsoft, to Macintosh,
to Lin– line– lin– lie… nux,
Every computer crashes,
’cause every OS sucks.

Well then Microsoft jumped in the game,
copied Apple’s interface, with an OS named,
“Windows 3.1″ - it was twice as lame,
but the stock price rose and rose.

Then Windows 95, then 98,
man solitaire never ran so great,
and every single version came out late,
but I guess that’s the way it goes.

But that bloatware’ll crash and delete your work,
NT, ME, man, none of ‘em work.
Bill Gates may be richer than Captain Kirk,
but the Windows OS blows!
And sucks!
At the same time!

I’d trade it in, yeah right… for what?
It’s top of the line from the Compuhut.
The fridge, stove and toaster, never crash on me,
I should be able to get online, without a PHD.

My phone doesn’t take a week to boot it,
my TV doesn’t crash when I mute it,
I miss ASCII text, and my floppy drive,
I wish VIC-20 was still alive…

But it ain’t the hardware, man.

It’s just that every OS sucks… and blows.

Now there’s lih-nux or lie-nux,
I don’t know how you say it,
or how you install it, or use it, or play it,
or where you download it, or what programs run,
but lih-nux, or lie-nux, don’t look like much fun.

However you say it, it’s getting great press,
though how it survives is anyone’s guess,
If you ask me, it’s a great big mess,
for elitist, nerdy shmucks.

“It’s free!” they say, if you can get it to run,
the Geeks say, “Hey, that’s half the fun!”
Yeah, but I got a girlfriend, and things to get done,
the Linux OS SUCKS.
(I’m sorry to say it, but it does.)

Every OS wastes your time,
from the desktop to the lap,
Everything since the abacus,
Just a bunch of crap.

From Microsoft, to Macintosh,
to lin– line– lin– lie… nux.
Every computer crashes,
’cause every OS sucks.

Every computer crashes… ’cause every OS sucks!

Dec 12, 2008

Làm chủ Linux Bash shell: Xử lý string trong Bash shell

Một trong những shell được sử dụng thường xuyên trong Linux là bash shell. Khi viết các shell script, công việc mà người sử dụng hay gặp phải nhất có lẽ là xử lý string (tìm file, xử lý tên file, xử lý log, xử lý chuỗi nhập vào,...). Sau đây tôi xin trình bày một số điểm mấu chốt thú vị trong xử lý string với bash shell.

Hai lệnh đầu tiên, đơn giản nhưng tương đối hữu ích, đó là dirnamebasename. Cho một biến có chứa 1 string dạng đường dẫn đến 1 thư mục D hoặc 1 file X, lệnh basename sẽ trả về đúng tên thư mục D hoặc tên file X, còn lệnh dirname trả về phàn đường dẫn đến thư mục mẹ của D hoặc X. Ví dụ:
$ basename /home/thangphamduy/workspace/foo.txt
$ dirname /home/thangphamduy/workspace/foo.txt
$ basename /home/thangphamduy/workspace
$ dirname /home/thangphamduy/workspace


$ ALPHA="/home/thangphamduy/temp/bar.txt"
$ BETA=`dirname $ALPHA`
$ echo $BETA

Đó chỉ là xử lý xâu đơn giản, tiếp đây, chúng ta thử xử lý xâu một cách "pro" hơn với bash shell. Trong 1 biểu thức, ta thường bắt gặp một biến được đặt trong cặp dấu ngoặc nhọn kiểu như ${MYVAR}. Và bash cũng cho phép chúng ta xử lý biến đó ngay trong cặp ngoặc nhọn. Chúng ta có thể dễ dàng cắt bỏ hay lấy ra một phần của string chứa trong biến một cách rất dễ dàng. Để dễ hình dung, các bạn có thể xem ví dụ sau:

$ MYVAR=foodforthought.jpg
$ echo ${MYVAR##*fo}
$ echo ${MYVAR#*fo}

Trong lệnh thứ nhất, ở phía trong dấu ${}, đầu tiên chúng ta viết tên biến, sau đó là hai dấu #, rồi đến 1 chuỗi ký tự đại diện (*fo). Vậy lệnh này có nghĩa là gì và nó được bash shell thực hiện như thế nào? Lệnh này (echo ${MYVAR##*fo}) sẽ khiến cho bash thực hiện việc cắt bỏ chuối dài nhất, tính từ ký tự đầu tiên, khớp với chuỗi ký tự đại diện (còn gọi là wildcard), sau đó in phần còn lại ra stdout. Khi gặp lệnh này, bash shell sẽ thực hiện việc tìm kiếm tất cả các xâu con khớp với chuỗi ký tự đại diện *fo trong xâu được chứa bởi $MYVAR(tức là tìm tất cả các xâu kết thúc với 2 ký tự fo):
fo MATCHES *fo
foodfo MATCHES *fo

Sau khi kết thúc tìm kiếm (trong VD trên bash tìm được 2 kết quả), bash sẽ lấy xâu kết quả dài nhất (foodfo), rồi loại bỏ nó ra khỏi xâu gốc (phần còn lại: rthought.jpg), rồi in kết quả ra màn hình.

Trong câu lệnh thứ hai (echo ${MYVAR#*fo}), công việc cũng tương tự như trên, nhưng thay vì lấy kết quả dài nhất, bash shell lại lấy kết quả ngắn nhất (fo) rồi loại bỏ khỏi xâu gốc và in kết quả ra màn hình. Thực ra khi chỉ sử dụng 1 dấu # ở phần tùy biến, ngay khi tìm được kết quả đầu tiên, bash shell sẽ lập tức dừng việc tìm kiếm lại.

Để tìm kiếm từ cuối xâu thay vì tìm kiếm từ đầu xâu, chúng ta thay các tùy biến # và ## bằng các tùy biến % và %%, cách sử dụng hoàn toàn tương tự. Ví dụ:
$ MYVAR=thangphamduy/workspace/
$ echo ${MYVAR%.*}
$ echo ${MYVAR%%.*}

Và một cách xử lý string nữa, ít được dùng tới hơn, nhưng nhiều lúc rất có ích, đó là cắt xâu theo vị trí:
$ echo ${MYVAR:0:13}
$ echo ${MYVAR:8:17}

Phần xử lý string xin được dừng lại tại đây, cảm ơn quý vị và các bạn đã quan tâm theo dõi >:).
(Tham khảo từ
Bash by example - IBM)

Dec 1, 2008

Vim mind share soaring: roundup of 10 vim articles, recent and older gems

(Copy from

Am I the only one to notice that there is a lot of vim love in the airwaves recently?

I saw the trend very clearly, spanning from reddit to news.yc and let me say that the material that came up recently is very good; those neat posts prompted me to improve my vimrc dramatically and I really like what I learned.

In this installment, instead than annotating my vimrc (another one? not that interesting, I’ll refrain) , I want to compile a roundup of the best vim articles I saw recently.

I’ll also add a few classics that changed me from a hater to a vim lover and will conclude with some minor tips out of my bag.

So here we go with the roundup.

Recent Vim Articles Roundup

Jamis Buck

Vim Follow Up

Coming Home To Vim

Jamis Buck switches back to vim from a period using TextMate and talks about his experience and his configuration. Many useful tips in there.

Stephen Bach

Configuring Vim Right

Sensible defaults for your vimrc, recommended.

Learnr dev blog

Configuring Vim Some More

Some additional configuration options that totally make sense and I incorporated in my config too.

Swaroop C H

A byte of vim

A new free e-book on vim, worth reading. Covers also advanced topics like writing your own plug-ins.

Effective Vim

This ends the recent vim trend spotting. But there are some older links that are worth sharing in my opinion.

Older Vim Gems

Jonathan McPherson

Efficient Editing With Vim

This is a true gem, an intermediate level tutorial that will convert you from a beginner vim user to a way more proficient one.

Jerry Wang

vi for smarties

Very good beginners guide to vim.

David Rayner

best of vim tips

Raw tips from a very long time vi/vim user

Vim is also great for Python development, 3 ideas…

vim omnicomplete awesomeness

How to make vim a modular Python IDE

How to replicate SLIME in vim

Finally a few tips from myself

vimperator: If you’re a heavy vim user you might want to checkout the great Firefox extension vimperator. You’ll find yourself browsing mouse-less with familiar vim keystrokes in a matter of minutes. I love it.

viPlugin for Eclipse: If you’re a Java developer (been there, done that) and you’re stuck with Eclipse, you definitely want to have viPlugin. It makes the Eclipse experience something much more pleasurable for one who has vi keystrokes embedded in the fingers.

cool color scheme: If you’ve seen “some” screen-casts and you have just a subterranean TextMate envy and you can’t stop thinking at that cool color-scheme, well think no more, you can use this one or my humbly tweaked version.

For delicious users here is the page of my bookmarks that made me notice the trend.

Ending note

For full disclosure I have to say that I have been - and still am sometimes - an Emacs user. One of the rebel ones daring enough to use Viper mode. So now you know.

Nov 27, 2008

Gmail themes

Now Google lets us choose themes for Gmail ^^. There are about 30 themes. So cool.

Nov 4, 2008

Cài đặt Ubuntu/Kubuntu 8.10 từ USB

1. Chuẩn bị

- Hệ điều hành Windows XP/Vista.

- File ISO Ubuntu 8.10 (link download) hoặc Kubuntu 8.10 (link download).

- USB dung lượng lớn hơn hoặc bằng 1 GB.

- Chương trình HP USB Disk Storage (link download).

- Công cụ tạo USB khởi động:
+ link dành cho Ubuntu (file nén exe)
+ link dành cho Kubuntu (file nén rar)

[*] Từ bây giờ tớ sẽ chỉ hướng dẫn cho Ubuntu, bạn nào cài Kubuntu thì cứ thay chữ Ubuntu bằng Kubuntu là okie ^^.

2. Tạo USB khởi động

- Kết nối máy tính với USB.

- Đầu tiên các bạn sử dụng chương trình HP USB DS format USB của bạn về định dạng FAT32.

- Tiếp đó giải nén cái công cụ tại USB khởi động ở trên vào đâu đó trên đĩa cứng, ta được thư mục Ubuntu810.

- Copy file ISO của Ubuntu 8.10 vào thư mục Ubuntu 8.10.

- Chạy file Ubuntu810.bat trong thư mục Ubuntu810.

- Làm theo hướng dẫn trên cửa sổ hiện ra, và chờ đến khi nó báo thành công.
3. Cài đặt Ubuntu 8.10

- Khởi động lại máy tính

- Vào BIOS thiết lập chế độ khởi động từ USB (cái này cách làm tùy BIOS, nhưng hầu hết BIOS không quá cũ đều hỗ trợ ^^).

- Tiếp tục cài đặt như khi cài từ LiveCD.

4. Tổng kết

Việc cài từ USB có nhiều ưu điểm hơn cài từ LiveCD do tận dụng được khả năng đọc/ghi tốc độ cao của USB, tiết kiệm được cả thời gian (thời gian cài đặt ở máy tớ là 8 phút) và tiền bạc (tiền đĩa CD và hao mòn ổ ghi =))).

Nếu đã có LiveCD, bạn cũng có thể tạo USB cài Ubuntu bằng cách boot vào LiveCD và làm như sau:

Bài viết này tớ có tham khảo từ pendrivelinux. Cái tool dành cho Kubuntu 8.10 là do tớ edit từ cái dành tool cho Ubuntu nên không có định dạng exe như cái của pendrivelinux ^^.

Nov 2, 2008

[Đánh giá] Kubuntu 8.10

Vào ngày cuối tháng 10, khi Halloween đã tới rất gần, một sự kiện được trông đợi bởi những chiếc đồng hồ đếm ngược đã xảy ra: Bản Ubuntu 8.10 đã ra đời. Kèm theo đó là các phiên bản trên các nền đồ họa khác: Kubuntu 8.10, Xubuntu 8.10.

Trước hết xin gửi lời cảm ơn đến bác CườngNV @ JAIST. Bác có lẽ là người đầu tiên làm mirror Ubuntu 8.10 ở Việt Nam cho anh em download và cài đặt Ubuntu ngay khi đang còn nóng. Bác cũng update ngay con Kubuntu khi em yêu cầu ^^.

Theo như phản ánh của anh em Fotech thì bản Ubuntu 8.10 khá là chán. Việc thực hiện upgrade có tỷ lệ thất bại khá cao. Thêm vào đó, khả năng nhận phần cứng (card wireless, card màn hình) chưa tốt (còn tệ hợn bản RC :(). Có lẽ đây là hệ quả của sức ép từ phần sau dấu chấm của con số 8.10 gây ra. Rõ ràng tuyên bố trước là đúng 6 tháng sẽ phát hành một phiên bản khiến cho dù phiên bản chưa thật hoàn chỉnh vẫn phải tung ra.

Tớ chỉ mới cài thử bản Kubuntu 8.10 trên laptop. Tuy nhiên tớ đánh giá khá cao bản này. Kubuntu 8.10 được xây dựng dựa vào nền đồ họa KDE 4.1 khá tốt. KDE 4.1 có khá nhiều tính năng nổi bật thú vị.

KDE 4.1 là bản cải tiến của KDE 4.0. Khái niệm Desktop đã được thay đổi hoàn toàn. Bây giờ Desktop được gọi với tên mới là Plasma, là nơi để đính các Gadget, và chính các Gadget này với độ tùy biến cao sẽ mang lại các tiện ích cho người sử dụng. Thanh Start menu được thiết kế thành các Tab tiện lợi và có bổ sung ô search thông minh (đú theo Vista ^^). Phiên bản 4.1 bổ sung những điểm thiếu sót cho KDE 4.0: Gadget Folder view cho phép đưa một thư mục bất kỳ lên Plasma; main panel có tính tùy biến cao; bổ sung thêm công cụ Grub editor tiện lợi.

Một điều đáng nói ở Kubuntu 8.10 là vấn đề giao diện và font chữ đã được cải thiện đặc biệt. Các bạn có thể thấy rõ nhất điều này khi cài thử FF3. Đã không còn những font + giao diện xấu mù, mà thay vào đó là một bộ mặt hoàn toàn khác.

Bản Kubuntu 8.10 cũng đã fix được khá nhiều lỗi liên quan đến tính tương thích phàn mềm. Tớ dùng thử một ngày mà chưa gặp lỗi crash lần nào. Tớ cài bộ gõ XUnikey, để chế độ Foward, và tớ có thể sử dụng nó với hầu hết các phần mềm (trừ Konqueror không sao gõ được tiếng Việt).
Tuy nhiên tớ vẫn còn vướng một số vấn đề nhỏ khi sử dụng bản này. Tớ không thể mở được các file mp3 bằng Amarok. Tớ cũng không thể kết nối wireless được (cái này không biết do hệ điều hành hay tại AP nữa ^^). Kopete không thể kết nối được máy chủ Yahoo (một số anh em Fotech bảo là do máy chủ lỗi, tạm tin vậy ^^).

Kết lại một câu là Kubuntu 8.10 cũng đáng để dùng đấy chứ nhỉ ^^.

Nov 1, 2008

Truy cập phân vùng Linux từ Windows

Bạn dùng song song 2 hệ điều hành Windows và Linux? Trong Linux có thể truy cập phân vùng NTFS bằng NTFS-3G, thật là dễ dàng. Nhưng từ Windows nếu muốn truy cập vào phân vùng ext2, ext3 thì bạn phải làm thế nào? Thực ra là có khá nhiều cách, và đều không phức tạp hơn NTFS-3G. Bài viết này tớ sẽ giới thiệu 2 phương pháp đơn giản và hiệu quả nhất ^^.

1. Ext2 Installable File System (Ext2IFS)
Bạn có thể download phần mềm này từ địa chỉ:

Quá trình cài đặt rất đơn giản, bộ cài đặt sẽ tự scan (các) ổ cứng của bạn và hiển thị tất cả các phân vùng như hình dưới. Bạn có thể chọn chữ cái cho các phân vùng bạn muốn sử dụng.

Sau khi chọn Next, bộ cài sẽ hiển thị phần Release note của version. Phần này có rất nhiều thông tin có ích, các bạn nên đọc kỹ:

Và đây là kết quả ^^:

Ưu điểm: Truy cập dễ dàng với Windows Explorer như là một phân vùng Windows ^^. Có thể tùy biến quyền ReadOnly hoặc không :D.
Nhược điểm: Chỉ hỗ trợ số inode tối đa là 128bytes, do đó chỉ hoạt động tốt với phân vùng Ext2 và cả Ext3 nếu Ext3 được format dưới dạng số inode 128bytes (tham số -i của lệnh mkfs.ext3).
* Khuyến cáo: Nếu bạn sử dụng Windows Vista, hãy tắt tính năng User Account Control để đảm bảo không xảy ra lỗi khi truy cập phân vùng Linux .

2. Total Commander + Plugin ext2+reiser

Nếu bạn đã khá quen với sự tiện dụng của Total Commader (TC) thì có một plug-in khá hữu ích, bổ sung cho TC tính năng truy cập các định dạng phân vùng Linux như ext2, ext3, reiserfs.

Bạn có thể download plugin trên ở đây:

Ưu điểm: Sử dụng tốt với các phân vùng định dạng ext2, ext3 (ReiserFs thì tớ không có điều kiện kiểm chứng). Tận dụng được sự tiện dụng của TC.
Nhược điểm: Hơi chậm :D.

Oct 30, 2008

Top secret routine of Microsoft Vista

That's Vista =))
TOP SECRET Microsoft(c) Project:Longhorn(TM) SP1
Estimated release date:2008
#include “win95.h”
#include “win98.h”
#include “leopard.h”

char chew_up_some_ram[10000000];

void main () {
while (!CRASHED) {

if (first_time_install) {

if (still_not_crashed) {

if (!DX10GPU()) {
set_graphics(aero, very_slow);
set_mouse(reaction, sometimes);

// printf(”Welcome to Windows 2000″);
// printf(”Welcome to Windows XP”);
printf(”Welcome to Windows Vista”);

while (something) {



Oct 8, 2008


Đời vẫn chê rằng: lập trinh viên
Chỉ biết vẽ đồ thị hình tim trên màn hình đồ hoạ
Hay phân tích và đem số hoá
Thành bit, byte cả những nhành hoa
Chẳng biết tí ti về nhạc, hoạ, thơ ca

Biết làm sao được. IT không lãng mạn.
Cảm xúc không sinh được theo thuật toán
Nên máy tính không biết làm thơ

Nhưng lập trinh viên thì biết ước mơ
Mong cuộc sống đẹp hơn nhờ những chương trình tự động
Mong chắp cánh cho những niềm hi vọng
Kết nối những trái tim vượt khoảng cách không gian...


Sep 26, 2008

Giá mà được chết đi một lúc

Giá mà được chết đi một lúc
Chắc bình yên hơn một giấc ngủ dài
Nếu được xuống địa ngục thì càng tốt
Lên thiên đường sợ chả gặp ai

Giá mà được chết đi một lúc
Tỉnh dậy xem người ta khóc hay cười
Và xem thử mình sẽ cười hay khóc
Làm ma có sướng hơn làm người?

Giá mà được chết đi một lúc
Nằm im cho cuộc sống nhỏ tuôn trào
Nếu người ta tống ngay vào nhà xác
Cứ thế mà chết cóng cũng chẳng sao.

(Nguyễn Thế Hoàng Linh)

Sep 24, 2008

Làm chủ Linux Bash shell với ký tự "!"

- Cú pháp: !{Some chars}
Ý nghĩa: gọi và thực thi lệnh gần nhất trong đã thực thi có phần bắt đầu là {some chars}

$ cat /home/mrpc/workspace/learning-bash/test.txt
dong thu nhat
$ echo "bo sung them dong thu hai" >> ~/test.txt
cat /home/mrpc/workspace/learning-bash/test.txt
dong thu nhat
bo sung them dong thu hai
- Cú pháp: {tên lệnh} [danh sách tham số | !$]
Ý nghĩa: Gọi lệnh và thay tham số !$ trong danh sách tham số bằng tham số cuối cùng của lệnh vừa gõ
$ touch /home/mrpc/workspace/learning-bash/
$ echo "dong dau tien" >> !$
$ cat !$
dong dau tien

Sep 17, 2008

Chảy đi sông ơi

Chảy đi sông ơi
Băn khoăn làm gì
Ai sống mãi được
Em thì nông nổi
Anh thì mê mải

Anh đi tìm gì
Lòng người đen bạc
Mỹ nhân già đi
Lời ai than thở

Cuốn trong gió chiều
Anh hùng cười gượng
Nét buồn cô liêu
Sóng đời đãi hết

Chảy đi sông ơi
Cho tôi nhớ lại
Bên ai một chiều
Thôi thì thôi vậy

Yêu người tôi yêu
Hết rồi nước mắt
Mưa giăng ngợp chiều
Thôi thì thôi nhé

Em thì em bé
Anh thì hoang vắng...

Sep 15, 2008

Alice and Bob

Alice và Bob là hai nhân vật thường xuyên xuất hiện trong các bài giảng và các vấn đề về mã hóa và bảo mật. Việc sử dụng hai cái tên này bắt nguồn từ việc các vấn đề mã hóa thường phải đề cập đến "A muốn gửi một thông điệp cho B". Ngoài Alice và Bob, còn có một số nhân vật khác như:
- Eve: người nghe trộm thông tin, được biết như là kẻ tấn công với hình thức passive.
- Mallory: không như Eve, Mallory là kẻ tấn công hiểm độc. Mallory luôn muốn sửa đổi thông tin, thay thế bằng tin khác hoặc nhân bản các tin lên,...
- Trend: may mắn cho Alice và Bob, họ luôn có sự giúp đỡ của Trend, bên thứ ba, người cung cấp các giao thức an toàn để truyền tin.

Bài hát sau do MC Plus+ (*) sáng tác. Bài hát nói về mối quan hệ của Alice, Bob, Trend, Eve và Mallory, cùng với các vấn đề liên quan đến an toàn mạng như các thuật toán mã hóa, ưu nhược điểm của chúng.

[*] MC Plus+ tên thật là Armand Navabi, đang nghiên cứu về khoa học máy tính tại đại học Purdue.


Alice is sending her message to Bob
Protecting that transmission is Crypto’s job
Without the help of our good friend Trent,
It’s hard to get that secret message sent
Work tries to deposit the check of your salary
But with no crypto, it’ll be changed by Mallory
You think no one will see what it is, you believe?
But you should never forget, there’s always an Eve…

‘Cause I’m encrypting s**t like every single day
Sending data across the network in a safe way
Protecting messages to make my pay
If you hack me, you’re guilty under DMCA

DES is wrong if you listen to NIST
Double DES ain’t no better man, that got dissed
Twofish for AES, that was Schneier’s wish
Like a shot from the key, Rijndael made the swish
But Blowfish is still the fastest in the land
And Bruce used his fame to make a few grand
Use ECB, and I’ll crack your ciphertext
Try CFB mode to keep everyone perplexed

‘Cause I’m encrypting s**t like every single day
Sending data across the network in a safe way
Protecting messages to make my pay
If you hack me, you’re guilty under DMCA

Random numbers ain’t easy to produce…
Do it wrong, and your key I’ll deduce
RSA, only public cipher in the game
Creating it helped give Rivest his fame
If we could factor large composites in poly time,
We’d have enough money to not have to rhyme
Digesting messages with a hashing function
Using SHA1 or else it won’t cause disfunction

‘Cause I’m encrypting s**t like every single day
Sending data across the network in a safe way
Protecting messages to make my pay
If you hack me, you’re guilty under DMCA

Password confirmed. Stand by…

Sep 14, 2008

Why Linux?

Linux là một hệ điều hành máy tính kiểu Unix. Linux là một ví dụ nổi bật nhất cho việc phát triển phần mềm miễn phí và nguồn mở; mã nguồn của nó có thể được xem, chỉnh sửa, sử dụng hay phân phối lại một cách miễn phí bởi bất kỳ ai.

Nổi tiếng chủ yếu vì mục đích sử dụng làm máy chủ, Linux đã nhận được sự hỗ trợ của nhiều tập đoàn lớn như IBM, Sun Microsystems, Dell, HP và Novell. Nó được sử dụng làm hệ điều hành cho nhiều hệ phần cứng khác nhau, bao gồm máy tính cá nhân, siêu máy tính, máy chơi game chuyên dụng (PS2 và PS3 là 2 ví dụ điển hình :D) và các thiết bị nhúng như là điện thoại di động hay router.

Bức ảnh trên là một trong những câu trả lời cho câu hỏi "Why Linux?".

Để tìm hiểu về lịch sử hệ điều hành Linux, các bạn có thể xem ở đây: History of Linux OS.

Đây là sơ đồ phát triển của các hệ điểu hành Unix nói chung:

Và sơ đồ phát triển của các Linux distro:

(View full size)

Jul 6, 2008