Neutron's Blog : OpenSource - Open my mind.

Wednesday, August 01, 2007

ย้ายที่อยู่ไปที่: www.neutron.in.th

ย้ายที่อยู่ไปที่: www.neutron.in.th

ตอนนี้ก็มีบ้านใหม่เป็นส่วนตัวละครับ (จริง ๆ ก็มีได้หลายเดือนแล้ว แต่กำลังตรวจสอบการทำงานอยู่ ว่าถูกต้องดีหรือไม่) ก็เป็นอันว่า คัดลอกข้อมูลจากที่นี่ ไปไว้ที่ http://www.neutron.in.th ทั้งหมดแล้ว

ขอขอบคุณ: www.blogger.com ที่เอื้อเฟื้อสถานที่ให้มือใหม่อย่างผม มีที่ขีด ๆ เขียน ๆ

Friday, May 11, 2007

Wireshark(Ethereal), Segmentation fault!

จำเป็นต้องเร่งใช้.....

พอดีต้อง debug TCP/IP socket จากการที่ต้องทดสอบ Server ที่เขียนขึ้นด้วย C++ ซึ่ง Client ส่งชุดคำสั่งมายัง Server ปรากฏว่า Server ตอบสนองคำสั่ง แต่ไม่ตลอดรอดฝั่ง เกิดอาการลองลอยกลางอากาศ เลยพยายามที่จะตรวจสอบว่าเกิดอะไรขึ้นกับ socket (ตายแล้ว, หรือยังอยู่ดีมีสุข) เกริ่นมาซะยืดยาว สุดท้ายก็นึกถึง Wireshark/Ethereal เป็น Packet Sniffer ที่มีความสามารถยอดเยี่ยมเลยทีเดียว

จัดการ

# aptitude install wireshark wireshark-common
หลังจากนั้นก็สั่งคำสั่งด้วยใจจดจ่อ
$ wireshark
Segmentation fault 
เห็นแล้วเศร้า....

ทำยังไงต่อดี.....

ต้องใช้ความรู้ที่มีอยู่น้อยนิด หาสาเหตุการ crash ครั้งนี้

$ gdb wireshark
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
.
.
Using host libthread_db library "/lib/i686/cmov/libthread_db.so.1".

(gdb) run
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1242670896 (LWP 1542)]
0xb4e710e3 in sb_trie_root () from /usr/lib/libdatrie.so.0
อ้าว... libdatrie ชื่อคุ้น ๆ ครับผม ไล่ไปไล่มา จริงด้วย คนเขียน พี่เทพ เรานี่เอง เลยลองโทรถามพี่เทพก่อน แต่ได้ข่าวว่าเจ็บตา เลยถามเพื่อความชัวร์ว่า "พี่ดีขึ้นหรือยัง" คำตอบคือ "ดีขึ้น แต่ยังเจ็บอยู่" งั้นผมได้แต่เล่าบอกไว้ แต่ไม่รบกวนครับผม

ลองไล่ดูดีกว่า.....

จากข้อมูลที่ gdb รายงานมาก็ยังไม่เพียงพอที่จะชี้จุดที่มีปัญหา เลยตัดสินใจ re-compile เจ้า libdatrie ใหม่ เพื่อที่จะได้ใช้ gdb หาจุดปัญหาได้สะดวก และไล่ตามแก้ไปเรื่อย ๆ จนสุดท้ายได้เป็น patch ตามนี้

