ผู้สนับสนุน

วันจันทร์ที่ ๓๑ สิงหาคม พ.ศ. ๒๕๕๒

ทดลอง compile chromium (Linux)

Update 2/Nov/2009 
   ตอนนี้ได้มีการเปลี่ยนระบบการ compile ใหม่เป็นใช้ make แล้ว (ไม่ใช้ hammer) 
   และอาจจะมี pkg ที่ขาดหาย ให้ลองติดตั้ง install-build-deps.sh คือ solution ที่เค้าว่ากันว่าง่ายที่สุดที่จะแก้ปัญหานี้
ถ้าไม่ทำจะมีปัญหาประมาณว่า  /usr/bin/ld: error: cannot find -lbz2


1.get source tarball download ไฟล์จากที่นี่  http://build.chromium.org/buildbot/archives/chromium_tarball.html
2.install depot_tools เครื่องมือในการจัดการ source
apt-get install subversion (ถ้ายังไม่มี)
svn co http://src.chromium.org/svn/trunk/tools/depot_tools
3.get prerequire software
    สำหรับ ubuntu 32 bit
sudo apt-get install subversion pkg-config python perl g++ g++-multilib bison flex gperf libnss3-dev libgtk2.0-dev libnspr4-0d libasound2-dev libnspr4-dev msttcorefonts libgconf2-dev libcairo2-dev libdbus-1-dev
4.untar source และเข้าไป sync ใน source directory 
cd downloads/
tar xvfz chromium.rXXXXX.tgz
mv home ~/workspace/chomium/home
export CRROOT=/home/mossila/workspace/chromium/home/chrome-svn/tarball/chromium
cd $CRROOT
gclient sync --force
5.compile แค่ chrome อย่างเดียว
cd $CRROOT/src/build
hammer chrome 
6.จะได้ executable ออกมาที่ $CRROOT/src/sconsbuild/Debug
---------

ผล compile: fail
ด้วย
ram 1 GB
cpu pentium D 3.00 Ghz
harddisk ว่างมากกว่า 20 GB
ubuntu 9.04 desktop 32 bit
(T^T) อารายยว้าาาา....

Update!
compile สำเร็จด้วย 
virtual box
ram 1.5 GB
cpu 1.7 Ghz
harddisk 12 GB
ubuntu 9.04 desktop 32 bit
---------
แถม
force SCons ให้ re-scan dependency 
hammer --implicit-deps-changed

update tarball หรือ checkout version ล่าสุด
ให้ดูจาก http://build.chromium.org/buildbot/waterfall/ ก่อนว่า tree อยู่ใน สถานะอะไร ถ้า open คือดี update มา compile ได้ แต่ถ้าเป็น closed ให้รอไปก่อนแล้วกลับมาดูใหม่
 
Hammer tools ที่ใช้ในการ build ของ chrome หรือ scons ดูเพิ่มได้ที่ http://www.scons.org/
    "SCons is a fantastic build system, written in Python (1.5.2) that does lots of nice things like automated dependencies, cross platform operation, configuration, and other great stuff. I would have to say that it is probably going to be the best thing for building C/C++ projects in the near future."
    ข้อดี
  • configuration file เป็น python เป็นภาษาโปรแกรมมิ่งจริงซึ่งทำให้แก้หลายๆ ปัญหาในการ build ได้
  • สามารถวิเคราะห์ dependency ให้อัตโนมัติสำหรับ c,c++ และ fortran ไม่จำเป็นต้องใช้ "make depend" หรือ "make clean" อีกต่อไป เพื่อที่จะให้ได้มาซึ่ง dependency. การวิเคราะห์ dependency ง่ายที่จะให้ user เพิ่มหรือกำหนดเองว่าให้ไป scan เพิ่มจากภาษาอื่นๆ หรือชนิดของไฟล์


วันพุธที่ ๑๙ สิงหาคม พ.ศ. ๒๕๕๒

VI Editor

เป็น editor ที่เริ่มใช้ตัวที่ 2 ต่อจาก notepad เรื่องจริงนะ ;) 1

เริ่มเป็น programmer ตัวน้อยๆ ก็โดน vi ยัดเข้าปากเลยครับ T^T แม่มใช้ยากโพด
บ่นพอแระเริ่มเลยละกัน vi มี 2 version หลักๆ ที่เราจะได้ใช้กัน 1. vi 2. vim
vi -ของจริง ไม่ได้แต่ keyboard ฝั่งขวาเลย (ให้ถูกคือแตะไม่ได้เลย) พวก numpad ,ลูกศรต่างๆ
vim -ใช้ง่ายขึ้นเพราะว่า keyboard ฝั่งขวาใช้งานได้แล้ว
ในบางเครื่องเค้าก็จะให้พิมพ์ vi แล้วไปเรียก vim มาใช้เลยถ้าใครได้เจอ vim ก็ถือว่าโชคดีกว่านิดหน่อยละกัน แต่ว่าใน blog นี้ก็จะเรียกรวมกันไปเลยว่า vi นะครับ
vi มี 3 mode
1.พิมพ์ 2. command 3. last line
1.พิมพ์ 2
เข้าสู่ mode นี้ได้ด้วยการพิมพ์ i , a , s , o
i - insert พิมพ์แทรก ข้างหน้าตัวอักษร ,shift i พิมพ์แทรก หน้าบรรทัด
a - append พิมพ์ต่อท้ายตัวอักษร , shift a พิมพ์ต่อท้ายบรรทัด
s - sub... 3 แทนตัวอักษรหรือ replace นั่นเอง เช่น 3s replace 3ตัว, shift s แทนทั้้งบรรทัด
o - open newline ขึ้นบรรทัดใหม่ , shift o แทรกบรรทัดก่อนหน้า
ออกจาก mode นี้้ด้วยการกด escape (esc)
**ระหว่างพิมพ์ สามารถ auto-complete word ได้ด้วย ctrl+n เลือกคำด้วยการกด n ไปเรื่อยๆ โดยกด ctrl ค้างไว้ (เป็น word ที่เคยพิมพ์ไปแล้วเท่านั้น ไม่รู้ว่าถ้าจะเอาจาก lib ของภาษาต้องทำไง)
2. command เป็น mode แรกสุด ที่เข้ามาใน vi เพื่อที่จะทำการเปลี่ยนเป็น mode อื่น
ใน mode นี้ จะมีการเลื่อน key ได้ด้วย h j k l (ซ้าย ลง ขึ้น ขวา) ถ้าเป็น vim ก็เลือกด้วยลูกศรได้เลย
yy copy line
yw copy word
y10w copy 10 words
10yy copy 10 lines
dd cut line
dw cut word
d10w cut 10 words
10dd cut 10 lines
p วาง ,shift p วางก่อนหน้า
w เลื่อน cursor 1 word
10w เลื่อน cursor 10 words
3. last line การพิมพ์เข้าไปเป็นชุดคำสั่งโดยเริ่มจากการพิมพ์ : หรือ / ใน command mode ชุดคำสั่งที่นี่สนใจมีดังนี้
syntax highlight
:syntax off
:syntax on
line wrap
:set wrap
:set nowrap
goto line number
:16
ไปบรรทัดที่ 16
show line number
:set nu
:set nonu
แบ่ง vi เป็น 2 หน้า
:split <filename>
:split myhead.h
สลับ 2 หน้าด้วย ctrl+ww
บันทึก/ออก
:w #บันทึก
:wq #บันทึกแล้วออก
:q #ออก
:q! #บังคับออก
search word
/someword
สามารถกด n เพื่อหน้าต่อได้ next ๆๆๆ , หรือ shift n เพื่อหาย้อนกลับ

  1. เรื่องนี้มีเขียนไว้ที่อื่นด้วยนะ เช่น http://www.thaiopensource.org/?q=node/47
  2. ในตอนลบของ vi ถ้าลบด้วย backspace จะไม่เห็นว่าตัวอักษรหายไปแต่พิมพ์แทนได้เลย แต่ถ้าเป็น vim จะเห็นว่าตัวอักษรหายไป
  3. อะไรไรซักอย่างจำไม่ได้

ระบบภาวะการมีงานทำของบัณฑิต : กรอกตั้งนานได้แค่เนี้ย ต้องใช้ ie6

มหาวิทยาลัยบูรพา
นายหางานดี   มีตังใช้
เลขประจำตัวประชาชน
 :  xxxxxxxxxxxxx
รหัสประจำตัว
 :  xxxxxxxx
คณะ
 :  คณะxxx
สาขาวิชา
 :  xxxx
ได้ตอบแบบสอบถามภาวะการมีงานทำของบัณฑิตเรียบร้อยแล้ว
เมื่อวันที่  xx สิงหาคม  2552
ลงชื่อ...............................................
( นายหางานดี   มีตังใช้ )
xx สิงหาคม 2552


กรอกตั้งนานได้แค่เนี้ย ต้องใช้ ie6 ด้วยถ้าไม่ใช้ สุดท้ายก็ฝืนไม่ใช้ เพราะว่าอยู่บน linux ไม่มี ie กรอกตั้งนานกว่าจะผ่าน แถมกรอกว่าเป็นโปรแกรมเมอร์ดันไม่ผ่าน ผ่านตอนไปกรอกว่าเป็น dancer อืม - -'

สามารถโหลดไฟล์เพื่อแก้ไขมา print ได้ที่นี่

apt-get

คำสั่ง install program (package) ใน ubuntu 

เป็นคำสั่งที่ใช้บ่อยเมื่อต้องการลงโปรแกรมต่างๆ ทั้งๆ ที่มีระบบกราฟิกอยู่แล้ว (synaptic) แต่ว่าถ้าเราพอจำชื่อ pkg ได้ apt-get install จะเร็วกว่ากันเยอะ

