Friday, 26 July 2013

[vim] hãy dùng Gvim

Hãy dùng Gvim. Vì sao:
- Hỗ trợ màu mè đẹp hơn
- Hỗ trợ copy sang cửa sổ khác bằng chuột mà ko cần config,
- Font tùy chọn (không phải font của terminal)
- Các vim command hiện lên ở các menu

Bạn chỉ tốn hơn 1 tẹo CPU/RAM thôi nhưng lời được bao nhiêu.
Và khi bạn đã dùng được Gvim thì dùng vim hay vi chả khác gì.

Thursday, 25 July 2013

[vim] Vim cắn CPU

cắn rất đau,
có khi lên 17%
có khi lên tận 45%

và phải tìm nguyên nhân thôi.

thử mở vim với không config gì hết:

vim -u NONE file_ma_lam_no_cham.py

giả sử file này 100 dòng, bạn giữ nguyên phím j để nó trượt xuống và mở top bên cạnh xem nó cắn bao nhiêu CPU.
Trên máy tớ, lúc này chí tốn 0.7% CPU, và tầm 0.5 % RAM
Giờ chạy :syntax on, và làm tương tự, nó cắn 4-5%

Tuesday, 16 July 2013

Python là ngôn ngữ chính thức tại FAMILUG


C từng là ngôn ngữ phổ biến nhất ở FAMILUG ngày mọi người còn đi học, thì giờ Python chính là ngôn ngữ thay thế C.
Python là một ngôn ngữ hiện đại, có hệ thống thư viện vô cùng tuyệt vời. Sử dụng rất rộng rãi trên khắp thế giới, dùng rất nhiều trong nghiên cứu khoa học cũng như khoa học máy tính.
Ruby, một đối thủ thường được đặt cạnh Python khi so lên bàn cân nhưng Ruby chỉ CÓ THỂ NHỈNH hơn python ở mảng làm web với RAILS  (Rails VS Django) nhưng thua ở hầu hết các mặt còn lại (thư viện ít hơn, không có cấc lib tương đương pynum, scipy ...)
Rất nhiều ngôn ngữ khác mới, hấp dẫn như Go, Erlang, Scala ... nhưng

Friday, 12 July 2013

[Python] Tạo và gọi function on-fly

Kế tiếp bài này : http://www.familug.org/2013/07/python-viet-fucntion-tra-ve-function.html

Làm thế nào để tạo 1 function và gọi nó trong lúc code đang chạy.

Ví dụ bạn có 3 từ  "danh" "dam" "da", làm sao để tạo được 3 hàm với 3 cái tên như mong đơi. Kiểu như:
for fname in "danh", "dam", "da":
     tao_ham(fname)

Ví dụ sau thực hiện tạo và gọi hàm on-fly (tức là ngay trong khi code  đang chạy)

[Python] Viết fucntion trả về function trong python

Rất đơn giản, như trả về biến bình thường.
Bởi trong python, mọi thứ đều là object, function không là ngoại lệ:

def create_print_func(name):
    name = name.title()
    def print_func():
        print "Hello ", name
    return print_func
f1 = create_print_func('pika chu')
f1()

 Kết quả thu được là:

[Python] Cắt chuỗi trong Python

Nghe có vẻ đơn giản nhưng rất dễ mắc lỗi mà khó phát hiện ra.

NOTE: In [n]: là ký hiệu bắt đầu mỗi câu lệnh trong Ipython shell
Out[n]: là ký hiệu đầu ra, kết quả của câu lệnh vừa chạy.

Cho chuỗi sau:
In [4]: s = '....slsslslsls...sls'
Yêu cầu cắt bỏ đoạn '.sls' ở đuôi.
Ta rất dễ dùng lệnh strip hay thậm chí cẩn thận hơn là rstrip để làm việc này, thế nhưng...

In [5]: s.rstrip('.sls')
Out[5]: ''

In [6]: s2 = '....slsasls.sls'

In [7]: s2.rstrip('.sls')
Out[7]: '....slsa'
Như bạn thấy, lệnh rstrip sẽ xóa liên tực các ký tự '.' 's' 'l' từ phải sang, và đó là điều ta không mong đợi.

Thursday, 11 July 2013

Viết script thực hiện fingerprinting - vui chơi cuối tuần

Fingerprinting HÌNH NHƯ là từ để chỉ công việc thăm dò 1 host nào đó,

các công cụ có thể sử dụng
ping
telnet
nmap
...

Đề bài:
viết 1 script với input tối thiểu là ip hoặc domain name của site.
output: các thông tin thu thập được

Sử dụng bất cứ ngôn ngữ nào bạn biết (dùng bash thì quá đơn giản)

Mở rộng:
- viết 1 con bot tự động fingerprint tất cả những host nó tìm thấy
- tự đẩy output sau khi chạy xong lên Gist

[HTML] Computer Output Tags

