New FAMILUG

Saturday, 23 February 2013

Từ ngoài nhìn vào trong

đó là câu chuyện rất hay xảy ra.
Từ ngoài, nhìn vào trong.
Người ta thấy gì ngoài những điều mà một ai đó nói, vài người nói, rồi nhiều người nói, chín người mười ý, sẽ phải tin ai.


Nhiều lúc con người ta chỉ cần 1 sự lựa chọn hơn là chon được thứ tốt nhất.
Một sinh viên bước vào nghề lập trình, việc phổ biến nhất mà cậu ta có thể làm là chọn 1 ngôn ngữ. Thậm chí tốn rất rất nhiều thời gian để tìm cho mình một ngôn ngữ "xịn" nhất. Đôi khi, lúc chọn xong lại cũng chính là lúc người ta mất đi giây phút hào hứng quý báu.

Hãy nhúng tay vào thử một vài trong số lựa chọn của bạn, và chọn cái bạn cảm thấy thích nhất. Sự yêu thích này quý hơn nhiều sự hoàn hảo trong việc bạn lựa chọn.

Friday, 22 February 2013

các thư mục nằm trong root /

nếu bạn dùng Linux
sớm hay muộn, bạn cũng cần biết điều này. Tốt hơn cả là ngay bây giờ :D
Nhớ xem và đọc kỹ!


Tuesday, 19 February 2013

tmux - scripting

Basic: http://www.familug.org/2013/02/tmux.html

Một điểm rất mạnh của tmux là khả năng hỗ trợ script. Nếu như bạn có thể bấm phím tắt, gõ các lệnh điều khiển tmux (tạo cửa sổ, pane, ...) thì bạn hoàn toàn có thể viết 1 bash script để làm những việc ấy. Các lệnh tmux hỗ trợ cũng chính là các command bạn có thể tìm thấy trong `man tmux`

Dưới đây là 1 ví dụ tớ thiết lập 1 tmux session với 3 window.

#!/bin/bash

[Ebook] Beej's Guide to Network Programming

http://beej.us/guide/bgnet/

Hey! Socket programming got you down? Is this stuff just a little too difficult to figure out from the man pages? You want to do cool Internet programming, but you don't have time to wade through a gob of structs trying to figure out if you have to call bind() before you connect(), etc., etc.
Well, guess what! I've already done this nasty business, and I'm dying to share the information with everyone! You've come to the right place. This document should give the average competent C programmer the edge s/he needs to get a grip on this networking noise.
And check it out: I've finally caught up with the future (just in the nick of time, too!) and have updated the Guide for IPv6! Enjoy!

free & good ebook để học lập trình mạng (C/ C++)

Sunday, 17 February 2013

Đóng góp cho FAMILUG

từ "đóng góp" trong tiếng Anh là "contribute".
Với những người chưa có lần đầu, việc đóng góp cho các dự án mã nguồn mở / free thường khá lạ lẫm... cho đến khi họ có lần đầu. Đừng ngại sai, bạn không có gì để mất, hay dẫu nếu có, thứ bạn thu được lớn hơn những gì bỏ ra rất nhiều

Tớ hi vọng năm nay nhận được sự đóng góp của mọi người cho FAMILUG, không phải là đóng góp tài chính, thứ tuyệt vời hơn bạn có thể góp đó là công sức và thời gian.

Làm thế nào?
- đọc các bài viết, thấy chỗ sai thì sửa lại cho đúng (comment) , thấy câu văn nào ngớ ngẩn / lủng củng thì suggest cách viết lại. Đóng góp các ý kiến để bài viết phong phú hơn. Thấy bài viết trong blog nào liên quan mật thiết, có thể làm thành 1 chuỗi thì comment vào để tạo thành "chuỗi bài viết".

- viết bài cho FAMILUG, hãy viết những gì bạn muốn chia sẻ. Kiến thức cũ với người này nhưng có thể mới với người khác. Chắc chắn bài viết của bạn sẽ giúp ích cho một ai đó, hãy học tập +Bui Chung

Tmux

NOTE: bài này còn sơ sài, sẽ được bổ sung sau.
PS: dạo này nhiều bài chỉ muốn take note nhanh chứ ko có time ngồi viết tut :D

tmux - screen - byobu

hvn@lappy: ~ () $ for i in tmux screen byobu; do whatis $i; done
tmux (1)             - terminal multiplexer
screen (1)           - screen manager with VT100/ANSI terminal emulation
byobu (1)            - wrapper script for seeding a user's byobu configuration and launching a text based window manager (either screen or tmux)

