Thứ Hai, 18 tháng 7, 2011

Code editor

Mấy hôm nay thấy team dùng chủ yếu 2 text editor chính là vim với gedit. Nhìn chung cả 2 đều có ưu điểm, nhược điểm riêng. Nhân đang ngồi chờ make clean, mình viết cái này hướng dẫn tùy biến 2 text editor này sao cho thuận tiện (đối với việc code)
1. Vim


Một trong những điểm mạnh của Vim so với gedit chính là hầu như khi dùng vim, ta ko cần phải dùng chuột do hệ thống phím tắt của Vim là quá đủ dùng rồi :D Tuy nhiên, mặc định Vim không hỗ trợ mở file theo tab, dẫn đến phải mởi nhiều cửa sổ Vim một lúc. Để mở thêm file theo dạng tab, ta có thể gõ ":browse tabnew" (ko có dấu ngoặc kép), rồi sau đó tìm đến file cần mở. Cái này dùng cho GVim, còn dành cho Vim thì hình như chỉ cần gõ :tabnew. Mọi người đọc thêm ở link này về cách sử dụng tab trong Vim
http://www.quantrimang.com.vn/hethong/linux/35173_Meo-nho-voi-Vim-su-dung-cac-tab.aspx


Ngoài ra, vim cũng hỗ trợ save các file trong một session bằng lệnh:
:mksession ten_file_session.vim


Khi muốn mở lại thì trước hết ta mở vim lên, rồi gõ
source ten_file_session.vim


Các file của session trước đó sẽ tự động được mở ra.


2. Gedit




Gedit khá thân thiện với người dùng. Bên cạnh đó Gedit cũng hỗ trợ nhiều plugin rất hay:
sudo yum install gedit-plugins

Sau khi cài xong cái kia thì vào edit/preference/plugin. Check vào các plugin cảm giác là cần thiết. Có thể là cái Session save, hỗ trợ save session --> ko hiểu sao chưa chạy được :))

Ngoài ra, Gedit còn có nhưng cái kiểu như left panel chuyên hiển thị cây thư mục, bottom panel thường dùng là Terminal --> make trên terminal này luôn :D

Vào View để tìm hiểu thêm nhé :x

Lines of code in LibreOffice

Tính đến thời điểm này, LibreOffice có 5.4 triệu dòng code, phần lớn là C++, cụ thể như sau:

cpp,        4657231 ,86.43%)
java,        393364 ,7.30%)
ansic,       113417 ,2.10%)
pascal,      102596 ,1.90%)
perl,         66205 ,1.23%)
sh,           16848 ,0.31%)
python,       16289 ,0.30%)
yacc,          7970 ,0.15%)
cs,            6644 ,0.12%)
asm,           2941 ,0.05%)
objc,          2113 ,0.04%)
lex,           1582 ,0.03%)
awk,            845 ,0.02%)
php,            254 ,0.00%)
csh,            253 ,0.00%)
lisp,           115 ,0.00%)
sed,              9 ,0.00%)

htop khi build LibreOffice

Có vẻ như khi build LibreOffice, make chỉ ăn nhiều CPU chứ không ăn RAM :)

                                                                     
                                             
  $htop
  
  1  [||||||||||||||||||||||||||||||||||||||||||||||100.0%]     Tasks: 180, 26 thr; 10 running
  2  [||||||||||||||||||||||||||||||||||||||||||||||100.0%]     Load average: 8.94 4.36 2.87 
  3  [||||||||||||||||||||||||||||||||||||||||||||||100.0%]     Uptime: 15:20:21
  4  [|||||||||||||||||||||||||||||||||||||||||||||||99.3%]
  5  [||||||||||||||||||||||||||||||||||||||||||||||100.0%]
  Mem[|||||||||||||||||||||||||||||||||||       480/3034MB]
  Swp[                                               0/0MB]

  PID USER     PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command                                                        
 3311 vuhung    25   0 70696 65956  5712 R 56.0  2.1  0:02.26 /usr/libexec/gcc/i386-redhat-linux/4.1.2/cc1plus -quiet -I../st
 3330 vuhung    25   0 68148 63108  5732 R 33.0  2.0  0:02.00 /usr/libexec/gcc/i386-redhat-linux/4.1.2/cc1plus -quiet -I../st
 3289 vuhung    18   0  971M 39100  8492 S 27.0  1.3  0:01.18 /bin/sh /usr/bin/ant -Dbuild.label=build-350m1(Build:0) -Dant.b
 3493 vuhung    17   0  971M 39100  8492 R 22.0  1.3  0:00.79 /usr/lib/jvm/java-1.6.0-openjdk/bin/java -classpath /usr/share/
 3540 vuhung    15   0  971M 39100  8492 S  5.0  1.3  0:00.36 /usr/lib/jvm/java-1.6.0-openjdk/bin/java -classpath /usr/share/
 3023 vuhung    21   0 31776  1376   868 S 19.0  0.8  0:00.04 sh ../configure --disable-debug --enable-optimize --with-dist-p
