Friday, April 18, 2008

May be you

เพลง คงเป็นเธอ / ศิลปิน ปุ้ม อรรถพงษ์

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

ทะเลกว้างใหญ่ สองเราข้ามไป ถ้ามีสองใจ รวมกันฟันฝ่า
ก็เธอหรือเปล่า ที่เดินเข้ามา และพาความรักฉันไปพร้อมเธอ

โลกดูสดใสไม่เหมือนเก่า เมฆบางก็จางหายไป
ค่ำคืนไม่เหงา ดาวเต็มฟ้า นภามีแสงรำไร
เธอสร้างให้ฝันเป็นจริงได้ ทำไมเพิ่งมองเห็นมัน
เกือบเกินจะสาย ฉันกลัวไม่ทัน ดึงดันชวนเธอร่วมทาง

ทะเลกว้างใหญ่ สองเราข้ามไป ถ้ามีสองใจ รวมกันฟันฝ่า
ก็เธอหรือเปล่า ที่เดินเข้ามา และพาความรักฉันไปพร้อมเธอ

หนทางกว้างใหญ่ สุดฟ้า ก็พร้อมจะเดินต่อไป
ก้าวไปไม่หวั่น ต่อสิ่งไหน สุขใจที่เธอร่วมทาง

. . . . .

18 เมษายน วันเกิดของใครหลายๆ คน รวมถึงเธอด้วย จริงอยู่ว่าฉันไม่เคยคิดอื่นใด ที่ยาวไกลเกินสุดขอบฟ้า แต่หนทางบน "โลก" ใบนี้มันเปล่าเปลี่ยวเกินที่จะเดินเดียวดายโดยลำพัง (ไม่ใช่จอมยุทธิ์ในหนังจีน) อย่างน้อยก็ควรจะมีมิตรภาพดีๆ สักเส้นหนึ่งที่เราสามารถใช้พักใจของกันและกันได้ (ตราบใดที่ "ใจ" เรายังมีอยู่) วันนี้ฉันเลือกแล้วว่าจะขอพักใจไว้รวมกับเธอ เส้นทางเล็กๆ สายหนึ่งบนพื้นหิมะที่ขาวโพลนจะประดับไว้ด้วยรอยเท้าของคนสองคนที่เดินเคียงคู่กันไป จะไม่คาดหวังว่ารอยเท้าสองคู่นั้นจะไปได้ไกลเพียงใด แต่จะพยายามเป็นเพื่อนร่วมทางที่ดีที่สุดของเธอ : )

ปล. เสียใจด้วยนะ ถ้ากำลังคิดว่าเพลงนี้คือเพลงที่เคยบอกว่าจะมอบให้ คิดผิดแล้ว ... เพียงแต่เพลงนี้เป็นอีกเพลงหนึ่งที่อธิบายเหตุการณ์จริงระหว่างเราได้ดี สำหรับ "เพลงนั้น" สักวันถ้าถึงเวลามันจะเปิดเผยออกมาให้เธอรู้เอง : )

Saturday, January 19, 2008

25th Anniversary

อ่า ... ไม่ว่าจะแนวแค่ไหนก็ตาม ถึงอย่างไรผมก็ยังเป็นคนมีวันเกิด .. นะจ๊ะ

รายนามผู้มีอุปการะคุณประจำปีนี้

  1. พี่เบญ - แม่ยกกิตติมศักดิ์ รู้จักกันมา 10 ปี ยังครองแชมป์เหนียวแน่น - sms, mail, hi5, phone, blog comment
  2. พี่พร - แม่ยกกิตติมศักดิ์อีกราย - sms, msn (+phone แต่ไม่ได้รับ)
  3. ปุ๋ย - เด็กพิเศษ (หมายถึงไม่ปกติ) 1 เดียวในรอบ 25 ปี - phone, sms, msn, hi5 (รองแชมป์ปีนี้)
  4. เอ็ม - แฟนคนแรกสมัยอนุบาล เธอบอกว่าจำวันเกิดผมได้ตั้งแต่ประถมแล้ว .. โม้ป่าววะ - msn
  5. แมว - อดีตคนรู้ใจสมัยม.ต้น - msn, hi5
  6. มิ้นท์ - อดีตคนรู้ใจสมัยม.ปลาย - sms, msn
  7. หนึ่ง - อดีตคนรู้ใจสมัยมหา'ลัย - msn
  8. อ้อ - ไม่ได้เป็นอะไรกัน แต่เกียร์วิศวะของผมอยู่ที่เธอ (หลอกเด็ก/เด็กหลอก) - phone
  9. รินจัง - สาวจุฬาฯ เกียรตินิยมอันดับ 1 นิสัยดี หน้าตาดี โสด แต่ ... - sms
  10. ดาว - สาวพยาบาลทหารเรือ คุยกันด้วยจดหมายตั้งแต่เรียนมหา'ลัย - sms
  11. ขวัญ - น้องสาว ลูกของอา น้องของพ่อ - phone
  12. ไอ้พาก - ผู้เป็นทั้งเพื่อนและครูในเวลาเดียวกัน เสียดายมันติด Ragnarok จนเสียผู้เสียคน - mail
นึกดู 3 รอบแล้ว ได้จำนวน 12 คนเท่าเดิม คิดว่าคงไม่ตกหล่นใครแล้วนะ (ถ้าเกิดมี กรูซวย -_-')

จริงๆ ได้แค่ 3 ก็หรูแล้ว แต่นี่ได้มาตั้ง 12 แน่ะ โอ้ว จอร์จ มันยอดมาก แสดงว่ายังมีคนยอมรับในสันดานของผมได้อยู่บ้าง ... จะมีประโยชน์อะไร หากเราเดินไปสู่จุดสูงสุดของยอดเขา แต่กลับทิ้งมิตรภาพไว้ตามรายทาง

- มีเพื่อนดีเพียงหนึ่งถึงจะน้อย ดีกว่าร้อยเพื่อนคิดริษยา มีเกลือเค็มเม็ดน้อยด้อยราคา ยังดีกว่าน้ำเค็มเต็มทะเล -

ขอขอบคุณมิตรสหายทุกๆ ท่านมา ณ ที่นี้

Friday, November 09, 2007

การใช้งาน BASH เบื้องต้น

แงๆ .. ถูกดองไว้ที่ debianclub.org ท่าน moderator ไม่ตีพิมพ์ให้สักที เอามาลงบล็อกตัวเองละกันครับ .. เขียนยังไม่ค่อยดี แต่ลองอ่านดู เผื่อมีประโยชน์

---

ผมเขียนบทความนี้ด้วยเจตนาอยากให้มีผู้อ่านหลายระดับ จึงขออภัยหากภาษาที่ใช้ดูฟุ่มเฟือยและอ่อนกำลัง

ลินุกซ์ในความหมายที่แท้จริง เป็นเพียง OS Kernel ที่ทำหน้าที่จัดสรรทรัพยากรต่างๆ ของระบบ ไม่สะดวกที่จะนำมาใช้งานโดยตรง เหล่านักพัฒนาจึงได้สร้างระบบติดต่อ (interactive system) ขึ้นมาครอบลินุกซ์เคอร์เนลเพื่อให้สามารถใช้งานได้สะดวกขึ้น สถาปัตยกรรมลินุกซ์ในปัจจุบันแบ่งออกได้เป็น 4 ระดับชั้น คือ kernel > shell > window manager > desktop environment

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

ต้องขอออกตัวว่าผมเติบโตมาในยุคของ BASH (Bourne-Again Shell) และ Gnome บทความนี้จึงใช้การอ้างอิงจาก BASH และ Gnome Terminal เป็นหลักนะครับ

ก้าวแรก:
shell คือโปรแกรมที่ทำหน้ารับคำสั่งจากผู้ใช้ไปส่งให้เคอร์เนล การติดต่อกับ shell จะติดต่อผ่านโปรแกรมเทอร์มินัลอีกที สำหรับผู้ใช้ Gnome เข้าไปที่ Applications > Accessories > Terminal เมื่อเข้าสู่เทอร์มินัลจะพบกับข้อความลักษณะต่อไปนี้ tonkla@myhost:~$ นั่นหมายถึง shell พร้อมรับคำสั่งแล้ว สามารถดูค่าที่กำหนดรูปแบบการแสดงผลของข้อความ โดยใช้คำสั่ง
$ echo $PS1

ถ้าเป็นลินุกซ์ตระกูล Debian จะได้ผลลัพธ์เป็น
${debian_chroot:+($debian_chroot)}\u@\h:\w\$

\u คือชื่อผู้ใช้
\h, \H คือชื่อโฮสต์
\w คือพาธ (path) ของไดเรคทอรีแบบเต็ม (/a/b/c/d/e)
\W คือพาธเฉพาะไดเรคทอรีปัจจุบัน (/e)

ตัวอย่างการเปลี่ยนแปลงรูปแบบการแสดงผลโดยใช้คำสั่ง export
$ export PS1='\H [\W] >'

การเดินทางไปบนถนนสาย "directory":
ตำแหน่งไดเรคทอรีเริ่มต้นเมื่อเข้าสู่เทอร์มินัลคือ Home Directory ของผู้ใช้แต่ละคน การย้ายตำแหน่งไปยังไดเรคทอรีอื่นๆ จะใช้คำสั่ง cd (change directory) ตามด้วยไดเรคทอรีที่ต้องการไป

ดูเนื้อหาภายในไดเรคทอรีปัจจุบันด้วยคำสั่ง ls (list directory contents)
$ ls

อยู่ที่เดิม
$ cd .

ออกไปไดเรคทอรีชั้นนอก 1 ชั้น
$ cd ..

ออกไปไดเรคทอรีชั้นนอก 2 ชั้น
$ cd ../..

สลับไปมาระหว่างสองไดเรคทอรีที่เข้าถึงล่าสุด (ไดเรคทอรีที่เก็บไว้ในตัวแปร $PWD และ $OLDPWD)
$ cd -

กลับบ้าน
$ cd

การใช้งาน cd ในระดับที่สูงขึ้น จะเล่นกับค่าในตัวแปร $CDPATH ยกตัวอย่างเช่น เรามี /a/b/c
ถ้าใช้คำสั่ง
$ export CDPATH=.:/a/b

ในกรณีที่อยู่บ้าน (home) แล้วต้องการไปยัง c จะใช้คำสั่งสั้นๆ เพียง
$ cd c

กด Tab ช่วยเติมเต็ม:
เคยเห็นผู้ใช้มือใหม่หลายๆ ท่าน พิมพ์ชื่อไดเรคทอรีหรือคำสั่งต่างๆ จนครบทุกตัวอักษร ยิ่งชื่อยาวๆ ยิ่งน่าสงสาร มีวิธีง่ายๆ ครับ พิมพ์ไปด้วย กดปุ่มแท็บไปด้วย ถ้าเจอ มันจะเติมเต็มให้อัตโนมัติ (auto-complete) โดยกดแท็บหนึ่งครั้งสำหรับเติมเต็ม ถ้ามีชื่อที่สามารถเป็นไปได้มากกว่าหนึ่ง ระบบจะนิ่งไป ให้กดอีกครั้งหนึ่ง ระบบจะแสดงชื่อที่เป็นไปได้ทั้งหมดให้ดู เราก็พิมพ์ไป แท็บไปเรื่อยๆ .. มือใหม่อ่านแล้วงงล่ะสิ ต้องไปลองทำนะครับ

ย่อคำสั่งด้วยคำสั่ง alias:
เคยเห็นผู้ใช้มือใหม่อีกเช่นกัน เวลาจะดูเนื้อหาในไดเรคทอรีแบบแสดงรายละเอียด จะใช้คำสั่ง
$ ls -l

แต่ถ้าคำสั่งนี้ต้องใช้บ่อยๆ พิมพ์ยาวๆ แบบนี้ก็คงไม่ใช่เรื่องสนุกเท่าไหร่ ดังนั้นเราจะย่อให้เหลือสั้นๆ โดยการ
$ alias ll='ls -l'

ต่อไปก็แค่พิมพ์
$ ll

สิ่งที่ซ่อนอยู่:
จากตัวอย่างข้างบน คำสั่ง export หรือ alias ทั้งหลาย จะมีผลเฉพาะเทอร์มินัลที่ป้อนคำสั่งเข้าไปชั่วคราวเท่านั้น พอปิดเครื่องค่าทุกอย่างก็จะอันตรธานหายไป ถ้าต้องการให้ค่านี้มีผลถาวร ต้องทำอย่างไร?

ระบบไฟล์ของลินุกซ์จะใช้จุด . (ขออภัยครับ จำชื่อภาษาไทยสวยๆ ไม่ได้) นำหน้าไฟล์หรือไดเรคทอรีที่ต้องการซ่อน หากต้องการให้ปรากฏต้องใช้คำสั่ง
$ ls -a

เมื่อลอง ls -a ใน home directory ดู จะพบว่ามีไฟล์และไดเรคทอรีปรากฏมากมาย ส่วนใหญ่จะเป็นไฟล์คอนฟิกกูเรชันสำหรับเก็บค่าต่างๆ ของผู้ใช้ไว้ ไฟล์ที่สำคัญต่อการทำงานของ BASH มี 4 ไฟล์ คือ .bash_history .bash_logout .bashrc และ .profile

การจะให้ค่าต่างๆ มีผลอย่างถาวร ต้องไปเขียนใส่ไว้ในไฟล์ .bashrc หรือ .profile ลองเปิดดูด้วย text editor ที่ชอบครับ แล้วจะเข้าใจดีขึ้น

ความแตกต่างระหว่างการใส่ไว้ใน .bashrc และ .profile คือ
.profile จะให้ผลทันทีที่ล็อกอินเข้าระบบ ตัวอย่างคำสั่งเช่น xrandr เป็นคำสั่งที่ใช้สั่งให้ output ออก 2 จอภาพ ถ้าใส่ไว้ใน .profile จะมีผลทันทีที่ผ่าน GDM Login เข้ามา ส่วน .bashrc จะให้ผลช้ากว่า ต้องมี activity อะไรสักอย่างกับระบบก่อน ค่าปรับแต่งใน .bashrc ถึงจะทำงาน

reuse คำสั่งด้วย history:
คำสั่งต่างๆ ที่ถูกพิมพ์ลงไปในเทอร์มินัลและกด Enter แล้ว จะถูกเก็บไว้อยู่ในไฟล์ .bash_history คงจะดีไม่น้อย ถ้าหากเราสามารถเรียกใช้คำสั่งยาวๆ เหล่านั้นได้อีกครั้งโดยไม่ต้องพิมพ์ใหม่

ดู 100 คำสั่งที่ใช้ล่าสุด
$ history 100

เรียกใช้คำสั่งล่าสุด
$ !!

เรียกใช้คำสั่งที่ 50
$ !50

เรียกใช้คำสั่งล่าสุดที่ขึ้นต้นด้วย xxx
$ !xxx

เรียกใช้คำสั่งล่าสุดที่ประสมด้วย yyy (เช่น $ cd /aaa/bbb/ccc/ddd/eee/fff/xxx/yyy)
$ !?yyy

สามารถดูรายละเอียดเพิ่มเติมได้จาก history manual
$ man history

วิ่งผลัดด้วยสัญลักษณ์ | (pipe):
| คือสัญลักษณ์ที่ใช้เป็นตัวส่งผ่านผลลัพธ์ (output) ของคำสั่งแรก ไปเป็นวัตถุดิบ (input) ของคำสั่งต่อไป เช่น
$ ls -l | grep xxx | more

หมายถึง แสดงผลเนื้อหาในไดเรคทอรีแบบแถวรายละเอียด โดยกรองเอาเฉพาะบรรทัดที่ประสมด้วย xxx และถ้าผลลัพธ์มียาวเกิน 1 หน้าจอ ให้แสดงทีละหน้าจอ

รวบหัวรวบหางด้วย ; (semi-colon):
ปกติเมื่อเข้าไปในไดเรคทอรีอื่นแล้ว เรามักจะล้างหน้าจอ และขอดูรายละเอียดเนื้อหาในไดเรคทอรีใหม่นั้นเสมอ เช่น
$ cd xxx
$ clear
$ ls

จากตัวอย่างเราต้องกด Enter ถึง 3 ครั้ง จะดีกว่าไหมถ้ากด Enter แค่ครั้งเดียว (แต่กดคีย์อื่นแทนอีก 2 ครั้ง -_-')
$ cd xxx;clear;ls

input/output ง่ายๆ ด้วยเครื่องหมาย '>' / '<' :

$ cat > sample.txt
aaa
bbb
Ctrl+z

จากคำสั่งข้างต้น เราจะได้ไฟล์ sample.txt ที่มีเนื้อหา aaa(\n)bbb อยู่ข้างใน (กด Ctrl+z เพื่อบอกว่าจบการเขียน)
(ผมลอง $ echo aaa\\nbbb > sample.txt มันไม่ขึ้นบรรทัดใหม่ให้แฮะ ทำอย่างไรถึงจะขึ้นบรรทัดใหม่ด้วยคำสั่ง echo ได้ครับ?)

ใช้คีย์ลัด:
Ctrl+l : Clear Screen
Ctrl+u : Undo Typing
Ctrl+c : Cancel Task
Ctrl+d : Exit
ฯลฯ

นึกออกเพียงเท่านี้ครับ ท่านใดนึก trick เล็กๆ น้อยๆ ออก ก็อย่าลืมแบ่งปันกันบ้างนะครับ

อ้างอิง:
http://www.afp548.com/article.php?story=20070525141734763&mode=print
http://www.softpanorama.org/Scripting/Shellorama/command_history_reuse.s...

Tuesday, October 23, 2007

Ubuntu Gutsy : Dual Monitor on ATI Card and Thai System Installation

Dual-head (multi-screen) setups:
Ubuntu 7.10 ได้ตัดฟังก์ชัน MergedFB / Xinerama ออกไปจาก ATI driver ทำให้ไม่สามารถใช้ไฟล์ xorg.conf ของเวอร์ชัน 7.04 สำหรับการแสดงผล 2 จอได้ รายละเอียดใน Release Notes ได้แนะนำให้ไปศึกษาวิธีการติดตั้งจาก

สรุปโดยคร่าวๆ ดังนี้
  • ในกรณีที่อัพเกรดมาจาก 7.04 อันนี้เหนื่อยหน่อย ต้องไปลบ config ออกหลายรายการ รายละเอียดอยู่ในลิงค์ที่สองข้างบน ผมเลือกที่จะติดตั้งใหม่หมด ซึ่งมีข้อดีกว่าในหลายๆ ด้าน ส่วนข้อเสียคือต้องติดตั้งโปรแกรม และ config ใหม่หมด เลือกเอาเองอยากเหนื่อยแบบไหน
  • แก้ไขไฟล์ /etc/X11/xorg.conf ในส่วน [Section "Screen" ][SubSection "Display"] เพิ่มเข้าไปบรรทัดเดียวว่า Virtual 2560 1024 ความหมายคือกำหนดขนาด frame buffer ให้ x-server โดยตัวเลข 2560 คือความกว้างของสองจอรวมกัน (1280+1280) ขนาดจะเปลี่ยนไปตามแต่หน้าจอแต่ละคน .. คำเตือน! ดูดีๆ อัตราส่วนเขาใช้เว้นวรรค ไม่ได้ใช้ x นะครับ พลาดไปตัวเดียวถึงกับหน้า(จอ)มืด ดีที่ x เวอร์ชันนี้จะทำการสร้างไฟล์ fallback ให้ ในกรณีที่ config ผิด
Section "Screen"
.
.
.
SubSection "Display"
.
.
Virtual 2560 1024
EndSubSection
EndSection
  • สั่ง $ xrandr -q เพื่อดูรายละเอียดของส่วนต่อพ่วง
  • กรณีการ์ด ATI X550 จะเห็นสามตัวคือ VGA-0, DVI-0 และ S-video
  • สั่ง $ xrandr --output VGA-0 --left-of DVI-0 ดูผลลัพธ์ ซึ่งควรจะแสดงแยก 2 จอได้แล้ว
  • มีอีกวิธีคือให้ config แยกส่วน Section "Monitor" ใน /etc/X11/xorg.conf ออกเป็นสองจอ ซึ่งผมลองแล้วไม่เวิร์ค
  • จึงใช้วิธีเอาคำสั่งไปวางไว้ใน .profile แทน .. ผลที่ได้คือ "แจ่ม"
Thai System Installation:
  • เข้าไปที่ System > Administration > Language Support
  • ถ้ายังไม่ได้ทำอะไร จะเห็นตัวเลือก English อันเดียว
  • ให้เพิ่ม Ubuntu repository ลงไปในไฟล์ /etc/apt/source.list หรือจะทำผ่าน GUI ก็ได้ แล้วแต่สะดวก ตัวอย่างสั้นๆ
deb http://th.archive.ubuntu.com/ubuntu/ gutsy main restricted universe multiverse
deb http://th.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu gutsy-security main restricted universe multiverse
  • จากนั้นสั่ง $ sudo aptitude update (หรือ apt ก็ตามสะดวก)
  • กลับเข้าไปดูใน Language Support จะเห็นตัวเลือก Thai ขึ้นมาแล้ว ก็เลือกไปตามระเบียบ
  • ต่อไป config keyboard โดยไปที่ System > Preferences > Keyboard
  • ไปที่แท็บ Layouts เพิ่ม Thailand เข้าไป พร้อมกับตั้ง U.S. English เป็น default
  • ไปที่แท็บ Layouts Options เพื่อกำหนดคีย์เปลี่ยนภาษา
  • หัวข้อ Group Shift/Lock bahavior ปกติก็จะใช้ Alt+Shift กัน ขอแสดงความเสียใจสำหรับคนที่อยากใช้ ~
  • ตัวเลือกแรก R-Alt switches group while pressed สามารถกด Alt ข้างขวาเพื่อเปลี่ยนภาษาชั่วคราวได้ เจ๋ง แนะนำ
เกือบสมบูรณ์แล้ว เข้าเว็บอะไรได้สวยงาม แต่ฟอน์ต์ภาษาไทยยังขี้เหร่อยู่ ต้องทำการเปิด autohint ก่อน
  • แก้ไขไฟล์ /etc/fonts/conf.avail/10-autohint.conf
<match target="font">
<test name="family"><string>Loma</string></test>
<edit name="autohint" mode="assign"><bool>true</bool></edit>
</match>
  • จากนั้นทำการสร้าง symbolic link โดยใช้คำสั่ง
$ cd /etc/fonts/conf.d
$ sudo ln -s ../conf.avail/10-autohint.conf
จากนั้นจะ reboot เครื่องใหม่ หรือแค่ start x (Ctrl+Alt+Backspace) ก็ตามสะดวก

ไปๆ มาๆ ไม่ทิ้ง Blogspot แล้วครับ เรื่องทางเทคนิคยังคงจะมาเขียนไว้ที่นี่

Wednesday, October 17, 2007

The Migration

เล่น Blogspot มาได้ 3 ปี แต่มีบันทึกเพียง 96 บันทึกเท่านั้น เดิมทีตั้งใจไว้ว่าจะไม่ย้ายไปไหนแล้ว แต่ตอนนี้เหตุการณ์แปรเปลี่ยน คือผมย้ายไปทำงานกับ UsableLabs ผู้พัฒนาซอฟต์แวร์ KnowledgeVolution ที่นำมาใช้สร้างเป็นเว็บบล็อกอย่าง GotoKnow.org ผมจึงมีหน้าที่ดูแลชุมชนไปด้วยในตัว ดังนั้นบันทึกที่ Blogspot ก็คงต้องอำลากันไว้เพียงเท่านี้

iam.dhammajati.net ก็คงละเหมือนไว้เหมือนเดิม เพราะยังไม่มีแผน ส่วนเว็บหลักส่วนตัวจริงๆ ย้ายไปอยู่ที่ dhammajati.net ข้างในจะเก็บรวบรวมศาสตร์และศิลป์ต่างๆ ที่ผมได้ประสบพบมา ส่วนบันทึกหลักจะอยู่ที่ GotoKnow.org (gotoknow.org/profile/tonkla)

ปิดท้ายด้วยภาพแห่งประวัติศาสตร์ครับ (คลิกที่รูปเพื่อดูขนาดที่ใหญ่ขึ้น)