My Contribution to Debian, 2014-1

Uploaded:
- php-sasl, php-gnupg sponsored by Lior Kaplan
- php-date, php-auth -- sponsored by David Prévot
- libdi, libdbi-drivers -- sponsored Laszlo Boszormenyi

Bugs:
- #731732 -- ocamlrss: FTBFS on bytecode architectures
- #735372 -- docker.io: errors with bash completion

My Contribution to Debian, 2013-8

Uploaded:
 - python-heatclient/0.2.3, python-pbr : sponsored by Thomas Goirand
 - php-oauth : sponsored by Ondřej Surý
 - php-mail-mime : sponsored by  Vincent Bernat
 - php-file :  sponsored by David Prévot
 - ruby-mongo,ruby-bson,ruby-bson-ext (1.9.2-1)

RC bugs:
 - #720151 : php-net-sieve: unhandled symlink to directory

Other package:
- at/3.1.14-1

My Contribution to Debian, 2013-7


Uploaded:

- furiusisomount -- sponsor by Serafeim Zanikolas

pkg-ruby-extras:
 - ruby-bson, ruby-bson-ext and ruby-mongo (1.9.1)

pkg-php-pear:
- php-crypt-gpg -- sponsor by Thomas
- php-net-ipv4, php-text-wiki, php-net-checkip, php-xml-rpc, php-net-ldap2,
  php-auth-sasl -- sponsor by David Prévot
- php-pinba, php-mail-mimedecode -- sponsor by Vincent

RC bugs:
 - #713819 -- python-keystoneclient: CVE-2013-2166 CVE-2013-2167
 - #713281 -- php-xml-dtd: FTBFS

My Contribution to Debian, 2013-6

DM uploads:
 - Allowed by Thijs Kinkhorst:
    php-http, php-net-ldap, php-net-socket,  php-net-url

- Allowed by Thomas Goirand:
   php-cache-lite, php-calendar, php-html-template-it,
   php-net-dime, php-net-sieve, php-services-weather,
   php-soap, php-mdb2-driver-mysql, php-mdb2-driver-pgsql

ITP (Accepted):
 - ruby-mongo/1.9.0-1, ruby-bson-ext/1.9.0-1, sponsor by Cédric Boutillier

Team upload :
 - ruby-bson/1.9.0-1, sponsor by Cédric Boutillier

RC bugs:
 #710718 python-heatclient: Fails to build from source: depends on python-argparse

Todo:
 - https://wiki.debian.org/ReleaseGoals/pkg-php-tools

My Contribution to Debian, 2013-5

Debian Maintainer (DM):
  https://lists.debian.org/debian-newmaint/2013/05/msg00005.html
  #709133 -- Please add Prach Pongpanich as a Debian Maintainer

ITP (Accepted):
 ocamlrss -- RSS 2.0 parser and printer for OCam, sponsor  by Stéphane Glondu

Upload to unstable:
 libapache2-mod-geoip, sponsor  by Axel Beckert
 doodle, sponsor  by Theppitak  Karoonboonyanan

Team upload:
 php-mdb2, sponsor  by Thomas Goirand

RC bugs:
 #707938 -- gup.postinst: 11: cd: can't cd to /var/lib/gup/
  + patch to fix 

My Contribution to Debian, 2013-4


QA upload:
 - python-libpcap/0.6.4-1, sponsor by Sebastian Ramacher

Team upload:
 - haproxy, upload by Vincent Bernat

Pending uploads (New):
 * Debian Ruby Extras, sponsor by Cédric Boutillier
   - ruby-mongo -- Ruby driver for MongoDB
   - ruby-bson-ext -- C extensions to accelerate the Ruby BSON serialization
 * PKG OpenStack, sponsor by Thomas Goirand
    - python-heatclient -- client library and CLI for OpenStack Heat

Upload to unstable:
 * PKG-PHP-PEAR, sponsor by Thomas Goirand
  - php-calendar
  - php-cache-lite
  - php-html-template-it
  - php-net-dime
  - php-net-sieve
  - php-services-weather
 - enchant , sponsor by Aron Xu

Note:
 - lintian -EvIL +pedantic

i3 window manager

 ช่วงที่ผ่านได้หา Desktop Environment (DE) ไว้ใช้แทน GNOME 3 (ใช้ Mutter เป็น wm) สุดท้ายมาลงเอยที่ i3-wm (Tiling window manager) พัฒนาขึ้นด้วยภาษาซี ผู้พัฒนาและดูแลแพกเกจใน Debian คือ Michael Stapelberg (เป็นคนอัพโหลดแพคเกจแรกในเดเบียนให้ผม) สามารถติดตั้งได้ผ่านระบบจัดการแพคเกจของ Debian และ Ubuntu ( {apt-get,aptitude} install i3)

 เนื่องจาก i3 เป็น wm เครื่องมือที่จะใช้งานเราต้องหามาใช้เองไม่เหมือนกับพวก GNOME, KDE , Xfce ที่จะมีเครื่องมือต่างๆ มาให้พร้อมแล้ว สำหรับการปรับแต่งเบื้องต้นมีดังนี้

 - LightDM แทน GDM3
 - การเปลี่ยนภาษาใช้ setxkbmap สามารถกำหนดให้ทำงานทุกครั้งได้โดยการเพิ่มคอนฟิคไฟล์ดังนี้
   $ echo 'exec_always setxkbmap us,th -option grp:alt_shift_toggle' >> ~/.i3/config
- สำหรับ terminal emulator ใช้ rxvt-unicode เป็นตัวที่ใช้ประจำใน Puppy Linux ปรับสีเป็นแบบ low contrast (ไม่แสบตาดี)
  ดัดแปลงคอนฟิคจาก https://gist.github.com/davidbeckingsale/564084
- จัดการเรื่องการเชื่อมต่อ network ใช้ wicd
- การเชื่อมต่อ 2 จอใช้ xrandr (ถ้าต้องการ GUI ก็ arandr)

 จากประสบการณ์ที่ใช้งานบน Thinkpad X200si - Debian (Sid):
- ทำงานได้เลื่อนดีไม่มีหน่วง
- เอกสารการใช้งานเข้าใจง่าย
- การสั่งงานแบบใช้คีย์ลัดไม่ต้องย้ายมือออกจากแป้นพิมพ์บ่อย แต่จะว่าไปปกติก็ไม่ค่อยได้ย้ายมือออกจากแป้นพิมพ์เพราะใช้ trackpoint
- เรียบง่ายแต่มีประสิทธิภาพ

* ความหมายของ "X Windows", "Window Manager", and "Desktop Environment"

My Contribution to Debian, 2013-3

RC bugs:
#703957 [libarchive] libarchive: CVE-2013-0211
+ patch to fix
#704042 [mongodb] CVE-2013-1892 -- mongodb: Remote shell access via run method's use of native_helper
+  report and link to fix
#703553 [src:furiusisomount] src:furiusisomount: missing source for compiled gettext (.mo) files
+ patch to fix

WNPP:
#682302 ITA: php-net-sieve, #682303 ITA: php-html-template-it, Sponsor by Thomas Goirand
#580680 ITA: enchant, Sponsor by Aron Xu


UDD: bapase.cgi -- output with tablesorter

My Contribution to Debian, 2013-2


RC bugs:
 #701134 : php-soap: directory vs. symlink conflict, NMU fixed and unblock to Wheezy

WNPP bugs:
 #670999: libapache2-mod-geoip , sponsor by Arno Töll
 #529680: php-net-dime, #529687: php-services-weather, team uploaded - sponsor by Thomas Goirand (zigo)

Notes:
 - I joined the pkg-php-pear team after fixed a RC bug (php-soap).
 - http://linux.sut.ac.th/~prach/php-pear-wnpp.txt


My Contribution to Debian, 2013-1



Fixed orphan package:
 #660437 : O: doodle -- Desktop Search Engine, Sponsor by Theppitak  Karoonboonyanan

RC bugs:
 #700355 : stardict: unhandled symlink
   + patch to fix
 #700941 : scim-thai: FTBFS: dh_install: missing files
   + patch to fix
 #701115 : [S] owncloud: multiple vulnerabilities
   + nmu (t-p-u by Gregor Herrmann) 
 #701134 : php-soap: directory vs. symlink conflict
  + patch to fix

Bugs:
 #671790 merge by #674480 libvncserver-dev: "Multi-Arch: same" but files differ across architectures
  + patch to fix

Packaging:
 #701766: RFS: python-libpcap/0.6.2-1 [QA]
 #700296: RFS: libapache2-mod-geoip/1.2.8-1 [ITA]
 #700410: RFS: furiusisomount/0.11.3.1~repack0-2 [ITA]
 #700397: RFS: enchant/1.6.0-8 [ITA]
 #701706: RFS: ocamlrss/2.0-1 [ITP]

Notes:
 - git format-patch -1 commit-SHA

PHP extension for Thai word break


ทดลองเขียน php extension เป็นการตัดคำโดยใช้ libthai ต้องขอบคุณ พี่เทพ สำหรับคำแนะนำ
ได้ผลลัพธ์ตามรูปแต่ยังไม่สมบูรณ์เพราะยังต้องใช้ iconv ของ php ช่วยก่อนจะส่งไปให้  th_brk_line() แล้วก็ยังอีกหลายเรื่องที่ต้องแก้ไข

php:

 $str="การบ้านเยอะมากสงสัยไม่เสร็จแน่เลยนอนตากลมอยู่บ้านดีกว่า";
 $new = th_brk_line(iconv('UTF-8','TIS-620',$str));
 echo iconv('TIS-620','UTF-8',$new);

output:



ref:
http://devzone.zend.com/303/extension-writing-part-i-introduction-to-php-and-zend/
http://linux.thai.net/pub/thailinux/software/libthai/doc/libthai-0.1.7/

My Debian logs

Fixed
  • #656917 - src:tpb: "debconf question should mention what this TPB is"
Patch to fixed. 
  • #661622 - src:isoqlog: "FTBFS"
  • #663563 - src:tnftp: "FTBFS: mv: cannot stat ..."
Patch ideal to fixed
  • #530166 - src:pvpgn "bashism in /bin/sh script"

Setup git server

   การติดตั้งระบบ git server อย่างง่ายใช้ซอฟต์แวร์ทั้งหมดประมาณนี้ (debian or ubuntu) + git + gitosis + ssh + apache + cgit
  • gitosis : ใช้สำหรับจัดการเรื่องสิทธิ์การเข้าใช้ repositories ผ่าน SSH
  • cgit : หน้าเว็บสำหรับ git repositories เขียนด้วยภาษาซี (cgi)
ssh-server: install
server:~$ sudo apt-get install openssh-server
gitosis: install
server:~$ sudo apt-get install git-core gitosis
server:~$ sudo adduser --system --shell /bin/sh --gecos 'git version control' --group --disabled-password --home /home/git git
gitosis: config

   การเริ่มต้นใช้งาน gitosis เราจะต้องใช้ ssh-key (public) ของเราสำหรับเป็น admin ถ้ายังไม่มีต้องทำการ ssh-keygen  (จำ passphrase ให้ดี)ขึ้นมาจากนั้นก็ import เข้าไปใน gitosis
mylaptop:~$ scp ~/.ssh/id_rsa.pub prach@server:./
server:~$ sudo -H -u git gitosis-init < /home/prach/id_rsa.pub
server:~$ sudo chmod +x /home/git/repositories/gitosis-admin.git/hooks/post-update
   หลังจากขั้นตอนนี้เราจะสามารถ config gitosis ผ่านทาง git repo ได้ดังนี้
mylaptop:~$ git clone git@server:gitosis-admin.git
    ในไดเรกทอรี gitosis-admin ให้แก้ไขไฟล์ชื่อ gitosis.conf เพื่อเพิ่มกลุ่มและกำหนดข้อมูลสำหรับ repositories (จากตัวอย่างจะสร้าง repo ชื่อ foobar , โดยมีสมาชิกคือ prach@mail.com) ดังนี้
mylaptop:~$ cd gitosis-admin; editor gitosis.conf
[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = prachpub@gmail.com

[group developer]
writable = foobar
members = prachpub@gmail.com

mylaptop:~$ git commit -a -m 'add foobar repo'
mylaptop:~$ git push
   เมื่อ config gitosis เรียบร้อยแล้วเราก็จะสร้าง foobar repo ขึ้นมาดังนี้
mylaptop:~$ mkdir foobar; cd foobar; git init
mylaptop:~$ git remote add origin git@server:foobar.git
mylaptop:~$ echo 'hello' > x.txt
mylaptop:~$ git add x.txt
mylaptop:~$ git commit -a -m 'hello'
mylaptop:~$ git push origin master
   สำหรับ foobar สามารถ clone ผ่านทาง ssh ได้ดังนี้
mylaptop:~$ cd /tmp;git clone git@server:foobar.git

apache2: install
 server:~$ sudo apt-get install apache2
cgit: install
server:~$ git clone git://hjemli.net/pub/git/cgi
server:~$ cd cgit;git submodule init;git submodule update
server:~$ sudo apt-get  install libcurl4-openssl-dev build-essential
server:~$ sudo make
server:~$ sudo mkdir -p /var/www/cgit/{cgi-bin,css}
server:~$ sudo cp cgit /var/www/cgit/cgi-bin/cgit.cgi
server:~$ sudo cp {cgit.css,cgit.png} /var/www/cgit/css/
cgit: config

   ตัวอย่างการ config cgit
server:~$ sudo vim /etc/cgitrc
logo=/cgit-css/cgit.png
css=/cgit-css/cgit.css
enable-index-links=1
virtual-root=/git/

repo.url=foobar
repo.desc=Foobar repositories
repo.path=/home/git/repositories/foobar.git

   เพิ่ม config ของ apache ให้รัน cgit.cgi
server:~$ sudo vim /etc/apache2/conf.d/cgit.conf
 Alias /git "/var/www/cgit/cgi-bin"


      Options FollowSymLinks +ExecCGI
      AddHandler cgi-script .cgi
      DirectoryIndex cgit.cgi

      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^.* /git/cgit.cgi/$0 [L,PT]


Alias /cgit-css "/var/www/cgit/css"

      AllowOverride None
      Options None
      Order allow,deny
      Allow from all
  จาก config ไฟล์ของ apache ต้องใช้ mod rewrite ด้วย
server:~$ sudo a2enmod rewrite
server:~$ sudo /etc/init.d/apache2 restart

   เปิด browser แล้วลองเรียกไปที่ http://server/git


Ref:

My GPG key transition

 
http://linux.sut.ac.th/prach/gpg-transition-prach.txt.asc  <- Signed with both keys
http://debianclub.org/node/539 <- Key-Singing

Thailand Mini DebCamp 2010

ประเดิม blog แรกของปีด้วยเรื่องงาน Thailand Mini DebCamp 2010 จัดขึ้นที่ขอนแก่น ต้องขอบคุณ sponsor และ ทีมงานผู้จัดงาน (พี่เทพ, อ.กิตติ์, นิวตรอน) สำหรับอ.กิตติ์ นิต้องนับถือว่าเป็น Utility man อย่างแท้จริง :-) เป็นตั้งแต่ แม่บ้าน คนขับรถ ยันพิธีกร เล่าเรื่องที่ไปกันดีกว่าไม่เอาสาระมากเดี๋ยวรอท่านอื่นมาเล่าเรื่องวิชาการอีกที

วันเดินทาง - ออกเดินทางเช้าวันที่ 12 มีนาคม 2553 พาน้องไปด้วยคือ @etcpe9, @iporsut ไปถึงบ่ายกว่า ๆ เจอ อ.กิตติ์ พี่เทพ นิวตรอน พี่อดุล เข้าไปดูสถานที่จัดงานตกเย็นทีม Opentle มาถึงพร้อมกับชาวต่างชาติ 3 คน ( Paul Wise , Yukiharu YABUKI, Daiki Ueno) กำลังจะตามไปสมทบที่โรงแรมแต่ดวงซวยจัดรถดันยางรั่วโดน (ใช้มา 4 - 5 ปีไม่เคย) เลยต้องได้ออกแรง fix bug รถตัวเองก่อน :-(
  • กลางคืน - ได้นอนกับพี่โชค คิคถึงมาก ไม่ได้นอนด้วยกันนานละ :-)

งานวันแรก (13) Opening
  • เช้า - มี DD มาสมทบอีกคนคือ Andrew Lee เปิดงานได้รับความรู้จาก DD ตัวเป็น ๆ
  • กลางคืน - งานเลี้ยงต้อนรับชาวต่างชาติเจอ "พาแลง" ของทางอีสาน เสร็จจากมื้อค่ำเเริ่มมีการหาเครื่องดื่มเป็นการอุ่นเครื่องโดยพวก DD บอก "local beer only" จัดมาซะงงบางอันไม่เคยเห็น
งานวันที่สอง (14) BSP#1
  • เช้า - เริ่มงาน BSP , ได้รู้เรื่องการทำงานเกี่ยวกับ bugs ของ debian
  • กลางคืน - วันนี้เริ่มคุ้นเคยกับสถานที่มีงาน party ภาคค่ำกันสังสรรค์กันจนดึก ( ชาวต่างติดใจเบียร์ Red Horse - ไม่น่าใช่เบียร์ไทย ) งานกำลังจะเลิกแต่ John Ham ตามมาสมทบอีก ได้พาน้องช้างและ thai whisky มาด้วย งานเข้าอย่างแรงทีนี้
งานวันที่สาม (15) BSP#2
  • เช้า - Zzzz , ผลจากเมื่อคืน hang ไม่ตื่นไปตอนเช้าสองคนผม กับ Andrew ช่วงบ่าย ๆ patch ไปสองบั๊ก #571116, #530166
  • กลางคืน - มี DD ตามาสมทบอีกคน Christian Perrier ต้อนรับด้วยขบวนรถด่วนและแมลงต่าง ๆ งานสังสรรค์คืนนี้จบเร็วเพราะคืนก่อนหน้า :-)
งานวันที่สี่ (16) BSP#3
  • บ่าย - sign key กับ Paul และก็ลาทุกคนเพื่อเดินทางกลับเพราะว่าวันรุ่งขึ้นมีสอน
อีกสามวัน - ไม่ได้ร่วมน่าเสียดาย

เป็นอีกงานที่รู้สึกประทับใจอีกครั้งเพราะได้เห็นการทำงานของ Debian Developer และเจอกับหลาย ๆ ท่านที่รู้จักกันโดยเฉพาะทีม Opentle ยังน่ารักเหมือนเดิมทุกคนจริง ๆ งานนี้ผมเป็นหนึ่งใน local staff แต่ช่วยอะไรไม่ได้มาก :-(

ผลจากงานนี้ - คิดว่าน่าจะเป็นการกระตุ้นเกี่ยวกับเรื่อง F/OSS ในบ้านเราเพิ่มขึ้นอีกมากและทำให้นักพัฒนาในบ้านเราได้เห็น การทำงาน รูปแบบงาน ของพวก F/OSS ของต่างชาติ อีกทั้งคงจะทำให้เกิดนักพัฒนาของไทยที่ทำงานร่วมกับชาวต่างชาติเพิ่มขึ้นอีกด้วย

หวังว่าประเทศของเราคงจะมีโอกาสได้จัด DebConf ซักครั้ง

ปล. ขอเรียกรวมพี่หลาย ๆ คนว่าทีม Opentle เลยละกัน, มีพี่ ๆ SIPA มาด้วย

Taiwan Mini DebConf 2009

เนื่องจากได้มีโอกาสไปด้วยในงานนี้ด้วยพร้อมกับ พี่เทพ อ.กิต และ นิวตรอน ต้องขอขอบคุณ อาจารย์ สมพันธุ์ ชาญศิลป์ หัวหน้าโครงการ SUTLinux ที่ท่านช่วยสนับสนุนค่าเดินทางให้ เพราะถ้าให้ออกเองไม่มีปัญญาไปแน่นอน การไปครั้งนี้ตั้งแต่ตอนเตรียมตัวแล้ว passport ก็ล่าช้ากว่าท่านอื่นแถมขากลับยังจะพาเขาตกเครื่องกันอีก ฮา

เมื่อไปถึงที่พักก็ได้พักอยู่รวมกันทั้ง 4 คน แล้วก็มีสมาชิกห้องเพิ่มอีก 1 คนคือ YABUKI ซึ่งเคยเจอกันแล้วที่งาน AOSS2007 สำหรับบรรยากาศภายในงานเป็นกันเองดีมากแล้วก็มี DD มากันหลายคน
ส่วนหัวข้อที่บรรยายนั้นผมสนใจที่ Debian-Edu เพราะคล้ายกับงานที่ทำอยู่ สำหรับคนที่ผมคุยบ่อย ๆ คือ Holger Levsen DD ชาวเยอรมัน แต่น่าเสียดายที่ภาษาอังกฤษไม่แข็งแรงเลยไม่ค่อยได้คุยกับใครมาก

รายละเอียดของงานดูได้จาก http://wiki.debian.org/DebianTaiwan/MiniDebConf2009

Linux Change MAC address

เขียนไว้กันลืมจะใช้ทีไรต้องหาใหม่ทุกที

# ifconfig eth0 down
#
ifconfig eth0 hw ether 00:80:48:BA:d1:20
# ifconfig eth0 up
# ifconfig eth0 |grep HWaddr

Link http://linuxhelp.blogspot.com/2005/09/how-to-change-mac-address-of-your.html

First time in this years

ไม่ได้บล๊อกเลยตั้งแต่ปลายปีที่แล้วจนถึงตอนนี้ ช่วงที่ผ่านมาศึกษาแต่เรื่องการทำ server เป็นในเชิงพวก web cluster
จากที่ได้ทำการศึกษาจึงได้แบ่งออกเป็นส่วน ๆ ดังนี้

  • High Availability (HA) : Heartbeat
  • Load Balance (LB) : Layer 4 - LVS (ldirectord) Layer 7 -HAProxy, Pound, NGINX
  • Solution for HA and LB : Piranha, Ultra Monkey
  • Cluster File System : Glusterfs, GFS, NFS, Lustre
  • Database Server : MySQL Replication, MySQL Cluster
  • Web Server : Apache, NGINX
  • Benchmark : Apache Benchmark, JMeter, Faban , My software benchmark
  • Solution for Cluster : Centos Cluster Suite, Redhat Enterpise Cluster Suite

ถึงแม้จะเป็นเรื่องที่มีมานานแล้วแต่หาข้อมูลที่สมบูรณ์ได้ยากและส่วนมากที่มีก็จะเป็นแต่พวก static page แต่ตอนนี้เว็บไซต์เกือบทั้งหมดก็จะเป็นแบบ dynamic page

GRUB 2

เนื่องจากตอนทำ SUTLinux ที่ติดตั้งลงบน NTFS แล้วพยายามจะใช้ grub(0.97) เป็นตัวบูตแต่มันไม่สามารถ access เข้าไปใน NTFS ได้ก็เลยได้มารู้ว่ามันมี grub 2 ด้วยตอนนี้อยู่ที่เวอร์ชัน 1.96 โดยเพิ่มความสามารถเข้าไปอีกมากมายแต่ที่สำคัญคือมันสามารถ access NTFS ได้ ข้อแตกต่างระหว่าง grub กับ grub2 ที่เห็นชัด ๆ ก็คือการเรียกเลขของ partition เช่น sda1 ใน grub = hd0,0 , grub2 = hd0,1

ดูตัวอย่างของ config file ได้ที่ grub.cfg

อันนี้เป็นตัวอย่างการใช้ grub 2 ทำ Graphic menu

ส่วนรายละเอียดเพิ่มเติมดูได้ที่ http://www.gnu.org/software/grub/grub-2.en.html

Puppy Linux 4.1 released

ขณะนี้ Puppy Linux ได้ทำการออก version 4.1 โดยมีความสามารถเพิ่มขึ้นจาก Puppy 4.00โดยสรุปดังนี้
  • เพิ่มโปรแกรมใหม่ Psip VOIP and PPLOG personal blog
  • อัพเกรดโปรแกรมต่าง ๆ
  • ปรับแต่งระบบให้บูตเร็วขึ้น
  • ตรวจสอบฮาร์ดแวร์ได้ดีขึ้น
  • เพิ่มระบบ pup_event (including desktop drive icons)
ปล. สำหรับรุ่นนี้จะเป็นรุ่นสุดท้ายที่ Barry Kauler จะนั่งในตำแหน่ง Benevolent Dictator (Project Leader)

สามารถดาวน์โหลดได้ที่ http://mirror.in.th/puppylinux/

SUTinRAM 4.0

งานตัวนี้ released ไปเมื่อเดือนที่แล้ว สำหรับ SUTinRAM 4.0 นั้นยังคงใช้ PuppyLinux เป็นต้นแบบในการพัฒนาเหมือนเดิม
รายละเอียดอ่านเพิ่มเติมได้จาก readmore

Combine PDF files

เราสามารถทำการรวมไฟล์ pdf หลาย ๆ ไฟล์เข้าด้วยกันได้โดยใช้คำสั่งดังนี้


$ gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=output.pdf -dBATCH 1.pdf 2.pdf 3.pdf

Add user & Passwd

ใช้ทีไรก็ต้อง search หาทุกทีเวลาจะเขียน script ให้ add user และกำหนด pass ครั้งละหลาย ๆ คนเลย blog เก็บไว้กันลืมละกัน

#!/bin/bash

for (( i = 1 ; i <= 35; i++ ))

do # Add user name

echo "Add user : user$i"

useradd -m user$i -s /bin/bash

# Set default passwd

echo "user$i:123456" | chpasswd

done

KDE on debian

เมื่อวานได้ทดลองติดตั้ง KDE 4.0 บน debian โดย package ที่ KDE 4.0 ต้องการใช้นั้นจะไม่มีอยู่ใน branch ของ debian ตัว stable เราต้องเพิ่ม unstable ลงใน /etc/apt/source.lists ส่วน KDE 4.0 นั้นจะอยู่ใน experimental banch ต้องกำหนดดังนี้
deb http://ftp.debianclub.org/debian/ experimental main non-free contrib
deb-src http://ftp.debianclub.org/debian/ experimental main non-free contrib
deb http://ftp.debianclub.org/debian/ unstable main non-free contrib
deb-src http://ftp.debianclub.org/debian/ unstable main non-free contrib

แล้วสั่ง
$sudo apt-get update
$aptitude -t experimental install kdebase kdebase-workspace

เท่านี้ก็จะได้ KDE 4.0 มาลองเล่นแล้วครับ แบบละเอียดอ่านได้ ที่นี่

Grails for Ubuntu 7.10

สืบเนื่องจากที่พี่ chanwit ให้ช่วยทำ deb package ของ grails พอดีเครื่องที่พร้อมทำเป็น ubuntu 7.10 นะครับก็ได้ได้ version ของ ubuntu แต่ก็คิดว่าถ้าบน debian ก็น่าจะได้เหมือนกัน ผมฝากผู้ที่เขียน grails ช่วยทำสอบด้วยครับมี
ปัญหา ประการใดแจ้งมาด่วนตั้ง source.list ตามนี้นะครับ

deb http://ftp.opentle.org/people/prach/ubuntu/gutsy/ ./

deb-src http://ftp.opentle.org/people/prach/ubuntu/gutsy/ ./


อย่าลืมเพิ่ม multiverse ด้วยนะครับไม่งั้นมันจะหา jdk ไม่เจอ


มาเพิ่มของ debian

deb http://ftp.opentle.org/people/prach/debian/ ./

deb-src http://ftp.opentle.org/people/prach/debian/ ./

การทำ tunnel บน linux

เนื่องจากว่าจะทำการส่ง gpg key ไปไว้บน sever แต่ที่ทำงานนั้นไม่เปิด port ให้เลยต้องทำ tunnel โดยเราต้องมี account อยู่ที่ serverไหนก็ได้ที่เขาเปิดให้ ssh ได้ สมมุติผมมี account คือprach@xxx.org มีขั้นตอนทำ tunnel ดังนี้


1. ต้องติดตั้ง dante-client


$sudo apt-get install dante-client

$sudo vim /etc/dante.conf โดย set ให้มีค่าดังนี้



route {

from: 0.0.0.0/0 to: 0.0.0.0/0 via: 127.0.0.1 port = 1080

protocol: tcp udp

proxyprotocol: socks_v4 socks_v5

method: none

}



2. remote เข้าไปใน server ที่เรามี account อยู่ แล้วก็สั่งรันโปรแกรมที่เราต้องการจะ tunnel ในตัวอย่างเป็นการส่ง gpg key ขึ้นไปบน server


$ssh -D localhost:1080 prach@xxx.org

$socksify gpg --keyserver pgp.mit.edu --send-keys 434FC0E1

Python 2.5.1

เรื่องมีอยู่ว่าต้องนำเอา package firstboot จาก LinuxTLE 8.0.1 มา rebuild ใน ubuntu 7.10 ระหว่าง build มันก็แจ้ง error ออกมาเพราะ ใน source code ของ firstboot ที่เขียนด้วย python มันมีส่วนที่เป็นภาษาไทยอยู่ด้วย ซึ่งตอนที่ใช้ python 2.4 มันเป็นแค่ warning แต่ใน 2.5 กลับกลายเป็น error ซึ่งหาดูแล้วมีวิธีแก้คือ ให้เพิ่ม ส่วนหัวของไฟล์ code ไปอีกหนึ่งบรรทัดดังนี้ # coding: UTF-8 แล้วก็จะทำให้รันผ่าน

Resume working

กลับมาทำงานแล้วครับหลังจากหายไปหลายเดือน ตอนนี้กำลังทำ SUTinRam 3.0

พอดีทาง Puppy Linux ออกเวอร์ชันใหม่ คือ 2.16 ก็เลยจะใช้ตัวนี้มาเป็น base ในการพัฒนา

และก็คงจะแก้ปัญหาต่าง ๆ ที่พบในเวอร์ชั่นก่อนหน้านี้ด้วย ส่วนความคืบหน้าจะรายงานมาเป็นระยะครับ

ส่วนเครื่องที่จะไว้ลง debian หลังจากไม่ได้เปิดมันนานเกิน กลับมาจะใช้งานปรากฏว่ามัน เจ๋งไปแล้ว

เซ็งเลย ต้องมานั่งแก้ แล้วจะลง debian 4.0 r0

Blog Tag

โดน tag จาก พี่ป๊อก พึ่งจะได้เข้าไปอ่านครับ หยุดพักไปตั้งแต่ linux TLE 8 ออกเบต้า 1 ตอนนี้เริ่มกลับมาทำงานแล้ว

1. ชื่อที่ใช้ในโลกของ cyber space , prach, prachpub ก็คือชื่อจริง ปรัชญ์(โอ้)

2. อดีตเคยเป็นนักฟุตบอลจังหวัดจันทบุรี ตำแหน่งกองหลัง (เล่นถึงรุ่น 16 ปี)

3. เล่นคอมพิวเตอร์ครั้งแรกได้ใช้ DOS, Windows 3.1

4. เล่น linux ครั้งแรกตอน ม.ปลาย (ตอนนั้นอายุ 16 ปี)

5. คนที่แนะนำให้รู้จัก linux คือพี่โรงเรียนผมเอง คือ sf-alpha


ไม่รู้จะ tag ต่อให้ใครดีที่รู้จักก็โดน tag หมดแล้ว T-T

LinuxTLE 8 Beta Release

ขณะนี้ทางทีมพัฒนาลินุกซ์ได้ทำการออก LinuxTLE 8.0 Beta (รุ่นทดสอบ) โดยรายละเอียดอ่านได้ที่ release-note


สามารถดาวน์โหลดได้ที่ http://ftp.opentle.org/pub/linux-tle/8.0/iso/linuxtle-8.0-20061218-i386.iso

iceweasel-libthai 2.0 on debian

build เสร็จแล้วสำหรับ iceweasel 2.0 + patch ตัดคำไทยบน debian ซึ่งตัวนี้
ได้ทำการแยกเป็น component ออกมาต่างหากแบบเดียวกับ xulrunner-libthai
ของพี่เทพ ตอนนี้พี่เทพเอาเข้าไปไว้ใน linux.thai.net/apt แล้วสามารถ
apt-get install ได้เลยนะครับ

Bug Pango ของ Ubuntu 6.10

ปัญหาเวลาเราเปิด folder ที่มัไฟล์ภาษาไทยอยู่ภายในแล้ว nautilus จะปิดตัวเองทันทีโดยจะมีการแจ้ง error ออกมาสรุปแล้วมันเป็น bug ของ pango ซึ่งได้ทำการแก้ไขแล้วใน pango ตัวล่าสุด (สำหรับผู้ที่ใช้ Ubuntu 6.10 น่าจะเจอปัญหานี้)
ตอนนี้ mrchoke ได้ build libpango มาใหม่โดยเอาตัวที่ update ล่าสุดมา patch สามารถ apt install ได้เลยนะครับใช้ source list นี้ครับ


deb http://ftp.opentle.org/people/prach/ubuntu/edgy/ ./


*หมายเหตุ ถ้า mount cdrom แล้วไม่แสดงภาษาไทยจะต้องเข้าไปเพิ่ม option ใน /etc/fstab ของ cdrom ให้ใช้ UTF-8

IceWeasel 2.0 + libthai

รับปากว่าจะ build iceweasel 2.0 ด้วย patch ตัดคำไทยกับ พี่เทพ วันนี้สำเร็จแล้วครับโดยดัดแปลงจาก patch ตัดคำของ xulrunner-libthai 1.8.0.8

ตอนนี้ build บน Ubuntu 6.10 เสร็จแล้วผมทำ screenshot ไว้ด้วยอยากให้ลองนำไปทดสอบดูนะครับ

สามารถ apt-get install iceweasel ได้เลยนะครับโดยเพิ่มในไฟล์ /etc/apt/sources.list ดังนี้


deb http://ftp.opentle.org/people/prach/ubuntu/edgy/ ./


*หมายเหตู ต้อง remove firefox เดิมออกก่อนนะครับ

สำหรับ debian ถ้าเสร็จแล้วจะมาเขียนบอกนะครับ

Behind Ubuntu

ตามอ่านมาน่านแล้วครับสำหรับเว็ป behindubuntu.org เนื้อหาจะเป็นบทสัมภาษณ์
นักพัฒนาของ Ubuntu โดยจะมีภาพโต๊ะทำงานและหน้าจอของนักพัฒนาให้ดูด้วย

อันนี้แถมนะครับเป็น Starter Guide ของ Ubuntu 6.10 (Edgy)

Codename for LinuxTLE 8

ตอนนี้กำลังต้องการผลการโหวตชื่อรหัสพัฒนา(Codename) ของ LinuxTLE เวอร์ชัน 8 ช่วยโหวตกันด้วยนะครับ

ช่วยกันโหวตได้ ที่นี่นะครับ

อีกหนึ่งความคิดเห็น

นี่เป็นอีกหนึ่งความคิดเห็นเกี่ยวกับกรณีคำให้สัมภาษณ์ของรัฐมนตรีกระทรวง ICT ในมุมมองของนักวิจัยและอาจารย์ระดับมหาวิทยาลัยอยากให้ อ่านครับ

อ่านแล้วสามารถ comment ได้ ที่นี่

เสวนา TLUG หัวข้อ "อนาคตโอเพนซอร์สไทย"

เสวนา TLUG หัวข้อ "อนาคตโอเพนซอร์สไทย"

วันเวลา: เสาร์ 25 พฤศจิกายน 2549 (เสาร์นี้) 13.00-16.00

สถานที่: ห้อง 503 ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ (ห้องเดิม BTD1)



ขอเชิญผู้ใช้และผู้พัฒนาโอเพนซอร์สทุกท่าน ร่วมแลกเปลี่ยนประสบการณ์ใช้งานซอฟต์แวร์โอเพนซอร์สทุกชนิดในหน่วยงานของตนเ อง รวมถึงแสดงความคิดเห็นว่าทิศทางการพัฒนาโอเพนซอร์สในประเทศไทยควรมุ่งไปทางไหน ชุมชนควรมีบทบาทอย่างไร ในการเสวนา TLUG หัวข้อ "อนาคตโอเพนซอร์สไทย"


รูปแบบงานจะแตกต่างจาก TLUG ครั้งก่อนๆ ครับ ผมแบ่งเวลาสำหรับแสดงความคิดเห็นไว้ 10 ท่าน ท่านละ 15 นาที ถ้าสนใจจะพูดก็ลงชื่อไว้ในคอมเมนต์ได้เลย อยากให้ขึ้นมาพูดกันเยอะๆ เพราะเราต้องการความคิดเห็นที่หลากหลายจากทุกคนนะ


ผู้ร่วมเสวนาที่คอนเฟิร์ม

  • คุณเทพพิทักษ์ การุญบุญญานันท์

  • คุณโดม เจริญยศ

  • คุณอัครวุฒิ ตำราเรียง (Mambohub.com)





ป.ล. งานนี้เป็นการหาไอเดียว่าวงการโอเพนซอร์สจะมุ่งไปทางไหนด้วยกำลังของชุมชนเอง ไม่ใช่การปราศัยเรื่องรัฐมนตรี ICT นะครับ

ป.ล. 2 เนื่องจากมีเวลากระชั้นมาก ดังนั้นฝากช่วยประชาสัมพันธ์งานกันเยอะๆ เลย

Thai packages for Edgy

นั่งทำ packages ของ Linux TLE ก็เลยอยากจะให้นำไปลองใช้กันดูนะครับสำหรับคนที่ใช้ Ubuntu 6.10 (Edgy) โดยมี packages ดังนี้

  • arnthai 2.0

  • gtk-im-libthai 0.1.4

  • libdatrie 0.1.1

  • libthai 0.1.7

  • thailatex 0.4


สำหรับผู้ที่ใช้ apt เพิ่มที่ไฟล์ /etc/apt/sources.list ดังนี้



deb http://ftp.opentle.org/people/prach/ubuntu/edgy/ ./

Ubuntu 6.10 Released

ออกแล้วหลังจาที่รอมาทั้งวัน http://www.ubuntu.com/news/610released

Firefox 2.0 released

ออกมาแล้วครับ firefox 2.0 แต่ยังไม่มีการประกาศ แต่ตอนนี้ทาง mozilla ได้ release source ให้download แล้ว http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0/

Ubuntu 6.10 (Edgy Eft) Release Candidate

เมื่อวันที่ 19 ubuntu 6.10 ออก release candidate มาแล้ว ตอนนี้ใกล้ออกเต็มที่แล้วครับตามกำหนดบอกว่าจะออก final version วันที่ 26 นี้ต้องรอดู

Ubuntu 6.10 (Edgy Eft) Beta

มี features ใหม่ดังนี้
  • Upstart แทน init
  • New bootup splash
  • Gnome 2.16
  • Tomboy
  • F-Spot แทน gthumb
  • Evolution 2.8.0
  • Firefox 2.0
  • OpenOffice 2.0.4 RC2
  • Gaim 2.0 3.1beta
  • Orca แทน Gnopernicus
  • New Theme
รายละเอียดเพิ่มเติมอ่านที่ http://www.ubuntu.com/news/EdgyBeta
download at http://releases.ubuntu.com/6.10/

Remastering Ubuntu 6.10 (Edgy) Livecd

ตอนนี้มาฝึกงานอยู่ที่เนคเทคครับ ได้มาช่วยพี่โชคดูในส่วนการติดตั้ง Ubuntu แบบ livecd ตอนนี้ก็ศึกษาขั้นตอนจนสามารถทำการ remaster ได้แล้วโดยมีขั้นตอนต่าง ๆ ดังนี้


1. คัดลอก LiveCD


ทำการ download iso ของ edgy-desktop-i386.iso กำหนดค่าไดเรคทอรีที่จะใช้ในการพัฒนา (export work=~/remaster)



#mkdir ~/remaster

#export work=~/remaster



จากนั้นทำการ mount และคัดลอกข้้อมูลใน iso ลงในไดเรคทอรี่ที่ใช้พัฒนา



#mkdir $work/cdrom-org

#mount -o loop edgy-desktop-i386 $work/cdrom-org

#mkdir $work/cdrom-cust

#cp -a $work/cdrom-org $work/cdrom-cust



2. Mount compressed filesystem


ไฟล์ระบบของ ubuntu livecd นั้น ถูกบีบอัดด้วย squashfs



#mkdir $work/filesystem.org

#mount -t squashfs -o loop $work/cdrom-org/casper/filesystem.squashfs $work/filesystem.org




3. สร้าง image สำหรับใช้ในการปรับแต่ง compress filesystem


ขั้นตอนนี้ต้องการเนื้อที่ว่างประมาณ 2 GB ในการสร้างไฟล์ image



#dd if=/dev/zero of=$work/filesystem.img bs=1M count=2147

#mke2fs $work/filesystem.img

#mkdir $work/filesystem.cust

#moutn -o loop $work/filesystem.img $work/filesystem.cust



ทำการคัดลอกไฟล์ระบบเดิมมายังไฟล์ image ที่เราสร้างขึ้นมาใหม่



#cp -af $work/filesystem.org/. $work/filesystem.cust

#umount $work/filesystem.org



4. Chroot เพื่อทำการแก้ไขระบบต่าง ๆ



#cp /etc/resolv.conf $work/filesystem.cust/etc/

#mount -t proc -o bind /proc $work/filesystem.cust/proc

#chroot $work/filesystem.cust /bin/bash



ขณะนี้เราอยู่ในระบบที่จะต้องการแก้ไข ในตัวอย่างนี้ผมจะทำการติดตั้ง language-support-th



#apt-get update

#apt-get install language-support-th

#apt-get clean

#exit



ขณะนี้ได้ออกจากระบบที่ทำการแก้ไขแล้ว



#umount $work/filesystem.cust/proc

#rm $work/filesystem.cust/etc/resolv.conf



5. แก้ไขเสร็จแล้ว


ต้องอัพเดทรายการ package และทำการ ลบข้อมูลที่ไม่ได้ใช้ออกจากระบบ


#
chroot $work/filesystem.cust dpkg-query -W --showformat='${Package} ${Version}\n' \
> $work/iso-cust/casper/filesystem.manifest

#dd if=/dev/zero of=$work/filesystem.cust/dummyfile

#rm $work/filesystem.cust/dummyfile



6. บีบอัดไฟล์ระบบ


#rm $work/iso-cust/casper/filesystem.squashfs

#cd $work/filesystem.cust

#mksquashfs . $work/iso-cust/casper/filesystem.squashfs

#cd ../

#umount filesystem.cust



7. สร้าง iso ไฟล์


#cd $work/iso-cust

#find . -type f -print0 |xargs -0 md5sum |sudo tee md5sum.txt

#cd ../

#mkisofs
-o edgy-desktop-cust.iso \

-b isolinux/isolinux.bin \

-c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -r -V "Custom Edgy Desktop" -cache-inodes -J -l iso-cust



เมื่อเสร็จแล้วจะได้ไฟล์ iso มา ก็นำไปเขียนลงแผ่น cd เท่านี้เราก็จะได้ แผ่น ubuntu livecd ของเราเองแล้วครับ

DSL-N

ตอนนี้กำลังพัฒนา SUTinRAM โดยจะเป็น linux ที่ระบบทั้งหมดทำงานในแรม โดยใช้ Damn Small Linux (DSL) เป็น base เพิ่มเติมระบบภาษาไทยเพราะระบบเดิมไม่สนันสนุนภาษาไทย แต่ติดปัญหาอยู่ที่เรื่องการอินพุทภาษาไทยใช้ได้บางโปรแกรมในตอนนี้ พอดีทาง DSL ออก version ใหม่คือ DSL-N จะมีขนาดใหญ่ขึ้นแต่เปลี่ยนจาก gtk-1 มาเป็น gtk-2 น่าจะทำให้เซตระบบภาษาง่ายขึ้นตอนนี้กำลังลองอยู่ครับถ้าได้ก็คงเปลี่ยน base

Codefest

วันนี้ได้มาร่วมกิจกรรม CodeFest ดีครับได้รู้จักกับนักพัฒนาท่านอื่นได้แลกเปลี่ยนความรู้กัน แล้วยังได้ฝึกการทำงานร่วมกันเป็นทีมกลุ่มของผมได้ทำโปรแกรมอ่านแบบฟอร์ม (Check Mark) แล้วก็มีอีกกลุ่มที่น่าสนใจก็คือ Vihicle Tracking System (ระบบติดตามพาหนะ) ที่นำทีมโดยพี่ป๊อก

Linux Timeline

ไปอ่านเจอใน Linux Journal น่าสนใจดีครับเหตุการณ์ที่สำคัญ ๆ ของ Linux ตั่งแต่ปี 1991 - 2002 ลองเข้าไปอ่านดูนะครับ http://www.linuxjournal.com/article/9065

ความทรงจำที่ ม.ข.

เสร็จเรียบร้อยแล้วครับการอบรม java มีพิธีปิดไปเมื่อวันที่ 22 ที่ผ่านมา ตัวผมก็สามารถสอบผ่านมาได้สำหรับ SCJP 1.4 ด้วย score 70 % แต่ผมเห็นน้องหลายคนได้คะแนนกัน 80 % ขึ้นตั้งหลายคนที่สำคัญมีนอ้งผู้หญิงคนหนึ่งได้ตั้ง 95 % เห็นแล้วดีใจครับเด็กรุ่นน้อง ๆ มีเก่ง ๆ กันเยอะดีครับ กลับมาแล้วก็ยังคิดถึงเพื่อนที่อบรมด้วยกันครับถึงแม้จะเป็นเพื่อนที่มาจากมหาลัยเดีี๋ยวกันก็ตาม แต่มาอยู่ที่ม.ข. ได้ใช้เวลาอยู่ด้วยกันตลอด คิดถึงจัง

Java Programmer Certification Boot Camp

หลังจากเดินทางมาค่าย อบรมภาษาจาวา เพื่อเตรียมตัวสอบ certification ของบริษัท Sun ตั่งแต่วันที่ 15 พฤษภาคม 2549 ตอนนี้ก็ผ่านไป 4 วันแล้ว ได้ความรู้ดีครับแต่ไม่ค่อยมีเวลาทำอะไรเรียนตั้งแต่ 9.00 -20.00 น. ตอนนี้อยู่ที่ ม.ขอนแก่น ถ้ามีโอกาสว่าจะลองเข้าไปคุยกับเจ้าของ เว็ป kitty.in.th อยากเจอตัวจริงนะครับบ ตอนนี้ก็ต้องตั้งใจทบทวนจาวา ใกล้แล้วจะสอบ cert วันที่ 22 นี้ ได้ผลยังไงจะเล่าให้ฟังครับ

Damnsmall Linux + thai

หลังจากการนั่งศึกษา damnsmall linux อย่างจริงจังมาหลายวัน ทำให้ต้องศึกษาสิ่งใหม่ ๆ อีกมากมาย เช่น
Xvesa , Fluxbox ซึ่ง distro ส่วนใหญ่จะไม่ใช้กัน และยังพวกระบบ keyboard กับ font ก็ยังใช้ระบบเก่า เพราะต้องการทำให้ระบบมีขนาดกะทัดรัด ไม่ใช้ xkb แต่ใช้ xmodmap แทน ส่วนพวก font ก็ไม่ใช้พวก mkfontdir ต้องมานั่งทำ fonts.dir เองอีก เล่นเอางงไปหลายวัน กว่าจะทำให้อ่านไทยและ input ไืทยได้แต่ก็ยังไม่ค่อยสมบูรณ์นักต้องปรับปรุงอีก เดี๋ยวถ้าเสร็จว่าจะทำเอกสารสำหรับการใช้ภาษาไทยบน DSL เพื่อใครสนใจใช้จะได้ง่าย

Translation BMP

ว่าจะแปลตั้งนานแล้วครับสำหรับ Beem Media Player พอดีช่วงนี้ปิดเทอมเลยได้แปลซะที โดยดูตัวอย่างการแปล XMMS ของพี่โชค ใช้เวลาแปลประมาณ 2 วัน ตอนนี้ submit ไฟล์ไปแล้วรอการตอบรับครับ

Kororaa Xgl Live CD 0.2

คงเคยได้ยินกันนะครับสำหรับ linux xgl ที่บริษัท Novell นำมาเปิดตัว มี live ออกมาแล้วที่ใช้ xgl
ที่ http://kororaa.org/

This is life.

นี่หรือ ชีวิต ยิ่งอายุมากขึ้นเท่าผมก็คิดว่าชีวิตเราก็ยิ่งยุ่งขึ้นเท่า นั้น หรือ อาจเป็นเพราะผมยังจัดการชีวิตไม่ดีพอ ตอนนี้อายุก็ จะ 22 แล้วทำไม ช่วงนี้เหมือนชีวิตไร้จุดยืน จากครั้งอดีตเราคิดเราค้นพบว่าชีวิตของเราต้องการอะไรรัก ที่ จะทำอะไร ชอบ อะไร แล้วเราก็ได้พาตัวเรามายืนอยู่นะจุดนั้นแล้ว แต่ก็ไม่เข้าใจอีกละว่าทำไมต้องทำให้ตัวเราตกลงไปอยู่ในจุดที่ตำลงกว่าเดิม จึงทำให้ต้องพยายามทำให้ตัวเองกลับไปในจุดนั้นให้ได้ มันก็คือการเสียเวลาดี นี่เอง แต่ถ้ามองดี ๆ แล้ว เวลาไม่เคยเสียไปโดยไร้ประโยชน์ เพียงแต่เราจะมองย้อนกลับไปดูในสิ่งที่เราทำในอดีตว่ามันสอนอะไรเราบ้างในอนาคตเราจะได้ไม่ทำตัวเช่นนั้นอีก ผ่านชีวิตมาตั้งนานนะ ก็คิดว่าช่วงอายุ 21 ปี นี่แหละ ที่มีอะไรเกิดขึ้นในชีวิตมากที่สุด ทั้งดีและร้าย ปน ๆ กันไป ไม่รู้เหมือนกันว่าพลังต่าง ๆ ในชีวิตมันหายไปไหนหมด เหมือนชีวิตมันหดหู่ไร้กำลังใจ เหมือนคนกำลังหมดไฟไม่น่าเชื่อนะว่าจะกำลังเกิดกับ คน ๆ นี้ในช่วงเวลาอายุเท่านี้เอง เฮ้อออเหนื่อยทั้ง ๆ ที่ ไม่ค่อยได้ทำอะไร คำที่เขากล่าวไว้ว่าชีวิตมีทั้งทุกข์และสุขปน ๆ กัน แต่ไม่เข้าใจว่าทำไมชีวิตในช่วงนี้มักจะมีแต่ทุกข์ จากที่เขียนมามีแต่ความสับสน มีแต่ คำว่า "ทำไม" "อะไร" "ไม่รู้" เต็มไปหมด
--- เหนื่อยกายนะพอทน แต่เหนื่อยใจไม่รู้จะทนยังไง
--- ชีวิตยังไม่สิ้นก็ต้อง ดิ้นกันต่อไป
--- คนที่ไม่เคยลำบากแล้วจะสบายมันไม่มี

Hacker

ใครสนใจเรื่อง hacker ลองอ่านที่นี่ดูนะครับ
http://www.thaiadmin.org/board/index.php?topic=16979.0

Compiling firefox แบบ static library

ตอนนี้กำลัง compile firefox บน linux TLE แบบ static ใช้
1. Firefox 1.5
2. Mozilla ICU Thai patch 2.0
3. Mozilla with-icu patch 0.6
กว่าจะผ่านแต่ละขั้นงงดี ติดโน้นติดนี่กว่าจะ ./configure ผ่าน แล้วยังมาติดตอน compile อีกต้องใช้ autoconf 2.13 อีก
เดียวถ้าเสร็จแล้วจะมาเขียนวิธีการ compile อีกที

Ajax (programming)

Ajax ย่อมาจาก Asynchronous JavaScript and XML เป็นวิธีการพัฒนาโปรแกรมเว็บโดยใช้หลาย ๆ เทคโนโลยีมาร่วมกันดังต่อไปนี้
  • XHTML หรือ HTML และ CSS สำหรับ สร้างและกำหนดรูปแบบข้อมูล
  • Document Object Model ใช้ JavaScript ในการสร้าง, ติดต่อกับผู้ใช้และแสดงหน้าเว็บแบบ dynamic
  • XMLHttpRequest สำหรับให้ object แลกเปลี่ยนข้อมูลแบบ asynchronously กับ web server ส่วนมากจะใช้ XML แต่รูปแบบอื่นก็ใช้ได้ดังนี้ HTML, plain text, JSON, EBML

ตัวของ Ajax นั้นไม่ใช่ technology แต่เป็นการใช้หลาย ๆ เทคโนโลยีมาทำงานร่วมกัน ข้อดีของการนำ Ajax ไปใช้งานนั้นจะทำให้ web application ของเรานั้นทำงานได้เร็วขึ้นเพราะเมื่อ user ต้องการข้อมูลในส่วนไหนก็จะ update เฉพาะส่วนนั้นไม่ต้อง update ทั้งหมด

^-^ : วันนี้นำมาเล่าเท่านี้ก่อนเดี๋ยวถ้าศึกษาเพิ่มอีกแล้วจะนำมาเล่าต่อครับ

PHP 5.1.0 Released

PHP5 ออกเวอร์ชันใหม่แล้ว 5.1.0 สามารถโหลดได้ที่ http://www.php.net

Google logos

สามารถเข้าไปดู Logo เก่าของ google ได้ที่ http://www.google.com/holidaylogos.html

NLC6

การแข่งขันระบบปฏิบัติการลินุกซ์ (NECTEC Linux Competition: NLC ) ครั้งที่ 6 ได้เปิดรับสมัครแล้ว
ดูรายละเอียดได้ที่ http://ccp.nectec.or.th/activity/nlc6/

Web Badges / Buttons

ลองเข้าไปดูมีวิธีทำ web badges/buttons และ buttons ที่เกี่ยวกับ linux / opensource ได้ที่http://www.zwahlendesign.ch/en/node/19

Symphony OS

ขอแนะนำ Symphony OS เป็น linux แบบ desktop พัฒนาจาก Debian และ Knoppix และจุดเด่นของ linux ตัวนี้คือได้มีการสร้าง Desktop environment ขึ้นมาใช้งานเองคือ Mezzo Desktop environment และมีหน้าตาที่สวยงามและแปลกไปจาก KDE & Gnome สามารถดูรายละเอียดเพิ่มเติมได้ที่ www.symphonyos.com

Run anaconda on X

สร้าง folder สำหรับ stage2 แล้ว copy ข้อมูลภายในไฟล์จาก stage2 ของตัวติดตั้งมาใส่ใน folder ที่สร้างขึ้น
ทำการ export folder ที่จะแก้ไข
#export PYTHONPATH=/lab/work/edit/stage2/usr/lib/anaconda
#export BASE=:/lab/work/edit/stage2/usr/lib/anaconda
#export PATH=$PATH:/lab/work/edit/stage2/usr/lib/anaconda-runtime/

คำสั่งที่ใช้รัน anaconda บน X ดังนี้

#anaconda --test -m nfs://lab/work/edit/stage2/usr/lib/anaconda

Learning Python

ช่วงนี้กำลังศึกษาภาษา Ptyhon ครับเพราะต้องทำการแก้ไขดัดแปลง anaconda ซึ่งเขียนด้วยภาษา Python ได้เรื่องอย่างไรเดี๋ยวจะมาเล่าให้ฟังครับ

Mirror of SUTLinux

ต้องขอขอบคุณพี่ปอครับ ได้เนื้อที่ไว้เก็บงาน แทน server เก่าที่ไม่ได้เรื่อง โหลดแล้วค้าง
http://mirrors.scphost.com/pub/sutlinux/

ชีวิตช่วงปิดเทอม

ช่วงนี้ปิดเทอมกลับมาอยู่บ้านไม่ค่อยได้ศึกษาอะไรใหม่ ๆ เลย เพราะที่บ้านไม่มีโทรศัพท์เลยไม่สามารถเล่น net ได้
ก็เลยไม่รู้จะหาอะไรใหม่ ๆ เล่นได้ยังไง ปิดเทอมก็เลยเหมือนพักผ่อนจริง ๆ อยู่บ้านดูหนัง ฟังเพลง ขับรถไปโน้นมานี่ แล้วก็คุยโทรศัพท์ ช่วงนี้ก็พอได้ลองบ้างกับ embedded linux อ๋อที่สำคัญวันนี้เกรดออก วิชาที่หนักใจก็รอดมาได้ ก็คงน่าจะจบ 4 ปีเหมือนคนปกติแล้วครับ

SUT-MDE 1.0 Released

ออกแล้วครับสำหรับ SUT-MDE 1.0 (Mobile Development Environment) เป็น livecd ที่สามารถติดตั้งลงใน harddisk ได้ เหมาะสำหรับใช้เขียนโปรแกรมภาษา c/c++ , java และใช้ในการเรียนการสอนการเขียนโปรแกรม
  • Anjuta 1.2.2 (สำหรับเขียน c/c++)
  • Eclipse 3.1 (สำหรับเขียน java)
  • Blender3D 2.37a (สำหรับทำ 3D)
  • ได้ทำการเปลี่ยน themes และ engine ของ gnome ใหม่
  • เมื่อทำการติดตั้งลง harddisk แล้วสามารถขยายเนื้อที่ได้อีก
สามารถ download และอ่าน readme
Screenshots







Fixed xterm+thai

วันนี้อ.สมพันธุ์ โทรมาบอกว่าแก้ปัญหาการแสดงภาษาไทยใน xterm ของ SUT-MDE 1.0 ได้แล้ว ต้องขอโทษอาจารย์จริง ๆ ที่ไม่ด้ช่วยแก้ในส่วนนี้ เพราะติดอยู่ในช่วงสอบพอดี จะตายอยู่แล้ว พรุ่งนี้อาจารย์จะเอาตัวที่แก้เสร็จแล้วมาให้ทดสอบและผมอาจจะเพิ่มเติมอะไรบางอย่างเข้าไป และก็น่าจะ release ได้แล้ว อ่านหนังสือต่อแล้วเดี๋ยวไม่รอด

uClinux

เมื่อวันก่อนได้คุย m กับพี่ปอเกี่ยวกับเรื่อง Project ที่พี่เขาทำแล้วมันเป็นเรื่องเกี่ยวกับ Embedded linux ซึ่งเป็นเรื่องที่สนใจอยู่นานแล้วแต่ยังไม่มีโอกาสได้ลองศึกษาจริงจังสักทีเพราะไม่รู้จะปรึกษาใคร ก็พอได้คุยกับพี่แล้วก็พอจะเริ่มรู้แล้วว่าต้องเริ่มจากตรงไหน วันนี้เลยนั่ง search google คำว่า embedded linux ก็เลยเข้าไปอ่านของ uClinux ซึ่งเป็น embedded linux ตัวหนึ่งซึ่งเราสามารถนำมันมาทดลอง กับ emulator ได้ซึ่งมีอยู่หลายตัว เดี๋ยวว่าจะลองเอามาเล่นดู ถ้าได้เล่นแล้วจะมาเล่าสู่กันฟังครับ

Favourites Icon

Favourites Icon เรียกย่อ ๆ ว่า Favicon เคยเห็นกันใช่ไหมครับรูป icon ที่อยู่หน้า url เวลาเราพิมพ์ชื่อ site ลงใน browser ถ้าอยากรู้ว่าทำยังไง
ดูได้ที่ http://poonlap.blogspot.com/2005/08/faviconico.html

Problem of xterm+thai

ใกล้เสร็จแล้วครับสำหรับ SUT-MDE 1.0 ต่อนนี้กำลังแก้ปัญหาเกี่ยวกับการแสดงภาษาไทยใน x terminal น่ะครับคาดว่คงไม่น่าเกินสุดเดือนนี้น่าจะออก version stable ได้แล้ว

เริ่มสอบปลายภาคแล้ว

ก็เป็นแบบนี้ละ เรียน 3 เทอม แป๋บเดี๋ยวก็สอบแล้ว

วันแม่

เป็นครั้งแรกที่ได้ทำอะไรเป็นพิเศษสำหรับแม่ วันนี้ตื่นแต่เช้า 6 โมงตรงรีบไปตลาดซื้อพวงมาลัยมาไหว้แม่ พอทำแล้วรู้สึกดีแต่ก็รูสึก เขิน ๆ นะเพราะเป็นครั้งแรก พรุ่งนี้ก็ต้องกลับมหาลัยแล้ว
ปล.วันนี้เป็นแม่ก็ขอให้เป็นวันที่เราพึงระลึกถึงแม่แล้วก็เริ่มต้นที่จะดูแลเอาใจใส่และรักท่านให้มาก ๆ

Screenshot of SUT-MDE 1.0 (beta)

รูปร่างหน้าตาของ SUT-MDE 1.0 เวอร์ชัน beta ซึ่งตัว stable ก็น่าจะไม่ต่างจากนี้เท่าไร










เปลี่ยน icons ของ SUT-MDE

เมื่อเราดาวน์โหลดพวก icons ของ gnome มาแล้วเราจะต้องแตกไฟล์แล้วนำไปไว้ที่ห้อง /usr/share/icons
จากนั้นก็เข้าไปแก้ config ไฟล์ใน gconf ก็จะทำให้ icons ที่เราเลือกเป็นค่า default ของระบบ

SUT-MDE

ช่วงนี้กำลังทำ SUT-MDE เป็น livecd เวอร์ชันที่ใช้สำหรับพัฒนาโปรแกรมโดยตอนนี้ได้เพิ่มโปรแกรมสำหรับใช้เขียน
โปรแกรมหลักสองตัวคือ Anjuta และ Eclipse แล้วได้ใส่ Blender สำหรับทำพวก 3D ด้วยตอนนี้ยังอยู่ในช่วงพัฒนาและน่าจะมี beta version ออกมาในไม่ช้าครับ

How to create isolinux splash

อ่านได้ที่ http://www.mrchoke.org/node/41

ไม่ว่างเลย

ช่วงนี้วุ่นอยู่กับกิจกรรมของมหาวิทยาลัยเลยไม่ค่อยมีเวลาลองเล่นหรือทำอะไร
เพิ่มเติมเลย

Open source & Networking Camp

กลับจากการออกค่ายแล้วสนุกมากได้ประสบการณ์แปลกใหม่เพิ่มขึ้นมาก ได้ไปสัมผัสกับชีวิตชนบท
ได้ฟังความคิดเห็นจากครูที่มีอุดมการณ์ตั้งใจจะมาสอนตามชนบท ส่วนกิจกรรมที่ทางค่ายได้ไปทำจะเล่าให้ฟังอีกทีครับ

Relax

ตั่งแต่กลับมาอยู่บ้านยังไม่ได้เริ่มงานเป็นชิ้นเป็นอันเลยมีแต่ไปเที่ยวหรือไม่ก็ขับรถไปส่งคนอื่น ก็ว่าจะเริ่มทำงานเร็ว ๆ นี้ละ เหลือโปรแกรมเที่ยวสุดท้ายคือไปนนอนเกาะ

เกณฑ์ทหาร

วันนี้มาเกณฑ์ทหารขนาดมาผ่อนผันยังรอนานมากตอนแรกบอกว่าจะเร็วแล้วก็เลื่อนไปอีกไม่รู้จะเสร็จเมื่อไร ปีที่แล้วเห็นว่าแป๊บเดียวเสร็จสำหรับผ่อนผัน

ตอนนี้อยู่ที่จันทบุรี

ตอนนี้ปิดเทอมกลับมาอยู่บ้านแล้วโอกาสเล่น net ก็น้อยลงคงจะไม่ค่อยได้ post อะไรเท่าไรนัก

ความคืบหน้าของ SUTLiveCD 2.0

ใกล้จะออกแล้วสำหรับ SUTLiveCD 2.0 โดยรุ่นนี้พัฒนาต่อจาก Yamo1-LiveCD
โดยได้พัฒนาในส่วนที่คัดลอกตัวระบบลงใน partition ของ windows โดยแบ่งเป็น 2 ไฟล์ เป็นส่วนของ ระบบ 1 ไฟล์ และswap อีกหนึ่งไฟล์
โดยเมื่อทำการบูตด้วยแผ่น cd จะมีการถามว่าจะลงใน partition ของ windows ที่มีเนื้อที่ว่างพอหรือไม่
ถ้าไม่ต้องการลงหรือมีเนื้อที่ไม่พอระบบก็จะทำงานในแผ่น cd แต่ถ้าลงในเครื่องแล้วระบบก็จะ eject แผ่นออกมาอัตโนมัติ
และมีการแก้ไขปัญหาต่างอีกดังนี้
1. เมื่อจะ shutdown หรือ reboot จะมีการ eject แผ่นออกมาให้ก่อน
2. ใช้โปรแกรม Beem Media Player แทน XMMS เพื่อแก้ปัญหาเรื่องภาษาไทย
3. การทำ auto mount usb storage
4. ทำให้โปรแกรม OfficeTLE ใช้ font ไทยแบบ truetype ที่มีอยู่ได้หมด

สอบเสร็จแล้ว

วันนี้สอบเสร็จแล้วรู้สึกสบายใจ จะได้มีเวลาว่างทำ sutlivecd ต่อเสียที แต่วันที่ 1 เมษายน 2548 ก็ต้องไปช่วยอบรม linux ให้กับชมรมเพื่อเตรียมไปออกค่ายกันวันที่ 6-8 พฤษภาคม 2548 ซึ่งเป็นค่ายครั้งแรกของชมรม

auto mount usb ใน sutlivecd 2.0

ใช้ได้แล้วสำหรับการติดต่อกับอุปกรณ์ usb และทำการ mount อัตโนมัติ แก้ไขโดยได้เป็นมาใช้ folder /dev ของ knoppix แทนของเดิมที่มี device อยู่น้อย ถ้าเป็นแบบนี้ SUTLiveCD 2.0 ก็ใกล้จะสมบูรณ์แล้ว...

SUTLiveCD version 2.0

หลังจากได้ออก Yamo1-LiveCD ไปแล้วทางทีมพัฒนายังต้องปรับปรุง bugs อีกหลายจุดและยังได้เพิ่มความสามารถเรื่องการคัดลอก image file ลงใน harddisk เพื่อเพิ่มความเร็วในการใช้งานและมีการทำ swap ลงใน partition ของ windows โดยที่ขณะนี้ใกล้จะเสร็จแล้ว เราจะใช้ชื่อรหัสว่า Yamo เหมือนเดิมแต่เป็น SUTLiveCD(Yamo) version 2.0 เพื่อให้สอดคล้องกับรุ่นแรกที่เราทำออกมา

Install image to harddisk

ใน SUTLiveCD รุ่นที่จะออกใหม่ได้เขียน script สำหรับคัดลอก image ลงใน harddisk โดยจะมีการตรวจสอบว่าpartition ไหนมีเนื้อที่ว่างพอก็จะถามว่าจะลงหรือไม่ ถ้าลงก็จะเรียกใใช้ image ของ livecd จาก harddisk แทนการเรียกใช้จากแผ่น cd ทำให้เพิ่มความเร็วในการใช้งานขึ้นมากและยังสามารถใช้งาน cdrom ได้อีกด้วย

Added bmp to livecd

ได้เปลี่ยนโปรแกรมเล่น mp3 ใช้โปรแกรม BMP(Beem Media Player) version 0.9.7 แทนโปรแกรม XMMSเพื่อแก้ปัญหาเรื่องภาษาไทย และกำลังปรับปรุง script ที่จะใช้สำหรับคัดลอก image ของ livecd ลงใน harddiskเพื่อจะเรียกใช้จาก harddisk แทนจาก cd

Combine blogs

วันนี้หลังสอบเบือ ๆ เลยมานั่งรวม blog โดยยุบเอา sutlivecd blog มารวมกับ prach-public blog เพื่อจะได้สะดวกไม่ต้องไปนัง post แยก blog

รอสอบ

พรุ่งนี้จะสอบแล้ว เดี๋ียวหลังสอบว่าจะเอา bmp มาลองใช้ใน tle 7.0.1 ถ้าใช้ได้จะเอาไปใส่ใน yamo1-livecd
และก็จะลองเขียน script สำหรับ shutdown livecd และให้ eject แผ่นออกมาด้วย

Server linux.sut.ac.th ตอนนี้ใช้งานไม่ได้

ตอนนี้ server ของ linux.sut.ac.th มันล่มไม่รู้เป็นเพราะอะไรเพราะตอนนี้เอา server ไปฝากศูนย์คอมฯของมหาลัย
ดูแล เนื่องจากยังไม่ได้ห้องสำหรับตั้ง server เองแต่ก็กำลังจะได้ในไม่ช้านี้แล้ว จะได้ดูแล server เองเสียที

SUTLinux Release 2

โครงการ SUTLinux ได้ทำการออก linux รุ่นที่ 2 ใช้ชื่อรุ่นว่า Yamo1 โดยรุ่นนี้แบ่งออกเป็นแบบที่ install และ livecd ตัวที่สำหรับลงเครื่องใช้ linux TLE 7.0 เป็น base ส่วนที่เป็น livecd ใช้ TLE 7.0.1 และดัดแปลง script livecd จาก basilisk 1.40 สามารถโหลดได้ที่ http://linux.sut.ac.th/download/SUTLinux/

Yamo1-LiveCD Release

Yamo1-LiveCD เป็น livecd รุ่นที่ 2 ของ โครงการ SUTLinux ของทางมหาวิทยาลัยเทคโนโลยีสุรนารี โดย livecd รุ่นนี้ได้ใช้ Linux TLE 7.0.1 เป็น base โดยมีโปรแกรมเหมือนกับ Linux TLE 7.0.1 ยกเว้น Acrobat เพียงโปรแกรมเดียว สามารถดาวน์โหลดได้ที่ http://linux.sut.ac.th/download/SUTLinux/

Add plugin

ได้เพิ่ม plugin สำหรับเล่น flash ของ firefox

การใช้ floppy และ usb

ได้มีการทำไอคอนไว้ที่ desktop ใช้สำหรับ mount floppy และ usb ส่วน usb มีไอคอนสำหรับ umount ด้วย

Add plugin

ได้เพิ่ม plugin สำหรับเล่น flash ของ firefox

การใช้ floppy และ usb

ได้มีการทำไอคอนไว้ที่ desktop ใช้สำหรับ mount floppy และ usb ส่วน usb มีไอคอนสำหรับ umount ด้วย

ชื่อในการ release

ในการออก SUTLive-CD รุ่นที่ 2 นี้ใช้ชื่อรุ่นว่า Yamo1-LiveCD
เพื่อเป็นการสอดคล้องกับชื่อรุ่นของ SUTLinux

SUTLive-CD v.2.0 ใกล้จะ release แล้ว

ในรุ่นนี้ใช้ชือโค้ดว่า Yamo ขณะกำลังทดสอบหา bugs อยู่ และได้เพิ่ม scripts เพิ่มเติมจาก basilisk 1.40 ของเดิมหลายจุดโดยใช้ based on TLE 7.0.1

สร้า้ง script สำหรับ livemount

ใช้สำหรับหา partition ใน harddisk แล้วทำการ mount อัตโนมัติ พร้อมทั้งสร้าง link ไว้ที่ desktop ซึ่งผู้ใช้สามารถอ่านและเขียนได้ และถ้ามี swap partition จะทำการ enable ให้อัตโนมัติ

กำลังเลือก packages สำหรับ SUTLive v.2

กำลังเลือก paackages ทีจำเป็นและจัดการขนาดของแผ่น