30 Jun 2011

Open Problem

This post is just a story which is not mine.

When I met R.B.M at "his place", he gave me a sequence of number
1 11 21 1211 111221 ... 
and asked me what is the next number?
I spent 6 months to get the answer with help from some friends.
How long will it take you to solve this open problem? ;-)


Feel free to ask for hints. I will tell you story of R.B.M once you answer it right!

5 Apr 2011

Highest state of a man

Those who know do not talk.
Those who talk do not know.

Keep your mouth closed.
Guard your senses.
Temper your sharpness.
Simplify your problems.
Mask your brightness.
Be at one with the dust of the Earth.
This is primal union.

He who has achieved this state
Is unconcerned with friends and enemies,
With good and harm, with honor and disgrace.
This therefore is the highest state of man.
He did talk too much
Time to keep state of his mouth closed more than opened :-)

27 Feb 2011

Sự cần thiết của một hệ thống cảnh báo

Trước giờ mình luôn nghĩ hệ thống Monitoring (default + bản thân tự customize) đã đủ đáp ứng được nhu cầu:
-Phát hiện ra sự cố
-Cảnh báo kịp thời
-Có khả năng phục hồi hệ thống một cách nhanh nhất

Nhưng mình phát hiện ý nghĩ đó là sai khi tiếp cận với hệ thống cảnh báo của những người làm chuyên nghiệp (dù chỉ tiếp cận qua những gì họ giới thiệu) và sự cố network vừa qua tại công ty mà mình đang làm việc.
Sự cố network xảy ra làm ngưng trệ hầu như tất cả các sản phẩm đang hoạt động. Không biết bạn có cảm giác thế nào khi hệ thống cảnh báo tất cả server (hàng trăm) đều trong trạng thái “DOWN”, mình thì gần như buông tay.
Thứ nhất tuy hệ thống network không thuộc phạm vi quản lí của team mình, nhưng hệ thống monitor phải detect được sự cố network đó ngay khi nó vừa xảy ra, nhưng đã không làm được việc.
Thứ 2, khi sự cố network được giải quyết, dù mạng đã thông nhưng service vẫn gặp sự cố dù hệ thống cảnh báo cho biết tình trạng tất cả service đều bình thường.

23 Oct 2010

Move to Fedora


Have to forget Gentoo for a while, my laptop just does not work well with source based distro, graphic card is too hot during compiling time, need to replace 3 times on a half year.
Next time, I should take time to look at graphic card type before buying new laptop.
Maybe Fedora is right choice for this time, it was my first Linux distro, bring me to this Linux_World.
See you, Gentoo!

21 Oct 2010

Fabric và ssh_key + passphrase

SSH (OpenSSH client) là công cụ mà bất cứ ai làm việc với Unix, Linux đều phải dùng tới, cho dù là lập trình viên, quản trị hệ thống, hay quản trị cơ sở dữ liệu.
Để ssh tới một máy chủ *nix, thông thường có 2 cách:
1.1. Sử dụng password (Không an toàn, có thể bị lộ, hoặc bị bruteforce, không nên dùng)
1.2. Sử dụng mã hóa công khai (public key authentication, cách này an toàn hơn, tránh được các nguy cơ trên)

Với cách thứ 2, một khi máy làm việc bị nhân nhượng, hoặc đơn giản là ai đó ngồi vào máy tính, lấy được private key, xem như hầu hết mọi server (dùng key này để login) đều bị nguy hiểm (Trừ phi sử dụng truecrypt để mã hóa phân vùng đặc biệt, khi dùng thì mount lên, kẻ nào đó ngồi vào đúng lúc đã mount cũng coi như xong). Do đó, để tăng khả năng an toàn, nên dùng thêm một passphrase cho private key của riêng mình.
Khi dùng private key với passphrase, mỗi khi muốn sử dụng key này, hệ thống sẽ yêu cầu nhập vào một chuỗi password đã ấn định khi tạo key.

30 Sept 2010

CryoPID

Khi làm việc trên hệ thống, ta thường dùng screen hay tmux để duy trì shell session trong trường hợp network xảy ra sự cố, hoặc duy trì nhiều session chỉ với một phiên kết nối ssh.
Tuy nhiên, trong trường hợp nào đó mà
    - có thể command được sử dụng bên ngoài screen hoặc tmux session, hoặc người sử dụng command không nghĩ rằng phải mất một khoảng thời gian lâu hơn dự kiến để tiến trình thực hiện xong.
    - screen và tmux không duy trì được session sau khi hệ thống reboot.
    - screen và tmux chỉ làm việc trên hệ thống cục bộ, không thể tái sử dụng session đã tạo trên hệ thống khác.

Bernard B đã phát triển cryoPID để khắc phục những nhược điểm nói trên. Khi một tiến trình đang thực hiện, mà vì một sự cố nào đó ta cần stop tiến trình này để reboot hệ thống, hoặc khắc phục một lỗi critical nào đó, hoặc chỉ dừng tiến trình để tái sử dụng bên trong screen session, hoặc dùng tiến trình dang dở trên một hệ thống khác, cryoPID có thể làm đóng băng tiến trình đang thực hiện thành một image file có thể tự động extract và execute mà không cần chương trình trợ giúp.

Ví dụ, khi đang thực hiện lênh cp một file có dung lượng khá lớn, chỉ cần dùng ps và grep tìm PID của cp, sau đó:
$ freeze image_name PID
sau khi reboot, chỉ cần run ./image_name là tiến trình được khôi phục với state như cũ, tiện lợi nhỉ?

Tuy nhiên cryoPID còn có nhiều nhược điểm, và nhiều tính năng cần được nâng cấp, mà tác giả có nêu rõ trên cryoPID website.

Bản thân mình cảm thấy rất thích công cụ này ngay từ ý tưởng của nó!
Để cài đặt cryoPID hệ thống cần có gcc, g++ và zlibc.

Disqus