Thursday, January 21, 2010

Sphinx! then with Thai Latex on Mac snow leopard

อ้างอิง: http://vuthi.blogspot.com/2005/03/thai-latex-mac-os-x.html

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

มาคราวนี้เห็นเค้าพูดกันหนักหนาว่า Sphix นั้นมันดีทีเดียวสำหรับการเขียนคู่มือ โดยเฉพาะอย่างยิ่ง สำหรับการเขียนเอกสารโดยโปรแกรมเมอร์

แต่พอทำเสร็จแล้วลูกค้าอยากได้เป็น PDF ซะงั้น เอา! ตามเค้าไป

แน่นอนคงไม่พ้น Latex แต่ปัญหามันอยู่ว่า ต้องทำให้เครื่อง Mac Book ผมใช้งาน Latex ภาษาไทยได้ด้วยสิ

มาเร่ิมกันครับ


  1. ติดตั้ง Fink ก่อน 
  2. จากนั้นก็ติดตั้ง sphinx
  3. แล้วก็มาถึงคราว Latex
    ปกติแล้วการติดตั้ง sphinx จะมี latex มาให้ด้วยแต่ก็ติดตรงที่ว่า ไม่สามารถใช้งานภาษาไทยได้ดี สุดท้ายต้องติดตั้ง thailatex
    1. ติดตั้ง Thai latex จาก ftp://linux.thai.net/pub/thailinux/software/thailatex/thailatex-0.4.3.tar.gz
      $ tar xzvpf thailatex-0.4.3.tar.gz
      $ cd thailatex-0.4.3
      $ ./configure --prefix=/sw #ติดตั้งไว้ที่ fink
      $ sudo make
      $ sudo make install
    2. แล้วตามด้วยการตัดคำภาษาไทย ผมใช้ swath เพราะว่าหา cttext ไม่เจอ ติดตั้งจาก ftp://linux.thai.net/pub/thailinux/software/swath/swath-0.4.0.tar.gz
      $ tar xzvpf swath-0.4.0.tar.gz
      $ cd swath-0.4.0
      $ ./configure --prefix=/sw
      $ sudo make
      $ sudo make install
    3. อย่าพึ่งดีใจไป ปัญหาที่บอกจากเว็บข้างบนต้องแก้ไขก่อน
      $ updmap --disable thai.map --nohash --nomkmap
      $ updmap --enable Map thai.map
พอเราติดตั้งเสร็จก็เป็นอันเสร็จสำหรับ Latex แต่พอมาใช้กับ sphinx ดันมีบางสิ่งที่ต้องทำแฮะ

ไปแก้ไข conf.py ที่ source directory โดยเพิ่มอันนี้เข้าไปต่อจาก Latex Output

# Latex Elements
latex_elements = {
  'babel': '\\usepackage[thai,thainumber]{babel}',
  'inputenc': '\\usepackage[utf8x]{inputenc}',
}

เมื่อเราทำการ make latex ที่ source directory แล้ว ก็ทำดังนี้
_build/latex $ swath -u u,u -f latex < file.tex > file2.tex # ตัดคำให้สวยงาน
_build/latex $ mv file2.tex file.tex # เปลี่ยนชื่อซักหน่อย
_build/latex $ make all-pdf
เท่านี้เราก็จะได้ file.pdf แล้ว

XMPP มันทำให้ผมคิดว่า...

"เมื่อความเร็วในการเข้าถึง Internet ถึงระดับหนึ่ง และทำให้สามารถ Online ได้ตลอดเวลา และขนาดการเก็บข้อมูลบนเครื่อง client มีขนาดเพียงพอ"


ก็จะมี Application อีกเพียบเลย ดูอันนี้สิ

MPP-based wireless sensor network and its integration into the extended home environment
Hornsby, A.; Belimpasakis, P.; Defee, I.
Consumer Electronics, 2009. ISCE apos;09. IEEE 13th International Symposium on
Volume , Issue , 25-28 May 2009 Page(s):794 - 797
Digital Object Identifier   10.1109/ISCE.2009.5156807
Summary:Wireless sensor networks have significant potential in the home environment. Home application scenarios include monitoring and interaction from several remote or local devices such as mobile phones, televisions or computers. In this paper we propose an architecture for a network based on IP-enabled wireless sensors. The communication system is based on the XMPP-protocol which is shown to be highly suitable for the sensor networks. XMPP provides a push based notification functionality that is especially appropriate for the event-driven paradigm of sensors and also provides the authentication and encryption required for data protection. We also use Atom feeds together with XMPP to enable remote web service-like access to the wireless sensor network. Integration of this XMPP-based wireless sensor network with the standard UPnP media-oriented network is done using a XMPP to UPnP gateway. In this paper, home applications and services are first introduced and different technologies supporting them are described. Next, the benefits of XMPP/IP architecture compared to non-IP sensor networks and to the UPnP based sensor network are discussed. We then present our XMPP-based wireless sensor network, with web-service like access, using XMPP and Atom feeds, also interfacing with UPnP. These solutions have been implemented on internet tablet devices allowing a flexible, highly functional and open system for integrating sensor network with the media environment.

ref:  http://ieeexplore.ieee.org/Xplore/login.jsp?url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F5109426%2F5156791%2F05156807.pdf%3Farnumber%3D5156807&authDecision=-203

Web Application

อยู่ ๆ ก็มีคำถาม ถามมาว่า "มันเป็น web application" แล้วใช้บน Internet ไม่ได้หรือ?

เนื่องจากระบบที่พัฒนานั้นปกติใช้งานอยู่ บน LAN มาตั้งแต่ ปี 2004 อยู่ดี ๆ ก็มีความคิดว่าจะนำไปไว้ที่ Data Center แล้วให้ผู้ใช้งาน ใช้งานผ่าน internet

ปัญหาไม่ได้อยู่ที่ Web Application  แต่ปัญหามันอยู่ที่ไม่เคยใช้ผ่าน Internet ด้วยสิ่งแวดล้อมและจำนวนผู้ใช้งานที่เท่า ๆ กันมากกว่า

ผมเลยนึกได้ว่าแต่ก่อน กว่าจะอธิบายคำว่า web service ให้หลายคนเข้าใจได้แทบแย่ เพราะเค้าไปยึดติดว่า web คือ Internet ดังนั้น web service จึงต้องมี internet ซะงั้น

หลายคนเข้าใจว่า web = internet !

พอ ๆ กับ แฟ๊บ = ผงซักฟอก!

ผมคิดว่าเข้าใจผิด!  web ในที่นี้น่าจะหมายถึง เครือข่าย มากกว่า

ดังนั้นคำถามข้างบน ที่ถามว่า "แล้วใช้บน internet ไม่ได้หรือ?" จึงขอตอบแบบกวน ๆ ว่า

"ใช้ได้ แต่ใครจะรับผิดชอบถ้าหากมันใช้ไม่ได้? เพราะมันเคยใช้งานบน LAN ได้"

SVN proxy repository server!




แล้วงานก็เข้าอีกทีเมื่อเกิดปัญหาดังนี้

มีการติดตั้งการใช้งาน Application Server ที่ Data Center โดยที่ผู้ใช้งานสามารถเข้าใช้งานผ่านทาง Internet

แต่แล้วเมื่อทางเราทำการแก้ไข Application ที่บริษัท และต้องการ Update Application ผ่านทาง SVN ก็เกิดปัญหาขึ้นดังนี้


  1. ทาง Data Center ไม่สามารถทำการกำหนด Firewall โดยให้สิทธิ์การ SVN ผ่าน Dynamic DNS ได้ ต้องใช้ IP อย่างเดียว ซึ่งงานนี้ไม่สะดวกแน่ 
  2. ถึงแม้จะทำการต่อ VPN จาก Local Network ไปยัง Application Server ได้ ก็ต้องขอเปิด Port เพื่อทำการ SVN มายัง Local Network ผ่านทาง VPN อยู่ดี  ก็ไม่สะดวกอีก ตามข้อ 1
  3. ถ้าหากใช้การ Upload code ที่ทำการ Release version ไว้แล้ว ก็จะทำให้ใช้ Bandwidth มาก เพราะว่าไฟล์มีขนาดใหญ่ อีกทั้ง เราก็มี SVN Repository นี่นา
โชคดีที่เมื่อก่อนทำงานเป็น System Engineer มาบ้าง วิธีแก้ของผมก็มีดังนี้นะครับ

เนื่องจากเรามี Server ที่ใช้งานเป็น Application อยู่ ก็เลยขอนำมาทำเป็น SVN proxy repository โดยจะต้องให้ทาง Data Center ทำการกำหนดให้สามารถทำการเชื่อมต่อ มายังเครื่องนี้ผ่านทาง protocal ที่กำหนด

จากนั้นเครื่องที่ SVN proxy repository ก็ทำการสร้าง Tunnel ที่เชื่อมต่อมายังเครื่อง Repository Server ตามนี้ Tunnel


แล้วเครื่อง Application ก็ทำการ SVN update ผ่านทาง SVN proxy ได้แล้ว

สร้าง Tunnel ระหว่าง SVN proxy repository (2.2.2.2) มายังเครื่อง Local Network (1111.dyndns.org)
svn-proxy:$ ssh -L 2.2.2.2:8443:localhost:443 username@1111.dyndns.org

Update SVN ผ่านทาง SVN proxy repository
application-server:$ svn up https://2.2.2.2:8443/ssvn/project/trunk 

ซึ่งเราก็จะใช้งานได้แล้ว

สรุป:  ผู้พัฒนาระบบนอกจากจะต้องเข้าใจในเรื่องของ Application Software แล้ว ควรจะเข้าใจในส่วนของ โครงสร้างเครือข่ายด้วย

ปล. (น้อยใจนิด ๆ ) เนื่องจากเราเป็น local company จึงไม่รู้ว่า เวลาที่เป็น international company ถ้าต้องการเปิดสิทธิ์นี้ ทาง Data Center เค้าจะรีบทำกันขนาดไหน อิ อิ

Thursday, January 7, 2010

I'll ... later.

My UK's friend says about Thai people.

After he walked through JJ market. He learn about traditional Thai people and hard to adopt for this.


After a long conversation...

my friend: Would you like to join my business?
        Thai: It's look very interesting. But i'll do it later.

? But .... my friend want to said "later never comes".


That is Thai.

Monday, January 4, 2010

ขอ 30 วินาที ให้ผมข้ามถนน

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


"ผมอยากได้เวลา 30 วินาทีในการข้ามถนน"

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

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

นึก ๆ ดูข้อดีของการให้สัญญาณกับคนข้ามถนนของญี่ปุ่นก็มีดีดังนี้

1. คนข้ามจะคำนวนเวลาในการข้ามและอัตราความเร็วในการเดินของตัวเองได้ หากต้องทำการข้ามไปอีกมุมถนน
2. ความเป็นระเบียบและการเคารพกฏจะมีตามมาทันที น่าจะไม่มีใครฝ่าไฟแดง เพราะว่าทุกทางข้ามมีคนข้ามกันหมด
3. ไม่ต้องเสียค่าใช้จ่ายในการทำสะพานลอยถึง 4 อัน เหมือนแถวสะพานควาย และอีกหลาย ๆ ที


น่าอิจฉาดี

Sunday, January 3, 2010

อนาคตที่เปลี่ยนไป

ความเดิมจากตอนที่แล้ว "ยืมคำมาจาก heroes"

ผมชอบความฝันตรงที่มันเปลี่ยนกันได้ทุกเวลานี่แหละ วันนี้ขอเปลี่ยนอีกนิด

  1. คนสวน (อันนี้เหมือนเดิม)
  2. IT- ผมคิดว่าจะทำอย่างไรให้ลูกค้าจ่ายเงินให้ผมโดยที่ผมไม่ต้องคอยไปนำเสนอสินค้า หรือว่า demo ด้วยตัวเอง และเพื่อนร่วมงานทุกคนไม่ต้องมาเจอกันทุกวัน แค่มานั่งคุยกัน หรือเดินเสรี เซ็นเตอร์ บางครั้ง เพื่อคุย update ก็พอ
  3. หาอะไรที่ทำได้ทุกวัน วันละน้อยวันละนิด เหมือนน้ำซึมบ่อทราย
  4. สุดท้ายก็... เก็บความรู้บนเส้นทางนี้ที่มีอยู่ 10 ปี มาทำให้เป็นประโยชน์ ต่อตัวเองและผู้อื่น


BitTorrent บิตทอเรนท์

คุณเคยใช้ บิตฯ หรือไม่? คุณรู้หรือไม่ว่ามันทำงานอย่างไร?

วันนี้ลองอ่านดู ก็ค้นพบว่า มีสิ่งที่ซ่อนอยู่ดังนี้


  1. ในโครงข่าย การแบ่งปันไม่มีที่สิ้นสุด และเร่ิมจากต้องมีผู้ให้ก่อนเสมอ
  2. เมื่อคุณได้สิ่งที่ต้องการแล้ว ให้แบ่งให้คนอื่นด้วย 
  3. ทุกคนทีสิทธิ์เป็นทั้ง seed และ peer ไม่ใช่ server หรือ client
ถ้าให้ผมคิดธุรกิจกับ บิตฯ ผมจำทำอย่างนี้
  1. ขาย Bandwidth
  2. ขาย Harddisk
  3. โรงภาพยนต์ด้วย bit 


ref: http://en.wikipedia.org/wiki/BitTorrent_(protocol)

Saturday, January 2, 2010

เราเรียนที่จะเป็นคนอื่น มากกว่าเรียนที่จะเป็นตัวเอง

จากบทความที่แล้ว เรื่องการเรียนที่ไม่ประสบความสำเร็จ 

พอดีนั่งดูรายการต่อ เป็นการเรียนเรื่องภาษาอังกฤษ  ผมชอบคำที่ คริส เดลิเวอรี่ พูดไว้ "เราก็พูดภาษาอังกฤษแบบ ไทย ๆ นี่แหละ จะไปพูดแบบเค้าทำไม ดูอย่างสิงคโปร์สิ" เราใช้ภาษาอังกฤษก็เพื่อสื่อสารกันให้รู้เรื่องไม่ใช่หรือ

มันจะทำอะไรได้ ถ้าหากสอบได้คะแนนภาษาอังกฤษสูง ๆ แต่เวลาพูดกับคนต่างชาติ พูดกันไม่รู้เรื่อง

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

เวลาเราจะไปสื่อสารกับคนญี่ปุ่น ระหว่างฝึกพูดภาษาอังกฤษ กับภาษาญี่ปุ่น คุณจะเลือกอะไร ผมเลือกภาษาญี่ปุ่น!

ไหงเวลาฝรั่งมาบ้านเราทำไมเราต้องฝึกภาษาอังกฤษหว่า? ทำไมเค้าไม่ฝึกภาษาไทยหละ

tutorchannel www.etthai.tv

ผมชอบรายการนี้เพราะว่านั่งเรียนได้ที่บ้าน ไม่ต้องนั่งดูรถติดไปโรงเรียนกวดวิชา นอกจากการเรียนที่โรงเรียนแล้ว ผมคิดว่าการเรียนพิเศษก็จำเป็น แต่...

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

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

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

สิ่งที่วนอยู่ในการศีกษาของคนไทย และทำให้คนไทยไม่พัฒนาในมุมมองของผมมีดังนี้

  1. การเรียนที่ไม่เสนอตัวอย่างที่สังเกตได้จริงปฏิบัติได้จริง เช่น เราเรียนเรื่องการบวก ไปทำไม เรียนการเคลื่อนที่ไปทำไม เรียนเคมีไปทำไม ทำให้นักศึกษาไม่รู้ความสำคัญแต่ละขั้นตอนการเรียน หลงทางไปเรื่อย
  2. เราเรียนทำโจทย์ แต่ไม่เข้าใจโจทย์ จะมีสักที่คนที่สอนให้เข้าใจโจทย์
  3. เราสอนและเรียนเพื่อทำคะแนน แต่ไม่เรียนเพื่อเรียนรู้
  4. เรานำคะแนนมาวัดความรู้ แต่ไม่นำคะแนนมาวัดความเข้าใจ
  5. เราสอนคนตัดตัวเลือก แต่ไม่เคยสอนให้สร้างตัวเลือก ไม่เชื่อลองทำข้อสอบที่มีตัวเลือก 7 ตัวสิ แล้วจะพบว่า คะแนนสอบน้อยลง
  6. เราสอนให้คนท่องจำ มากกว่าสอนให้เข้าใจ มันไม่ต่างอะไรจากสัตว์เลี้ยงที่มันรู้ว่า เราทำอย่างไรให้มันทราบได้ว่าเราจะเรียกมันมาหาเรา
  7. คนไทยมักง่าย ได้อะไรมาง่าย ๆ แต่ไม่พยายามทำสิ่งที่ยาก ๆ ฟันฝ่าอุปสรรคยาก ๆ ทำให้เมื่อพบความผิดหวังก็ล้มแล้วลุกขึ้นยาก
  8. เราให้ความสนใจกับคนที่เก่ง สนับสนุนคนเก่ง แต่ไม่ทำให้ทุกคนเก่งขึ้น เหมือนกับเราไม่พยายามเพาะพันธ์ุปลาให้ดี แต่เราจะคัดเลือกเฉพาะปลาที่สวยและเด่นเท่านั้น)
วิชาที่ผมคิดว่าประสบความสำเร็จในการเรียนการสอนมีดังนี้
  1. วิชายืดหยุ่น เพราะว่ามันเอามาใช้กับการล้มอย่างไรไม่ให้เจ็บ หรือการกระโดดอย่างไรไม่ให้เจ็บขา มันเป็นหลักที่ดีในการทำโช๊ค ในรถยนต์ คุณว่าไหม?
  2. วิชาเกษตร เพราะว่าเราจะนำไปทำได้ทุกเมื่อเวลา และก็ง่าย ทุกคนเข้าใจ คุณปลุกถั่วเขียวเป็นหรือเปล่า คุณว่าไหม เราสามารถปลูกถั่วเขียวเป็นอาชีพได้
  3. วิชาศิลปะ เพราะว่ามันทำให้เราไม่มีกรอบ
จะเห็นได้ว่าวิชาที่ประสบความสำเร็จในการเรียนการสอนส่วนใหญ่เกิดจากการสร้างจินตนาการให้นักเรียนได้นั่งเอง

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


ปีใหม่ตั้งใจทำอะไร

#อ่านหนังสือมากขึ้น
ปีที่แล้วเป็นปีที่อ่านหนังสือธรรมะแนววิทยาศาสตร์มากเป็นพิเศษ แต่ก็ไม่มากเท่าเพชรพระอุมา ปีนี้จะเพิ่มหมวดหนังสือเฉพาะทางอีก โดยเฉพาะ Python ที่กำลังอ่านคือ "How to Think Like Computer Scientist"  อีกเล่มคือ "Sphinx Python Documentation Generator" 

#เพิ่มความสามารถเฉพาะด้านที่ถนัด
หลังจาก การไปเที่ยวได้อะไรมากกว่าที่คิด ที่แล้ว ก็ทำให้เรารู้ว่า "รู้สิ่งเดียวให้เชียวชาญเถิดจะเกิดผล" เพราะว่าถ้าคนเรารู้หลาย ๆ อย่างมากไป จะทำให้ยิ่งหาตัวตนได้ยากยิ่งขึ้น

#การงานที่ต้องทำมากขึ้น
่งานปีนี้เป็นปีที่ต้องทำควบคู่กันไปซัก 2-3 งาน สิ่งที่จำเป็นต้องมีคือ สติ สมาธิ และปัญญา แล้วจะมีเวลาเพิ่มขึ้น

#ท่องเที่ยวไทย
สิ่งที่ต้องทำอีกอย่างที่พลาดไม่ได้สำหรับคนไทย คือ ท่องเที่ยวไทย ถ้าคุณเป็นคนไทย ต้องมีสิ่งนี้

Friday, January 1, 2010

StarCraft

วันนี้ปีใหม่ นั่งเล่นเกมส์กับน้องผ่าปีเลยครับ ผมเล่นเกมส์อื่น ๆ ไม่ค่อยเก่ง นอกจากเกมส์แนว ๆ StarCraft

มันติด ๆ ๆ จนบัดนี้แล้วก็ประมาณ 10 ปีแล้วครับ

และที่แน่ ๆ คือผมรอ StarCraft II อยู่ แค่เห็นตัวอย่างนี้ก็อดรอไม่ไหวแล้ว StarCraft II

Updated: ผมติดตั้ง StarCraft บน Mac Snow Leopard เรียบร้อยแล้ว