nếu không thường xuyên sử dụng, bạn sẽ quên syntax của tcpdump.
Cách nhớ dễ nhất là hiểu nó
Tài liệu sử dụng nội dung của man 1 tcpdump
tcpdump [ -AbdDefhHIJKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ]
[ -C file_size ] [ -G rotate_seconds ] [ -F file ]
[ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
[ -P in|out|inout ]
[ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ]
[ -E spi@ipaddr algo:secret,... ]
[ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
[ expression ]
Format lệnh tcpdump gồm các option và theo sau cùng là expression
New FAMILUG
The PyMiers
Friday, 27 December 2013
Wednesday, 25 December 2013
[emacs] basic moving
by
H
dùng emacs không có gì là khó khăn cả, nếu bạn từng là một CLI ninja múa may quay cuồng trong bash shell thì bạn cũng đã quen với một vài tổ hợp phím của Emacs. (do bash dùng emacs binding làm default)
Phiên bản mới nhất của emacs là 24.x http://www.gnu.org/software/emacs/
Để đơn giản cho lúc mới bắt đầu, bài này sẽ chỉ nói đến việc view / di chuyển trong 1 file.
Các emacs command thường là tổ hợp của các phím CTRL (CONTROL) hoặc ALT (hay còn gọi là META, có thể dùng ESC thay thế) với phím ký tự.
Để kết thúc Emacs session, dùng C-x C-c (Ctrl x rồi Ctrl c). Nếu đọc đến đây bạn vẫn chưa đóng được emacs có vẻ như bạn đã có vấn đề :D.
Các command di chuyển cơ bản.
Phiên bản mới nhất của emacs là 24.x http://www.gnu.org/software/emacs/
Để đơn giản cho lúc mới bắt đầu, bài này sẽ chỉ nói đến việc view / di chuyển trong 1 file.
Các emacs command thường là tổ hợp của các phím CTRL (CONTROL) hoặc ALT (hay còn gọi là META, có thể dùng ESC thay thế) với phím ký tự.
Để kết thúc Emacs session, dùng C-x C-c (Ctrl x rồi Ctrl c). Nếu đọc đến đây bạn vẫn chưa đóng được emacs có vẻ như bạn đã có vấn đề :D.
Các command di chuyển cơ bản.
C-v: View next screen. Xem "màn hình" tiếp theo. (chữ v trông như mũi tên xuống dưới)
M-v: View previos screen. Ngược lại với C-v
Sunday, 22 December 2013
[scheme] define, lambda, cond
by
H
Với car, cdr, cons, ở bài trước ta đã có thể làm rất nhiều thứ với Scheme, bài này sẽ giới thiệu cú pháp của "define", "lambda" và "cond", để bạn có thể thỏa sức tưởng tượng với function.
"define" để gán một cái tên cho một "object".
Ví dụ:
Gán cho "list" '(ga bo heo) cái tên là lat (viết tắt của : list of atoms)
Hãy chơi lại với car, cdr, cons
"null?" là function để kiểm tra list đầu vào có phải là list rỗng không.
"define" để gán một cái tên cho một "object".
Ví dụ:
scheme@(guile-user)> (define lat '(ga bo heo))
Gán cho "list" '(ga bo heo) cái tên là lat (viết tắt của : list of atoms)
Hãy chơi lại với car, cdr, cons
scheme@(guile-user)> (car lat)
$2 = ga
scheme@(guile-user)> (cdr lat)
$3 = (bo heo)
scheme@(guile-user)> (cons (car lat) (cdr lat))
$4 = (ga bo heo)
"null?" là function để kiểm tra list đầu vào có phải là list rỗng không.
scheme@(guile-user)> (null? lat)
$5 = #f
scheme@(guile-user)> (null? '())
$6 = #t
Danh sách các package manager của các ngôn ngữ lập trình
by
H
Các package manager chính là một phần không nhỏ làm nên thành công của các ngôn ngữ lập trình hiện đại. Nó giúp lượng thư viện trở nên khổng lồ, cần gì có nấy, và cách dùng chúng khá giống nhau :D
1,Pip - Python
Cài đặt một package:
2. Gem - Ruby
3. NPM - Node.js
1,Pip - Python
Cài đặt một package:
pip install package_name
2. Gem - Ruby
gem install package_name
3. NPM - Node.js
npm install package_name
Saturday, 21 December 2013
Docker - Giới thiệu Docker và sử dụng
by
Anonymous
Home page: http://docs.docker.io
Các bài viết khác về docker: http://www.familug.org/search/label/Docker
Các thuật ngữ được sử dụng:
- File system: http://docs.docker.io/en/latest/terms/filesystem/
- Layer: http://docs.docker.io/en/latest/terms/layer/
- Image: http://docs.docker.io/en/latest/terms/image/
- Container: http://docs.docker.io/en/latest/terms/container/
Trong phạm vi bài giới thiệu, mình không đi quá sâu sẽ gây nhàm chán. Nên bạn muốn tìm hiểu thì vào link để đọc, document đã ghi khá rõ. Cơ bản thành phần cấu tạo nên Container được mô tả như hình dưới:
Các bài viết khác về docker: http://www.familug.org/search/label/Docker
Giới thiệu về docker
Docker là gì?docker, the Linux Container Runtime, runs Unix processes with strong guarantees of isolation across servers. Your software runs repeatably everywhere because its Container includes any dependencies.Ngắn gọn lại, nếu các bạn biết đến các file portable trên Windows [1], thì docker cũng làm 1 nhiệm vụ tương tự như vậy, container docker chứa application đã deploy, sau khi `đóng gói` có thể mang đi chạy ở các môi trường khác nhau ở các máy khác nhau ( Hiện nay mới chỉ support Ubuntu, Arch, Fedora... ), mà ko mất công deploy lại.
Các thuật ngữ được sử dụng:
- File system: http://docs.docker.io/en/latest/terms/filesystem/
- Layer: http://docs.docker.io/en/latest/terms/layer/
- Image: http://docs.docker.io/en/latest/terms/image/
- Container: http://docs.docker.io/en/latest/terms/container/
Trong phạm vi bài giới thiệu, mình không đi quá sâu sẽ gây nhàm chán. Nên bạn muốn tìm hiểu thì vào link để đọc, document đã ghi khá rõ. Cơ bản thành phần cấu tạo nên Container được mô tả như hình dưới:
Centralized Backup with BackupPC
by
Anonymous
BackupPC (BPC) là 1 software viết bằng Perl, cung cấp giải pháp Backup tập trung cho các server.
Bạn có thể backup toàn bộ server hoặc thư mục chỉ định, và restore lại khi cần thiết.
BPC thực hiện việc tranfer files qua: FPT, rsync, hoặc Samba ...
User có thể lên lịch backup hoặc backup thủ công (kích hoạt bằng tay)
BPC có sẵn trong Ubuntu default source list, nên cài đặt đơn giản chỉ bằng:
Bạn có thể backup toàn bộ server hoặc thư mục chỉ định, và restore lại khi cần thiết.
BPC thực hiện việc tranfer files qua: FPT, rsync, hoặc Samba ...
User có thể lên lịch backup hoặc backup thủ công (kích hoạt bằng tay)
BPC có sẵn trong Ubuntu default source list, nên cài đặt đơn giản chỉ bằng:
sudo apt-get update
sudo apt-get install backuppc
Sunday, 15 December 2013
[scheme] car, cdr và cons
by
H
car, cdr và cons là 3 primitive của scheme
Từ mới, bạn CHƯA cần phải cố hiểu chúng, cứ đọc nó như một từ mới thôi:
Hãy mở #guile lên và gõ vào rồi sẽ hiểu:
CHÚ Ý: dấu single quote trước (1.
Từ mới, bạn CHƯA cần phải cố hiểu chúng, cứ đọc nó như một từ mới thôi:
- car
- cdr
- cons
- primitive
- S-expression
Hãy mở #guile lên và gõ vào rồi sẽ hiểu:
CHÚ Ý: dấu single quote trước (1.
scheme@(guile-user)> (define li '(1 2 3 4 5))
scheme@(guile-user)> (car li)
$8 = 1
Monday, 2 December 2013
[Monitoring] iostat - hiển thị các thông tin thống kê về CPU và I/O
by
H
Bài này hướng đến một cuộc thảo luận hơn là một bài tut.
TODO: bài về mount, fstab (mặc dù những thứ này không thú vị cho lắm nhưng đã dùng Linux là phải biết, đặc biệt là đối với các sysadmin)
NOTE một lần nữa, nội dung bài này không thú vị, nhưng là cần thiết với các sysadmin
Bài viết thực hiện trên:
nội dung có thể áp dụng tương tự cho các Linux based distro khác như Ubuntu ...
Vài thuật ngữ
IO: input/output (for devices and partitions)
report: mỗi output của iostat gọi là một report
iostat là một chương trình nằm trong package sysstat
Để cài đặt package này, dùng câu lệnh để cài tương ứng trên OS của bạn. Trên Ubuntu có thể là:
Format câu lệnh iostat:
Vài ví dụ
TODO: bài về mount, fstab (mặc dù những thứ này không thú vị cho lắm nhưng đã dùng Linux là phải biết, đặc biệt là đối với các sysadmin)
NOTE một lần nữa, nội dung bài này không thú vị, nhưng là cần thiết với các sysadmin
Bài viết thực hiện trên:
$ uname -a
Linux archhvn 3.10.9-1-ARCH #1 SMP PREEMPT Wed Aug 21 13:49:35 CEST 2013 x86_64 GNU/Linux #đã lâu rồi không upgrade :D
nội dung có thể áp dụng tương tự cho các Linux based distro khác như Ubuntu ...
Vài thuật ngữ
IO: input/output (for devices and partitions)
report: mỗi output của iostat gọi là một report
iostat là một chương trình nằm trong package sysstat
$ pacman -Qs iostat
local/sysstat 10.2.0-1
a collection of performance monitoring tools (iostat,isag,mpstat,pidstat,sadf,sar)
Để cài đặt package này, dùng câu lệnh để cài tương ứng trên OS của bạn. Trên Ubuntu có thể là:
sudo apt-get install -y sysstat
Format câu lệnh iostat:
iostat [-options ] [ interval [ count ] ]
Vài ví dụ
Friday, 22 November 2013
[Media] Geeqie Image Viewer
by
H
http://geeqie.sourceforge.net/
Là một chương trình xem ảnh trên Linux - nhẹ - nhanh - hiệu quả.
Cài đặt:
Trên Archlinux
Là một chương trình xem ảnh trên Linux - nhẹ - nhanh - hiệu quả.
Cài đặt:
Trên Archlinux
# pacman -S geeqie
resolving dependencies...
looking for inter-conflicts...
Packages (2): exiv2-0.23-2 geeqie-1.1-2
Total Download Size: 1.73 MiB
Total Installed Size: 8.89 MiB
Thursday, 21 November 2013
SQLite là một C library!
by
H
SQLite nói một cách chính xác, là một C library, là một RDBMS không cần server process.
Theo SQLite homepage
Theo SQLite homepage
SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The source code for SQLite is in the public domain.Theo Python docs
SQLite is a C library that provides a lightweight disk-based database that doesn’t require a separate server process and allows accessing the database using a nonstandard variant of the SQL query language. Some applications can use SQLite for internal data storage. It’s also possible to prototype an application using SQLite and then port the code to a larger database such as PostgreSQL or Oracle.
Wednesday, 20 November 2013
Tìm xem một process dùng bao nhiêu RAM
by
H
NOTE: kết quả của ps, pmap, top về memory chỉ nên dùng cho mục đích monitoring, để debug chính xác xem chương trình của bạn thực tế dùng bao nhiêu RAM, hãy dùng các chương trình profiler (ví dụ Valgrind)
Lệnh `top` `ps` có thể chỉ trả về phần trăm hay tổng cộng lượng RAM mà một process sử dụng (hoặc trả về nhiều phần để bạn tự tính ra KB), sử dụng lệnh `pmap` (nằm trong package procps ) để tìm xem chi tiết lượng RAM đó được dùng vào đâu:
vậy `pmap` nhận args là pid (hoặc nhiều pid).
xem memory map của một lệnh `top` đang chạy:
Lệnh `
$ whatis pmap
pmap (1) - report memory map of a process
$ pmap --help | grep Usage -A1
Usage:
pmap [options] pid [pid ...]
vậy `pmap` nhận args là pid (hoặc nhiều pid).
xem memory map của một lệnh `top` đang chạy:
ps và những option ít được biết tới
by
H
Ai dùng UNIX-like OS hẳn cũng phải biết tới lệnh `ps`, nếu không, có lẽ là họ vẫn chưa biết gì !?!
Câu lệnh (chương trình) `ps` trênLinux Ubuntu 12.04 nằm trong package procps. Với nhu cầu sử dụng bình thường, người dùng chỉ cần biết một vài tổ hợp sau đây là đủ:
rồi `grep` ra từ khóa mình cần tìm.
Ví dụ:
Biết thế coi như là đủ nếu bạn không cần gì đặc biệt hơn.
Sau đây là một vài option đặc biệt.
Trước tiên, một điều cần biết là lệnh `ps` hỗ trợ 3 style để pass option.
Kiểu -e -F (hay -eF) của UNIX, kiểu `ps awwx` (không có dấu - ở đầu) của BSD và kiểu --dài_dòng của GNU. 3 style này không nên dùng lẫn lộn nhau.
Các option sau đây thuộc style UNIX:
1. -C #Chọn process bằng tên câu lệnh.
Ví dụ:
Có thể thấy số kết quả câu lệnh này khác với `ps | grep [f]irefox` bởi câu lệnh trên chỉ tìm theo tên câu lệnh, trong khi câu lệnh sử dụng `grep` là để tìm từ khóa. (tức từ khóa có thể không phải câu lệnh, có thể là tên user, số pid, args của câu lệnh)
Câu lệnh (chương trình) `ps` trên
ps -eFH
ps awwxf
rồi `grep` ra từ khóa mình cần tìm.
Ví dụ:
$ ps -eFH | grep firefox
hvn 930 1 17 341885 728808 2 06:52 ? 00:03:27 firefox
hvn 1055 930 4 106318 63936 2 06:53 ? 00:00:48 /usr/lib/firefox/plugin-container /usr/lib/mozilla/plugins/libflashplayer.so -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 930 plugin
hvn 1093 930 0 68027 20356 0 06:53 ? 00:00:00 /usr/lib/firefox/plugin-container /opt/google/talkplugin/libnpgoogletalk.so -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 930 plugin
hvn 1562 1481 0 2670 1104 1 07:12 pts/6 00:00:00 grep --color=auto firefox
Biết thế coi như là đủ nếu bạn không cần gì đặc biệt hơn.
Sau đây là một vài option đặc biệt.
Trước tiên, một điều cần biết là lệnh `ps` hỗ trợ 3 style để pass option.
Kiểu -e -F (hay -eF) của UNIX, kiểu `ps awwx` (không có dấu - ở đầu) của BSD và kiểu --dài_dòng của GNU. 3 style này không nên dùng lẫn lộn nhau.
Các option sau đây thuộc style UNIX:
1. -C #Chọn process bằng tên câu lệnh.
Ví dụ:
$ ps -C firefox
PID TTY TIME CMD
930 ? 00:04:13 firefox
Có thể thấy số kết quả câu lệnh này khác với `ps | grep [f]irefox` bởi câu lệnh trên chỉ tìm theo tên câu lệnh, trong khi câu lệnh sử dụng `grep` là để tìm từ khóa. (tức từ khóa có thể không phải câu lệnh, có thể là tên user, số pid, args của câu lệnh)
Wednesday, 13 November 2013
[WeeklyVim] Ctags, Taglist - lắp cánh cho vim
by
H
hay làm thế nào để vim có cánh ~^.^~ aye sir!
Khi bạn chỉ hay viết vài chương trình nhỏ, hay chương trình ấy do chính bạn viết, cái gì nằm ở đâu thì bạn sẽ là người nắm rõ. Nhưng khi nhảy vào một đống code đã có sẵn, với hàng trăm file, việc này bắt đầu khó khăn và bạn cần phải có 1 công cụ mới để làm việc này.
Vim nguyên bản không hỗ trợ việc này và đó là lý do chính để bạn cài plugin taglist và chương trình ctags.
Ctags là một chương trình để:
$ whatis ctagstrên Ubuntu, nó được biết đến với tên package là exuberant-ctags
ctags (1p) - create a tags file (DEVELOPMENT, FORTRAN)
Friday, 25 October 2013
[scheme] data type boolean
by
H
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ỉ???
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
Để 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 #fVí dụ
giá trị đúng được biểu diễn bởi TẤT CẢ các thứ khác và #t
[scheme] Guile - giới thiệu và cài đặt
by
H
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
- 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
by
H
NGINX là gì?
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:
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
by
Anonymous
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
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 + ...
by
H
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
by
H
Đâ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õ:
Để 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:
Phiên bản ngắn hơn:
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:
Monday, 30 September 2013
Xử lý ảnh và những câu chuyện xung quanh.
by
Unknown
I - Khái niệm về Xử lý ảnh - Image Processing - thực tế là một nhánh nhỏ trong Computer Vision - Thị giác máy tính
Theo mình, sự liên tưởng dễ dàng nhất, đó là một ma trận có kích thước giống bức ảnh đầu vào, và các phần tử bên trong ma trận đấy là một miền giá trị biểu thỉ mật độ sáng trên bức ảnh.
Miền giá trị thường gặp đó là 8bit, 0 - 255, 256 giá trị. 255 - là màu trắng, 0 - màu đen.
Ảnh thông thường chúng ta nhìn thấy gồm 3 ma trận lồng nhau, hay một ma trận mà mỗi phần tử là một tập gồm 3 phần tử. Tương ứng 1 kênh và 3 kênh màu.
II - Những thứ liên quan: kiến thức xung quanh, khởi đầu, tương lai về nó
Kiến thức xung quanh:
Mình thấy, tất cả những kiến thức mà chúng ta được học tại Viên Toán Tin thì có thể áp dụng vào công việc này, ví dụ:
- Xác suất
- Giải tích
- Đại số
- Giải tích hàm.
- Giải tích số .
- Phân tích số liệu.
- Mạng máy tính(advance)
- Hệ quyết định (advance)
Sunday, 29 September 2013
Gparted live và gdisk
by
H
Nay phải ngồi cài win 7 trên một con máy đã cài sẵn win 8. Công việc mình chúa ghét nay còn khó khăn hơn với sự tham dự của UEFI , GPT :v
Quá trình cài đặt hủy diệt đã hoàn thành sau những bước xóa sạch tất cả các partition :)) xóa GPT, tạo MBR, chia lại ổ cứng và cài win 7 như thường.
Đọc thêm về MBR, GPT ở đây
Vài điều thú vị được tổng kết ra đây:
1. Gparted live
là một linux distro chỉ để phục vụ chạy các chương trình liên quan đến phân vùng ổ cứng.
bản tớ vừa cài là gparted-live-0.16.1-1-amd64.iso, dùng WindowManager là Fluxbox, giao diện thân thiện dễ dùng :3
Lý do dùng được lệnh dd
Quá trình cài đặt hủy diệt đã hoàn thành sau những bước xóa sạch tất cả các partition :)) xóa GPT, tạo MBR, chia lại ổ cứng và cài win 7 như thường.
Đọc thêm về MBR, GPT ở đây
Vài điều thú vị được tổng kết ra đây:
1. Gparted live
là một linux distro chỉ để phục vụ chạy các chương trình liên quan đến phân vùng ổ cứng.
GParted Live is a small bootable GNU/Linux distribution for x86 based computers.Thay vì down 700MB bản Ubuntu live cd, hãy dơwn 138MB Gparted live sau đó "burn" nó ra usb bằng lệnh dd:
It enables you to use all the features of the latest versions of the GParted application.
GParted Live can be installed on CD, USB, PXE server, and Hard Disk then run on an x86 machine.
sudo dd if=/path-to-gparted-live.x.y.z-w.iso of=/dev/sde bs=4M; sync
bản tớ vừa cài là gparted-live-0.16.1-1-amd64.iso, dùng WindowManager là Fluxbox, giao diện thân thiện dễ dùng :3
Lý do dùng được lệnh dd
Since GParted Live is based on Debian Live and this image is a isohybrid, the GParted Live CDimage can be written directly to a USB flash drive.
Wednesday, 25 September 2013
Công cụ quản lý truy cập đến nhiều server
by
H
Mặc định là bạn dùng ssh
0. Quản lý file ~/.ssh/config
Cần thì thêm, chán thì sửa
Ví dụ:
1. Dùng storm -> cho fan python
http://emre.github.io/storm/
Cài đặt:
Cách dùng:
2. Dùng ghost-ssh => cho fan ruby
https://github.com/bjeanes/ghost
có thể cài bằng gem
3. Dùng PAC manager => cho fan GUI :D
0. Quản lý file ~/.ssh/config
Cần thì thêm, chán thì sửa
Ví dụ:
hvn@archhvn: ~ () $ head ~/.ssh/config
Host saltlab
hostname 192.168.122.241
user hvn
1. Dùng storm -> cho fan python
http://emre.github.io/storm/
Cài đặt:
sudo apt-get install python-pip
pip install stormssh
Cách dùng:
storm --help
storm add --help
2. Dùng ghost-ssh => cho fan ruby
https://github.com/bjeanes/ghost
có thể cài bằng gem
3. Dùng PAC manager => cho fan GUI :D
Wednesday, 18 September 2013
[CLI] Các lệnh quản lý package trên ubuntu/debian
by
H
Đây không phải bài hướng dẫn dùng apt-get, mà giới thiệu các câu lệnh hữu ích trong việc quản lý package trên hệ thống Ubuntu/debian
Bài viết test trên ubuntu 12.04 x86
1. Tìm package
Khi bạn biết tên 1phần mềm không có nghĩa là bạn biết tên package.
Ví dụ: bạn muốn cài rabbitmq server, chạy apt-get install rabbitmq sẽ trả về lỗi do không có package nào tên là rabbitmq cả.
Bạn có thể tìm tên package bằng lệnh:
Từ khóa thường là tên phần mềm, lệnh này sẽ tìm tu_khoa trong tên, phần mô tả của package.
Tương tự với mysql server:
2. Hiện thông tin về 1 package
Dùng lệnh
Bài viết test trên ubuntu 12.04 x86
1. Tìm package
Khi bạn biết tên 1phần mềm không có nghĩa là bạn biết tên package.
Ví dụ: bạn muốn cài rabbitmq server, chạy apt-get install rabbitmq sẽ trả về lỗi do không có package nào tên là rabbitmq cả.
Bạn có thể tìm tên package bằng lệnh:
apt-cache search tu_khoa
Từ khóa thường là tên phần mềm, lệnh này sẽ tìm tu_khoa trong tên, phần mô tả của package.
hvn@u1204: ~ () $ apt-cache search rabbitmq
rabbitmq-server - An AMQP server written in Erlang
amqp-tools - Command-line utilities for interacting with AMQP servers
drizzle-plugin-rabbitmq - RabbitMQ Transaction Log for Drizzle
...
python-celery-doc - async task/job queue based on message passing (Documentation)
rabbitmq-erlang-client - Erlang client for RabbitMQ
rabbitmq-stomp - A STOMP gateway for RabbitMQ
Tương tự với mysql server:
hvn@u1204: ~ () $ apt-cache search mysql | grep server
libdbd-mysql - MySQL database server driver for libdbi
mysql-server - MySQL database server (metapackage depending on the latest version)
mysql-server-5.5 - MySQL database server binaries and system database setup
mysql-server-core-5.5 - MySQL database server binaries
aolserver4-nsmysql - AOLserver 4 module: module for accessing MySQL databases
courier-webadmin - Courier mail server - web-based administration frontend
dpm-copy-server-mysql - DPM copy server with MySQL database backend
dpm-name-server-mysql - DPM nameserver server with MySQL database backend
2. Hiện thông tin về 1 package
Dùng lệnh
apt-cache show ten_package
Monday, 16 September 2013
[bash] giải thích export qua 2 câu lệnh
by
H
hvn@archhvn: ~ () $ y=6; echo $$ $y; bash -c 'echo $$ $y'$$ là biến đặc biệt của bash, in ra process id (PID) của process hiện tại.
2461 6
2586
hvn@archhvn: ~ () $ export z=7; echo $$ $z; bash -c 'echo $$ $z'
2461 7
2599 7
Câu lệnh thứ nhất:
gán y = 6; in ra process ID của bash shell đang dùng và giá trị biến y đã gán,
chạy 1 sub-shell (chạy chương trình "bash" bên trong chương trình "bash") và thử in ra pid mới cùng với giá trị biến y.
Kết quả là biến y không chứa giá trị nào cả ở sub-shell mới tạo.
Hình ảnh của lệnh ps sẽ giúp bạn hình dung rõ hơn điều gì xảy ra (với một câu lệnh tương tự):
Friday, 6 September 2013
Sợ
by
H
Sáng chớm thu lạnh sun cu ông cụ
Lạnh quá cóng hết chân đành mò dậy đi tất.
Vốn ít khi nghĩ suy về cuộc đời, bởi bản thân ắt sống để "enjoy" hiện tại.
Chợt thấy sợ khi nhìn lại, mới đây thôi mà đã 9 thãng qua, thời gian vụt qua như bóng ma trong đêm vắng. Ngẫm lại thấy cũng đã 23 năm cuộc đòi, tính là lý tưởng sống được 70 năm thì nay cũng đã qua 1/3, còn 2/3 kia nữa biết làm gì?
Con người sinh ra rồi cũng đến lúc chết đi, hỏi cuộc đời ý nghĩa là chi?
Hẳn sinh ra để hưởng thụ, để trải nghiệm, nên phải sống thế để khỏi lãng phí đời mình.
Nhưng đấy chỉ là phần phục vụ bản thân, liệu có cần trách nhiệm với nhân loại, với thiên nhiên, với một "cái sự vật" ở tầm cao nhất mà không biết gọi là gì?
Lạnh quá cóng hết chân đành mò dậy đi tất.
Vốn ít khi nghĩ suy về cuộc đời, bởi bản thân ắt sống để "enjoy" hiện tại.
Chợt thấy sợ khi nhìn lại, mới đây thôi mà đã 9 thãng qua, thời gian vụt qua như bóng ma trong đêm vắng. Ngẫm lại thấy cũng đã 23 năm cuộc đòi, tính là lý tưởng sống được 70 năm thì nay cũng đã qua 1/3, còn 2/3 kia nữa biết làm gì?
Con người sinh ra rồi cũng đến lúc chết đi, hỏi cuộc đời ý nghĩa là chi?
Hẳn sinh ra để hưởng thụ, để trải nghiệm, nên phải sống thế để khỏi lãng phí đời mình.
Nhưng đấy chỉ là phần phục vụ bản thân, liệu có cần trách nhiệm với nhân loại, với thiên nhiên, với một "cái sự vật" ở tầm cao nhất mà không biết gọi là gì?
Thursday, 5 September 2013
[git] git push origin master -u
by
H
Tớ đã từng viết 1 bài giới thiệu về git nhưng chưa hoàn thành được + lười nên thấy cái gì hay thì viết thôi. Cách sử dụng git cơ bản có thể xem ở đây:
https://help.github.com/
Bài này viết về option -u ở cuối câu lệnh git push/ pull ...
Nếu bạn xem ở tut về git ở rất nhiều nơi, sẽ thấy người ta rất hay dùng option này, đọc man sẽ thấy khá khó hiểu nếu bạn không hiểu git một cách
https://help.github.com/
Bài này viết về option -u ở cuối câu lệnh git push/ pull ...
Nếu bạn xem ở tut về git ở rất nhiều nơi, sẽ thấy người ta rất hay dùng option này, đọc man sẽ thấy khá khó hiểu nếu bạn không hiểu git một cách
Monday, 26 August 2013
Java cho Sysadmin
by
H
Có thể bạn không biết code java, nhưng công việc sẽ nhiều lúc cần bạn phải biết chạy Java thế nào cho đúng. Bài này tổng hợp một số kiến thức về Java để chạy các ứng dụng viết bằng Java
1. JRE và JDK
JRE cần để chạy các chương trình viết bằng Java
JDK cần để compile
2. Java 6 và Java 7
Code java 6 nói chung là có thể chạy được với jre7, điều ngược lại không đúng. Một số trường hợp không tương thích liệt kê ở đây:
http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#incompatibilities
2.5 JVM
Oracle implement 2 VM cho Java, đó là Java HotSpot Virtual Machine và Oracle JRockit JVM. Loại JVM ban thường gặp là HotSpot, còn JRockit có vẻ như mang lại hiệu năng cao hơn. Theo Wikipedia, JRockit và HotSpot sẽ hòa vào làm một ở bản Java 8.
3. Các option phổ biến:
1. JRE và JDK
JRE cần để chạy các chương trình viết bằng Java
JDK cần để compile
2. Java 6 và Java 7
Code java 6 nói chung là có thể chạy được với jre7, điều ngược lại không đúng. Một số trường hợp không tương thích liệt kê ở đây:
http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#incompatibilities
2.5 JVM
Oracle implement 2 VM cho Java, đó là Java HotSpot Virtual Machine và Oracle JRockit JVM. Loại JVM ban thường gặp là HotSpot, còn JRockit có vẻ như mang lại hiệu năng cao hơn. Theo Wikipedia, JRockit và HotSpot sẽ hòa vào làm một ở bản Java 8.
3. Các option phổ biến:
Sunday, 25 August 2013
[SomethingNew] Calibre, Gitlab, Graphite...
by
H
Viết cho đỡ mốc.
1. Calibre đã ra bản 1.0
2. Gitlab 6.0 cũng vừa ra lò, bạn muốn tự host 1 trang như Github? hãy dùng Gitlab
http://blog.gitlab.org/gitlab-6-dot-0-released/
3. Graphite vừa release bản 0.9.12 với nhiều bugfix so với bản 0.9.10 (xem ở release note của 0.9.11)
1. Calibre đã ra bản 1.0
calibre is a free and open source e-book library management application developed by users of e-books for users of e-books. It has a cornucopia of features divided into the following main categories:http://calibre-ebook.com/new-in/ten
2. Gitlab 6.0 cũng vừa ra lò, bạn muốn tự host 1 trang như Github? hãy dùng Gitlab
http://blog.gitlab.org/gitlab-6-dot-0-released/
3. Graphite vừa release bản 0.9.12 với nhiều bugfix so với bản 0.9.10 (xem ở release note của 0.9.11)
Graphite is an enterprise-scale monitoring tool that runs well on cheap hardware. It was originally designed and written by Chris Davis at Orbitz in 2006 as side project that ultimately grew to be a foundational monitoring tool. In 2008, Orbitz allowed Graphite to be released under the open source Apache 2.0 license. Since then Chris has continued to work on Graphite and has deployed it at other companies including Sears, where it serves as a pillar of the e-commerce monitoring system. Today many large companies use it.http://graphite.readthedocs.org/en/0.9.12/releases/0_9_12.html
Saturday, 17 August 2013
[Monitoring] StatsD
by
H
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:
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
by
H
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
Ví dụ:
2. Giải nén
Ví dụ
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
by
H
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.
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
by
H
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:
(PS: ngoài ra còn có RubyJS (http://rubyjs.org/) là bản port sang Ruby)
What is pyjs?
- 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
by
H
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:
Đập ngay vào mặt cái lỗi:
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,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 ~.~
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
The reason is you cannot mount Audio CD's. Not now, not ever.https://bbs.archlinux.org/viewtopic.php?pid=1023931#p1023931
ISO9660 is a format, and Audio CD's have to comply with the Redbook specification; not with ISO9660 format specs.
Friday, 2 August 2013
[bash] introspection
by
H
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, ...
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: ~ () $ alias2. set
alias POM='git pull origin master'
alias cdd='cd ~/Dropbox'
alias cdg='cd ~/Github'
alias cdh='cd ~/hgrepo'
...
Friday, 26 July 2013
[vim] hãy dùng Gvim
by
H
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ì.
- 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
by
H
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:
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%
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
by
H
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
by
H
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)
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
by
H
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ệ:
Kết quả thu được là:
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
by
H
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:
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...
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')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.
Out[5]: ''
In [6]: s2 = '....slsasls.sls'
In [7]: s2.rstrip('.sls')
Out[7]: '....slsa'
Thursday, 11 July 2013
Viết script thực hiện fingerprinting - vui chơi cuối tuần
by
H
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
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
by
Anonymous
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ẻ:
Familug đã định dạng format sẵn code. Các bạn viết bài thì dùng thẻ Quote để chèn code
Computer Output Tags bao gồm các thẻ:
- code - <code> -
chữ nó sẽ như này - cái này gọi là thẻ code
- kbd - <kbd> - chữ nó sẽ như này - cái này gọi là thẻ Keyboard Text
- samp - <samp> - chữ nó sẽ như này - cái này gọi là thẻ Sample Text
- tt - <tt> - chữ nó sẽ như này - cái này gọi là thẻ Teletype text
- var - <var> - chữ nó sẽ như này - cái này gọi là thẻ Variable
- 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
by
H
Updated: vài lời nhảm nhí
Updated: add eggdrop
Tcl - Tool Command LanguageUpdated: add eggdrop
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 )
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
by
H
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
- 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
by
H
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 để
Bởi thế nên, một công việc lý tưởng là công việc:
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
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
by
H
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õ
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:
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_dohay chỉ gõ mỗi
Đừng chạy theo bản XX.0
by
H
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 ...
Đừ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
by
H
Dưới đây là ví dụ hàm log, dùng để log input của nó ra syslog:
và dùng nó thế này
log(){
while read data; do
echo $data | logger -t "familug" -p debug
done
}
echo "Start $0" | log
date | log
Tuesday, 2 July 2013
FFMPEG
by
H
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:
FFmpeg provides various tools:
Monday, 24 June 2013
[FMLEXER] tập thể dục với các bài lập trình đơn giản
by
H
EXER là viết tắt của từ exercise - bài tập/ thể dục
FMLEXER tiếp nối chuỗi bài viết FMLB không ai thèm chơi
Đề bài và script để tạo đề bài để ở đây
Người chơi hãy dùng bất cứ ngôn ngữ gì để thu được kết quả mong muốn.
Dùng phần mềm `tree` để in cấu trúc thư mục.
FMLEXER tiếp nối chuỗi bài viết FMLB không ai thèm chơi
Đề bài và script để tạo đề bài để ở đây
https://github.com/familug/fmlexer/tree/master/fmlexer01
Người chơi hãy dùng bất cứ ngôn ngữ gì để thu được kết quả mong muốn.
Dùng phần mềm `tree` để in cấu trúc thư mục.
Cài đặt server chat XMPP - ejabberd
by
Anonymous
XMPP (Extensible Messaging and Presence Protocol): trước đây là Jabber, là giao thức mở dựa trên nền tảng XML dùng trong nhắn tin nhanh (instant messaging) và thông tin hiện diện trực tuyến (presence information).
(http://vi.wikipedia.org/wiki/XMPP)Mạng XMPP có thể dùng đơn lẻ: các máy trong mạng chat với nhau, hoặc kết nối với các hệ thống nhắn tin (instant messaging systems) khác - thông qua các gateway: máy của mạng nay chat được với máy thuộc mạng kia .
Các hệ thống nhắn tin này có thể là 1 mạng XMPP khác hay mạng ICQ, google talk...
YAML là gì?
by
Anonymous
YAML (http://www.yaml.org/) là 1 định dạng dũ liệu được thiết kế nhằm mục đích để người và máy (các ngôn ngữ lập trình) cùng đọc được.
YAML được dùng vào mục đích tương tự JSON, XML nhưng ngắn gọn xúc tích hơn.
Ví dụ về 1 đoạn YAML được biểu diễn như sau:
YAML được dùng vào mục đích tương tự JSON, XML nhưng ngắn gọn xúc tích hơn.
Ví dụ về 1 đoạn YAML được biểu diễn như sau:
-http://yaml-online-parser.appspot.com/ Là 1 trang chuyển đổi YAML sang JSON. Bạn nên dùng trang này trong lúc đọc, vừa học vừa hành lúc nào cũng tốt hơn.
name: HVN
mail: hvn@familug.org
-
name: SAM
mail: hai.lt@familug.org
YAML để làm gì?
suy nghĩ trong đêm
by
H
00 h 36
Mưa rơi rả rích, đêm chỉ có tiếng nhạc, tiếng mưa và tiếng gõ phím.
Chất kích thích của ly cà phê Trung Nguyên vẫn còn mạnh lắm, chưa ngủ được.
Nếu may mắn, chỉ vài ngày nữa thôi là sẽ xa Việt Nam một thời gian không ngắn cũng chẳng dài, luyên thuyên tí cho đêm nhanh qua.
Mình đã viết bài cho cái blog này hơn 3 năm nay, đơn giản vì nó có ích cho người khác và cho chính bản thân. Nói ngu lỡ tèo, thì ít ra cũng làm cho đời được từng này, chẳng phải kinh khủng nhưng cũng chẳng phải tầm thường.
Mình ghét cái ý nghĩ viết blog thì phải uyên thâm, phải giỏi, phải hơn người. Điều cũ với người này nhưng có thể là mới với người khác. Nếu mỗi người chia sẻ những gì mình biết, mình học được mỗi ngày thì sẽ có bao nhiêu điều thú vị được chia sẻ ?
Mưa rơi rả rích, đêm chỉ có tiếng nhạc, tiếng mưa và tiếng gõ phím.
Chất kích thích của ly cà phê Trung Nguyên vẫn còn mạnh lắm, chưa ngủ được.
Nếu may mắn, chỉ vài ngày nữa thôi là sẽ xa Việt Nam một thời gian không ngắn cũng chẳng dài, luyên thuyên tí cho đêm nhanh qua.
Mình đã viết bài cho cái blog này hơn 3 năm nay, đơn giản vì nó có ích cho người khác và cho chính bản thân. Nói ngu lỡ tèo, thì ít ra cũng làm cho đời được từng này, chẳng phải kinh khủng nhưng cũng chẳng phải tầm thường.
Mình ghét cái ý nghĩ viết blog thì phải uyên thâm, phải giỏi, phải hơn người. Điều cũ với người này nhưng có thể là mới với người khác. Nếu mỗi người chia sẻ những gì mình biết, mình học được mỗi ngày thì sẽ có bao nhiêu điều thú vị được chia sẻ ?
Sunday, 23 June 2013
copy từ urxvt đến X clipboard
by
H
hvn@archhvn: ~ () $ whatis urxvt
urxvt (1) - (a VT102 emulator for the X window system)
không như GNOME Terminal, urxvt không hỗ trợ copy bằng Ctrl Shift C, việc copy từ urxvt đến 1 cửa sổ nào khác phải thực hiện thông qua sự trợ giúp của của 1 script hoặc 1 clipboard manager
Tổ hợp mặc định cho việc copy và paste của X là Ctrl Insert và Shift Insert
Ở đây tớ dùng clipboard manager Parcellite để copy từ urxvt đến các cửa sổ khác:
Parcellite - Lightweight GTK+ Clipboard Manager
rsync - công cụ copy siêu đẳng
by
H
bạn sẽ cần tool này, vì chỉ cần học đúng 1 câu lệnh là nó đã có thể tiết kiệm cho bạn hàng đống thời gian!
rsync là một công cụ dùng để copy trên UNIX-like OSes, nó nổi tiếng nhờ thuật toán delta-copy (tức chỉ copy phần khác nhau), bạn có thể cài nó và dùng thay lệnh `cp`
hvn@archhvn: ~ () $ whatis rsync
rsync (1) - a fast, versatile, remote (and local) file-copying tool
rsync là một công cụ dùng để copy trên UNIX-like OSes, nó nổi tiếng nhờ thuật toán delta-copy (tức chỉ copy phần khác nhau), bạn có thể cài nó và dùng thay lệnh `cp`
Thursday, 20 June 2013
PLEAC - học các ngôn ngữ lập trình theo kiểu "perl cookbook"
by
H
Là một dư án mã mở, PLEAC - Programming Language Examples Alike Cookbook chuyển đổi các ví dụ từ Perl Cookbook sang nhiều ngôn ngữ khác nhau.
Một vài ngôn ngữ điển hình:
Ocaml: http://pleac.sourceforge.net/pleac_ocaml/index.htm
Perl: http://pleac.sourceforge.net/pleac_perl/index.html
Groovy: http://pleac.sourceforge.net/pleac_groovy/index.html
Python: http://pleac.sourceforge.net/pleac_python/index.html
Ruby: http://pleac.sourceforge.net/pleac_ruby/index.html
...
Một vài ngôn ngữ điển hình:
Ocaml: http://pleac.sourceforge.net/pleac_ocaml/index.htm
Perl: http://pleac.sourceforge.net/pleac_perl/index.html
Groovy: http://pleac.sourceforge.net/pleac_groovy/index.html
Python: http://pleac.sourceforge.net/pleac_python/index.html
Ruby: http://pleac.sourceforge.net/pleac_ruby/index.html
...
git và tig là đôi bạn thân
by
H
Mới khám phá ra `tig` gần đây nhưng nó đã trở nên vô cùng thân thiết với `git` của tớ.
Với một giao diện trên nền ncurse, màu mè con bà bán chè, tig giúp bạn dễ dàng xem các commit ... và nhiều tính năng khác nữa (chưa dùng tới)
Cài đặt:
Với một giao diện trên nền ncurse, màu mè con bà bán chè, tig giúp bạn dễ dàng xem các commit ... và nhiều tính năng khác nữa (chưa dùng tới)
Cài đặt:
Script hay làm bằng tay?
by
H
Bình thường tớ sẽ luôn trả lời là script vì viết script rất vui :D
Nhưng khi cần thực hiện xong công việc càng nhanh càng tốt, ngồi viết script chưa hẳn đã là điều hay ho. Trước khi thò tay định viết scritp để thực hiện một công việc gì đó nhằm tự động hóa nó, mục đích chính là làm xong công việc nhanh hơn, chính xác hơn, hiệu quả hơn, bạn nên tự hỏi mình vài câu:
- Liệu bạn làm thủ công có nhanh hơn không?
Nếu câu trả lời là có, đừng viết! Nếu bạn không thạo việc viết scritp, bạn sẽ tốn thêm thời gian để debug, google cách làm, đọc document cách dùng thư viện... và kết quả là bạn làm tay sẽ nhanh hơn. Bởi vậy, cần thật thành thạo và chính xác thì mới mang lại hiệu quả. Ví dụ:
bạn cần đổi tên 10 thư mục, thêm vào mỗi tên 1 dòng chữ XXX. Nếu bạn biết viết 1 câu lệnh bash với for, if, mv, bạn sẽ hoàn thành công việc này sau khoảng 20 giây. Nhưng nếu không thạo cú pháp, bạn lại mất thời gian debug, google thì có thể mất đến 3 phút, làm tay còn nhanh hơn.
- Script này có được sử dụng lại không?
Nhưng khi cần thực hiện xong công việc càng nhanh càng tốt, ngồi viết script chưa hẳn đã là điều hay ho. Trước khi thò tay định viết scritp để thực hiện một công việc gì đó nhằm tự động hóa nó, mục đích chính là làm xong công việc nhanh hơn, chính xác hơn, hiệu quả hơn, bạn nên tự hỏi mình vài câu:
- Liệu bạn làm thủ công có nhanh hơn không?
Nếu câu trả lời là có, đừng viết! Nếu bạn không thạo việc viết scritp, bạn sẽ tốn thêm thời gian để debug, google cách làm, đọc document cách dùng thư viện... và kết quả là bạn làm tay sẽ nhanh hơn. Bởi vậy, cần thật thành thạo và chính xác thì mới mang lại hiệu quả. Ví dụ:
bạn cần đổi tên 10 thư mục, thêm vào mỗi tên 1 dòng chữ XXX. Nếu bạn biết viết 1 câu lệnh bash với for, if, mv, bạn sẽ hoàn thành công việc này sau khoảng 20 giây. Nhưng nếu không thạo cú pháp, bạn lại mất thời gian debug, google thì có thể mất đến 3 phút, làm tay còn nhanh hơn.
- Script này có được sử dụng lại không?
Monday, 17 June 2013
Những điều nhảm nhí khi học lập trình
by
H
Nhảm nhí hay không phụ thuộc vào cách nhìn của bạn đọc, nhưng với mình thì chúng đúng là nhảm nhí, và rất phổ biến :3
1. x++ và ++x khác nhau thế nào?
Damn! bạn không cần quan tâm đến thứ này. Khi nó là một thứ nên tránh thì mọi người hết lượt cắm đầu vào để tìm hiểu, và không chắc liệu có nhớ được lâu không.
Trong khi học C , thứ các bạn cần học là hiểu về con trỏ, quản lý bộ nhớ, sử dụng các thư viện mà hệ điều hành cung cấp, các thư viện của bên thứ 3...
Hãy viết x = x + 1; và đừng bao giờ quan tâm về câu hỏi nhảm nhí này nữa. (trừ khi bạn muốn học viết obfuscated C )
2. scanf và kiểu chương trình CLI tương tác trực tiếp với người dùng
Kiểu như: viết chương trình C cho người dùng nhập vào họ tên, mã sinh viên, điểm, ... blah blah blah. Đại khái là khi viết bạn sẽ phải dùng hàm scanf, fget, gets...
1. x++ và ++x khác nhau thế nào?
Damn! bạn không cần quan tâm đến thứ này. Khi nó là một thứ nên tránh thì mọi người hết lượt cắm đầu vào để tìm hiểu, và không chắc liệu có nhớ được lâu không.
Trong khi học C , thứ các bạn cần học là hiểu về con trỏ, quản lý bộ nhớ, sử dụng các thư viện mà hệ điều hành cung cấp, các thư viện của bên thứ 3...
Hãy viết x = x + 1; và đừng bao giờ quan tâm về câu hỏi nhảm nhí này nữa. (trừ khi bạn muốn học viết obfuscated C )
2. scanf và kiểu chương trình CLI tương tác trực tiếp với người dùng
Kiểu như: viết chương trình C cho người dùng nhập vào họ tên, mã sinh viên, điểm, ... blah blah blah. Đại khái là khi viết bạn sẽ phải dùng hàm scanf, fget, gets...
Saturday, 15 June 2013
[Editor] Sublime Text 2
by
prinkeofsky
Sublime Text 2- là một text editor khá phổ biến có thể cài đặt trên cả windows lẫn linux.
- Cài đặt:
- Trên windows vào trang chủ http://www.sublimetext.com/2 và download về và cài đặt như bình thường
- Trên ubuntu :
sudo add-apt-repository ppa:webupd8team/sublime-text-2
sudo apt-get update
sudo apt-get install sublime-text-2
Về cách thức làm việc thì cũng như các text-editor khác: highlight, tab, chia không gian làm việc, hỗ trợ cài thêm các pakaged.
Mình cũng mới sử dụng sơ sơ thấy thích thích mọi người ai có nhã hứng thì cài và tìm hiểu nhé.
Mình cũng mới sử dụng sơ sơ thấy thích thích mọi người ai có nhã hứng thì cài và tìm hiểu nhé.
[python] Tạo HTTP Server đơn giản bằng 1 dòng lệnh
by
Anonymous
Friday, 14 June 2013
[bash] Tắt máy tự động
by
H
7h, cu Hít muốn đi ăn cơm nhưng chương trình wget vẫn đang download dở đống file và chẳng biết bao giờ mới xong.
7h 01, cu Hít định gõ sudo shutdown -h 120 để máy sẽ tắt sau 120 phút, nhưng lúc ấy nhỡ chưa xong thì sao?!!!
7h 02, nghĩ...
7h 03, một ý tưởng vô cùng bình thường mà không tầm thường đã nảy ra, cu Hít thò tay vào test
Ý tưởng rằng, khi wget chạy, nó sẽ xuất hiện khi grep output của lệnh `ps`. Nếu nó không còn ở đó nữa nghĩa là đã xong, lúc ấy thì tắt máy.
Nếu chuyển đoạn trên sang bash sẽ là: lặp cho đến khi không còn thấy wget trong output của lệnh `ps`, rồi shutdown.
7h 04, mọi thứ đã sẵn sàng, gõ thôi:
7h 01, cu Hít định gõ sudo shutdown -h 120 để máy sẽ tắt sau 120 phút, nhưng lúc ấy nhỡ chưa xong thì sao?!!!
7h 02, nghĩ...
7h 03, một ý tưởng vô cùng bình thường mà không tầm thường đã nảy ra, cu Hít thò tay vào test
Ý tưởng rằng, khi wget chạy, nó sẽ xuất hiện khi grep output của lệnh `ps`. Nếu nó không còn ở đó nữa nghĩa là đã xong, lúc ấy thì tắt máy.
Nếu chuyển đoạn trên sang bash sẽ là: lặp cho đến khi không còn thấy wget trong output của lệnh `ps`, rồi shutdown.
7h 04, mọi thứ đã sẵn sàng, gõ thôi:
Danh sách port và service tương ứng trên Linux
by
H
Bạn muốn biết cổng nào dùng cho dịch vụ nào?
tcpmux 1/tcpNội dung bạn cần nằm ở
tcpmux 1/udp
compressnet 2/tcp
compressnet 2/udp
compressnet 3/tcp
compressnet 3/udp
rje 5/tcp
rje 5/udp
....
Thursday, 13 June 2013
Wednesday, 12 June 2013
Xử lý text trên Linux
by
H
công việc này nghe có vẻ nhàm chán
và thực sự thì nó đúng là như vậy, ít nhất đối với tớ. Mỗi lần đọc 1 quyển sách lập trình, cứ đến đoạn xử lý string là mình cố tua thật nhanh cho hết :v
Nhưng nó cần thiết, quan trọng, và thậm chí mang tính sống còn. Nếu bạn xử lý tất cả mọi thứ bằng tay thì không bàn tới, nhưng nếu bạn muốn tự động hóa mọi thứ, bạn sẽ phải viết script, và xử lý text lại trở nên quan trọng.
Vì: trên UNIX-like OS, output của các utils đều là text cả. Các chương trình giao tiếp với nhau thông qua text (dùng pipeline của sh/bash...), bởi vậy, chán cũng phải làm, thậm chí là làm giỏi :3
Dưới đây là một problem đơn giản, bạn nào ngứa tay thì làm thử, dùng cái gì cũng được, miễn thu được kết quả:
và thực sự thì nó đúng là như vậy, ít nhất đối với tớ. Mỗi lần đọc 1 quyển sách lập trình, cứ đến đoạn xử lý string là mình cố tua thật nhanh cho hết :v
Nhưng nó cần thiết, quan trọng, và thậm chí mang tính sống còn. Nếu bạn xử lý tất cả mọi thứ bằng tay thì không bàn tới, nhưng nếu bạn muốn tự động hóa mọi thứ, bạn sẽ phải viết script, và xử lý text lại trở nên quan trọng.
Vì: trên UNIX-like OS, output của các utils đều là text cả. Các chương trình giao tiếp với nhau thông qua text (dùng pipeline của sh/bash...), bởi vậy, chán cũng phải làm, thậm chí là làm giỏi :3
Dưới đây là một problem đơn giản, bạn nào ngứa tay thì làm thử, dùng cái gì cũng được, miễn thu được kết quả:
[LATEX] Đồ án tốt nghiệp đề tài "SỬ DỤNG SALTSTACK TRIỂN KHAI HỆ THỐNG PRIVATE CLOUD OPENSTACK"
by
H
Đây là ĐATN của tớ viết toàn bộ sử dụng LATEX gồm bản báo cáo
https://bitbucket.org/hvnsweeting/datn/src/96c8e2902bdf4f69fe5b9f17d48b933188ba7f4c/tttn.tex?at=master
và slide
https://bitbucket.org/hvnsweeting/datn/src/96c8e2902bdf4f69fe5b9f17d48b933188ba7f4c/slide.tex?at=master
https://bitbucket.org/hvnsweeting/datn/src/96c8e2902bdf4f69fe5b9f17d48b933188ba7f4c/tttn.tex?at=master
và slide
https://bitbucket.org/hvnsweeting/datn/src/96c8e2902bdf4f69fe5b9f17d48b933188ba7f4c/slide.tex?at=master
Monday, 10 June 2013
[vim] Hướng dẫn học dùng vim
by
H
Bài viết [TẤT NHIÊN] mang tính chủ quan và dựa trên kinh nghiệm dùng vim của tớ.
Đọc xong bài này bạn sẽ:
- biết học dùng vim cơ bản thế nào
- biết tìm chỗ để học nâng cao
- hiểu biết về những thứ xung quanh vim
vim là gì?
vim là phiên bản phát triển từ vi (visual - đọc là vi-eye) , thường được dùng để edit các file text khi lập trình hay cấu hình hệ thống.
Những đặc điểm nổi bật của vim
Đọc xong bài này bạn sẽ:
- biết học dùng vim cơ bản thế nào
- biết tìm chỗ để học nâng cao
- hiểu biết về những thứ xung quanh vim
vim là gì?
vim (1) - Vi IMproved, a programmers text editor
vim là phiên bản phát triển từ vi (visual - đọc là vi-eye) , thường được dùng để edit các file text khi lập trình hay cấu hình hệ thống.
Những đặc điểm nổi bật của vim
Sunday, 9 June 2013
WM và hành trình đi vào thế giới ArchLinux
by
H
:v
tít nhảm nhí vãi
WM là thứ đầu tiên tớ hóng được từ ArchLinux, và cũng là dấu mốc mở đầu một chân trời mới.
Window Manager (WM) là một loại chương trình để quản lý cửa sổ
Desktop Environment (DE) là một bộ gồm nhiều chương trình để tạo nên một môi trường desktop, các DE nổi tiếng có thể kể đến như: Gnome, KDE, LXDE, XFCE, e17. Bất kỳ Desktop Environment nào cũng bao gồm một WM, nhưng nếu đang dùng Ubuntu, có lẽ bạn sẽ không để ý nó tên là gì.
Đây chính là sự khác biệt, khi ở một nơi, bạn thấy nó đập vào mặt ở mọi chỗ,
tít nhảm nhí vãi
WM là thứ đầu tiên tớ hóng được từ ArchLinux, và cũng là dấu mốc mở đầu một chân trời mới.
Window Manager (WM) là một loại chương trình để quản lý cửa sổ
Desktop Environment (DE) là một bộ gồm nhiều chương trình để tạo nên một môi trường desktop, các DE nổi tiếng có thể kể đến như: Gnome, KDE, LXDE, XFCE, e17. Bất kỳ Desktop Environment nào cũng bao gồm một WM, nhưng nếu đang dùng Ubuntu, có lẽ bạn sẽ không để ý nó tên là gì.
Đây chính là sự khác biệt, khi ở một nơi, bạn thấy nó đập vào mặt ở mọi chỗ,
Friday, 7 June 2013
[KVM] Tăng tốc máy ảo bằng virtio
by
H
Sẽ viết một bài cài máy ảo sử dụng KVM sau.
KVM là gì?
Định nghĩa theo trang chủ:
Nói đơn giản nó sẽ cho phép bạn cài máy ảo lên máy bạn đang dùng, tương tự như VirtualBox, VMWare. KVM được tích hợp sẵn vào kernel của Linux từ phiên bản 2.6.20
Virtio
KVM là gì?
Định nghĩa theo trang chủ:
KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V).
Nói đơn giản nó sẽ cho phép bạn cài máy ảo lên máy bạn đang dùng, tương tự như VirtualBox, VMWare. KVM được tích hợp sẵn vào kernel của Linux từ phiên bản 2.6.20
Virtio
Thursday, 6 June 2013
[SmartUsing] Dùng github/bitbucket để lên kế hoạch cá nhân
by
H
Nếu bạn thường xuyên bắt đầu một việc gì đó khi thích thú (học 1 cái gì đó chẳng hạn), và rồi vài hôm sau bạn quên mất, hay bạn muốn lên kế hoạch để thực hiện như những gì bạn đề ra.
Có rất nhiều ứng dụng để take note, báo thức, lên kế hoạch trên các smartphone cũng như trên web. Nhưng mới đây tớ "phát hiện" ra có thể sử dụng github hay bitbucket để thực hiện việc này, khá là thú vị.
Có rất nhiều ứng dụng để take note, báo thức, lên kế hoạch trên các smartphone cũng như trên web. Nhưng mới đây tớ "phát hiện" ra có thể sử dụng github hay bitbucket để thực hiện việc này, khá là thú vị.
Wednesday, 5 June 2013
Ý nghĩa của các câu lệnh Linux
by
H
Dưới đây là các câu lệnh thường gặp trên Linux và lý giải tại sao nó có tên như vậy:
cp
— CoPy files and directoriesdc
— Desk Calculatordd
— (Data Description) convert and copy a filedf
— Disk Free: report file system disk space usagedu
— Disk Usageed
— EDitorln
— make LiNks between files
Tuesday, 4 June 2013
[CSS] Dropdown menu
by
prinkeofsky
Chào cả nhà hôm nay vừa thi tốt nghiệp cấp 3 xong. Trời có nắng nhưng được cái có gió. Và có mấy đứa đi chụp ảnh mảnh ở hồ sen nào đấy rồi up ảnh lên face + không biết đã khao ván trượt chưa nữa
Đi vào vấn đề chính
- Margin : Lệnh này để căn chỉnh khoảng cách giữa các đối tượng cùng cấp với nhau và có 4 giá trị theo thứ tự trên phải dưới trái, 3 giá trị thì là trên phải(trái = lề phải) dưới, 2 giá trị : trên(=dưới) phải(=trái), 1 giá trị: tất cả bằng nhau, ngoài ra còn có auto nó sẽ tự co khi co màn hình(theo mình biết là vậy).ps: còn có cách chỉnh riêng từng giá trị bằng các thêm-top,-bottom,-left,-right sau margin
- Padding: giống như margin để căn chỉnh khoảng cách nhưng là khoảng cách giữa đối tượng và lề của nó . Các dùng giá trị như margin
Thư viện trên Linux
by
H
UPDATED: thêm lệnh liệt kê tất cả thư viện
bài này cung cấp cho bạn hiểu biết cơ bản về Linux library (và nó có thể đúng với các UNIX-like OS khác như BSD, Solaris, ...)
Ai nên đọc bài này:
Có 3 loại library:
bài này cung cấp cho bạn hiểu biết cơ bản về Linux library (và nó có thể đúng với các UNIX-like OS khác như BSD, Solaris, ...)
Ai nên đọc bài này:
- C/C++ programmer
- Sysadmin - để troubleshooting
- Người thích tìm hiểu về Linux
Có 3 loại library:
- static libraries
- shared libraries
- dynamically loaded libraries.
Sunday, 2 June 2013
CSS-Cách chèn code vào 1 trang web
by
prinkeofsky
Chào cả nhà hôm nay mình có nghịc twitter bootstrap toét cả mắt do chưa chỉnh customize nên toàn màu trắng là màu trắng nhưng cái này viết css ah nhầm giúp làm giao diện nhanh ghê!!!
Đi vào bài hôm nay mình sẽ trình bày về các cách để chèn code css vào một trang web.
Có 3 cách để chèn code vào trang web :
khi add vào thẻ h1 với chứ tôi yêu vn, kết quả sẽ là: Tôi yêu VN
Đi vào bài hôm nay mình sẽ trình bày về các cách để chèn code css vào một trang web.
Có 3 cách để chèn code vào trang web :
- Cục bộ: Viết ngay code css trên ngay thành phần cần tác động thông qua thuộc tính style= " property1: value1 ; property2 : value2";.... Phạm vi tác động nhỏ , chỉ thẻ chứa nó mới có style đó.
khi add vào thẻ h1 với chứ tôi yêu vn, kết quả sẽ là: Tôi yêu VN
Saturday, 1 June 2013
Partitioning - Phân vùng ổ cứng
by
H
Nó là phần rắc rối nhất / dễ gây hoang mang nhất khi cài đăt một hệ điều hành.
Bài này đưa ra những khái niệm cơ bản về phân vùng để người dùng không còn sợ hãi.
Có 2 partition scheme (sơ đồ phân vùng ???) phổ biến là MBR và GPT
1. MBR (master boot record)
MBR (master boot record) của một đĩa cứng có khả năng chứa một bảng phân vùng có thể định nghĩa 4 phân vùng chính (primary partition). Do con số 4 này có vẻ hạn chế đối với những ổ cứng cỡ lớn nên người ta sinh ra khái niệm phân vùng mở rộng (extended partition, vậy bạn có thể có 3 primary + 1 extended). Bên trong extended partion ta có thể thoải mái định nghĩa các phân vùng logic (logic partition)
2. GPT (GUID partition table)
Bài này đưa ra những khái niệm cơ bản về phân vùng để người dùng không còn sợ hãi.
Có 2 partition scheme (sơ đồ phân vùng ???) phổ biến là MBR và GPT
1. MBR (master boot record)
MBR (master boot record) của một đĩa cứng có khả năng chứa một bảng phân vùng có thể định nghĩa 4 phân vùng chính (primary partition). Do con số 4 này có vẻ hạn chế đối với những ổ cứng cỡ lớn nên người ta sinh ra khái niệm phân vùng mở rộng (extended partition, vậy bạn có thể có 3 primary + 1 extended). Bên trong extended partion ta có thể thoải mái định nghĩa các phân vùng logic (logic partition)
2. GPT (GUID partition table)
Friday, 31 May 2013
CSS mở đầu- 1 phần quan trọng bộ mặt của web
by
prinkeofsky
Yahoo! hôm nay vừa uống bia bị no cứng bụng ! liệu css có làm cho bụng mình nhỏ hơn thậm chí 6 múi ko nhỉ :)). câu trả lời là ko :))
CSS: cái này là viết tắt của C Style S. hề có chữ Style là liên quan tới làm đẹp rồi. Vâng Sản phẩm gì cũng qua bộ phận làm đẹp cả người mẫu bôi son chát phân, gia công thì mài nhẵn, nhám... Và CSS ở đây là stylist cho trang web của các bạn.
Về cơ bản thì HTML cũng đã những thẻ lệnh để làm đẹp cho trang web, Nhưng nếu chỉ dừng lại ở HTML(mình ko biết HTML5 thế nào) thì trang web của bạn ko đạt tới đc độ đẹp được. Và có css thì trang web của bạn sẽ hiển thị tốt trên đa nền: PC,mobile ... trên các os miễn là có trình duyệt.Ngày nay css phát triển>> cho nhiều các trình bày trang web phức tạp.
Để code CSS bạn cần gì: Kiến thức HTML đương nhiên chúng ta sẽ chỉnh từng thẻ lênh , từng khối thẻ của HTML, 1 trình duyệt mới, 1 text editor, và thời gian để thực hành nữa.
[Bài học] sau một ngày đánh vật với laptop HP Pavilion
by
H
hay cách "troubleshooting" lúc máy restart xong thì chỉ có màn hình đen xì (sau khi chạy qua 1 đống chữ)
Hôm nay đúng là một ngày dài vì đêm qua ngủ quá ít, mà chính xác ra là sáng nay. Cả đêm đánh vật với laptop của hacker Tùng Lâm báo hại cho một ngày cực kỳ vất vả. Và giờ chỉ ngồi (thực tế là đứng) nghĩ về các bài học rút được ra.
Bài học số 1: máy tính cần phải đảm bảo restart thành công sau khi cài / sửa một cái gì đó liên quan đến hệ thống.
Đêm qua hì hục tạo usb, cài ubuntu server 12.04 cho máy hacker Tùng Lâm.
Hôm nay đúng là một ngày dài vì đêm qua ngủ quá ít, mà chính xác ra là sáng nay. Cả đêm đánh vật với laptop của hacker Tùng Lâm báo hại cho một ngày cực kỳ vất vả. Và giờ chỉ ngồi (thực tế là đứng) nghĩ về các bài học rút được ra.
Bài học số 1: máy tính cần phải đảm bảo restart thành công sau khi cài / sửa một cái gì đó liên quan đến hệ thống.
Đêm qua hì hục tạo usb, cài ubuntu server 12.04 cho máy hacker Tùng Lâm.
Thursday, 30 May 2013
Tạo Usb cài Ubuntu với 1 câu lệnh
by
H
Yeah, khỏi cần usb-boot-creator hay unetbootin gì cả.
Biện pháp này đã test trên :
- Ubuntu 12.04
- ArchLinux
Chỉ cần cắm usb, chạy câu lệnh sau:
Chờ đến khi nó chạy xong là xong :D, cắm vào boot lên rồi cài thôi.
GIẢI THÍCH:
Biện pháp này đã test trên :
- Ubuntu 12.04
- ArchLinux
Chỉ cần cắm usb, chạy câu lệnh sau:
sudo dd if=/tmp/ubuntu-12.04-server-amd64.iso of=/dev/sdb bs=4MCâu lệnh dd CỰC KỲ nguy hiểm khi bạn viết nhầm ở đoạn "of=....". Nhớ kiểm tra kỹ bạn đang gán of (out file) bằng ổ usb của mình (có thể là /dev/sdc, /dev/sdd... tùy theo số thiết bị lưu trữ bạn đang cắm).
Chờ đến khi nó chạy xong là xong :D, cắm vào boot lên rồi cài thôi.
GIẢI THÍCH:
Tìm độ dài của mã md5, sha1
by
H
Trong một bài test, hacker Tùng Lâm đã đưa ra câu hỏi: chuỗi hash md5, sha1 có bao nhiêu ký tự. Câu trả lời được đưa ra bằng câu lệnh sau:
GIẢI THÍCH:
hvn@lappy: ~ () $ for cmd in sha1sum md5sum; do echo -n $cmd' ' && date | $cmd | cut -d' ' -f 1 | tr -d '\n' | wc -c; done;
sha1sum 40
md5sum 32
GIẢI THÍCH:
Wednesday, 29 May 2013
Tìm các package đã cài liên quan đến XXX
by
H
XXX có thể là bất cứ cái gì, ở đây lấy ví dụ là bash.
Tại sao cần biết cái này?
- Thông thường, khi bạn cài OS, nó đã mặc định sẵn cài trước các gói nào rồi. Và nếu như bạn bị rơi vào một trường hợp mà các gói đó chưa được cài, bạn sẽ bế tắc (google it :v)
- Cụ thể ở đây là sau khi tớ cài ubuntu server 12.04 với tùy chọn "minimum" (bấm F4 lúc chọn action sau khi đã chọn ngôn ngữ - xem phần comment bài này ). Phiên bản minimum này chỉ cài mỗi gói "bash", và bạn sẽ cảm thấy tính năng complete của nó kém đi hẳn (ví dụ không auto complete khi gõ apt-get install ... - vì thiếu gói hỗ trợ).
Tại sao cần biết cái này?
- Thông thường, khi bạn cài OS, nó đã mặc định sẵn cài trước các gói nào rồi. Và nếu như bạn bị rơi vào một trường hợp mà các gói đó chưa được cài, bạn sẽ bế tắc (google it :v)
- Cụ thể ở đây là sau khi tớ cài ubuntu server 12.04 với tùy chọn "minimum" (bấm F4 lúc chọn action sau khi đã chọn ngôn ngữ - xem phần comment bài này ). Phiên bản minimum này chỉ cài mỗi gói "bash", và bạn sẽ cảm thấy tính năng complete của nó kém đi hẳn (ví dụ không auto complete khi gõ apt-get install ... - vì thiếu gói hỗ trợ).
pastebinit và cho mọi người thấy bạn cài gì trên máy
by
H
Pastebin.com là một trang web để paste code vào và chia sẻ với người khác. Thường được dùng để paste lỗi, nội dung config rồi mang đi hỏi người khác.
Để tránh phải copy - paste bằng tay, hãy cài gói pastebinit:
Để tránh phải copy - paste bằng tay, hãy cài gói pastebinit:
apt-get install pastebinit -ygiờ muốn paste file nào, chỉ cần gõ :
pastebinit ten_fileSử dụng tính năng tạo file tạm của bash, câu lệnh dưới đây sẽ "pastebin" các gói bạn đã cài trên máy mình.
Tuesday, 28 May 2013
Sửa lỗi ActionDispatch::Cookies::CookieOverflow trong Rails 3.x,4
by
Anonymous
Nguyên nhân do cookie để lưu session này đã đầy (giới hạn là 4KB thì phải?)
Giải pháp: Lưu chỗ session này vào database, Rails có hỗ trợ dùng Active record.
Có 1 số tut hướng dẫn tạo table trong db bằng chạy:
Giải pháp: Lưu chỗ session này vào database, Rails có hỗ trợ dùng Active record.
Có 1 số tut hướng dẫn tạo table trong db bằng chạy:
$ rake db:sessions:createThực tế mình chạy bị lỗi (Chả hiểu sao - nên viết lại tut này làm chỗ lưu trữ cho sau này).
rake db:sessions:create
rake aborted!
Don't know how to build task 'db:sessions:create'
Monday, 27 May 2013
Rủ nhau chơi Raspberry Pi
by
H
Nói chung là chơi gì thì phải 2 người hay 3 4 người cũng mới vui, nên sắp chơi cái này thì rủ mọi người chơi cùng.
Raspberry Pi là tên của một chiếc máy tính to bằng cỡ bàn tay, sau khi cắm màn hình, bàn phím, chuột, thẻ nhớ vào là bạn có thể dùng OK. Nó hiện là một trào lưu rất hot bên tây bởi giá 1 chiếc chỉ ~35$ (700K VNĐ) Nghe có vẻ rẻ nhưng phải sắm cái màn hình hỗ trợ HDMI nữa mới chạy được (các loại Tivi màn hình phẳng, hoặc màn máy tính ~3 triệu VNĐ), sau đó lắp thêm cái vỏ 200k, làm cái thẻ nhớ SD nữa, lúc ấy mới tạm gọi là chơi được.
Raspberry Pi là tên của một chiếc máy tính to bằng cỡ bàn tay, sau khi cắm màn hình, bàn phím, chuột, thẻ nhớ vào là bạn có thể dùng OK. Nó hiện là một trào lưu rất hot bên tây bởi giá 1 chiếc chỉ ~35$ (700K VNĐ) Nghe có vẻ rẻ nhưng phải sắm cái màn hình hỗ trợ HDMI nữa mới chạy được (các loại Tivi màn hình phẳng, hoặc màn máy tính ~3 triệu VNĐ), sau đó lắp thêm cái vỏ 200k, làm cái thẻ nhớ SD nữa, lúc ấy mới tạm gọi là chơi được.
Các chuẩn / cổng kết nối màn hình
by
H
Tên na ná đại khái thế. Bài này sẽ giúp phổ cập kiến thức về các cổng/dây nối màn hình phổ biến trên thị trường hiện nay.
1. D-sub (VGA)
Loại cổng phổ biến nhất hiện nay, bạn chỉ cần xoay cái màn hình của mình lại là thấy :D Loại này chỉ truyền được hình ảnh, và chất lượng bình thường, được xem là một chuẩn đã lạc hậu.
Xuất hiện hàng loạt các sản phẩm màn hình giá < 3tr VND tại thời điểm hiện tại.
2. DVI-D (Digital Visual Interface - Digital only)
1. D-sub (VGA)
Loại cổng phổ biến nhất hiện nay, bạn chỉ cần xoay cái màn hình của mình lại là thấy :D Loại này chỉ truyền được hình ảnh, và chất lượng bình thường, được xem là một chuẩn đã lạc hậu.
Xuất hiện hàng loạt các sản phẩm màn hình giá < 3tr VND tại thời điểm hiện tại.
2. DVI-D (Digital Visual Interface - Digital only)
Khởi động trước vài ngày :))
by
prinkeofsky
A LÔ A LÔ VIẾT NHƯ THẾ NÀY ĐÃ ĐỦ TO CHƯA !!!!!!!!!!!!!!!!!!!!!
Đầu tiên là xin chúc mừng các thành viên của FAMILUG sắp bước qua cổng Parabol ra con đường GIẢI PHÓNG.
Như đã thông báo, trong kỳ nghỉ hè tới mình sẽ có tham gia viết bài cho HỘI (phụ nữ Việt Nam :)) ).
Mục đích đầu tiên khi mình viết bài là vì bản thân mình sau đó là giúp được ai thì giúp ^_^.
Hướng viết bài của mình là sẽ viết về lập trình web: CSS,HTML rồi mới PHP. Và tất cả sẽ ở mức độ cơ bản-> làm chủ được những thứ này (ví dụ như là CSS thì sẽ điều khiển được các khối, đối tượng 1 cách tự do, làm chủ đc giao diện ) . Và viết dựa trên sự hiểu biết của mình nên không tránh khỏi những sai sót. Mình viết lên mong các bản sửa chữa dùm.
Viết thế này thôi nhỉ !!!
Hẹn gặp lại vào tháng 6 =))
Đầu tiên là xin chúc mừng các thành viên của FAMILUG sắp bước qua cổng Parabol ra con đường GIẢI PHÓNG.
Như đã thông báo, trong kỳ nghỉ hè tới mình sẽ có tham gia viết bài cho HỘI (phụ nữ Việt Nam :)) ).
Mục đích đầu tiên khi mình viết bài là vì bản thân mình sau đó là giúp được ai thì giúp ^_^.
Hướng viết bài của mình là sẽ viết về lập trình web: CSS,HTML rồi mới PHP. Và tất cả sẽ ở mức độ cơ bản-> làm chủ được những thứ này (ví dụ như là CSS thì sẽ điều khiển được các khối, đối tượng 1 cách tự do, làm chủ đc giao diện ) . Và viết dựa trên sự hiểu biết của mình nên không tránh khỏi những sai sót. Mình viết lên mong các bản sửa chữa dùm.
Viết thế này thôi nhỉ !!!
Hẹn gặp lại vào tháng 6 =))
Saturday, 25 May 2013
Thêm người viết bài, thêm niềm vui
by
H
Thông tin mới nhất về vụ ký hợp đồng giữa FAMILUG và anh Đồng DKU (nick: prinkeofsky - tác giả của loạt bài viết đình đám về LATEX ) vừa được tiết lộ. Theo hợp đồng này, anh Đồng Dku sẽ tham gia viết bài thường xuyên cho FAMILUG, lượng đề tài sẽ vô cùng dàn trải.
Hi vọng sẽ có một mùa hè bổ ích với Đồng Dku
yeahooo \:D/
Hi vọng sẽ có một mùa hè bổ ích với Đồng Dku
yeahooo \:D/
Wednesday, 22 May 2013
Đọc pdf trên Linux
by
H
Ngày còn trẻ, chúng ta thường nghe AdobeReader, FoxitReader, ngày ấy tung tăng hết các version của Windows, update mấy cái reader ngày đêm, giờ ngẫm lại vẫn còn thấy mệt :v
Trên Linux có một vài ứng cử viên sáng giá cho việc đọc PDF:
- evince (mặc định của Ubuntu từ lâu cho đến bây giờ vẫn thế), đơn giản, có tính năng bookmark.
- okular: nhiều chức năng nhất trên Linux hiện nay, phải cái là dùng KDE nên ai đang dùng GNOME hay Unity phải cài 1 đống các gói mới chạy được.
- Firefox, Chrome: đều đã có tính năng đọc PDF.Hỗ trợ vi-binding khá tiện.
- less: bạn nghe không nhầm đâu, less - chương trình để xem các file text trên terminal có thể dùng đế đọc các file PDF, tất nhiên là chỉ đọc được chữ.
Trên Linux có một vài ứng cử viên sáng giá cho việc đọc PDF:
- evince (mặc định của Ubuntu từ lâu cho đến bây giờ vẫn thế), đơn giản, có tính năng bookmark.
- okular: nhiều chức năng nhất trên Linux hiện nay, phải cái là dùng KDE nên ai đang dùng GNOME hay Unity phải cài 1 đống các gói mới chạy được.
- Firefox, Chrome: đều đã có tính năng đọc PDF.Hỗ trợ vi-binding khá tiện.
- less: bạn nghe không nhầm đâu, less - chương trình để xem các file text trên terminal có thể dùng đế đọc các file PDF, tất nhiên là chỉ đọc được chữ.
Tuesday, 21 May 2013
DNS và DSN
by
H
là 2 thứ chẳng liên quan đến nhau.
DNS: domain name system - hệ thống tên miền.
các DNS phổ biến như: 8.8.8.8 (google DNS), 208.67.222.222 (OpenDNS)
DSN: data source name. Là một cái trông kiểu thế này:
Hết :v
DNS: domain name system - hệ thống tên miền.
các DNS phổ biến như: 8.8.8.8 (google DNS), 208.67.222.222 (OpenDNS)
DSN: data source name. Là một cái trông kiểu thế này:
mysql://user@passwd:hostname/dbnameWiki định nghĩa nó là: một cấu trúc dữ liệu dùng để mô tả một kết nối đến nguồn dữ liệu
Hết :v
Saturday, 18 May 2013
[fish] Quick review fish 2.0 trên Ubuntu 12.04
by
H
20130520 - UPDATED: kết luận về fish
TẤT CẢ CÁC TIPS sử dụng fish nên tập trung ở bài viết này.
Sau 2 ngày sử dụng, sau đây là những gì đáng chú ý:
Các tính năng hay ho
ở Prompt, path dài nó tự rút ngắn:
Các lỗi / chú ý
- Trên máy tớ chức năng tab của fish bị hỏng, không chuyển qua các option khác mà chỉ chọn option đầu tiên (các máy khác / phiên bản khác có thể không bị, 1 ông dùng Debian đã review và bảo không bị)
- Khi gõ lệnh, nó sẽ hiện lên 1 dòng xám để suggest, bấm ctrl F để chọn như nó đã suggest
- dùng vim phải thêm vào vimrc dòng nếu không sẽ gặp lỗi (đã gặp lỗi khi chạy lệnh từ trong vim):
- không dùng ctrl R để tìm trong history nữa mà gõ phần đầu câu lệnh, dùng Alt +Up hoặc Alt + Down để thực hiện việc này (Alt Up/Down không hoạt động khi dùng tmux/ byobu, screen, có lẽ phải "hack" 1 tí mới chạy được)
TẤT CẢ CÁC TIPS sử dụng fish nên tập trung ở bài viết này.
Sau 2 ngày sử dụng, sau đây là những gì đáng chú ý:
Các tính năng hay ho
ở Prompt, path dài nó tự rút ngắn:
hvn@lappy ~> cd /usr/local/graylog2-server-0.11.0/
hvn@lappy /u/l/graylog2-server-0.11.0>
Các lỗi / chú ý
- Trên máy tớ chức năng tab của fish bị hỏng, không chuyển qua các option khác mà chỉ chọn option đầu tiên (các máy khác / phiên bản khác có thể không bị, 1 ông dùng Debian đã review và bảo không bị)
- Khi gõ lệnh, nó sẽ hiện lên 1 dòng xám để suggest, bấm ctrl F để chọn như nó đã suggest
- dùng vim phải thêm vào vimrc dòng nếu không sẽ gặp lỗi (đã gặp lỗi khi chạy lệnh từ trong vim):
set shell=/bin/bash- không có !!, không thể gõ sudo !! mà chỉ có thể làm thủ công kiểu : up, Home, sudo. Họ cho thế là xịn nhưng đó thực sự là điều ở bash tớ rất thích. Nếu đang không dùng byobu/tmux/screen, bạn có thể bấm ctrl P, ctrl A, sudo để có kết quả tương tự.
- không dùng ctrl R để tìm trong history nữa mà gõ phần đầu câu lệnh, dùng Alt +Up hoặc Alt + Down để thực hiện việc này (Alt Up/Down không hoạt động khi dùng tmux/ byobu, screen, có lẽ phải "hack" 1 tí mới chạy được)
Friday, 17 May 2013
[CCGU] Giới thiệu về shell
by
H
Shell là gì?
shell là một loại chương trình dùng để chạy các chương trình khác.
Các shell phổ biến có thể kể đến
shell là một loại chương trình dùng để chạy các chương trình khác.
Các shell phổ biến có thể kể đến
- sh
- bash
- zsh
- fish
- csh
- ksh
- powershell (Windows)
- ...
[fish] Giới thiệu fish shell
by
H
Nếu bạn đã từng nghe nói đến bash / sh / hay zsh thì fish cũng là một cái tên đáng được biết đến. Chưa bàn đến khả năng dùng viết script thì riêng phần shell tương tác của fish cũng đã có các tính năng vượt trôi bash đáng để bạn dùng.
Nếu không biết bash/sh là gì, hãy đọc bài này
Nhân dịp fish vừa ra phiên bản 2.0, FAMILUG làm ngay bài hóng hớt.
Các tính năng cài xong là thấy:
- Autocomplete
- Màu mè
- History thông minh
- gõ Help và đọc hướng dẫn sử dụng bằng web browser
Linh down package fish2.0 cho các hệ điều hành fish hỗ trợ
http://fishshell.com/files/2.0.0/linux/
Dưới đây là script để cài fish cho Ubuntu 12.04 bản x64, các phiên bản / hệ điều hành khác có thể thay đổi tùy theo máy mình:
Nếu không biết bash/sh là gì, hãy đọc bài này
Nhân dịp fish vừa ra phiên bản 2.0, FAMILUG làm ngay bài hóng hớt.
hvn@lappy ~> whatis fish
fish (1) - fish - the friendly interactive shell
Các tính năng cài xong là thấy:
- Autocomplete
- Màu mè
- History thông minh
- gõ Help và đọc hướng dẫn sử dụng bằng web browser
Linh down package fish2.0 cho các hệ điều hành fish hỗ trợ
http://fishshell.com/files/2.0.0/linux/
Dưới đây là script để cài fish cho Ubuntu 12.04 bản x64, các phiên bản / hệ điều hành khác có thể thay đổi tùy theo máy mình:
Wednesday, 15 May 2013
[Cập nhật liên tục] Các thư viện JS hay ho
by
Anonymous
JavaScript (JS) là ngôn ngữ lập trình duy nhất ở client side (đã có mặt cả ở server side), nên hầu như tất cả các website đều cần-dùng đến nó. Với 1 Web developer yêu cầu cơ bản là bạn phải biết về JS
Familug xin list 1 số các thư viện JS hay ho mà chúng tôi sưu tập, tìm kiếm được để giúp website của bạn thêm phần sinh động, nâng cao tính tương tác với người dùng.
jQuery, Mootool và đồng bọn không được nhắc đến trong này vì quá khủng rồi
Familug xin list 1 số các thư viện JS hay ho mà chúng tôi sưu tập, tìm kiếm được để giúp website của bạn thêm phần sinh động, nâng cao tính tương tác với người dùng.
jQuery, Mootool và đồng bọn không được nhắc đến trong này vì quá khủng rồi
Monday, 13 May 2013
[WeeklyVim] Xóa tất cả ký tự khoảng trắng ở cuối dòng
by
H
Bình thường bạn sẽ không cần tới điều này.
Nhưng bạn sẽ cần dùng đến khi bạn biết mình cần nó (và sẽ không nói ra ở đây) :D
Thêm dòng sau vào file ~/.vimrc:
Có thể sửa thành
Nhưng bạn sẽ cần dùng đến khi bạn biết mình cần nó (và sẽ không nói ra ở đây) :D
Thêm dòng sau vào file ~/.vimrc:
autocmd BufWritePre * :%s/\s\+$//e
Có thể sửa thành
Email miễn phí với domain của bạn
by
H
Google free email cho các domain của người dùng đã ra đi từ ngày 6/12/2012, với sự rối loạn và tiếc thương vô hạn của người dùng
Đừng lo, đã có các giải pháp thay thế :D
1.OUTLOOK.com
yes, một sản phẩm của M$, nhưng không sao cả, tại thời điểm này bạn có thể tạo miễn phí 50 tài khoản email với 1 domain. Yeah
Đừng lo, đã có các giải pháp thay thế :D
1.OUTLOOK.com
yes, một sản phẩm của M$, nhưng không sao cả, tại thời điểm này bạn có thể tạo miễn phí 50 tài khoản email với 1 domain. Yeah
Sunday, 12 May 2013
Chơi pokemon Heart Gold bằng giả lập No$GBA trên nền Wine trên Linux
by
H
UPDATE:
(20130530) chức năng "save state/ load state" chỉ dành cho GBA, nên bạn chỉ có thể dùng chức năng save ở trong game. Nhưng lưu ý là nếu bị CRASH vì một lý do nào đó thì đoạn bạn vừa save cũng mất, giải pháp là tắt NO$GBA sau mỗi lần save rồi bật lại.
Title có vẻ loằng ngoằng nhưng nó đúng là thú vị như vậy.
No$GBA là trình giả lập NDS "xịn" nhất trên thế giới hiện nay, nhưng nó chỉ chạy trên Windows.
Wine là một chương trình giúp chạy các chương trình Windows trên Linux.
Và bạn sẽ chơi game trên 2 cái giả lập như thế :D
Download & Cài đặt:
(20130530) chức năng "save state/ load state" chỉ dành cho GBA, nên bạn chỉ có thể dùng chức năng save ở trong game. Nhưng lưu ý là nếu bị CRASH vì một lý do nào đó thì đoạn bạn vừa save cũng mất, giải pháp là tắt NO$GBA sau mỗi lần save rồi bật lại.
Title có vẻ loằng ngoằng nhưng nó đúng là thú vị như vậy.
No$GBA là trình giả lập NDS "xịn" nhất trên thế giới hiện nay, nhưng nó chỉ chạy trên Windows.
Wine là một chương trình giúp chạy các chương trình Windows trên Linux.
Và bạn sẽ chơi game trên 2 cái giả lập như thế :D
Heart Gold trên No$GBA trên Wine trên Ubuntu |
Download & Cài đặt:
Sự trở lại của FAMILUG.ORG và nỗi buồn mang tên yourname.vn
by
H
Như mọi người đã biết, FAMILUG.ORG đã bị down 1 tuần nay, vào đúng thời điểm khi số lượt truy cập đang đạt peak. Lý do là bởi sự bất cẩn của tớ và sự thiếu chuyên nghiệp của bên bán domain: yourname.vn
Họ đã không báo trước cho mình khi domain sắp hết hạn đồng thời việc thực hiện gia hạn cho domain cũng kéo dài đến 1 tuần ??!!
Tổn thất rõ ràng là chẳng kiện được ai nhưng 1 tuần nay hacker +Tùng Lâm đã không nhận được cái mail nào (do dùng mail @familug.org) làm mail chính thức.
Mọi chuyện cũng đã qua, FAMILUG lại trở lại, và ăn hại hơn xưa \m/
Họ đã không báo trước cho mình khi domain sắp hết hạn đồng thời việc thực hiện gia hạn cho domain cũng kéo dài đến 1 tuần ??!!
Tổn thất rõ ràng là chẳng kiện được ai nhưng 1 tuần nay hacker +Tùng Lâm đã không nhận được cái mail nào (do dùng mail @familug.org) làm mail chính thức.
Mọi chuyện cũng đã qua, FAMILUG lại trở lại, và ăn hại hơn xưa \m/
Sunday, 5 May 2013
Chat Gtalk bằng Pidgin
by
H
Why Gtalk?
1. Một sản phẩm của Google
2. Vì Yahoo đã là quá khứ
3. Vì Skype trên Linux khá tệ (cài đặt nặng, chạy tốn nhiều CPU/RAM)
4. Có thể chat luôn từ browser
Why pidgin:
- Chương trình chat mặc định trên Ubuntu 12.04 ...
- Có thể dùng nhiều tài khỏan cùng lúc (Yahoo, Gtalk, IRC...)
Đăng nhập
1. Một sản phẩm của Google
2. Vì Yahoo đã là quá khứ
3. Vì Skype trên Linux khá tệ (cài đặt nặng, chạy tốn nhiều CPU/RAM)
4. Có thể chat luôn từ browser
Why pidgin:
- Chương trình chat mặc định trên Ubuntu 12.04 ...
- Có thể dùng nhiều tài khỏan cùng lúc (Yahoo, Gtalk, IRC...)
Đăng nhập
Friday, 3 May 2013
cp hay ln
by
H
ln trên linux gần giống như shortcut trên Windows vậy.
ln có 2 loại là hard link và soft link, ở bài này chỉ nói đến soft link (ln -s)
gần đây, tớ phát hiện ra mình hay bị dùng nhầm lệnh cp (để copy) mà đúng ra sử dụng ln sẽ tiện hơn rất nhiều. Ví dụ đây là 1 trường hợp:
Có 1 file code nằm ở /home/hvn/code/xxx.py (1)
tớ có một chương trình sẽ gọi file /usr/lib/foo/xxx.py (2)
2 file trên đều cùng một nội dung, nhưng mục đích dùng có hơi khác nhau chút:
ln có 2 loại là hard link và soft link, ở bài này chỉ nói đến soft link (ln -s)
hvn@lappy: ~ () $ whatis ln
ln (1) - make links between files
gần đây, tớ phát hiện ra mình hay bị dùng nhầm lệnh cp (để copy) mà đúng ra sử dụng ln sẽ tiện hơn rất nhiều. Ví dụ đây là 1 trường hợp:
Có 1 file code nằm ở /home/hvn/code/xxx.py (1)
tớ có một chương trình sẽ gọi file /usr/lib/foo/xxx.py (2)
2 file trên đều cùng một nội dung, nhưng mục đích dùng có hơi khác nhau chút:
Mariadb thay Mysql
by
H
Khi Mariadb lần lượt xâm chiếm các distro Linux, thay thế cho Mysql thì bài viết này ra đời :3
Mariadb là gì? nói đơn giản thì nó là một phiên bản phát triển từ Mysql, từ sau khi Oracle mua lại Mysql. Nhiều thử nghiệm gần đây cho thấy Mariadb có những thay đổi đáng kể so với Mysql, trong khi nó hoàn toàn có thể thay thế cho mysql mà không gặp phải xung đột gì (Tức trước kia bạn cài mysql-server thì giờ cài mariadb-server, ngoài ra không phải làm gì cả, truy vấn giữ nguyên, câu lệnh giữ nguyên, driver giữ nguyên, thư viện hỗ trợ các ngôn ngữ giữ nguyên, phpmyadmin dùng bình thương,...).
Tất cả những thông tin chém gió ở trên có thể chứng thực tại trang chủ : https://mariadb.org
2 link cho những người hay so sánh:
https://kb.askmonty.org/en/mariadb-versus-mysql-features/
https://kb.askmonty.org/en/mariadb-versus-mysql-compatibility/
Các distro đã chính thức thay mysql bằng mariadb:
...
https://kb.askmonty.org/en/distributions-which-include-mariadb/
Vấn đề đau thương có thể gặp phải là bạn cài Mariadb sau khi gỡ Mysql (chứ không
Mariadb là gì? nói đơn giản thì nó là một phiên bản phát triển từ Mysql, từ sau khi Oracle mua lại Mysql. Nhiều thử nghiệm gần đây cho thấy Mariadb có những thay đổi đáng kể so với Mysql, trong khi nó hoàn toàn có thể thay thế cho mysql mà không gặp phải xung đột gì (Tức trước kia bạn cài mysql-server thì giờ cài mariadb-server, ngoài ra không phải làm gì cả, truy vấn giữ nguyên, câu lệnh giữ nguyên, driver giữ nguyên, thư viện hỗ trợ các ngôn ngữ giữ nguyên, phpmyadmin dùng bình thương,...).
Tất cả những thông tin chém gió ở trên có thể chứng thực tại trang chủ : https://mariadb.org
2 link cho những người hay so sánh:
https://kb.askmonty.org/en/mariadb-versus-mysql-features/
https://kb.askmonty.org/en/mariadb-versus-mysql-compatibility/
Các distro đã chính thức thay mysql bằng mariadb:
...
https://kb.askmonty.org/en/distributions-which-include-mariadb/
Vấn đề đau thương có thể gặp phải là bạn cài Mariadb sau khi gỡ Mysql (chứ không
Wednesday, 1 May 2013
Sự nhảm nhí của kỳ 2 năm thứ 5
by
H
Ai đó,
một ai đó,
làm ơn giải thích giúp tôi
người ta bôi ra cái kỳ này để làm gì?
nếu tất cả những gì phải làm là "thực tập tốt nghiệp" và "đồ án tốt nghiệp",
thì tại sao tôi cần nhà trường?
Tại sao tôi phải nộp số tiền nhiều nhất trong 10 kỳ học khi chẳng ai dạy cho tôi chữ
một ai đó,
làm ơn giải thích giúp tôi
người ta bôi ra cái kỳ này để làm gì?
nếu tất cả những gì phải làm là "thực tập tốt nghiệp" và "đồ án tốt nghiệp",
thì tại sao tôi cần nhà trường?
Tại sao tôi phải nộp số tiền nhiều nhất trong 10 kỳ học khi chẳng ai dạy cho tôi chữ
Thursday, 25 April 2013
nc, bạn biết chứ?
by
H
netcat (nc) - tool thần thánh mà hồi bé thấy các anh hacker hay dùng. Một chương trình được mệnh danh là "network Swiss army knife".
Bài viết thực hiện trên:
hvn@lappy: ~ () $ lsb_release -d
Description: Ubuntu 12.04.2 LTS
Tranh thủ "cào lên bề mặt" của nc một tí cho vui:
hvn@cloud:~$ whatis nc; which nckhá kỳ lạ là dpkg không tìm thấy package chứa netcat @@
nc (1) - arbitrary TCP and UDP connections and listens
/bin/nc
hvn@cloud:~$ dpkg -S `which nc`
dpkg-query: no path found matching pattern /bin/nc.
Điều tuyệt vời là nc cài sẵn trên ubuntu 12.04, khỏi cần cài đặt gì.
Ubuntu 13.04 Raring Ringtail đã ra lò
by
H
Tuy giờ không còn nhiều điều tha thiết với Ubuntu mỗi khi nó ra bản mới, nhưng bởi tính chất lịch sử mà mỗi lần Ubuntu ra phiên bản mới, FAMILUG vẫn tiếp tục update thông tin :D
Đến giờ này (Thu Apr 25 17:13:35 ICT 2013), trên trang chủ Ubuntu vẫn chưa update gì về 13.04, thế nhưng chúng ta đã có danh sách các thay đổi của phiên bản này:
https://wiki.ubuntu.com/RaringRingtail/TechnicalOverview
https://blueprints.launchpad.net/ubuntu/raring/+specs
nếu bạn cũng không quan tâm lắm thì dưới đây là một vài thông tin vắn tắt:
PHIÊN BẢN DESKTOP
- Linux kernel 3.8.8: nếu máy bạn chạy ok và bạn cũng chả biết phiên bản kernel mình đang dùng là bao nhiêu thì điều này cũng chẳng cần quan tâm.
Đến giờ này (Thu Apr 25 17:13:35 ICT 2013), trên trang chủ Ubuntu vẫn chưa update gì về 13.04, thế nhưng chúng ta đã có danh sách các thay đổi của phiên bản này:
https://wiki.ubuntu.com/RaringRingtail/TechnicalOverview
https://blueprints.launchpad.net/ubuntu/raring/+specs
nếu bạn cũng không quan tâm lắm thì dưới đây là một vài thông tin vắn tắt:
PHIÊN BẢN DESKTOP
- Linux kernel 3.8.8: nếu máy bạn chạy ok và bạn cũng chả biết phiên bản kernel mình đang dùng là bao nhiêu thì điều này cũng chẳng cần quan tâm.
- Unity 7: phiên bản mới nghĩa là sẽ mượt hơn, nhẹ hơn (đoán thế). Từ ngày Ubuntu dùng Unity thì tớ đã chuyển sang dùng i3-wm nên cũng chẳng biết là nó thế nào :D
Thursday, 18 April 2013
[CCGU] Các câu lệnh để tìm hiểu câu lệnh (Phần 2)
by
H
Phần 1 ở đây đã phần nào giúp bạn giải quyết các vấn đề gặp phải khi tìm hiểu 1 câu lệnh.
Phần 2 tiếp tục với những câu lệnh sẽ giúp ích khi bạn cần tìm hiểu về các câu lệnh / package
Thay nội dung phần trong và dấu <> thành từ khóa bạn muốn tìm hiểu
1. Tìm tên của package
Nếu bạn không biết chính xác tên package, có một số cách để tìm nó:
- Tìm bằng apt-cache search:
Phần 2 tiếp tục với những câu lệnh sẽ giúp ích khi bạn cần tìm hiểu về các câu lệnh / package
Thay nội dung phần trong và dấu <> thành từ khóa bạn muốn tìm hiểu
1. Tìm tên của package
Nếu bạn không biết chính xác tên package, có một số cách để tìm nó:
- Tìm bằng apt-cache search:
apt-cache search <tu_khoa>
Sunday, 14 April 2013
[Announce] Bỏ checkbox Like và Thanks
by
H
Trước giờ cuối mỗi bài viết luôn có 2 ô checkbox: thanks và like.
Tuy tồn tại đã lâu nhưng rõ ràng là không thu hút được sự chú ý của người đọc.
Vậy nay tớ sẽ bỏ 2 ô checkbox này, nếu bạn thích/ muốn/ cần bấm thanks/like , vui lòng bấm +1 của Google hoặc share bài trên Facebook (có ở cuối mỗi bài viết).
Nút Like của Facebook sẽ có thể được tích hợp sau khi ban quản trị xem xét (Do nhiều nơi Facebook bị chặn khiến việc load site trở nên chậm đi rất nhiều)
Thân!
HVN
Tuy tồn tại đã lâu nhưng rõ ràng là không thu hút được sự chú ý của người đọc.
Vậy nay tớ sẽ bỏ 2 ô checkbox này, nếu bạn thích/ muốn/ cần bấm thanks/like , vui lòng bấm +1 của Google hoặc share bài trên Facebook (có ở cuối mỗi bài viết).
Nút Like của Facebook sẽ có thể được tích hợp sau khi ban quản trị xem xét (Do nhiều nơi Facebook bị chặn khiến việc load site trở nên chậm đi rất nhiều)
Thân!
HVN
Saturday, 13 April 2013
[CMD] Các lệnh quản trị một máy tính Linux
by
H
Bạn sở hữu 1 chiếc máy tính chạy Linux? lý do ấy quá đủ để bạn cần biết cách để quản lý / theo dõi nó!
Bài viết này sẽ đưa ra những câu lệnh cần thiết để quản lý 1 máy tính sử dụng hệ điều hành nhân Linux
Thực hiện trên:
hvn@lappy: ~ () $ lsb_release -d; uname -rm
Description: Ubuntu 12.04.2 LTS
3.2.0-39-generic x86_64
1. free
hvn@lappy: ~ () $ whatis freeLệnh `free` dùng để hiện thị lượng RAM còn trống và đã sử dụng trong hệ thống.
free (1) - Display amount of free and used memory in the system
Giải thích output của lệnh này:
hvn@lappy: ~ () $ free -m
-m : dung lượng tính bằng MB
Dòng Mem:.... chi tiết bao nhiêu RAM đang sử dụng cho mục đích gì
Dòng -/+ buffers/cache: nhìn có vẻ khó hiểu nhưng đây là dòng mà người dùng thường quan tâm nhất. Như trong ví dụ cho biết: 1094 MB RAM đang được sử dụng, và 2649 MB đang còn trống.
-/+ buffers/cache là gì?
Lấy thông số của cột used, trừ đi buffers và cached dòng Mem sẽ thu được giá trị cột used cho dòng này.
Tương tự với cột free nhưng thay vì trừ, ta + 2 giá trị đó vào.
Friday, 12 April 2013
[SomethingNew] Vài website về công nghệ
by
H
dọn dẹp bookmark tranh thủ gửi ra đây vài site mà bản thân mình thấy hay ho
Hacker News: https://news.ycombinator.com/ => đặt làm homepage :D
Tutsplus: http://net.tutsplus.com/ => các tut về lập trình, đồ họa ... đặc biệt là web
Lifehacker: http://lifehacker.com => mọi loại hack không chỉ liên quan đến máy tính, trang này giờ bớt hay nhiều rồi ~~
StackExchange: http://stackexchange.com/questions => các site của StackExchange là sát thủ thời gian ~.~
Hacker News: https://news.ycombinator.com/ => đặt làm homepage :D
Tutsplus: http://net.tutsplus.com/ => các tut về lập trình, đồ họa ... đặc biệt là web
Lifehacker: http://lifehacker.com => mọi loại hack không chỉ liên quan đến máy tính, trang này giờ bớt hay nhiều rồi ~~
StackExchange: http://stackexchange.com/questions => các site của StackExchange là sát thủ thời gian ~.~
Friday, 5 April 2013
[SmartUsing] Tất cả là bởi user
by
H
Bạn có thể có một tốc độ gõ phím kinh hồn :x bạn có thể chạy lệnh ầm ầm trên 1 terminal xanh lét (yeah). Đã đến lúc dừng lại một chút để xem bạn có hơi bị "chăm" quá không!
Có kỹ năng là điều tuyệt vời, tốc độ gõ phím cực kỳ quan trọng, nhưng có thể bạn đã làm sai 1 điều gì đó chăng? hãy nhìn vào các "thói quen xấu" mà rất nhiều người mắc phải sau. (Ít ra tớ đã thấy > 2 người làm thế)
Tớ sẽ dùng các lệnh cơ bản nhất để minh họa!
1. ls
thú thật tớ chính là người mắc cái bệnh này nhiều nhất. Câu lệnh đầu tiên khi tớ gõ vào terminal là gì? Luôn là ls. Miễn cứ mở shell ra là ls vài phát. Và tớ nhận ra đây là một thói quen xấu. Why?
Nếu bạn từng ấn F5 (hay chuột phải > refresh) trên Window, điều này cũng tương tự. Đó chỉ là do thói quen, đôi lúc bạn có thể cần nó, nhưng nhiều khi không. Thử hỏi xem bạn sẽ thu được gì khi gõ ls, có thực sự đó là điều bạn muốn không?
Có kỹ năng là điều tuyệt vời, tốc độ gõ phím cực kỳ quan trọng, nhưng có thể bạn đã làm sai 1 điều gì đó chăng? hãy nhìn vào các "thói quen xấu" mà rất nhiều người mắc phải sau. (Ít ra tớ đã thấy > 2 người làm thế)
Tớ sẽ dùng các lệnh cơ bản nhất để minh họa!
1. ls
thú thật tớ chính là người mắc cái bệnh này nhiều nhất. Câu lệnh đầu tiên khi tớ gõ vào terminal là gì? Luôn là ls. Miễn cứ mở shell ra là ls vài phát. Và tớ nhận ra đây là một thói quen xấu. Why?
Nếu bạn từng ấn F5 (hay chuột phải > refresh) trên Window, điều này cũng tương tự. Đó chỉ là do thói quen, đôi lúc bạn có thể cần nó, nhưng nhiều khi không. Thử hỏi xem bạn sẽ thu được gì khi gõ ls, có thực sự đó là điều bạn muốn không?
Thursday, 4 April 2013
Lột trần một hệ thống email
by
H
Email thì ai cũng dùng. Những từ như : from/ recipients / subject ai cũng biết cả. Nhưng đằng sau là một hệ thống server với đầy thuật ngữ. Hãy vạch trần chúng, đưa ra ánh sáng để không còn gì là mờ mịt!
0. MUA là gì?
Mail User Agent (MUA) là loại chương trình cho phép gửi và nhận email. Chương trình này tương tác trực tiếp với người dùng. Các MUA đóng vai trò là SMTP client khi GỬI mail và là IMAP/POP3 client khi truy cập + đọc mail.
VD: Thunderbird, Outlook, mutt, RoundCube, SquirrelMail ...
1. SMTP là gì? IMAP là gì? POP3 là gì?
3 giao thức (protocol) dùng trong gửi và nhận email. Đây đều là các giao thức cho mô hình client-server, tức là sẽ có máy đóng vai trò server, và có máy đóng vai client.
SMTP: Simple Mail Transfer Protocol - giao thức truyền mail đơn giản (dùng để gửi mail)
POP3: Post Office Protocol 3 - giao thức truy cập mail từ xa. Trong giao thức này, MUA với vai trò POP3 client, download các email về đĩa cứng máy tính cá nhân và xóa các email đó trên server
IMAP: Internet message access protocol - giao thức truy cập mail từ xa. Trong giao thức này, MUA với vai trò IMAP client chỉ lấy về các thông tin về email (from, to, subject ...), và chỉ lấy nội dung của email khi người dùng yêu cầu. Nó không xóa email trên server nếu người dùng không yêu cầu.
2. MTA là gì? (mail server là gì)
Mail Transfer Agent (MTA) hay còn được gọi với cái tên dễ hiểu khác là "mail server", làm nhiệm vụ nhận email từ máy khác và chuyển nó đến đích cần đến. Các MTA đóng vai trò là SMTP server.
Transfer: truyền, chuyển
VD: postfix, qmail, exim
Cố tí nữa đi, sắp hết rồi...
0. MUA là gì?
Mail User Agent (MUA) là loại chương trình cho phép gửi và nhận email. Chương trình này tương tác trực tiếp với người dùng. Các MUA đóng vai trò là SMTP client khi GỬI mail và là IMAP/POP3 client khi truy cập + đọc mail.
VD: Thunderbird, Outlook, mutt, RoundCube, SquirrelMail ...
1. SMTP là gì? IMAP là gì? POP3 là gì?
3 giao thức (protocol) dùng trong gửi và nhận email. Đây đều là các giao thức cho mô hình client-server, tức là sẽ có máy đóng vai trò server, và có máy đóng vai client.
SMTP: Simple Mail Transfer Protocol - giao thức truyền mail đơn giản (dùng để gửi mail)
POP3: Post Office Protocol 3 - giao thức truy cập mail từ xa. Trong giao thức này, MUA với vai trò POP3 client, download các email về đĩa cứng máy tính cá nhân và xóa các email đó trên server
IMAP: Internet message access protocol - giao thức truy cập mail từ xa. Trong giao thức này, MUA với vai trò IMAP client chỉ lấy về các thông tin về email (from, to, subject ...), và chỉ lấy nội dung của email khi người dùng yêu cầu. Nó không xóa email trên server nếu người dùng không yêu cầu.
2. MTA là gì? (mail server là gì)
Mail Transfer Agent (MTA) hay còn được gọi với cái tên dễ hiểu khác là "mail server", làm nhiệm vụ nhận email từ máy khác và chuyển nó đến đích cần đến. Các MTA đóng vai trò là SMTP server.
Transfer: truyền, chuyển
VD: postfix, qmail, exim
Cố tí nữa đi, sắp hết rồi...
Friday, 29 March 2013
[WeeklyVIM] edit nhiều file với vim
by
H
Dạo này đang luyện chỉ mở vim một lần duy nhất để thực hiện tất tần tật công việc cần edit, thay vì mọi khi ctrl z rồi cd đến thư mục có file đó, ls, vim ten_file... khá là thủ công.
Vài tips trong quá trình thực hiện:
:pwd # xem tên thư mục hiện tại
:tabnew đường_dẫn_đến_file # mở file này bằng một tab mới
:gt # chuyển sang tab tiếp theo
:gT # chuyển sang tab liền trước
Vài tips trong quá trình thực hiện:
:pwd # xem tên thư mục hiện tại
:tabnew đường_dẫn_đến_file # mở file này bằng một tab mới
:gt # chuyển sang tab tiếp theo
:gT # chuyển sang tab liền trước
Wednesday, 27 March 2013
Cài đặt apt-cacher để tiết kiệm thời gian...
by
H
... khi sử dụng nhiều máy tính cùng hệ điều hành (tất nhiên là Debian/Ubuntu based)
Nếu chỉ dùng 1 máy tính duy nhất hoặc 2 máy khác hệ điều hành (hay khác version) thì bạn chả tiết kiệm được gì cả.
Apt-cacher giúp bạn chỉ phải download package 1 lần và có thể sử dụng qua nhiều máy.
Trường hợp có thể dùng nó:
- có nhiều máy (2 máy đổ lên) dùng hệ điều hành cùng version
=> bạn có 1 laptop và 1 desktop đều chạy ubuntu12.04 chẳng hạn
=> đây là điều tuyệt vời nếu bạn sử dụng các máy ảo. Sẽ tiết kiệm rất nhiều thời gian tải các package.
Bài này được viết để chứng tỏ rằng công việc này vô cùng đơn giản và không có gì kinh khủng hay thần thánh mà giúp người đọc có thể tiết kiệm rất nhiều thời gian. Về cơ bản thì tất cả tut trên FML đều ngắn, vì chả ai có sức viết dài cả, vậy nên thấy bài viết trên FML thì độc giả hãy tin rằng những thứ này rất đơn giản!
Cài đặt:
Nếu chỉ dùng 1 máy tính duy nhất hoặc 2 máy khác hệ điều hành (hay khác version) thì bạn chả tiết kiệm được gì cả.
Apt-cacher giúp bạn chỉ phải download package 1 lần và có thể sử dụng qua nhiều máy.
Trường hợp có thể dùng nó:
- có nhiều máy (2 máy đổ lên) dùng hệ điều hành cùng version
=> bạn có 1 laptop và 1 desktop đều chạy ubuntu12.04 chẳng hạn
=> đây là điều tuyệt vời nếu bạn sử dụng các máy ảo. Sẽ tiết kiệm rất nhiều thời gian tải các package.
Bài này được viết để chứng tỏ rằng công việc này vô cùng đơn giản và không có gì kinh khủng hay thần thánh mà giúp người đọc có thể tiết kiệm rất nhiều thời gian. Về cơ bản thì tất cả tut trên FML đều ngắn, vì chả ai có sức viết dài cả, vậy nên thấy bài viết trên FML thì độc giả hãy tin rằng những thứ này rất đơn giản!
root@srvbase:~# lsb_release -d
Description: Ubuntu 12.04.2 LTS
root@lappy: ~ () # whatis apt-cacher
apt-cacher (8) - caching proxy for Debian packages
Cài đặt:
Rất nhiều free ebooks
by
H
Tất nhiên bằng Tiếng Anh
và tất nhiên là chúng thực sự free
http://hackershelf.com/browse/?popular=1
Vài quyển tiêu biểu:
và tất nhiên là chúng thực sự free
http://hackershelf.com/browse/?popular=1
Vài quyển tiêu biểu:
Sunday, 24 March 2013
Gửi, nhận email với mutt
by
H
Tớ đang trong quá trình console hóa toàn bộ tất cả những gì tớ dùng trên máy tính.
mutt - một mail client lừng lẫy đã tồn tại gần hai thập kỷ, và tớ sẽ dùng nó thay thế cho Thunderbird (hay các bạn dùng Windows sẽ dùng Outlook).
Những ưu điểm nổi bật nhất của mutt khi so với Thunderbird:
mutt - một mail client lừng lẫy đã tồn tại gần hai thập kỷ, và tớ sẽ dùng nó thay thế cho Thunderbird (hay các bạn dùng Windows sẽ dùng Outlook).
"All mail clients suck. This one just sucks less." -me, circa 1995 |
Subscribe to:
Posts (Atom)