--- libdatrie-0.1.1.orig/datrie/sb-trie.c
+++ libdatrie-0.1.1/datrie/sb-trie.c
@@ -203,6 +203,9 @@
 {
     SBTrieState *sb_state;

+    if (!sb_trie)
+        return NULL;
+
     sb_state = (SBTrieState *) malloc (sizeof (SBTrieState));
     if (!sb_state)
         return NULL;
@@ -223,6 +226,9 @@
 {
     SBTrieState *new_state;

+    if (!s)
+        return NULL;
+
     new_state = (SBTrieState *) malloc (sizeof (SBTrieState));
     if (!new_state)
         return NULL;
@@ -249,6 +255,9 @@
 Bool
 sb_trie_state_walk (SBTrieState *s, SBChar c)
 {
+    if (!s)
+        return 0; 
+
     return trie_state_walk (s->trie_state,
                             alpha_map_char_to_alphabet (s->sb_trie->alpha_map,
                                                         (UniChar) c));
และก็ลอง wireshark ใหม่ ตอนนี้เข้าได้แล้วครับผม :)

ปล. ส่ง patch ไปให้พี่เทพแล้ว รอการตอบครับผม :P

Monday, April 30, 2007

Debian Sid: เล่น Video เจอแต่ Blue Screen!

เพิ่งว่างได้กลับมาเช็คดูว่าเกิดอะไรขึ้น.....

สิ่งที่ปรากฏอยู่ตรงหน้าหลังจากเช็คใน aptitude คือว่า sid มีการอัปเดท package xserver-xorg-video-i810 จาก version 1.7.2 ไปเป็น 2.0.0 และมีการเปลี่ยนชื่อใหม่ไปพร้อมกันนี้ด้วย คือ xserver-xorg-video-intel อาจจะเป็นเพราะว่า driver i810 นี่ใช้กับ display adapter ทั้งหลายทั้งแหล่ของ intel ก็เลยเปลี่ยนชื่อให้สื่อกระมัง แต่หลังจากที่ใช้ driver ใหม่ สิ่งที่เกิดคือ Blue Screen ขณะเล่น video (avi, wmv, etc) ได้ยินแต่เสียง ก็เลยนึกย้อนว่าก่อนหน้านี้ก็เล่นได้ เลยลอง downgrade จาก 2.0.0-1 มาเป็น 1.7.2-4 ก็ปรากฏว่าเล่นได้ คิดว่าคงมีคนรายงาน bugs เข้าไปแล้ว รอติดตามข่าวคราวซักหน่อย น่าจะมีวิธีแก้ปัญหา หรือไม่ก็มีการแก้ไขใน Source package มาให้เลย :)

Friday, April 20, 2007

ICE & XUL หลังสงกรานต์ !!!

Patch iceweasel_2.0.0.3-2 => iceweasel_2.0.0.3-2thai1

ได้ข่าวดี (หรือเปล่าไม่รู้) iceweasel ใน debian มี update ..... อย่างนี้แสดงว่า ต้องตาม patch ให้ตัดคำไทยได้อีกแล้วหละครับพี่น้อง ดีแต่ว่ามี patch เก่าเอามาเล่าใหม่ได้เลย เลยไม่ลำบาก.....

ใครสนใจเอาไปลอง Build:

$ mkdir build
$ mkdir iceweasel
$ cd build/iceweasel
// รอบนี้ใช้ dget --> ขอบคุณพี่เทพที่ช่วยแนะนำครับผม ไม่ต้องโหลดทีละไฟล์ละครับ
$ dget ftp://neutron.debianclub.com/debian-neutron/iceweasel/iceweasel_2.0.0.3-2thai1.dsc
# apt-get build-dep iceweasel
$ dpkg-source -x iceweasel_2.0.0.3-2thai1.dsc
$ cd iceweasel-2.0.0.3
$ debuild

ตามด้วย Patch xulrunner_1.8.0.11-4 => xulrunner_1.8.0.11-4thai1

ข่าวดีอีกแล้ว xulrunner ใน debian ก็ไม่ยอมน้อยหน้า มี update เหมือนกัน..... อันนี้... หลังจากผ่านการเคี่ยว....เข็น เมื่อคราวก่อน ตอนนี้เริ่มเห็นข้อดีของ dpatch ละครับ การแก้ไขอะไรเห็นภาพเป็นระบบระเบียบดี ทำตามขั้นตอนที่เคยทำคราวก่อน แต่คราวนี้ xulrunner มีการตัด libnspr* กับ libnss* แต่จะว่าไปแล้วตัดตั้งแต่ 1.8.0.11-3 แล้ว พอดีว่าหยุดไปหลายวันเลยไม่ได้ตาม patch ตัดออกก็ดีเหมือนกัน จะได้ลดเวลาในการ Build ลง (นิดหน่อยก็ดี) หลังจากนั้นก็สั่ง Build เลย นั่งจับเวลาดู โอ้....ง่วงนอนด้วย นั่งรอแล้ว รอเล่า ปาไป 2 ชั่วโมงกว่า ๆ .... อยากได้คอมพิวเตอร์เครื่องใหม่จัง .... (ฝันกลางวันอีกแล้ว)

ใครสนใจเอาไปลอง Build:

$ mkdir build
$ mkdir xulrunner
$ cd build/xulrunner
$ dget ftp://neutron.debianclub.com/debian-neutron/xulrunner/xulrunner_1.8.0.11-4thai1.dsc
# apt-get build-dep xulrunner
$ dpkg-source -x xulrunner_1.8.0.11-4thai1.dsc
$ cd xulrunner-1.8.0.11
$ debuild

หลังจากที่ต้องรอนาน ๆ อย่างนี้ .... คิดถึง patch ที่พี่เทพส่งไปให้ต้นน้ำเขาพิจารณา อย่างแรง!!! ภาวนาให้เขารับเร็ว ๆ จะได้ไม่ต้องมานั่งทำอะไรซ้ำ ๆ อย่างนี้ .... แต่ไม่เป็นไรถือเป็นการซ้อมมือ การเรียนรู้ .... ไม่ลอง ไม่รู้ .... ครับผม

Tuesday, April 17, 2007

ใกล้ถึงวันวิวาห์...แล้วหนา!

เตรียมตัวเป็นเจ้าบ่าว....

รู้สึกตื่นเต้นมาก ๆ (ก็ตั้งแต่เกิดมายังไม่เคยแต่งงานกับเขาเลยนี่ครับผม หึหึ :P) ยิ่งใกล้วัน ก็ยิ่งยุ่ง ทั้งเรื่องเรียน เรื่องงาน ทำให้ไม่ค่อยได้ติดตามข่าวสารในกลุ่ม OpenSource ได้เหมือนแต่ก่อน แต่ยังไม่เลิกล้มความตั้งใจนะครับ ถ้าไม่ล้มหายตายจากไปไหนซะก่อน

แต่ยังไงก็ไม่ตกข่าวมากนัก ได้รับรู้ข่าวสารว่า Debian 4.0 (Etch) Released แล้ว และ Lenny ได้ออกมาซนกับเขาแล้ว ส่วน Sid ยังซ่าไม่เลิกเหมือนเดิม อิอิ :P พอได้ต่อเน็ตก็เลยถือโอกาสเข้าไปดู neutron.debianclub.com ที่ทำ Mirror ของ Debian i386 ไว้ เลยได้ทำ SymLinks ใหม่ stable -> etch, testing -> lenny, unstable->sid แต่เน็ตช้ามาก ๆ เลยไม่ได้ตรวจสอบความเรียบร้อย เดี๋ยวกลับไปที่ ม.ขอนแก่นก่อน คงได้ดูกันใหม่

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

และที่สำคัญคือ เอาการ์ดงานแต่งงานมาให้ทุก ๆ คนในบ้านช่วยพิจารณา โดยการ์ดงานแต่งงานที่ออกแบบไว้ ด้วยโปรแกรม GIMP และฟอนต์จาก f0nt.com และรูปภาพต่าง ๆ ที่ค้น ๆ มาจากอินเตอร์เน็ต โดยรูปหลักมีชื่อกำกับว่า Winfield Little ก็ขอขอบคุณเจ้าของภาพมา ณ ที่นี้ด้วย (To Winfield Little, Thank you very much, your photo make my dream come true)

และเป็นอีกครั้งที่โปรแกรม OpenSource สร้างความภาคภูมิใจให้กับชีวิตของผม ขอบคุณครับ

Wednesday, April 04, 2007

xulrunner 1.8.0.11-2 (mozlibthai patch)

เล่นเอาเหงื่อตก...(อากาศมันร้อนนี่นา)

หลังจากสาละวน... ที่พยายามที่จะ patch เจ้า xulrunner ซึ่งเป็น backend ของ epiphany ที่ใช้อยู่เป็นประจำในเครื่อง Notebook สุดรักสุดหวง ที่ใช้ Debian Linux เป็นหลัก เพื่อที่จะได้ตัดคำภาษาไทยได้ หลังจากที่ก่อนหน้านี้ทำหน้าที่เป็น Human Builder ก็มาถึงความพยายามที่จะ Patch เอง โดยยึดตัวอย่างจาก mozlibthai patch ของพี่เทพ จากการที่งู ๆ ปลา ๆ เข้ามา ก็เลยใช้เวลานานพอสมควร ทดสอบแล้ว ทดสอบอีก กว่าจะผ่าน ก็กินเวลาหลายวัน (มือใหม่หัดขับ :P)

ใครสนใจเอาไป Build ทดสอบดู โหลดไฟล์ไปได้เลยครับผม

ftp://neutron.debianclub.com/debian-neutron/xulrunner/xulrunner_1.8.0.11-2thai1.dsc ftp://neutron.debianclub.com/debian-neutron/xulrunner/xulrunner_1.8.0.11-2thai1.diff.gz

วิธี Build (เพิ่ม deb-src ftp://ftp.{jp,tw}.debian.org/debian unstable main contrib non-free เข้าไปใน /etc/apt/sources.list ==> jp tw หรือ อื่น ๆ เลือกตามชอบใจ เอาที่คิดว่าเร็วที่สุดสำหรับเรา

$ mkdir build
$ mkdir xulrunner
# apt-get update
$ apt-get source xulrunner
# apt-get build-dep xulrunner
$ wget ftp://neutron.debianclub.com/debian-neutron/xulrunner/xulrunner_1.8.0.11-2thai1.dsc
$ wget ftp://neutron.debianclub.com/debian-neutron/xulrunner/xulrunner_1.8.0.11-2thai1.diff.gz
$ dpkg-source -x xulrunner_1.8.0.11-2thai1.dsc
$ cd xulrunner-1.8.0.11
$ debuild

ได้ความรู้เกี่ยวกับ debuild, dpatch, dpkg-source เพิ่มขึ้นเยอะเลยครับผม หลังจากผ่านคราวนี้แล้ว :)

Thursday, March 29, 2007

Gaussian Elimination Method (1)!

Forward Elimination.....

การบ้านชิ้นนี้ เริ่มต้นด้วยวงจรไฟฟ้า ตามด้วยการใช้ Kirchhoff's Voltage Law(KVL) ในการกำหนดสมการ Matrix ดังรูป

ต้นฉบับ: http://neutron.debianclub.com/study/numerical_methods/gaussian/Schematic.dia

ตามด้วยการใช้ความรู้เรื่อง Gaussian Elimination Method วิธี Forward Elimination เขียนโปรแกรมใน Matlab เพื่อคำนวณหาค่า Matrix ดังกล่าวในรูปของ Echelon Form

Sourcecode: http://neutron.debianclub.com/study/numerical_methods/gaussian/s8038fwelim.m

References:
Gaussian Elimination: http://en.wikipedia.org/wiki/Gaussian_elimination
The MATLAB Array: http://www-ccs.ucsd.edu/matlab/techdoc/apiref/thematlabarray.html

ทดสอบ และส่งอาจารย์ตรวจเรียบร้อยแล้วครับผม :)