32751 vuhung    15   0  9568  1272   920 R 18.0  1.0  0:00.34 htop
 3540 vuhung    15   0  971M 31680  8364 S 15.0  1.0  0:00.28 /usr/lib/jvm/java-1.6.0-openjdk/bin/java -classpath /usr/share/
 2809 vuhung    15   0 86268 80460  5756 R 13.0  2.6  0:03.08 /usr/libexec/gcc/i386-redhat-linux/4.1.2/cc1plus -quiet -I../st
32751 vuhung    15   0  2568  1272   920 R  1.0  0.0  0:00.33 htop
 3023 vuhung    24   0  2776  1372   868 S  0.0  0.0  0:00.02 sh ../configure --disable-debug --enable-optimize --with-dist-p
 3306 vuhung    25   0 44808 38688  5580 R  0.0  1.2  0:01.01 /usr/libexec/gcc/i386-redhat-linux/4.1.2/cc1plus -quiet -I../st
 3523 vuhung    25   0 24152 16344  3452 R  0.0  0.5  0:00.12 /usr/libexec/gcc/i386-redhat-linux/4.1.2/cc1plus -quiet -I../st
 2226 root      RT  -5     0     0     0 S  0.0  0.0  0:01.80 bzip2 -cd /libo/vuhung/000.git/bootstrap/src/b4cae0700aa1c2aef7

Chủ Nhật, 3 tháng 7, 2011

FOSS posting style

Chú ý khi email cho libo - đây cũng là luật chung của các nhóm FOSS

1. Plain text email
2. Bottom post
3. Trim
4. Quote

Xem: http://en.wikipedia.org/wiki/Posting_style

Thứ Hai, 27 tháng 6, 2011

Some notes on dmake

dmake tương tự GNU make - một công cụ để biên dịch chương trình từ mã nguồn.

Điểm khác GNU make là: dmake có thể chạy trên nhiều platform hơn, bao gồm Windows. Đây chính là lý do dmake được chọn là build tool của OpenOffice.org (tiền thân của LibOffice)


Tham khảo: http://tools.openoffice.org/dmake/index.html

A try on LibO build

Đang build thử LibO trên CentOS 5.6
(Với Fedora, chắc chắn cũng tương tự)

Đọc http://www.documentfoundation.org/develop/

Thử git clone git://anongit.freedesktop.org/libreoffice/bootstrap
=> bị báo lỗi chưa cài git
=> Google git và cài

wget http://kernel.org/pub/software/scm/git/git-1.7.5.4.tar.bz2
tar xvjf git-1.7.5.4.tar.bz2
cd git
./configure; make; make install -> cài xong

sau đó chạy lại
git clone git://anongit.freedesktop.org/libreoffice/bootstrap
và

cd bootstrap
./autogen.sh --with-num-cpus=2


lại bị báo lỗi thiếu jdk, python...
-> Cài bằng lệnh

sudo yum -y install java-1.6.0-openjdk-devel
sudo yum -y install python-devel

Chú ý: devel

Cứ như thế, chạy

./autogen.sh --with-num-cpus=2

và cài các gói bị thiếu cho đến khi hết lỗi thì OK.


Chắng hạn như

checking for jakarta-ant... no
checking for ant... /opt/ant/bin/ant
checking if /opt/ant/bin/ant works... Ant works
checking Ant lib directory... Ant lib directory found.
checking whether Ant is >= 1.6.0... yes, 1.8.2
checking for JUnit 4... no
configure: error: cannot find JUnit 4 jar; please install one in the default
location (/usr/share/java), specify its pathname via
--with-junit=..., or disable it via --without-junit

-> Thiếu junit

Ok, vậy thì disable thử junit và build

 ./autogen.sh --with-num-cpus=2 --without-junit

-> lần này thì OK

setting up the post_download check script
configure: creating ./config.status
config.status: creating ooo.lst
config.status: creating set_soenv
config.status: creating Makefile
config.status: creating bin/repo-list
Setting up the environment for building LibreOffice
Setting Linux x86 specific values... done

******************************
**********************************************
*
* LibreOffice configuration finished.
*
****************************************************************************
To build, issue:
make

To install when the build is finished, issue:
make install

If you want to develop LibreOffice, you might prefer:
make dev-install

If you want to run the smoketest, issue:
make check

->

sau đó sẽ chạy make, sẽ ra lỗi nhưng gặp lỗi đâu thì sửa đấy.


Chủ Nhật, 26 tháng 6, 2011

Thủ thuật với Gnome 3

1. Tự động ẩn top bar (thanh panel ở phía trên màn hình)
yum install http://timlau.fedorapeople.org/files/gnome-shell/extensions/gnome-shell-extension-autohidetopbar-1.0-1.fc15.noarch.rpm
--> Alt+F2, bấm r, rồi enter.

2. Minimize tất cả các cửa sổ đang mở:
System Settings --> Keyboard --> Shortcuts --> Navigation
Bấm chọn mục Hide all normal windows rồi click vào phía của của dòng đấy (chỗ chữ Disable). Sau đó bấm tổ hợp phím mà bạn muốn gán. Ở đây để cho quen với windows thì mình đặt tổ hợp phím Windows + D.
Cách này cũng dùng để gán phím tắt cho các tác vụ khác. (tự tìm hiểu nhé :D)