- install pkg คำสั่งต้องการสิทธิ์ root ดังนั้นต้อง sudo ก่อน ทดสอบด้วย gcc compiler
sudo apt-get install build-essential #พิมพ์ถึงตัว e แล้วกด tab ได้

มันก็จะให้ใส่ password หรือมีให้เลือกยืนยันอะไรซักหน่อย ส่วนใหญ่จะมีให้กด y หรือ n เท่านี้มันก็จะ download อะไรต่อมิอะไรมาให้เราเสร็จ พร้อมใช้ทันที พิมพ์ gcc ได้เลย

- remove/uninstall pkg ทำคล้ายๆ กันแค่เปลี่่ยนเป็นคำว่า remove

sudo apt-get remove build-essential #พิมพ์ถึงตัว e แล้วกด tab ได้

แต่ว่าในการ remove บางครั้ง pkg ที่โหลดมาและเป็น dependency จะไม่ได้ถูกลบออกไปด้วย ให้ใช้คำสั่ง autoremove อีกทีเพื่อเอาให้เกลี้ยง

sudo apt-get autoremove

และในกรณีที่โหลด pkg มาเยอะๆ ก็อาจจะมีบางตัวที่ไม่ได้ใช้แล้ว นานๆ ที่เราอยากได้ freespace เราก็ต้องสั่ง autoclean ซัก 1 ครั้ง

sudo apt-get autoclean

ถ้าเราหา pkg ไม่เจอ(ด้วยการพิมพ์แล้วกด tab) อาจจะเป็นเพราะว่า pkg นั้นมีการเปลี่ยนแปลงชื่อหรือเราพิมพ์ผิด ให้ลองค้นหาด้วยคำสั่ง apt-cache search ก่อน

apt-cache search flash java font #ไม่ต้องใช้สิทธิ์ root

หา pkg สำหรับ flash java font ที่ควรจะมีใน ubuntu ก็จะมีผลออกมาดังนี้ 

libming-util - Library to generate SWF (Flash) Files - Utilities
ming-fonts-dejavu - Ming format DejaVue Fonts
ming-fonts-opensymbol - Ming format Opensymbol Fonts
ubuntu-restricted-extras - Commonly used restricted packages
xubuntu-restricted-extras - Commonly used restricted packages

ซึ่ง pkg ที่เราลงเพื่อใช้แก้ไขปัญหานี้ก็คือ ubuntu-restricted-extras หลังจากได้ชื่อ pkg ที่เราต้องการแล้วก็สั่ง install ปกติ

sudo apt-get install ubuntu-restricted-extras

อย่างไรก็ตามถ้าท่านยังไม่รู้ชื่อของ pkg ที่ถูกต้องจริงๆ แนะนำว่าให้ลองหาใน synaptic หรือ google ก่อน

เพิ่มเติมเนื้อหาหรือแก้ไขบอกกันได้นะครับ ;)

Sudo

คำสั่ง sudo ใน ubuntu คือคำสั่งที่ทำให้เราสามารถใช้ตำสั่งด้วยสิทธิ์ root ได้ 1 ครั้ง โดยเราจะต้องกรอก password ของเราเข้าไป(ไม่ใช่ password root) แต่ว่า user เรานั้นต้องมีสิทธิ์ sudo ด้วย

มีประโยชน์ตอนที่เราจะลงโปรแกรมหรือว่า แก้ไขไฟล์ config ต่างๆ ของระบบ คำสั่งที่เราได้ใช่บ่อยๆ ได้แก่

install pkg ต่างๆ 
sudo apt-get install <pkg>
sudo apt-get remove <pkg>

restart/start/stop service 
sudo /etc/init.d/gdm restart

เปลี่ยนเป็น root
sudo su -

แก้ไขไฟล์ config
sudo vi /.../.../configfile

reboot/shutdown ใน text mode
sudo shutdown -r now     #restart เครื่องทันที
sudo shutdown -h 20:00  #ปิดเครื่องตอน 2 ทุ่ม

ถ้าต้องการให้ sudo แสดง prompt ออกมาเป็น gui ให้ใช้คำสั่ง gksu แทน
เช่น
gksu gedit somefile.txt &

เปิด file text ด้วยสิทธิ์ของ root ด้วย gedit(text editor ที่เป็น graphic mode)

วันจันทร์ที่ ๑๗ สิงหาคม พ.ศ. ๒๕๕๒

เพิ่ม user ให้ sudo ได้

sudo <editor> /etc/group

เช่น 
sudo vi /etc/group
sudo gedit /etc/group
(เลือกอย่างใดอย่างหนึ่ง)

เพิ่ม ชื่อ user ที่ต้องการให้ sudo ได้

admin:x:106:user1,user2,เพิ่มตรงนี้

save ไฟล์
แล้วลอง su ไป user นั้น user นั้นก็จะ sudo ได้แล้ว