Trong HTML `Computer Output Tags` là các thẻ được định dạng sẵn (font chữ, cỡ chữ, nền chữ) dùng cho các mục đích đặc biệt như: chèn các câu lệnh, từ khóa.
Computer Output Tags bao gồm các thẻ:

  1. code - <code> - chữ nó sẽ như này - cái này gọi là thẻ code
  2. kbd - <kbd> - chữ nó sẽ như này - cái này gọi là thẻ Keyboard Text
  3. samp - <samp> - chữ nó sẽ như này - cái này gọi là thẻ Sample Text
  4. tt - <tt> - chữ nó sẽ như này - cái này gọi là thẻ Teletype text
  5. var - <var> - chữ nó sẽ như này - cái này gọi là thẻ Variable
  6. pre - <pre> -
    chữ nó sẽ như này - cái này gọi là thẻ Pre-formated

Familug đã định dạng format sẵn code. Các bạn viết bài thì dùng thẻ Quote để chèn code
Thì nó sẽ ra thế này

Wednesday, 10 July 2013

Cùng học tcl

Updated: vài lời nhảm nhí
Updated: add eggdrop
 
Tcl - Tool Command Language
Nếu bạn thích Ruby, nhảy vào đây 
Nếu muốn học Python, nhảy đến đây

Tại sao lại là TCL?
  • đơn giản
  • dễ học
  • dễ dùng
  • nhỏ nhẹ
  • it's fun :x (và đây cũng là điều quan trọng nhất, bởi suy đi tính lại, điều quan trọng nhất trong việc học hành là bạn có thích hay không - bạn có thể đưa ra lý do là bận? nhưng 1 ngày tôi chỉ có thời gian từ 23H trở đi để chơi thôi :v )
Là một script language thuộc nhóm "programable programming language", tức ngôn ngữ có thể lập trình được chính nó. Đại khái là bạn có thể tự viết vòng for thay vì vòng for mặc định ...

Học để xin việc đâu đó?
Có lẽ sẽ chỉ là 1 điểm cộng,còn xin việc dùng tcl ở VN chắc không có :3
Tốt nhất là bạn nên kiếm một công việc không quá bận rộn để còn có thời gian hưởng những thú vui trên đời. Khi chưa có việc, trong thời buổi này, thì cạp đất mà ăn à, sống vẫn phải thực dụng chứ :3. Công việc sẽ chi phối những gì bạn học. Đến lúc có việc rồi, bạn tha hồ học những gì mình thích.

Đơn giản?

Đề xuất các bài cần viết

Trước sự thành công của bài hướng dẫn học python và dựa trên trình độ của các thành viên FML, đề nghị các bạn hãy ra tay viết bài :
- Hướng dẫn học HTML, CSS (JS càng tốt)
- Hướng dẫn học Ruby
- Hướng dẫn học PHP và có nên ko
- ...
Đại khái thế, thấy tòan bài anh hacker +Lam Tung  có thể viết rất hay.
Đặt gạch chờ vậy :3

Tuesday, 9 July 2013

Viết chơi lúc rảnh

Mãi mới được rảnh tí
Mà hơn 1 tiếng nữa đi ngủ chả biết làm gì, thế nên ... viết nhảm :3

bận quá chả có thời gian để
  • suy nghĩ
  • học thêm cái gì đó
  • mày mò phá phách
cứ cắm đầu vào làm việc thôi, mệt nghỉ :3

Bởi thế nên, một công việc lý tưởng là công việc:

Friday, 5 July 2013

[cmd] find, cách dùng đơn giản nhất thay thế ls và tree

bạn thường xuyên dùng ls
bạn thỉnh thoảng dùng tree
bạn có thể đã nghe nói đến find nhưng chưa bao giờ dùng (thú thật cái interface của lệnh này nó không bình thường giống các lệnh khác)
ví dụ muốn tìm theo tên file abc* thì phải gõ
find /xyz -name 'abc*'

Vậy nhưng bạn có thể dùng find thay cho ls (không nói đến ls -l , ls -Fhtl) hay lệnh tree chỉ với mỗi dòng:
find thu_muc_nao_do
hay chỉ gõ mỗi

Đừng chạy theo bản XX.0

Bài học của cả 1 ngày trời cài và lỗi.
Đừng bao giờ chuyển sang bản 0.16.0 khi nó vừa mới ra, hoặc có thể bạn sẽ gặp 1 đống lỗi từ trên trời rơi xuống.
Hãy dùng bản 0.15.3 (tức đã fix 3 lần lỗi và là bản cuối cùng trước khi lên 0.16) nếu bạn đã quen với nó, và nếu như những bugs của nó không qúa nghiệm trọng (bạn có cách "hack" để xử lý được)
Với bản 0.16, hãy đợi cho đến khi nó ra 0.16.2 hay 0.16.3 hãy chuyển sang dùng ...

Wednesday, 3 July 2013

[bash] function đọc đầu vào qua pipeline

Dưới đây là ví dụ hàm log, dùng để log input của nó ra syslog:

log(){
    while read data; do
        echo $data | logger -t "familug" -p debug
    done
}
và dùng nó thế này
echo "Start $0" | log
date | log

Tuesday, 2 July 2013

FFMPEG

FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation.

FFmpeg provides various tools: