New FAMILUG

The PyMiers

Saturday, 17 August 2013

[Monitoring] StatsD

StatsD là tên của một NodeJS daemon (hay gọi khác là service), daemon này listen các message được gửi tới qua cổng UDP (mặc định là cổng 8125).

chữ d ở cuối statsd là viết tắt cho daemon, giống như cách đặt tên phổ biến cho httpd, ftpd, rsyncd ...

Từ cái tên này, có thể thấy StatsD là một daemon phục vụ cho việc thống kê (statistics). Người ta (Etsy) tạo ra StatsD để giúp cho việc thu thập dữ liệu trở nên dễ dàng hơn. Mô hình cơ bản nhất là trên 1 máy server, StatsD chạy và các webapp trên máy đó sẽ gửi các thông tin thống kê tới daemon này. StatsD chỉ phục vụ quá trình thu thập dữ liệu, sau đó nó có thể gửi tới một máy chạy graphite hay ganglia để thực hiện vẽ các đồ thị dựa trên dữ liệu thu thập được.

Điểm đáng chú ý và hay ho nhất của StatsD (tức phần daemon) là nó rất đơn giản nên được implement trên nhiều ngôn ngữ khác nhau. Có thể kể tới:

Tuesday, 13 August 2013

XXX.tar.xz

Thay vì
XXX.tar.gz
hay
XXX.tar.bz2

Vì: tỷ lệ nén tốt hơn (tất nhiên là tùy vào loại file)

1. Nén

tar --xz -cf file_da_nen.tar.xz file_can_nen

Ví dụ:
hvn@archhvn: /tmp () $ du KhongCamXuc-HoQuangHieu_3ex6t_hq.mp3; time tar --xz -cf xxx.tar.xz KhongCamXuc-HoQuangHieu_3ex6t_hq.mp3                    
8972    KhongCamXuc-HoQuangHieu_3ex6t_hq.mp3

real    0m4.701s
user    0m4.633s
sys     0m0.130s

2. Giải nén

tar xf file_da_nen.tar.xz

Ví dụ
hvn@archhvn: /tmp () $ tar xf xxx.tar.xz

Friday, 9 August 2013

[Programming] Kho báu

Kho báu
Là nơi bạn sẽ tìm ra những kinh nghiệm quý báu, những đúc kết của cả 1 quá trình làm việc phức tạp và liên tục, sẽ giúp bạn trở thành 1 lập trình viên giỏi hơn.
  •  Bạn rất khó tìm thấy nó trong 1 manpage 
  •  Cũng không dễ dàng tìm trong document hướng dẫn sử dụng software
  •  Không biết có ai viết nó thành sách không
  •  Cũng chẳng tập trung ở các blog
...
Nhưng bạn sẽ tìm thấy kho báu này ở:

Thursday, 8 August 2013

GWT - PyJS

Hai project này giúp cho việc tạo các ứng dụng Javascript chạy trên các web-browser bằng 2 ngôn ngữ phổ biến Python và Java. PyJS được port từ GWT - Google web toolkit. PyJS thì không rõ đã dùng ở đâu nhưng GWT thì đã có những sản phẩm phổ biết sau:
  • Google AdWords, AdSense, Flights, Hotel Finder, Offers, Wallet, Blogger
  • Gerrit

(PS: ngoài ra còn có RubyJS (http://rubyjs.org/) là bản port sang Ruby)

What is pyjs?

Sunday, 4 August 2013

AudioCD, cdrom, iso 9660

1. AudioCD
Mua được quyển sách học ngoại ngữ kèm được 2 cái audio CD mang về. Vừa giở sách định học một tí thì phát hiện ra là phải nghe. Nhét cái CD phần 1 vào, chạy VLC mở thì nó treo cứng cả VLC, CPU 200% @@

Thế là kill VLC để mount bằng tay xem:

 mount -t iso9660 -o ro /dev/sr0 /mnt/cd

Đập ngay vào mặt cái lỗi:

mount: wrong fs type, bad option, bad superblock on /dev/sr0,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.
Thế là công việc chuyển từ học ngoại ngữ giờ đã thành debug và tìm hiểu về CD ~.~

The reason is you cannot mount Audio CD's. Not now, not ever.
ISO9660 is a format, and Audio CD's have to comply with the Redbook specification; not with ISO9660 format specs.
https://bbs.archlinux.org/viewtopic.php?pid=1023931#p1023931

Friday, 2 August 2013

[bash] introspection

introspection: dịch thô ra Tiếng Việt là
Sự tự xem xét nội tâm; sự nội quan

trong quyển sách học python nổi tiếng nhất Dive Into Python có 1 chương tên là "The Power Of Introspection", viết về câu lệnh id, dir để soi xét xem một object có những đặc tính gì.

Trên bash, một số câu lệnh giúp bạn biết được những cài đặt mà bạn đang dùng, cũng có thể coi là 1 kiểu introspection:

1. alias
Hiện các alias mà bạn đang dùng (tức bạn đã định nghĩa nó hoặc lấy từ các file ~/.bash_alias, ...

hvn@archhvn: ~ () $ alias
alias POM='git pull origin master'
alias cdd='cd ~/Dropbox'
alias cdg='cd ~/Github'
alias cdh='cd ~/hgrepo'
...
2. set