Skip to main content

Posts

Showing posts from 2013

tcpdump - làm sao không quên?

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:secr...

[emacs] basic moving

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. 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 

[scheme] define, lambda, cond

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ụ: 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

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: pip install package_name 2. Gem - Ruby gem install package_name 3. NPM - Node.js npm install package_name

Docker - Giới thiệu Docker và sử dụng

Home page: http://docs.docker.io 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á...

Centralized Backup with BackupPC

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: sudo apt - get update sudo apt - get install backuppc

[scheme] car, cdr và cons

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: 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

[Monitoring] iostat - hiển thị các thông tin thống kê về CPU và I/O

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:  $ 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ện...

[Media] Geeqie Image Viewer

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 # 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

SQLite là một C library!

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 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.

Tìm xem một process dùng bao nhiêu RAM

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:  $ 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

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ên Linux 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à đủ: 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 ...

[WeeklyVim] Ctags, Taglist - lắp cánh cho vim

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 ctags ctags (1p)           - create a tags file (DEVELOPMENT, FORTRAN) trên Ubuntu, nó được biết đến với tên package là exuberant-ctags

[scheme] data type boolean

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ỉ??? 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 #f giá trị đúng được biểu diễn bởi TẤT CẢ các thứ khác và #t Ví dụ

[scheme] Guile - giới thiệu và cài đặt

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

NGINX beginner

NGINX là gì? 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:

Thu và phát mạng tới tất cả các thiết bị bằng Laptop

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

[linux] procps = ps + kill + sysctl + top + watch + ...

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

[bash] Mỗi ngày biết thêm 1 câu lệnh - whatis

Đâ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õ: 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:

Xử lý ảnh và những câu chuyện xung quanh.

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)

Gparted live và gdisk

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. GParted Live is a small bootable GNU/Linux distribution for x86 based computers. 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. 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: 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...

Công cụ quản lý truy cập đến nhiều server

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ụ: 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 

[CLI] Các lệnh quản lý package trên ubuntu/debian

Đâ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: 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 serve...

[bash] giải thích export qua 2 câu lệnh

hvn@archhvn: ~ () $ y=6; echo $$ $y; bash -c 'echo $$ $y' 2461 6 2586 hvn@archhvn: ~ () $ export z=7; echo $$ $z;  bash -c 'echo $$ $z' 2461 7 2599 7 $$ là biến đặc biệt của bash, in ra process id (PID) của process hiện tại. 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ự):

Sợ

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ì?

[git] git push origin master -u

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

Java cho Sysadmin

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:

[SomethingNew] Calibre, Gitlab, Graphite...

Viết cho đỡ mốc. 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 a...

[Monitoring] StatsD

StatsD là tên của một NodeJS daemon (hay gọi khác là service), daemon này listen các message được gửi tới qua cổng UDP (mặc định là cổng 8125). chữ d ở cuối statsd là viết tắt cho daemon, giống như cách đặt tên phổ biến cho httpd, ftpd, rsyncd ... Từ cái tên này, có thể thấy StatsD là một daemon phục vụ cho việc thống kê (statistics). Người ta (Etsy) tạo ra StatsD để giúp cho việc thu thập dữ liệu trở nên dễ dàng hơn. Mô hình cơ bản nhất là trên 1 máy server, StatsD chạy và các webapp trên máy đó sẽ gửi các thông tin thống kê tới daemon này. StatsD chỉ phục vụ quá trình thu thập dữ liệu, sau đó nó có thể gửi tới một máy chạy graphite hay ganglia để thực hiện vẽ các đồ thị dựa trên dữ liệu thu thập được. Điểm đáng chú ý và hay ho nhất của StatsD (tức phần daemon) là nó rất đơn giản nên được implement trên nhiều ngôn ngữ khác nhau. Có thể kể tới:

XXX.tar.xz

Thay vì XXX.tar.gz hay XXX.tar.bz2 Vì: tỷ lệ nén tốt hơn (tất nhiên là tùy vào loại file) 1. Nén tar --xz -cf file_da_nen.tar.xz file_can_nen Ví dụ: hvn@archhvn: /tmp () $ du KhongCamXuc-HoQuangHieu_3ex6t_hq.mp3; time tar --xz -cf xxx.tar.xz KhongCamXuc-HoQuangHieu_3ex6t_hq.mp3                     8972    KhongCamXuc-HoQuangHieu_3ex6t_hq.mp3 real    0m4.701s user    0m4.633s sys     0m0.130s 2. Giải nén tar xf file_da_nen.tar.xz Ví dụ hvn@archhvn: /tmp () $ tar xf xxx.tar.xz