về tính năng, tmux và screen là 2 chương trình tương đương nhau.
byobu là frontend sử dụng 1 trong 2 backend tmux hoặc screen.

Như những gì `whatis` đã mô tả, tmux / screen giúp bạn sử dụng được nhiều terminal trong 1 cửa sổ duy nhất (giống như tab trong các trình duyệt web ngày nay), điều này cực kỳ hữu ích khi bạn làm việc với server. Bạn hoàn toàn có thể dùng nó để có thể làm việc một cách linh hoạt trong môi trường desktop.

tmux mới hơn và có nhiều tính năng cải tiến (vd tính năng pane) (chia 1 "màn hình" thành nhiều ô nhỏ) nên ở đây tớ sẽ giới thiệu về tmux.

1. Cài đặt và sử dụng
cài đặt:
hvn@lappy: ~ () $ sudo apt-get install tmux
hvn@lappy: ~ () $ tmux -V
tmux 1.6

sử dụng:
hvn@lappy: ~ () $ tmux
và bạn sẽ ở trong 1 terminal, nhưng bạn sẽ thấy ở dưới cùng có thanh status.

xem trong man tmux, phần KEY BINDINGS để biết các phím mặc định của tmux.

Saturday, 16 February 2013

Tạo file hàng loạt

bạn muốn tạo ra 100 file với tên bất kỳ. Làm thế nào:

100 file với tên lần lượt là 1 2 3 4... 100:
hvn@u1210: /tmp $ for i in `seq 100`;do touch $i;done;

100 file với tên là nanosecond thời điểm hiện tại:
hvn@u1210: /tmp $ for i in `seq 100`;do touch `date +%N`;done;
100 file với tên có độ dài 7 ký tự, được tạo bởi 7 ký tự đầu tiên trong mã sha1 của nanosecond thời điểm hiện tại.
hvn@u1210: /tmp $ for i in `seq 100`;do touch `date +%N | sha1sum | head -c 7`;done;

Tạo 10 file với nội dung "hello thon":

Sunday, 10 February 2013

[PHP] code download nhạc từ nhaccuatui

Khai bút cho FML cái, chúc các anh em Fml cùng gia đình mạnh khỏe và đón xuân lành mạnh.
Mùng 1 ốm nằm nhà code cái này cho anh +Hưng Nguyễn Việt.
Tiếp từ cái này: http://www.familug.org/2013/02/tu-viet-1-chuong-trinh-download-nhac-tu.html
Code php chạy trong môi trường CLI.

Bài viết thực hiện trên:

lamdt@laptop-home: /var/www () $  uname -ir && lsb_release -d
3.5.0-17-generic i686
Description:    Ubuntu 12.10


Cấu trúc Directory:
lamdt@laptop-home: /var/www () $ ls -la nct/
total 12
drwxr-xr-x 2 lamdt lamdt 4096 Feb 10 19:25 .
drwxr-xr-x 3 lamdt root  4096 Feb 10 18:21 ..
-rw-rw-r-- 1 lamdt lamdt 1186 Feb 10 19:28 url.php

Phiên bản
lamdt@laptop-home: /var/www () $ php -v
PHP 5.4.6-1ubuntu1.1 (cli) (built: Nov 15 2012 01:23:47)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

Thursday, 7 February 2013

Tự viết 1 chương trình download nhạc từ nhaccuatui

NOTE: bài này viết nhanh, do không có nhiều thời gian chỉnh sửa.


1. Mục tiêu:
Input: url bài hát
Output: link download + file mp3 đã down.
Mục tiêu: chứng minh việc viết chương trình download nhạc từ nhaccuatui rất đơn giản.

Saturday, 2 February 2013

Lưu code, viết blog trên snipt.net

Mới mò được trang  https://snipt.net

Có thể dùng thay cho pastebin.com , gist.github.com

Đặc biệt là có thể viết blog


https://hvnsweeting.snipt.net/

snipt.net hỗ trợ markdown giúp việc định dạng bài viết rất dễ dàng... với ai biết markdown

Friday, 1 February 2013

Tớ đã muốn chia tay em Fox như thế nào...

tớ ghét Firefox
đó là những gì hiện tại mà tớ cảm thấy


...
Truyện kể rằng...
Cách đây 8 năm,  Firefox bước vào đời tớ như một ngôi sao băng chói lóa. Với tính năng thần thánh của Firefox2 : multi-tab. Không còn phải mở 10 cái cửa sổ IE để save page as về nữa.
Tớ lớn lên cùng em Fox, và không bao giờ quay lại với IE.