Friday, 25 October 2013

[scheme] data type boolean

Loạt bài viết giúp học ngôn ngữ  Scheme, sử dụng Guile. Cố gắng để mọi thứ trở nên dễ hiểu, đơn giản nhất.

Để làm theo bài tut này, bạn cần có Guile interpreter. Nếu bạn chưa biết cài và chạy Guile interpreter thế nào, xem ở đây
Syntax của Guile không giống C/C++/Java/PHP/Python... nên bạn cứ làm theo là được => hiểu sau.

Từ khóa
- data type: kiểu dữ liệu
- boolean: Tiếng Việt là gì nhỉ???

Bài này viết về data type boolean.

Kiểu dữ liệu boolean (đôi khi viết tắt là bool) là kiểu dữ liệu đơn giản chỉ có 2 giá trị : đúng hoặc sai

Trong Guile
giá trị sai biểu diễn bằng #f
giá trị đúng được biểu diễn bởi TẤT CẢ các thứ khác và #t
Ví dụ

[scheme] Guile - giới thiệu và cài đặt

Guile là gì? 
- Guile là viết tắt của cụm từ GNU Ubiquitous Intelligent Language for Extensions, là ngôn ngữ mở rộng (extension) chính thức cho GNU operating system.
- Guile là một library. (Guile is a library designed to help programmers create flexible applications.)
- Guile là một ngôn ngữ lập trình.
- Guile is an interpreter and compiler for the Scheme programming language, a clean and elegant dialect of Lisp.
- Guile is an efficient virtual machine that executes a portable instruction set generated by its optimizing compiler, and integrates very easily with C and C++ application code.

...
Theo http://www.gnu.org/software/guile/guile.html


Nói chung là, nếu bạn muốn học Scheme thì cài Guile, hết!

Làm thế nào để học được cái này, trông khó hiểu quá?
Shut up and just do it !

Cách đọc 
guile /gʌɪl/

Cài đặt

Wednesday, 23 October 2013

NGINX beginner

NGINX là gì?
nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev.
là một HTTP/reverse proxy/mail proxy server được viết để giải quyết bài toán C10K, hiện tại là một trong 2 HTTP server phổ biến nhất trên nền UNIX-like OSes. (theo http://wiki.nginx.org/Main )

Làm thế nào để trở thành một NGINX beginner?
Có nhiều cách, sau đây là 1 cách vớ vẩn nhất:
- Cài nginx
- Đọc http://nginx.org/en/docs/beginners_guide.html


Đó không phải là cách để giúp bạn config nginx thành 1 reverse-proxy nhanh nhất, hay cấu hình để nginx chạy website PHP của bạn ngay lập tức. Nhưng là một tài liệu phải đọc nếu bạn dùng NGINX.

Có gì hay?
- Một ít kiến thức về SIGNAL
- Syntax config của NGINX
- Biết cách dùng các directive để config NGINX

Trích vài đoạn hay ho:

Monday, 14 October 2013

Thu và phát mạng tới tất cả các thiết bị bằng Laptop

Mình mới chuyển sang nhà mới, ISP chưa kịp chuyển địa chỉ cung cấp internet cho nhà mình. Với nhu cầu của bản thân, mình không thể offline.
Các thiết bị trong nhà gồm: 2 laptop, 1 desktop, 3 mobile devices, 1 switch wifi Tenda (4 cổng LAN).

Xung quanh hàng xóm mới có rất nhiều mạng wifi, "crack" bừa 1 em và thành công. Nhưng mình làm việc trên desktop là chủ yếu, không thể làm trên con lap ghẻ được. Vậy là mình quyết định, thu wifi bằng laptop và phát lại bằng switch để dùng trên desk và cho cả nhà.

Sau đây là toàn bộ quá trình thực hiện trên Laptop dùng Windows 7

Wednesday, 9 October 2013

[linux] procps = ps + kill + sysctl + top + watch + ...

Hỏi và trả lời theo phong cách CCGU:

hvn@u1204: ~ () $ whatis procps
procps: nothing appropriate.
hvn@u1204: ~ () $ whatis ps
ps (1)               - report a snapshot of the current processes.
hvn@u1204: ~ () $ which ps
/bin/ps
hvn@u1204: ~ () $ dpkg -S `which ps` #hoặc dpkg -S $(which ps)
procps: /bin/ps
hvn@u1204: ~ () $ apt-cache show procps

Wednesday, 2 October 2013

[bash] Mỗi ngày biết thêm 1 câu lệnh - whatis

Đây là sản phẩm tớ nghĩ ra hôm nay, thêm dòng này  vào ~/.bashrc và mỗi khi mở bash lên, bạn sẽ được học 1 câu lệnh (chương trình).
Sản phẩm là sự kết hợp vài câu lệnh đơn giản trong đó có whatis
NOTE: câu lệnh trong 1 số trường hợp sẽ trả về "nothing appropriate" - giống như khi bạn gõ:
hvn@archhvn: ~ () $ whatis familug
familug: nothing appropriate.
hvn@archhvn: ~ () $

Để giữ cho câu lệnh ngắn gọn, tớ bỏ qua xử lý trường hợp này.

Phiên bản dài:
whatis $(basename $(find $(echo "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" | tr ':' ' ') | shuf | head -n1))

Phiên bản ngắn hơn: