Vietnamen’s Weblog

Time, Chances, Diligence, Intelligence: which is the most important?

Archive for the ‘Living better with Ubuntu’ Category

Vimerator – make Firefox a Vim-like browser

leave a comment »

Một số tiện ích của firefox đã bị giấu đi, để hiển thị

  1. menubar + Toolbar + Bookmark : type:          :set guioptions+=mTB
  2. hay :set go+=mTB

Nếu quên các phím tắt, dùng F1 hoặc type:         :help

hoặc cụ thể hơn là   :help ‘{option_name}’

ví dụ: :help gt          or :help:gT

:exusage

:viusage

:optionusage

Lưu các thiết lập của Vimperator

:mkv

file cấu hình lưu ở $HOME/.vimperatorrc

Gỡ bỏ Vimperator

  • type:       :extdelete Vimperator

Dừng tạm thời Vimperator

  • type:         :extdisable Vimperator

2 modes quan trọng của Vim

  • modal  (mặc định ban đầu)
  • Command-line (gõ : (colon) để sang mode này), nhấn Esc để trở lại Modal mode

một số mode khác: QuickHint-mode,

Cuộn màn hình (các phím như trong Xmonad)

  • j/k  – lên/xuống 1 hàng
  • h/l  -trái/phải
  • <Space>/<C-b> – lên/xuống 1 page
  • <C-d>/<C-u>-lên/xuống 1/2 page

Các phím Up/Down/PageUp/PgDn cũng ok

Mở trang web mới

😮 tên trang web

:to tên trang web   <mở new-tab>

:t tên trang web <mở new-tab>

Nhảy sang trang web khác

Không cần dùng chuột, ta có thể click vào đường link để nhảy sang trang web khác, dùng QuickHint-mode

Nhấn f hoặc F, rồi nhấn số thứ tự của link được hiển trị sẵn

History sites

C-o/C-i   di chuyển Back/Forward các site trên tab hiện hành

:history  – liệt kê mọi site đã duyệt trước đó của session

Di chuyển giữa các tab

gt/C-n   – next tab

gT/C-p  – previous tab

g0/g$  – first tab

d/C-w – đóng tab hiện hành

C-t    – mở tab mới

Thoát firefox

:xall (hoặc ZZ) – thoát và lưu session

:qall (hoặc ZQ) – thoát không lưu session

Duyệt thanh menu

:emenu   – duyệt menus (nếu không nhớ tham số thì nhấn TAB)

:dialog <ten menu>  – tra cứu menu cụ thể

nếu không nhớ, tra cứu với

:help :dialog

Bookmarks

:bmarks   – hiển thị mọi bookmark

:bmark  – add new bookmark

Copy

  • copy URL của trang web hiện hành, gõ   y

 

Advertisements

Written by vietnamen

Tháng Mười Một 13, 2009 at 12:26 chiều

TeXmacs

leave a comment »

Để tìm hiểu cách cài đặt, đọc bài IDE.

Citation in TeXmacs

Xem thêm citation-manager.

Bước 1: soạn file bibtex chứa citations cần insert. Nên lưu cùng thư mục với file (.tm)

Bước 2: (dùng 1 lần ban đầu) đưa con trỏ về cuối file (nơi mà phần bibliography sẽ được hiển thị), chọn text/automatic/bibliography. Tại dấu nhắc yêu cầu, gõ vào tên của reference style mình muốn biểu diễn (e.g. plain, alpha, abbrv, ieeetr,…) và tên của file bibtex cần dùng. Danh sách đầy đủ ở đây

1: ieeetr
2: unsrt
3: IEEE
4: ama
5: cj
6: nar
7: nature
8: phjcp
9: is-unsrt
10: plain
11: abbrv
12: acm
13: siam
14: jbact
15: amsplain
16: finplain
17: IEEEannot
18: is-abbrv
19: is-plain
20: annotation
21: plainyr
22: decsci
23: jtbnew
24: neuron
25: cell
26: jas99
27: abbrvnat
28: ametsoc
29: apalike
30: jqt1999
31: plainnat
32: jtb
33: humanbio
34: these
35: chicagoa
36: development
37: unsrtnat
38: amsalpha
39: alpha
40: annotate
41: is-alpha
42: wmaainf
43: alphanum
44: apasoft

Bibtex style for statistic journals: http://www.stat.ufl.edu/~presnell/Downloads/TeX/StatBib/

Bước 3: tại vị trí cần chèn citation references trong file (.tm), chọn Insert/Link/Citation/Visible, gõ vào citation key tương ứng, hoặc đơn giản là gõ \cite (nhấn enter) và gõ vào ref-key của tham khảo cần chèn.

Bước 4: (cần cập nhật để các liên kết có hiệu quả) chọn Document/Page/Type/Pager (nếu chưa chọn), rồi chọn tiếp (2 lần) Document/Update/Bibliography.

References:

  1. http://vntutor.blogspot.com/2007/12/bibtex-editor-for-ubuntu-linux.html
  2. http://amath.colorado.edu/documentation/LaTeX/reference/faq/bibstyles.html

Images in TeXmacs

Đặt con trỏ tại nơi muốn chèn hình, chọn 1 trong 2 options:

  • Insert\Image\Small Image (nếu muốn có thể hiển thị nhiều hình với caption khác nhau trên cùng 1 hàng)
  • Insert\Image\Big Image (mỗi hình chiếm nguyên 1 hàng)

Sau đó, đưa con trỏ vào bên trong vùng mới tạo ra, chọn: Insert\Image\Insert Image…

Nếu hình quá lớn, đưa con trỏ vào ngay bên phải hình (phía dưới góc phải sẽ hiện ra “postscript image”, nhấn phím backspace để nó hiển thị code xuất hình ra (giống như sau)

<postscript|1 |2 |3 |4 |5|6|7>

ví dụ:

  • <postscript|filename|2|3|4|5|6|7>
  • <postscript|<tuple|<raw-data>|eps>|2|3|4|5|6|7>

Tại các ô có đánh số, các giá trị chèn vào tại đó sẽ có ý nghĩa như sau:

  1. tên file (Linked Image…), hay image raw data nếu ta chọn Insert Image…
  2. chiều rộng – width – của hình, có thể chỉ định tuyệt đối hay tương đối
  3. chiều cao – height – …
  4. cắt xén bên trái hình bao nhiêu – left cropping –
  5. cắt xén phía dướic hình – bottom cropping –
  6. cắt xén chiều rộng – width cropping
  7. cắt xén chiều cao – height cropping

Zoom factors

Phóng to/thu nhỏ hình ảnh dùng “zoom factor”

 *3   -- multiply <dimension> by 3;
 /2   -- divide <dimension> by 2;
 *3/2 -- multiply dimension by 1.5;
 *1.5 -- same as above.

Đơn vị để xác định kích thước hình là “par” unit. Ví dụ: chiều rộng hình là “.7par” tương đương với hình đó sẽ chiếm  70% chiều rộng của paragraph.

Cropping

Cắt xén một phần hình vẽ trước khi hiển thị. Trong hình sau, đường gạch rời đại diện cho kích thước thật của hình, các ô nhỏ bên trong với các đường gạch kín đại diện cho phần hình đã được cắt xén

+ – – – – – – – – – – – – – – – – – –
left cropping |
|——————–>
. |
| width cropping .
—————————–> |
| . .
. . |
| ^.. +——–+
| | | |
| ^……………. +——–+
| | |
| | bottom | height
| cropping | cropping |
| | |
– – – – – – – – – – – – – – – – – – +

Đơn vị chiều dài khi chỉ định phần hình vẽ bị cắt phải là đơn vị tuyệt đối vì hình vẽ sẽ được cắt xén trước khi áp dụng các chỉnh sửa khác (ví dụ: scaling).

Ví dụ:
——–

<postscript|/usr/share/pixmaps/texmacs.xpm||||||>

<postscript|chart.eps||||||>           # file chart.eps phải nằm trong cùng thư mục với tài liệu

<postscript|chart.eps|.7par|||||>     # Scale it to take 70% of the paragraph width.

<poscript|chart.eps||.5pag||||>       # Scale to take 50% of the page height.

<postscript|chart.eps|*4|||||>
<postscript|chart.eps||*4||||>
<postscript|chart.eps|*16/4|||||>          # 4 cách đều nhân kích thước lên 4 lần

<postscript|chart.eps|/2|||||>
<postscript|chart.eps|*.5|||||>
<postscript|chart.eps||/2||||>
<postscript|chart.eps|*2/4|||||>         # 4 cách đều thu nhỏ đi 2 lần

<postscipt|archimedes.eps|*22/7||2cm|2cm|3cm|3cm>      # Crop out a square image of 1cm on the side locate 2cm from the lower left border and magnify it by approximately pi.

Ví dụ:

  • Make it smaller, ví dụ 1/2, ta sửa thành: <postscript|name_of_picture_file |1/2| | | > ENTER
  • Make it bigger, ví dụ 2x, ta sửa thành: <postscript|name_of_picture_file | *2| | | > ENTER

References:

  1. http://osdir.com/ml/editors.texmacs.user/2003-05/msg00013.html

Written by vietnamen

Tháng Chín 20, 2009 at 7:27 chiều

Commands hay dùng trong xUnix (3)

leave a comment »

Tiếp tục của 2 bài viết trước, bài viết này nhằm giới thiệu những lệnh hay dùng THỨ BA,  theo thói quen của bản thân người viết.

Đổi password

passwd <RETURN>

Bạn sẽ nhập vào mật khẩu cũ, và nhập mật khẩu mới 2 lần.

Độ ưu tiên của một process

Các processes có thể có độ ưu tiên khác nhau khi sử dụng CPU. Tùy theo yêu cầu của công việc, bạn có thể tăng/giảm độ ưu tiên của một process lên hay xuống (0….19) với 0 là chạy nhanh nhất. Độ ưu tiên mặc định là 10.

nice -19

NOTE: lệnh nice chỉ có thể tăng giá trị lên, nếu muốn giảm xuống (tăng độ ưu tiên), ta dùng renice.

Sắp xếp

Sắp xếp là tác vụ thường dùng kèm các lệnh khác, thông qua cơ chế pipelining, để nhận output từ các lệnh khác.

Các tham số đi kèm

-f   không phân biệt uppercase/lowercase

-n bỏ qua khoảng trắng và tabs

-r đảo ngược kết quả sắp xếp

+x bỏ qua field (cột) thứ x, trong quá trình sắp xếp

Ví dụ: sắp xếp các file được chọn lọc (dùng ls)

Written by vietnamen

Tháng Tám 21, 2009 at 12:25 sáng

Commands hay dùng trong xUnix (2)

leave a comment »

Tiếp bài viết trước, phần này sẽ giới thiệu một số lệnh hay dùng THỨ HAI, theo quan điểm cá nhân.

Đổi thuộc tính của file/folder

Trong xUnix-based OS, không có sự phân biệt giữa file và folder. Chúng thường có các thuộc tính như: read-only/writable/executable.

Các thuộc tính trên, được gán riêng rẽ cho từng nhóm sở hữu (owner): group (only users belong to this group)/current-user/other-users (all users who has account on this machine).

Để thêm/bớt một thuộc tính cho một nhóm người dùng nào đó, ta dùng dấu +/-, tương ứng đi kèm theo sau kí hiệu của nhóm.

chmod w+x <filename, folder>

Trên đây là cách dùng kí hiệu (w, g, u, x, …), ngoài ra ta có thể dùng số

Ví dụ:

400      được qui đổi ra dạng binary 100.000.000 với mỗi bộ 3 thuộc về user’s permision, group’s permision, và others’ permision. Trong đó thứ tự các binary digit là: read-write-execute. Do đó, nó có nghĩa là chỉ có curent-user có quyền read với file/folder.

chmod 400 <filename, folder>

Tạo bản sao của file

Nếu copy, ta sẽ được 2 thực thể độc lập nhau. Để có 2 thực thể mà luôn có cùng 1 nội dung, ta dùng lệnh ln (linker)

ln <filename> <otherfilename>

Như vậy, nội dung 2 files luôn giống nhau. Thực chất là cả 2 tên file đều cùng chỉ đến một nơi lưu trữ vật lí như nhau.

In nội dung file ra máy in

Ở đây, ta chỉ bàn đến máy in laser, với dòng lệnh lpr (laser printer)

lpr <filename>

Nếu file có kích thước lớn hơn 1MB, cần dùng thêm tham số -s

lpr -s <filename>

Nếu có nhiều hơn 1 máy in được cài đặt, và bạn không dùng máy in mặc định, ta có thể chọn máy in nhờ tham số -P đi kèm tên của máy in cần dùng

lpr -Pprinter_name

NOTE:  Để biết printer nào là mặc định, ta dùng

echo $PRINTER

Kiểm tra hàng đợi của máy in, dùng lpq

lpq

Xóa một lệnh in, ta dùng lprm (laser printer remove)

lprm job_id

Mỗi lệnh in đều có 1 job ID, có thể tra cứu thông qua lpq

Nén/Giải nén file

Có nhiều định dạng nén khác nhau (zip, tar, gz, rar …) ví thế cũng có nhiều tiện ích nén/giải nén đi kèm khác nhau.

gz

Nén

gzip file1 file2 

Giải nén

gunzip file.gz

tar

Nén

tar -cvf file1 file2 

Giải nén

tar -xvf file.gz

Liệt kê nội dung file nén

tar -tvf  filename.tar

7z

Dùng 7z, nhớ cài p7zip-full trước

Nén

7z a <filename.7z> <file1 file2 folder1 folder2>

Giải nén

7z x <filename.7z>

Liệt kê nội dung file nén


7z l <filename.7z>

Job/Process control

Mỗi chương trình là một hay nhiều process(es). Mỗi process có một process ID (PID – số nguyên dương) định danh cho nó. Bạn có thể dừng một process thông qua PID hay dừng program dùng tên của program đó, qua lệnh pkill (process kill)

pkill <process ID>
pkill -9 <process ID>   [nếu lệnh trên không diệt được process]
pkill <program>

NOTE: Để biết process ID, ta dùng

ps -l
ps -gux

Written by vietnamen

Tháng Tám 21, 2009 at 12:25 sáng

Commands hay dùng trong xUnix (1)

leave a comment »

Bài viết này nhằm giới thiệu những lệnh hay dùng NHẤT,  theo thói quen của bản thân người viết.

Tìm giúp đỡ

Một lệnh có rất nhiều tham số có thể sử dụng, ví dụ: ls -d hay ls

Để tham khảo lúc cần thiết, ta dùng lệnh man[ual]

man <tên lệnh cần tra>

Nếu bạn không nhớ rõ tên lệnh, bạn có thể tìm kiếm tên đầy đủ của nó, từ một phần tên mà bạn nhớ, dùng lệnh apropos

apropos <keyword>

NOTE: việc tìm kiếm là case-insensitive

Liệt kê nội dung folder

Liệt kê ta dùng lệnh ls (list), mặc định là liệt kê thư mục hiện tại.

ls 
ls /path/to/folder

Trong xUnix-based OS, việc dùng regular expression giúp cho đơn giản hóa nhiều tác vụ, e.g. ta có thể chỉ liệt kê một số file theo yêu cầu

ls *.txt

Liệt kê nội dung file

Với các file dạng text, ta có thể liệt kê nội dung chúng ra màn hình terminal dùng một trong các lệnh

less <filename>


cat <filename>

more <filename>

Sao chép file/folder

Sao chép là một tác vụ rất hay dùng, ta dùng lệnh cp (copy) chung cho file/folder.

cp path/to/file1 new/path/
cp path/to/file1 new/path/newfilename

Trong xUnix-based OS, việc dùng regular expression giúp cho đơn giản hóa nhiều tác vụ, chẳng hạn copy files có tên tuân theo một qui luật nào đó

Ví dụ: file1, file2, file3, … file10

cp file[1..10] new/path/

Đổi tên file/folder

Việc đổi tên dùng lệnh mv (move)

mv <oldname> <newname>

Xóa file/folder

Việc xóa dùng lệnh rm (remove)

rm <filename>
rmdir <folder>

Với thư mục, nếu chưa trống, ta cần dùng thêm tham số -rf (recursive, force)

rm -rf <folder>

CHÚ Ý: Các lệnh trong xUnix-based OS là không thể hoàn lại. Nếu bạn đã lỡ xóa file, ví dụ, thì sẽ mất file vĩnh viễn, không thể phục hồi. Vì thế, cần cẩn thận thao tác.

Tìm kiếm file/folder

Tìm kiếm là một tác vụ rất hay dùng, ta dùng lệnh find. Nó sẽ tìm kiếm đến mọi thư mục con của thư mục chỉ định để tìm file có tên thỏa mãn yêu cần đặt ra.

find /folder -name <filename> -print

NOTE: Thư mục hiên tại được đại diện bằng dấu chấm (.)

Logout user

pkill -u <user-name>
pkill -KILL -u <user-name>

 

Pipelining

Written by vietnamen

Tháng Tám 21, 2009 at 12:24 sáng

Doxymacs – generate code documentation in emacs

leave a comment »

Doxymacs là sự kết hợp giữa Doxygen + {X}Emacs.

Doxygen là tool giúp trích xuất thông tin của source code thành dạng documentation giúp cho việc tra cứu tham khảo sử dụng các hàm dễ dàng. Các tool khác: JavaDoc, GTK-Doc… Yêu cầu của các tool này là comment được viết theo một qui luật định sẵn để chúng có thể trích xuất thông tin ra dễ dàng.

Emacs lại là một IDE rất mạnh và hữu ích.

Trong Ubuntu, các package này đều có sẵn

sudo aptitude

tìm kiếm doxymacs, doxygen, doxygen gui và install 3 packages này. Có thể install thêm doxygen-doc nếu muốn.

Sau đó, thêm vào file ~/.emacs

(add-hook 'c-mode-common-hook
  (lambda ()
    (require 'doxymacs)
    (doxymacs-mode t)
    (doxymacs-font-lock)))

Tuỳ vào programming language khác nhau mà cấu trúc của comment thay đổi (minh hoạ ở dưới). Tuy nhiên, để đơn giản, doxymacs cung cấp một số iteractive function

doxymacs-insert-function-comment

doxymacs-insert-file-comment  --> C-c d i

Những thức cần có khi comment một subprogram

  1. thông tin về thông số đầu vào (type, optional, in/out/inout…)
  2. thông tin về return value (type), exception gì, có cần phải free (deallocate) hay không

Comment có thể đặt ngay tại header files (.h) hoặc nơi implementation (.c/.cpp). Điều này là tuỳ ý thích mỗi người. Đối với một số ngôn ngữ, ví dụ Fortran, không có header file nên comment chỉ có ở trong implementation file.

C language

/** 
 *
 *
 * @param a
 * @param b
 *
 * @return
 */
int frobnicate_numbers (int a, int b);

Fortran

References:

  1. http://doxymacs.sourceforge.net/
  2. http://emacs-fu.blogspot.com/2009/01/commenting-your-functions.html
  3. http://www.digitalpeer.com/id/emacs
  4. http://www.lrde.epita.fr/cgi-bin/twiki/view/Projects/EmacsTricks
  5. http://www.stack.nl/~dimitri/doxygen/helpers.html
  6. Fortran patch: http://sourceforge.net/forum/message.php?msg_id=7442794
  7. http://www.stack.nl/~dimitri/doxygen/starting.html

Written by vietnamen

Tháng Bảy 28, 2009 at 12:49 chiều

Backup tools

leave a comment »

Backup là một tác vụ rất cần thiết với người dùng có dữ liệu lưu trữ trên máy tính, đặ biệt nếu nó là quan trọng. Hiện nay, có 2 tools trong Ubuntu: sbackup và nssbackup.

Hiện nay, sbackup không còn được phát triển, và nssbackup là một lựa chọn tốt, dù nó đang ở giai đoạn RC.

nssbackup

Not So Simple Backup nhằm cung cấp khả năng backup local, remote, …. với ưu thế GUI, background running, schedule running….

  1. Download bản mới nhất từ: https://launchpad.net/nssbackup/+download
  2. Compile:
make
sudo make install
  1. Thiết lập cấu hình
sudo nssbackup-config-gui

Bạn có thẻ lựa chọn chức năng “backup now” trong nssbackup-config-gui hoặc bạn có thể backup với nssbackupd

sudo nssbackupd

NOTE: Luôn chạy với quyền root

References:

  1. https://launchpad.net/nssbackup

Written by vietnamen

Tháng Bảy 25, 2009 at 9:06 chiều