New FAMILUG

Monday, 30 November 2015

[Golang] ba chấm

Trong Go có một ký hiệu khá đặc biêt: ba chấm (...)
Ba chấm, thêm vào mỗi cuối câu, để lại một sự miên man trong suy nghĩ.
Như "Anh ... em"...

Và có vẻ như bác Rob Pike cũng hiểu 3 chấm có ý này nọ kiểu vậy, nên lấy nó làm ký hiệu cho "wildcards".
Tức dấu ... sẽ "match" với tất cả mọi thứ (gần giống ký hiệu * trong shell).
Khi viết
"github.com/hvnsweeting/pika/..."
nó sẽ match với tất cả các sub package trong package "pika" cũng như chính package "pika".

Để làm gì? 
Một ứng dụng đơn giản là để test tất cả các package / subpackage trong 1 package,
Ví dụ: cần test toàn bộ package
github.com/labstack/echo
chỉ cần chạy
go test github.com/labstack/echo/...

Sunday, 29 November 2015

Tiếng Anh

Học tiếng Anh không phải chuyện đơn giản, nhưng rồi ai cũng phải làm.
Hãy tạm ngừng than vãn về độ khó của Tiếng Anh và xem những developer nổi tiếng nói về việc họ đã học nó vất vả ra sao.

1. Linus Torvard - creator of Linux, git
Linus Torvard là người Phần Lan (Finland), nơi mà tiếng Anh không phải là tiếng mẹ đẻ.
Linus đã bắt đầu đọc bộ Lord Of The Rings với một quyển từ điển, và khi kết thúc
ông không cần nó nữa.
That said, I'll point to a couple of books I really enjoyed. On the non-fiction side, Richard Dawkin's "The Selfish Gene" was one book that I think is pretty influential. On the fiction side, as a teenager I enjoyed Heinlein's "Stranger in a strange land" a lot, and I have to admit to "Lord of the Rings" having been pretty important to me - but for a slightly odd reason, not as a huge Tolkien fan. For me, it was one of the first "real" books I read in English, and I started with a dictionary by my side, and ended it reading without needing one.
http://meta.slashdot.org/story/12/10/11/0030249/linus-torvalds-answers-your-questions

2. Salvatore Sanfilippo (Antirez) - creator of Redis, hping

Thursday, 19 November 2015

Django

Django đọc là gieng gâu ( JANG-oh).
Chữ D là âm câm, không phát âm.

Nghe phát âm ở: http://red-bean.com/~adrian/django_pronunciation.mp3

Django là tên của Python web framework phổ biến nhất vũ trụ.
Được đặt tên theo Django Reinhardt - một trong những guitarist vĩ đại nhất mọi thời đại.
Cùng nghe một album của ông:


Tham khảo.
https://docs.djangoproject.com/en/1.8/faq/general/#what-does-django-mean-and-how-do-you-pronounce-it
https://en.wikipedia.org/wiki/Django_Reinhardt

P/s: Ngoài ra cũng có một bộ phim tên là "Django Unchained" rất nổi tiếng và đã thắng 2 giải Oscar.

Wednesday, 4 November 2015

Ghi nháy về lọc process theo state bằng check_procs

check_procs là tên của chương trình dùng để check process trên 1 máy theo tiêu chí nào nó.

Bài viết nhắm tới độc giả đã sử dụng check_procs / nagios / shinken. 

Trên Ubuntu 14.04 nó nằm trong package:
$ dpkg -S '/usr/lib/nagios/plugins/check_procs'
nagios-plugins-basic: /usr/lib/nagios/plugins/check_procs
Được dùng trong monitoring, thường dùng kèm với NRPE, NSCA, nagios, shinken ...

check_procs có chức năng lọc process theo state, nó lấy output của lênh:
/bin/ps axwwo 'stat uid pid ppid vsz rss pcpu etime comm args'
rồi xử lý. State của 1 process là ký hiệu xuất hiện ở cột đầu tiên trong output của lệnh trên.

Ta có thể liệt kê / đếm các process có state là S bằng lệnh sau:
$ /usr/lib/nagios/plugins/check_procs -s S -vv | head -n4
CMD: /bin/ps axwwo 'stat uid pid ppid vsz rss pcpu etime comm args'
Matched: uid=0 vsz=0 rss=0 pid=2 ppid=0 pcpu=0.00 stat=S etime=70-01:46:40 prog=kthreadd args=[kthreadd]
Matched: uid=0 vsz=0 rss=0 pid=3 ppid=2 pcpu=0.00 stat=S etime=70-01:46:40 prog=0 args=[ksoftirqd/0]
Matched: uid=0 vsz=0 rss=0 pid=7 ppid=2 pcpu=0.00 stat=S etime=70-01:46:40 prog=rcu_sched args=[rcu_sched]
$ /usr/lib/nagios/plugins/check_procs -s S
PROCS OK: 45 processes with STATE = S | procs=45;;;0;