[Programming] Kho báu

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

GWT - PyJS

Hai project này giúp cho việc tạo các ứng dụng Javascript chạy trên các web-browser bằng 2 ngôn ngữ phổ biến Python và Java. PyJS được port từ GWT - Google web toolkit. PyJS thì không rõ đã dùng ở đâu nhưng GWT thì đã có những sản phẩm phổ biết sau: Google AdWords, AdSense, Flights, Hotel Finder, Offers, Wallet, Blogger Gerrit (PS: ngoài ra còn có RubyJS (http://rubyjs.org/) là bản port sang Ruby) What is pyjs?

AudioCD, cdrom, iso 9660

1. AudioCD Mua được quyển sách học ngoại ngữ kèm được 2 cái audio CD mang về. Vừa giở sách định học một tí thì phát hiện ra là phải nghe. Nhét cái CD phần 1 vào, chạy VLC mở thì nó treo cứng cả VLC, CPU 200% @@ Thế là kill VLC để mount bằng tay xem:  mount -t iso9660 -o ro /dev/sr0 /mnt/cd Đập ngay vào mặt cái lỗi: mount: wrong fs type, bad option, bad superblock on /dev/sr0,        missing codepage or helper program, or other error        In some cases useful info is found in syslog - try        dmesg | tail or so. Thế là công việc chuyển từ học ngoại ngữ giờ đã thành debug và tìm hiểu về CD ~.~ The reason is you cannot mount Audio CD's. Not now, not ever. ISO9660 is a format, and Audio CD's have to comply with the Redbook specification; not with ISO9660 format specs. https://bbs.archlinux.org/viewtopic.php?pid=1023931#p1023931

[bash] introspection

introspection: dịch thô ra Tiếng Việt là Sự tự xem xét nội tâm; sự nội quan trong quyển sách học python nổi tiếng nhất Dive Into Python có 1 chương tên là " The Power Of Introspection ", viết về câu lệnh id, dir để soi xét xem một object có những đặc tính gì. Trên bash, một số câu lệnh giúp bạn biết được những cài đặt mà bạn đang dùng, cũng có thể coi là 1 kiểu introspection: 1. alias Hiện các alias mà bạn đang dùng (tức bạn đã định nghĩa nó hoặc lấy từ các file ~/.bash_alias, ... hvn@archhvn: ~ () $ alias alias POM='git pull origin master' alias cdd='cd ~/Dropbox' alias cdg='cd ~/Github' alias cdh='cd ~/hgrepo' ... 2. set

[vim] hãy dùng Gvim

Hãy dùng Gvim. Vì sao: - Hỗ trợ màu mè đẹp hơn - Hỗ trợ copy sang cửa sổ khác bằng chuột mà ko cần config, - Font tùy chọn (không phải font của terminal) - Các vim command hiện lên ở các menu Bạn chỉ tốn hơn 1 tẹo CPU/RAM thôi nhưng lời được bao nhiêu. Và khi bạn đã dùng được Gvim thì dùng vim hay vi chả khác gì.

[vim] Vim cắn CPU

cắn rất đau, có khi lên 17% có khi lên tận 45% và phải tìm nguyên nhân thôi. thử mở vim với không config gì hết: vim -u NONE file_ma_lam_no_cham.py giả sử file này 100 dòng, bạn giữ nguyên phím j để nó trượt xuống và mở top bên cạnh xem nó cắn bao nhiêu CPU. Trên máy tớ, lúc này chí tốn 0.7% CPU, và tầm 0.5 % RAM Giờ chạy :syntax on, và làm tương tự, nó cắn 4-5%

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

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

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

Kế tiếp bài này : http://www.familug.org/2013/07/python-viet-fucntion-tra-ve-function.html Làm thế nào để tạo 1 function và gọi nó trong lúc code đang chạy. Ví dụ bạn có 3 từ  "danh" "dam" "da", làm sao để tạo được 3 hàm với 3 cái tên như mong đơi. Kiểu như: for fname in "danh", "dam", "da":      tao_ham(fname) Ví dụ sau thực hiện tạo và gọi hàm on-fly (tức là ngay trong khi code  đang chạy)

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

Rất đơn giản, như trả về biến bình thường. Bởi trong python, mọi thứ đều là object, function không là ngoại lệ: def create_print_func(name):     name = name.title()     def print_func():         print "Hello ", name     return print_func f1 = create_print_func('pika chu') f1()  Kết quả thu được là:

[Python] Cắt chuỗi trong Python

Nghe có vẻ đơn giản nhưng rất dễ mắc lỗi mà khó phát hiện ra. NOTE: In [n]: là ký hiệu bắt đầu mỗi câu lệnh trong Ipython shell Out[n]: là ký hiệu đầu ra, kết quả của câu lệnh vừa chạy. Cho chuỗi sau: In [4]: s = '....slsslslsls...sls' Yêu cầu cắt bỏ đoạn '.sls' ở đuôi. Ta rất dễ dùng lệnh strip hay thậm chí cẩn thận hơn là rstrip để làm việc này, thế nhưng... In [5]: s.rstrip('.sls') Out[5]: '' In [6]: s2 = '....slsasls.sls' In [7]: s2.rstrip('.sls') Out[7]: '....slsa' Như bạn thấy, lệnh rstrip sẽ xóa liên tực các ký tự '.' 's' 'l' từ phải sang, và đó là điều ta không mong đợi.

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

Fingerprinting HÌNH NHƯ là từ để chỉ công việc thăm dò 1 host nào đó, các công cụ có thể sử dụng ping telnet nmap ... Đề bài: viết 1 script với input tối thiểu là ip hoặc domain name của site. output: các thông tin thu thập được Sử dụng bất cứ ngôn ngữ nào bạn biết (dùng bash thì quá đơn giản) Mở rộng: - viết 1 con bot tự động fingerprint tất cả những host nó tìm thấy - tự đẩy output sau khi chạy xong lên Gist

[HTML] Computer Output Tags

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

Cùng học tcl

Updated: vài lời nhảm nhí Updated: add eggdrop   Tcl - Tool Command Language Nếu bạn thích Ruby, nhảy vào đây  Nếu muốn học Python, nhảy đến đây Tại sao lại là TCL? đơn giản dễ học dễ dùng nhỏ nhẹ it's fun :x (và đây cũng là điều quan trọng nhất, bởi suy đi tính lại, điều quan trọng nhất trong việc học hành là bạn có thích hay không - bạn có thể đưa ra lý do là bận? nhưng 1 ngày tôi chỉ có thời gian từ 23H trở đi để chơi thôi :v ) Là một script language thuộc nhóm "programable programming language", tức ngôn ngữ có thể lập trình được chính nó. Đại khái là bạn có thể tự viết vòng for thay vì vòng for mặc định ... Học để xin việc đâu đó? Có lẽ sẽ chỉ là 1 điểm cộng,còn xin việc dùng tcl ở VN chắc không có :3 Tốt nhất là bạn nên kiếm một công việc không quá bận rộn để còn có thời gian hưởng những thú vui trên đời. Khi chưa có việc, trong thời buổi này, thì cạp đất mà ăn à, sống vẫn phải thực dụng chứ :3. Công việc sẽ chi phối những gì bạn học. Đến lúc có...

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

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

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

Mãi mới được rảnh tí Mà hơn 1 tiếng nữa đi ngủ chả biết làm gì, thế nên ... viết nhảm :3 bận quá chả có thời gian để suy nghĩ học thêm cái gì đó mày mò phá phách cứ cắm đầu vào làm việc thôi, mệt nghỉ :3 Bởi thế nên, một công việc lý tưởng là công việc:

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

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

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

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

FFMPEG

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

[FMLEXER] tập thể dục với các bài lập trình đơn giản

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 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

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ì?

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: -   name: HVN   mail:   hvn@familug.org -   name: SAM   mail:   hai.lt@familug.org 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. YAML để làm gì?

suy nghĩ trong đêm

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ẻ ?

copy từ urxvt đến X clipboard

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

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! 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` 

PLEAC - học các ngôn ngữ lập trình theo kiểu "perl cookbook"

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 ...

git và tig là đôi bạn thân

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:

Script hay làm bằng tay?

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ụ...

Những điều nhảm nhí khi học lập trình

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...

[Editor] Sublime Text 2

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é.

[bash] Tắt máy tự động

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:

[CSS] Div layout

code HTML:

Xử lý text trên Linux

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ả:

[LATEX] Đồ án tốt nghiệp đề tài "SỬ DỤNG SALTSTACK TRIỂN KHAI HỆ THỐNG PRIVATE CLOUD OPENSTACK"

Đâ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

[vim] Hướng dẫn học dùng vim

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 (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

WM và hành trình đi vào thế giới ArchLinux

: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ỗ,

[KVM] Tăng tốc máy ảo bằng virtio

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ủ: 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  

[SmartUsing] Dùng github/bitbucket để lên kế hoạch cá nhân

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ị.

Ý nghĩa của các câu lệnh Linux

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 directories dc — Desk Calculator dd — (Data Description) convert and copy a file df — Disk Free: report file system disk space usage du — Disk Usage ed — EDitor ln — make LiNks between files

[CSS] Dropdown menu

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 nào hôm nay mình sẽ trình bày cách để xây dựng 1 thanh menu 2 level . Trước hết để tiện cho việc trình bày bạn nào chưa có cái bảng các thuộc tính của CSS thì tìm trên mạng hoặc liên hệ mình để lấy(mail:dong.tm1212@gmail.com). Để xây đựng Dropdown menu cần 1 số lệnh sau : 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ề...

Thư viện trên Linux

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/C++ programmer Sysadmin - để troubleshooting Người thích tìm hiểu về Linux Library ở đây chỉ thư viện dùng trong lập trình (program library), là nơi chưa các hàm, lập trình viên chỉ cần import chúng và dùng. Có 3 loại library:  static libraries  shared libraries dynamically loaded libraries. Một số khái niệm liên quan:

CSS-Cách chèn code vào 1 trang web

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 : 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 đó.                      Ví dụ: style="text-transform:uppercase; color: red ; "            khi add vào thẻ h1 với chứ tôi yêu vn, kết quả sẽ là:  Tôi yêu VN

Partitioning - Phân vùng ổ cứng

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)

CSS mở đầu- 1 phần quan trọng bộ mặt của web

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

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.

Tạo Usb cài Ubuntu với 1 câu lệnh

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: sudo dd if=/tmp/ubuntu-12.04-server-amd64.iso of=/dev/sdb bs=4M Câ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

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: 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:

Tìm các package đã cài liên quan đến XXX

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ợ).

pastebinit và cho mọi người thấy bạn cài gì trên máy

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 : apt-get install pastebinit -y giờ muốn paste file nào, chỉ cần gõ : pastebinit ten_file Sử 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.

Sửa lỗi ActionDispatch::Cookies::CookieOverflow trong Rails 3.x,4

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: $ rake db:sessions:create Thự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'

Rủ nhau chơi Raspberry Pi

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.

Các chuẩn / cổng kết nối màn hình

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)

Khởi động trước vài ngày :))

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 =))

Thêm người viết bài, thêm niềm vui

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/

Đọc pdf trên Linux

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ữ.

DNS và DSN

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: mysql://user@passwd:hostname/dbname Wiki đị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

[fish] Quick review fish 2.0 trên Ubuntu 12.04

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: 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 ...

[fish] Giới thiệu fish shell

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. 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:

[Cập nhật liên tục] Các thư viện JS hay ho

 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

Email miễn phí với domain của bạn

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

Chơi pokemon Heart Gold bằng giả lập No$GBA trên nền Wine trên Linux

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 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

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/

Chat Gtalk bằng Pidgin

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

cp hay ln

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) 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

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: Gentoo openSUSE   Slackware Arch Linux ... https://kb.askmonty.org/en/distr...

Sự nhảm nhí của kỳ 2 năm thứ 5

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ữ

nc, bạn biết chứ?

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 nc 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. khá kỳ lạ là dpkg không tìm thấy package chứa netcat @@ Đ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ò

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. - 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

[CCGU] Các câu lệnh để tìm hiểu câu lệnh (Phần 2)

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: apt-cache search <tu_khoa>

[Announce] Bỏ checkbox Like và Thanks

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

[CMD] Các lệnh quản trị một máy tính Linux

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 free free (1)             - Display amount of free and used memory in the system Lệnh `free` dùng để hiện thị lượng RAM còn trống và đã sử dụng trong hệ thống. 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 ...

[SomethingNew] Vài website về công nghệ

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 ~.~

[SmartUsing] Tất cả là bởi user

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?

Lột trần một hệ thống email

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  e...

[WeeklyVIM] edit nhiều file với vim

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

Cài đặt apt-cacher để tiết kiệm thời gian...

... 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! root@srvbase:~# lsb_release -d Description:    Ubuntu 12.04.2 LTS root@lappy: ~ () # whatis apt-cacher apt-...

Gửi, nhận email với mutt

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). "All mail clients suck. This one just sucks less." -me, circa 1995  Những ưu điểm nổi bật nhất của mutt khi so với Thunderbird:

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG