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 ปี มาทำให้เป็นประโยชน์ ต่อตัวเองและผู้อื่น