14 April 2014

LookHin

8 ขั้นตอนง่ายๆ ที่ช่วยให้ Apache Web Server ปลอดภัยมากขึ้น

วันนี้เรามาทำให้ Apache Web Server ของเราปลอดภัยมากขึ้นด้วยขั้นตอนง่ายๆ 8 ขั้นตอนกันครับ ถึงแม้จะไม่ได้ปลอดภัยขึ้นถึงระดับที่ไม่สามารถแฮกได้ แต่อย่างน้อยก็ทำให้ผู้ที่จะโจมตีต้องทำการบ้านมากขึ้นนิดหนึ่ง โดยเราจะเน้นไปที่การปิด Error ต่างๆ ของระบบ และแถมท้ายด้วยการติดตั้ง ModSecurity ซึ่งเป็น Web Application Firewall (WAF) ที่จะช่วยป้องกันเว็บไซต์ของเราให้ปลอดภัยจากการโจมตีในแบบต่างๆ ได้มากขึ้น

1. ยกเลิกการแสดงหน้า welcome page

ปกติแล้วเวลาที่เราติดตั้ง apache  ระบบจะสร้างหน้า welcome page ขึ้นมาให้เรา ซึ่งจะบอกทุกอย่างเกียวกับระบบ แต่ปกติหน้านี้จะไม่แสดงถ้าเราทำหน้า index ขึ้นมาแล้ว แต่ว่าลบมันทิ้งไปเลยก็ดีกว่าครับ ขั้นตอนก็ง่ายๆ เข้าไปลบไฟล์ /etc/httpd/conf.d/welcome.conf ได้เลยครับ

1
# rm /etc/httpd/conf.d/welcome.conf

ก่อนลบไฟล์ /etc/httpd/conf.d/welcome.conf
apache-security

หลังลบไฟล์ /etc/httpd/conf.d/welcome.conf
apache-security

2. ซ่อนการแสดงเวอร์ชั่นของ Apache และ OS จากหน้า Error
ทุกครั้งที่มีการเรียกไฟล์ที่ไม่มีอยู่ใน website ของเรา Apache จะแสดงข้อมูลขึ้นมาว่าเราใช้ Apache และ OS version อะไร ซึ่งจะเป็นข้อมูลที่ดี ที่จะให้แฮกเกอร์นำข้อมูลเหล่านั้นไปหาช่องโหว่มาโจมตี โดยเราสามารถปิดการแสดงข้อมูลเหล่านี้ได้โดยการแก้ไขไฟล์ /etc/httpd/conf/httpd.conf

เปิดไฟล์ขึ้นมาแก้ไข จะใช้ vi หรือ nano แล้วแต่ถนัด

1
# nano /etc/httpd/conf/httpd.conf

จากนั้นแก้ค่า ServerSignature และ ServerTokens ตามนี้ครับ

1
2
ServerSignature Off
ServerTokens Prod

ก่อนแก้ไขจะเห็นว่าถ้ามี Error ระบบจะแสดงเวอร์ชั่นของ Apache และ OS ขึ้นมา
apache-security

หลังจากแก้ไขแล้วจะแสดงแค่ Error อย่างเดียว
apache-security

3. ยกเลิกการแสดงไฟล์ในไดเร็กทอรีที่ไม่มีอินเด็กซ์ไฟล์
ถ้าหากว่าเราเปิดเข้าไปในไดเร็กทอรี ที่ยังไม่มีอินเด็กซ์ไฟล์ ระบบจะแสดงไฟล์ทั้งหมดขึ้นมาให้ ซึ่งจะไม่ปลอดภัยเลยหากว่าแฮกเกอร์สามารถเห็นไฟล์ในไดเร็กทอรีต่างๆ ของเราได้หมด การเปิดออฟชั่นนี้สามารถทำได้ง่ายๆ โดยเพิ่ม Options -Indexes เข้าไปในไฟล์ /etc/httpd/conf/httpd.conf

เปิดไฟล์ httpd.conf ขึ้นมาแก้ไข

1
# nano /etc/httpd/conf/httpd.conf

เพิ่ม Options -Indexes เข้าไปในส่วนของ <directory> (ปกติจะมีอยู่แล้ว แต่ว่ายังไม่ได้ใส่เป็น -Indexes)

1
2
3
<Directory /var/www/html>
    Options -Indexes
</Directory>

ก่อนการแก้ไข จะเห็นว่าระบบแสดงชื่อไฟล์ขึ้นมาให้
apache-security

หลังการแก้ไข เราก็จะไม่เห็นไฟล์ต่างๆแล้ว
apache-security

4. ปิดโมดูลที่ไม่จำเป็น
ค่าแรกเริ่มของ Apache จะเปิดโมดูลต่างๆ ขึ้นมาเกือบทั้งหมด แต่บางอย่างเราก็ไม่ได้ใช้ เปิดไว้ก็อาจจะเป็นช่องโหว่ให้โดนแฮกเกอร์โจมตี ทางทีดีปิดมันไว้ดีกว่า ถ้าอันไหนจะใช้เราค่อยมาเปิดทีหลัง โมดูลต่างๆ พวกนี้เราสามารถเข้าไปเปิดและเปิดได้ที่ไฟล์ /etc/httpd/conf/httpd.conf โดยค้นหาคำว่า LoadModule และทำการใส่เครื่องหมาย # หน้าโมดูลที่ไม่ต้องการ อย่างเช่นโมดูล mod_info, mod_userdir, mod_autoindex

เปิดไฟล์ httpd.conf ขึ้นมาเปิดหรือปิดโมดูลที่ต้องการ

1
# nano /etc/httpd/conf/httpd.conf

apache-security

5. ปิดการทำงานของ Server Side Includes และ CGI Execution
ทุกวันนี้คงไม่มีใครใช้ SSI และ CGI ในการทำเว็บกันแล้ว การปิดการทำงานก็ง่ายๆ แค่เพิ่ม -Includes และ -ExecCGI ใน httpd.conf ในส่วนของ Directory

เปิดไฟล์ httpd.conf

1
# nano /etc/httpd/conf/httpd.conf

เพิ่ม -Includes -ExecCGI เข้าไปในส่วนของ Directory

1
2
3
<Directory /var/www/html>
    Options -Indexes -Includes -ExecCGI
</Directory>

6. ทำการเก็บ Log ของทุก VirtualHost ที่อยู่ในเซิฟเวอร์
ทำได้โดยการเพิ่ม ErrorLog และ CustomLog เข้าไปใน VirtualHost

1
2
3
4
5
6
7
<VirtualHost *:80>
    ServerAdmin webmaster@www.example.com
    DocumentRoot /var/www/www.example.com
    ServerName www.example.com
    ErrorLog /var/log/httpd/www.example.com-error_log
    CustomLog /var/log/httpd/www.example.com-access_log common
</VirtualHost>

7. ติดตั้ง mod_security
mod_security เป็น Web Application Firewall (WAF) ที่จะช่วยเพิ่มความปลอดภัยให้เซิฟเวอร์เรามากขึ้น โดยสามารถป้องกันการทำ SQL Injection ได้ด้วย

อย่างแรก ทำการติดตั้ง EPEL (Extra Packages for Enterprise Linux) กันก่อน

1
2
3
4
5
6
7
## RHEL/CentOS 6 ## สำหรับเครื่อง 32-Bit
# wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm
 
## RHEL/CentOS 6 ## สำหรับเครื่อง 64-Bit
# wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm

จากนั้นติดตั้ง mod_security เป็นอันเรียบร้อย

1
# yum install mod_security

8. ทำการอัพเกรด Apache อย่างสม่ำเสมอ

1
# yum update httpd

โดย LookHin ณ 14 April 2014 05:21 GMT

11 April 2014

Kitt

Heartbleed bug

อธิบายเรื่อง heartbleed 1. ใน SSL/TLS ใหม่ๆ มีฟีเจอร์ heartbeat สำหรับ maintain session เพื่อลดการ reestablish secure connection 2. heartbeat ใช้วิธี request / response 3. request ที่ส่งส่วนนึงคือ data, byte length ของ data / response ส่วนนึงคือ data และ byte length ของ data ที่ได้รับ 4. … Continue reading

โดย kitty ณ 11 April 2014 11:54 GMT

9 April 2014

Udomsak

Log Android dev to elasticsearch

Simple Log server สำหรับ  Android  Development. 


หลังจากพบปัญหา ระหว่างการพัฒนา แอพพลิเคชั่นโมบาย  แล้วต้องมอนิเตอร์ดู  log-stream  ซ่งสามารถทำได้ด้วยคำสั่ง

adb logcat


แต่ปัญหาก็คือ ไม่สามารถทำการสืบค้นย้อนกลับ ตามที่ต้องการด้วย จะโหลดเอา  graylog2  มาใช้ก็จะเสียเวลาไปหน่อย เลยเลือกเอา  elasticsearch + logstash  + kibana3  เอามาทำ ระบบ log server แบบ ง่ายๆ ดีกว่า ปล. log.io ก็ใช้ได้ครับ แต่ทำให้  เครื่อง hang ( browser freeze )



ความต้องการเริ่มต้น  ( prerequisite )

-  Java  แต่เนื่องจากผมได้ทำการ setup ตอนทำงาน Android  จะขอข้ามตรงนี้ไป และ อนุมาน ว่าค่าเริ่มต้นในส่วนของ Java ได้ทำการ Set ไว้แล้ว




  1. เริ่มจาก ดาวน์โหลด  elasticsearch    
  2. ต่อมา ดาวน์โหลด logstash  


เริ่มจาก ทำการรัน  logstash เอาไว้ก่อนเลย  ( Start  logstash verbose output and listen on tcp port '9999' )

udomsak$ ./logstash --verbose -e 'input { tcp { port=>9999 } } output { elasticsearch {} }'





จากนั้น ออนไลน์ elasticsearch ( assume you in elasticsearch path )  

udomsak$  ./elasticsearch



ทำการ pipe output ของ  adb logcat  ส่งไปยัง  Service

adb logcat | nc  127.0.0.1 9999 -


เปิด kibana3 โดยไปที่ localhost port 9292

udomsak$  ./logstash-web 





โดย udomsakc (noreply@blogger.com) ณ 9 April 2014 06:25 GMT

1 April 2014

Prach

My Contribution to Debian, 2014-2

Upload:
- phpunit (3.7.28-1)
- php-codecoverage (1.2.13+dfsg2-1)
- php-token-stream (1.2.1-1)
- phpunit-selenium (1.3.3-1)
- phpunit-mock-object (1.2.3-1)
- Sponsor by David Prévot
  + php-mail (1.2.0-6)
  + php-http-webdav-server (1.0.0RC6-2)
  + php-xml-dtd (0.5.2+dfsg1
  + php-timer (1.0.5-1)
- php-zmq (new), sponsor by Laszlo Boszormenyi
- debpear/0.4 (native) -- automatically builds and installs PEAR package as Debian packages
  + add supported for channel and PECL packages
- haproxy (1.4.25-1), sponsor by Apollon Oikonomopoulos

Other packages:
 - docker.io (0.8.0+dfsg1-1), added zsh completion.

Bugs:
#732641 -- pkg-php-tools: Please, remove tests file with Buildsystem-phppear
#736294 -- pkg-php-tools: causes directory vs. symlink conflicts
#730316 -- php-mail: FTBFS: test failures in smtp_error test
#737453 -- php-codecoverage: Sourceless file (minified) (jquery)
#738373 -- php-xml-dtd: FTBFS: chmod: cannot access .. No such file or directory
#738416 -- php-http-webdav-server: FTBFS: chmod: cannot access .. No such file or directory
#737558 [P] -- pkg-php-tools: Please, support Zend extensions

TODO:
- http://dep.debian.net/deps/dep8/
- Join the NM process (if I have time)


โดย Prach Pongpanich (noreply@blogger.com) ณ 1 April 2014 06:50 GMT

25 March 2014

Udomsak

ฺBangkok Coffee shop suite for working space free wi-fi - Electricity plug

ร้านกาแฟ ที่มีปลั๊กไฟ และ บริการฟรี ไวไฟ


https://mapsengine.google.com/map/edit?mid=z7uZjMMQ0VKc.kFBrL2o1MUpY

Link นี้จะ Update เกือบตลอดเวลานะครับ เนื่องจากเป็นที่ ที่ผมจะไปอยุ่ เป็นประจำ สลับกันไป

โดย udomsakc (noreply@blogger.com) ณ 25 March 2014 19:23 GMT

18 March 2014

Thep

Fonts-TLWG 0.6.0

ออกไปแล้วเมื่อวาน สำหรับ Fonts-TLWG 0.6.0 สำหรับรุ่นนี้ การเปลี่ยนแปลงที่สำคัญที่ทำให้ถึงกับต้องเพิ่มเลขรุ่นที่เลขกลาง ก็คือการรองรับภาษาชาติพันธุ์อย่างมีการเตรียมการ

สำหรับข้อมูลเบื้องต้นเกี่ยวกับภาษาชาติพันธุ์ กรุณาอ่าน blog เก่า และ บทความของคุณอนงค์ เพิ่มเติม

ที่ว่า รองรับอย่างมีการเตรียมการ ก็เพราะในรุ่นก่อนก็สามารถรองรับได้ในระดับหนึ่ง หลังจากที่ Pango 1.31.0 (GNOME 3.6) ขึ้นไปได้โละ engine ภาษาไทยที่ใช้ วทท. 2.0 (มอก. 1566-2541) ทิ้ง และย้ายไปใช้ HarfBuzz จัดการแทน ก็ทำให้กระบวนการวาดภาษาไทยย้ายหนีจาก วทท. 2.0 มาเป็น normalization ตามข้อกำหนดยูนิโค้ด โดยปริยาย ซึ่งข้อกำหนดนี้จะผ่อนคลายกว่า วทท. 2.0 ที่ผูกติดกับภาษาไทยเพียงภาษาเดียว เพราะยูนิโค้ดได้เตรียมการเผื่อการใช้อักษรไทยเขียนภาษาชาติพันธุ์ต่าง ๆ เอาไว้ด้วย ทำให้ฟอนต์ชุด TLWG รุ่นเก่าก็สามารถใช้เขียนภาษาชาติพันธุ์ได้ทันที แต่จะเป็นการวางอักขระซ้อนกันแบบไม่มีการจัดตำแหน่ง บางกรณีก็วางแล้วไม่ซ้อนกัน บางกรณีก็ซ้อนทับกัน แต่ในฟอนต์รุ่น 0.6.0 นี้ มีการออกแบบเพื่อรองรับกรณีต่าง ๆ ให้จัดวางอักขระได้อย่างสวยงาม

ข้อกำหนด วทท. 2.0 นั้น มีลำดับการซ้อนสระและวรรณยุกต์ตายตัวตามอักขรวิธีภาษาไทย แต่เมื่ออักษรไทยถูกใช้เขียนภาษาชาติพันธุ์ จะมีการดัดแปลงอักขระบางตัวเพิ่มเติม เช่น ใช้ไม้ไต่คู้กำกับเหนือสระบน ใช้วรรณยุกต์เหนือไม้ไต่คู้ ใช้ทัณฑฆาตหรือยามักการเป็นวรรณยุกต์เพิ่มเติม การประพินทุใต้สระ การวางสระบนเหนือสระอา หรือกระทั่งดัดแปลงไม้ตรีใช้เป็นสระพิเศษ!

Ethnic languages using Garuda font

ภาษาชาติพันธุ์ที่ใช้ในรูป (ตั้งแต่บรรทัดที่สองเป็นต้นไป ส่วนบรรทัดแรกใช้ทดสอบฟอนต์ตามข้อกำหนดยูนิโค้ดเท่านั้น) :-

การใช้งานเหล่านี้ นอกจากทำให้ต้องยกเครื่องจาก วทท. 2.0 เป็นยูนิโค้ดแล้ว ยังมีผลต่อการออกแบบฟอนต์ที่ต้องรองรับกรณีพิเศษเพิ่มเติมด้วย

สำหรับฟอนต์ TrueType/OpenType สิ่งที่ทำเพิ่มก็คือ:

นอกจากนี้ ยังได้ ส่งแพตช์ สำหรับแก้ให้ HarfBuzz normalize อักขระใต้บรรทัดให้พินทุมาก่อนสระล่างอย่างถูกต้องด้วย ซึ่งแพตช์ยังอยู่ระหว่างอภิปราย

แต่เนื่องจากฟอนต์ชุด TLWG ยังมีการใช้งานใน LaTeX (pdfTeX engine) ด้วย ซึ่งใน LaTeX ยังคงใช้ PUA glyph แบบเก่า (ที่เรียกกันว่า ตัวหลบ) อยู่ ไม่สามารถใช้ประโยชน์จากการปรับข้อมูล OpenType ข้างต้นได้ จึงต้องปรับขยายกฎ LIGKERN ให้ครอบคลุมกรณีของภาษาชาติพันธุ์เพิ่มเติม กล่าวคือ ต้องเพิ่มกฎต่อไปนี้:

นั่นคือสิ่งที่ทำได้ในตอนนี้สำหรับ LaTeX ยังมีกรณีที่ขาดเหลืออยู่ซึ่งยังไม่สามารถทำได้ เนื่องจากตาราง LTH encoding เต็มแล้ว ไม่มีช่องเหลือให้เพิ่ม PUA glyph เช่น

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

Ethnic languages in LaTeX

ผลพลอยได้ระหว่าง fine-tune ฟอนต์ก็คือ ได้เพิ่มฟอนต์ Umpush Light สำหรับการใช้งานใน LaTeX แล้วด้วย โดยสามารถกำหนดฟอนต์ด้วยคำสั่ง \usefont เช่น

  \usefont{LTH}{umpush}{l}{n}   % ตัวตรง
  \usefont{LTH}{umpush}{l}{it}  % ตัวเอียง

Umpush Light in LaTeX

ฟอนต์รุ่นนี้ ได้อัปโหลดเข้า Debian sid (สำหรับเดสก์ท็อป) และที่ CTAN (สำหรับ LaTeX) แล้วทันทีหลังจากออกรุ่นที่ต้นน้ำ สำหรับ LaTeX ใน Debian นั้น ต้องรอทีม TeX ของ Debian อัปเดตพร้อมกับภาษาอื่น ๆ ในแพกเกจ texlive-lang-other ต่อไป

อ้างอิง:

[1]
นเรศ นโรปกรณ์. (๒๕๓๖). อัจฉริยลักษณ์และความเป็นวิทยาศาสตร์ของลายสือไทย. พิมพ์ครั้งที่ ๑. กรุงเทพฯ : โอเดียนสโตร์. ISBN 974-276-975-3.
[2]
ราชบัณฑิตยสถาน. (๒๕๕๓). คู่มือระบบเขียนภาษามลายูปาตานีอักษรไทย ฉบับราชบัณฑิตยสถาน. พิมพ์ครั้งที่ ๑. กรุงเทพฯ : ราชบัณฑิตยสถาน. ISBN 978-616-7073-25-5.

โดย Thep (noreply@blogger.com) ณ 18 March 2014 08:19 GMT

8 March 2014

LookHin

ว่าด้วยกรีกและสงครามกรีก-เปอร์เซียในสมัยโบราณ

กรีกในสมัยโบราณอยู่ทางตะวันออกสุดยุโรปภาคใต้ ประกอบด้วยผืนแผ่นดินและดินแดนในหมูเกาะต่างๆ ในทะเลเอเจียน และฝั่งตะวันตกของเอเชียไมเนอร์ ซึ่งนิยมเรียกว่า “นครรัฐไอโอเนียน” ในบรรดานครรัฐต่างๆ ของกรีกต่างปกครองตัวเองอิสระแยกจากกัน ไม่เคยรวมตัวเป็นนครรัฐเดียวได้เลย ยกเว้นจะมีการรวมตัวกันบ้างเมื่อเกิดสงครามกับต่างชาติ โดยนครรัฐเหล่านั้นจะรวมตัวกันเป็นสหพันธรัฐ (Federation) แต่เมื่อสงครามสงบลงนครรัฐต่างๆ ก็แข่งขันกันเองและทำสงครามกันเองอยู่บ่อยครั้ง

750px-Map_Greco-Persian_Wars-en.svg

การปกครอง

ในช่วง 1,200 – 650 ปีก่อนคริสตกาล รัฐแต่ละรัฐของกรีกมีรูปแบบการปกครองที่แตกต่างกัน แต่ละรัฐมีแนวทางการปกครองของตัวเองซึ่งพอจะจำแนกออกได้เป็น 4 แบบ

  1. ระบอบราชาธิปไตย (Monarchy) โดยมีพระมหากษัตริย์ใช้อำนาจสูงสุดในการปกครอง
  2. ระบอบชนชั้นสูง (Aristocracy) โดยชนชั้นสูงจะตั้งคณะเป็นผู้ปกครอง ชนชั้นสูงที่ว่าคือพวกนักรบและขุนนาง
  3. ระบอบคณาธิปไตย (Oligarchy) เป็นการปกครองโดยหมู่คณะของกลุ่มคนบางกลุ่ม โดยคณะที่ว่าเป็นพลเมืองกลุ่มเล็กๆ ของพลเมืองผู้ร่ำรวย
  4. ระบอบทรราช (Tyranny) เป็นการปกครองโดยบุคคลเพียงคนเดียว ใช้อำนาจเด็ดขาดในการปกครอง ไม่คำนึงถึงผู้อยู่ใต้การปกครอง

จะว่าไปแล้วในแต่ละรัฐไม่ได้ปกครองด้วยการปกครองแบบใดแบบหนึ่งแต่เพียงอย่างเดียว อาจมีการรวมวิธีปกครองหลายแบบเข้าด้วยกัน ตัวอย่างการปกครองของรัฐใหญ่ๆ 3 รัฐ ได้แค่ นครรัฐคอรินธ์ นครัฐเอเธนส์ นครรัฐสปาร์ตา และระบอบประชาธิปไตยเพิ่งมีขึ้นในช่วง 494 ปีก่อนคริสตกาล

  1. นครรัฐคอรินธ์ เป็นรัฐเมืองท่าขนาดใหญ่ ตั้งอยู่เหนือที่ราบชายทะเลบริเวณคอคอดที่เชื่อมคาบสมุทรเพลอปปอนเนซุสกับแผ่นดินใหญ่ คอรินธ์แบ่งการปกครองออกเป็น 3 ภูมิภาคและแบ่งประชากรออกเป็น 8 เผ่า ซึ่งแต่ละเผ่าจะเลือกผู้แทน 10 คน เพื่อเป็นผู้แทนในสภา (Council)  ซึ่งสภานี้จะเป็นคณะที่ปรึกษาของผู้ปกครองที่มาจากชนชั้นสูงอีกทีหนึ่ง
  2. นครรัฐเอเธนส์ เป็นรัฐขนาดเล็ก มีประชากรประมาณ 50,000 คน ประกอบด้วยบริเวณสำคัญ 2 ส่วนคือ อะโครโปลิส (Acropolis) และ อกอรา (Agora) ปกครองแบบประชาธิปไตย แต่แตกต่างจากประชาธิปไตยสมัยใหม่อยู่มาก คือ
    1. สิทธิในการปกครองถูกสงวนไว้สำหรับประชากรเพียง 1 ใน 6 เท่านั้น

    2. สตรีไม่มีหน้าที่หรือสิทธิใดๆ
    3. พลเมืองที่มีสิทธิสามารถใช้สิทธิของตัวเองได้โดยตรง โดยไม่ต้องเลือกผู้แทนเพื่อเข้าไปใช้สิทธิดังกล่าว จะเห็นว่าประชากรที่มีสิทธิในการปกครองของรัฐเอเธนส์มีอยู่ไม่มากจึงไม่จำเป็นต้องทำการเลือกผู้แทน พลเมืองทุกคนที่มีสิทธิสามารถเข้าร่วมประชุมสภาราษฎรและลงมติในเรื่องต่างๆได้
  3. นครรัฐสปาร์ตา เป็นรัฐที่ทรงอำนาจและแข็งแกร่งที่สุดในบรรดานครรัฐต่างๆของกรีก มีกองกำลังทหารที่มีระเบียบวินัยและเกรียงไกรที่สุด มีลักษณะการปกครองเป็นเผด็จการทหาร ประชาชนของสปาร์ตาแบ่งออกเป็น 3 กลุ่ม คือ
    1. สปาร์เตียน (Spartiates) เป็นชาวดอเรียน ถือเป็นสปาร์ตาแท้ ส่วนใหญ่ทำหน้าที่เป็นทหาร
    2. เปริโอชิ (Perioecil) เป็นชาวเลซิเดโมเนียน อาศัยอยู่รอบนอกตัวเมือง จัดเป็นเสรีชนทำกิจการของตัวเองได้ แต่ขาดสิทธิทางการเมือง
    3. เฮล็อต (Helot) เป็นชนพื้นเมืองเดิม แต่เมื่อพวกเลซิดเดโมเนียนบุกรุกเข้ามาก็ทำการควบคุมคนเหล่านี้ให้อยู่ในฐานะ “ทาส”

สงครามกรีก-เปอร์เซีย

ประมาณ 500 ปีก่อนคริสตกาล จักรวรรดิเปอร์เซียมีอาณาเขตกว้างขวาง ยึดครองอาณาจักรต่างๆ ไว้ได้เป็นจำนวนมาก โดยมีเขตแดนดังนี้

สงครามกรีก-เปอร์เซีย ครั้งที่ 1 (492 ปีก่อนคริสตกาล)

กษัตริย์ดาริอุสที่ 1 แห่งเปอร์เซีย ให้มาร์โดนิอุส (Madonius) ยกทัพข้ามช่องแคบเฮเลสปอนต์ผ่านแคว้นเทรซ (Thrace) ซึ่งเป็นชายฝั่งด้านเหนือของทะเลเอเจียน เพื่อเดินทางทัพเรือต่อไปยังคาลสมุทรกรีก แต่ถูกพายุใหญ่ ทำให้เรือเสียหายมากจนต้องยกทัพกลับ หลังจากนั้นพระเจ้าดาริอุสที่ 1 ได้ส่งคณะฑูตไปยังรัฐต่างๆของกรีกเพื่อเจรจาให้ยอมส่งส่วยดินและน้ำ ซึ่งเป็นสัญลักษณ์ของการยอมแพ้และอยู่ใต้การปกครองของเปอร์เซีย ขณะนั้นนครรัฐหลายรัฐยอมส่งส่วย  แต่มีบางรัฐไม่ยอม เช่น รัฐเอเธนส์ และ รัฐสปาร์ตาร์

สงครามกรีก-เปอร์เซีย ครั้งที่ 2 (490 ปีก่อนคริสตกาล) หรือสงครามมาราธอน

กษัตริย์ดาริอุสที่ 1 รวบรวมกำลังพลเพื่อที่จะทำสงครามกับกรีกอีกครั้ง โดยมีทหารราบ 250,000 ทหารม้า 1,000 เรือมากกว่า 600 ลำ โดยเดินทัพเลียบชายฝั่งทะเลเมติเตอเรเนียนเข้าสู่ทะเลเอเจียน และขึ้นบกที่อ่าวมาราธอน (Marathon) แคว้นอัตติกา (Attica) การรบครั้งนี้ถึงกรีกจะมีกำลังน้อยกว่า แต่กรีกเป็นฝ่ายชนะ

สงครามกรีก-เปอร์เซีย ครั้งที่ 3 (481 ปีก่อนคริสตกาล)

หลังจากกษัตริย์ดาริอุสที่ 1 สิ้นพระชนม์ในปี 486 ก่อนคริสตกาล  เจ้าชายเซอร์เซส พระโอรสก็สืบราชสมบัติต่อ เป็นกษัตริย์เซอร์เซสที่ 1 (Xerxes 1)  กษัตริย์เซอร์เซสที่ 1 ต้องการเดินทัพทางบกขึ้นเหนือ จึงสั่งให้ทำสะพานข้ามช่องแคบเฮเลสปอนส์ แล้วเดินทัพอ้อมมาตามชายฝั่งทะเลเข้าสู่คาบสมุทรกรีก โดยมีกองทัพเรือเดินทางเลียบชายฝั่งมาด้วย ว่ากันว่าการยกทัพมาครั้งนี้มีกำลังพลถึง 2,300,000 คน

หลังจากได้รับชัยชนะจากสงครามจากเปอร์เซียแล้ว ก็เกิดสงครามภายในระหว่างรัฐของกรีกอีกหลายครั้ง จนในที่สุดพระเจ้าฟิลิปที่ 2 แห่งมาซิโดเนีย (359– 336 ปีก่อนคริสตกาล) (คนนี้เป็นพ่อของพระเจ้าอเล็กซานเดอร์มหาราช) ซึ่งเป็นอาณาจักรทางภาคเหนือของกรีก ได้ใช้กำลังผสมระหว่างทหารม้าของขุนนางกับทหารราบฟาลังห์ (เป็นทหารที่ใช้โล่กับหอกยาวเวลารบจะเรียงแถวหน้ากระดาน) เข้ามาแทรกแซงและครอบครอง หลังจากนั้นไปก็จะเป็นเรื่องราวของพระเจ้าอเล็กซานเดอร์มหาราช (356-323 ปีก่อนคริสตกาล) ที่จะขยายอาณาเขตไปจนถึงอินเดีย

โดย LookHin ณ 8 March 2014 05:46 GMT

25 February 2014

bact

“อยากกด Like จนมือสั่น”

สืบเนื่องจากกรณีตำรวจอยากดูข้อมูลการพูดคุยกันของประชาชนบนโซเชียลมีเดีย

นิตยสาร Way สัมภาษณ์ประมาณสิงหาปีที่แล้ว ฉบับสั้น “5 คำถาม” ตีพิมพ์ลงฉบับ 56 ธีมเล่ม “Human 2.0″

ส่วนฉบับยาวเพิ่งออกมาเมื่อเดือนนี้ (ก.พ. 2557) ในชื่อว่า “อยากกด Like จนมือสั่น” ว่าด้วยความเคลื่อนไหวเปลี่ยนแปลงบนสื่อสังคม การแสดงออกทางการเมือง การควบคุมสื่อ และสิทธิมนุษยชน

ภาพประกอบนี้ถ่ายที่ชั้น 2 ตึกคณะนิติ จุฬา หน้าร้านถ่ายเอกสาร – โซฟานี่ก็ไปยืมมาจากร้านถ่ายเอกสาร ช่วยกันยกกับพี่ช่างภาพ

eh?

โดย Arthit Suriyawongkul ณ 25 February 2014 04:31 GMT

เข้าเว็บไซต์มหาวิทยาลัยเที่ยงคืนไม่ได้? ลิงก์เสีย? ลองนี่

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

ถ้าลิงก์ที่มีอยู่เป็นลิงก์จากสมัย http://www.geocities.com/midnightuniv/ หรือ http://www.geocities.com/midnight2545/ ให้เปลี่ยนคำว่า geo ในลิงก์เป็น reo แล้วลองเข้าดูใหม่

ถ้าลิงก์ที่มีอยู่หน้าตาแนวๆ นี้ http://www.midnightuniv.org/midnight2544/XXX.html
ให้ลอก XXX มาใส่ตามลิงก์นี้ http://thaiis.com/midnightuniv-org-v1/XXX.html

เช่น http://www.midnightuniv.org/midnight2544/0009999708.html
ก็เป็น http://thaiis.com/midnightuniv-org-v1/midnight2544/0009999708.html

ส่วนถ้าอยากไล่ดูบทความในแบบเดิมๆ ไปที่หน้าแรกแบบเก่าเก่าและแบบเก่าได้ที่สองลิงก์นี้ครับ

สำหรับเว็บไซต์มหาวิทยาลัยเที่ยงคืนรุ่นใหม่ล่าสุด ซึ่งมีบทความใหม่ๆ ออกมาอยู่เรื่อยๆ เข้าดูได้ที่ http://www.midnightuniv.org/

(เหตุทั้งหมดเกิดจากมีคนมาถามถึงบทความในโพสต์นี้ ซึ่งลิงก์เดิมเข้าไม่ได้แล้ว ก็เลยถึอโอกาสอัปเดตและเขียนบอกวิธีไปเลย)

โดย Arthit Suriyawongkul ณ 25 February 2014 04:14 GMT

11 February 2014

Thep

Thanks, and the November-January Diary

เร่งงานตามสัญญาโครงการอยู่หลายเดือน ไม่ได้เขียน blog จึงขอขอบคุณย้อนหลัง สำหรับผู้สนับสนุนงานพัฒนาของผมในเดือนพฤศจิกายน 2556 ถึงเดือนมกราคม 2557ที่ผ่านมาดังนี้ครับ:

ขออวยพรปีใหม่สากลและตรุษจีนย้อนหลังแด่ผู้สนับสนุนทุกท่าน ขอให้เจริญอายุ วรรณะ สุขะ พละ พร้อมทั้งมั่งมีศรีสุขครับ และที่สำคัญคือ 願源碼與你同在。[หงวงหง่วงแบ้อื่อลื่อตั่งต๋อ] May the Source be with you!

สามเดือนที่ผ่านมา นอกจากงานโครงการอักษรอีสานที่เป็นงานหลักแล้ว ก็มีงานพัฒนาอื่น ๆ เช่น

โดย Thep (noreply@blogger.com) ณ 11 February 2014 08:48 GMT

30 January 2014

Prach

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

โดย Prach Pongpanich (noreply@blogger.com) ณ 30 January 2014 16:56 GMT

16 January 2014

Neutron

วิเคราะห์ประเด็น True แบบงู ๆ ปลา ๆ (ต่อ)

หลังจาก คราวที่แล้ว ได้พูดถึง DNS spoofing ไป และทิ้งท้ายเรื่อง Transparent Proxy/Cache ไว้

* ทำความเข้าใจ Transparent Proxy/Cache *
Proxy/Cache คือ ระบบทำหน้าที่ ในการเป็นตัวแทน (proxy) และเก็บข้อมูลที่ได้จากการร้องขอโดยผู้ใช้ (cache) เพื่อลดปริมาณการร้องขอข้อมูลไปยังต้นทาง (origin) ซึ่งในบางกรณี ก็ช่วยเพิ่มความเร็วในการเข้าถึงข้อมูลได้ดี ระบบเช่นนี้มีการใช้งานกันมาอย่างแพร่หลาย ทั้งในระดับโรงเรียน ระดับองค์กร หรือแม้แต่ในระดับ ISP

Transparent Proxy/Cache คือ กระบวนการที่ Proxy/Cache เข้ามาขวางทางเข้าทางออก ระหว่างผู้ใช้ และต้นทาง เสมือนไม่มีระบบนี้อยู่ระหว่างทาง (transparent) ระบบประเภทนี้ ถูกใช้กันอย่างแพร่หลาย เนื่องจากสะดวกในการบริหารจัดการ แต่ข้อเสียคือ ผู้ใช้เลือกไม่ได้ว่าจะไม่ขอใช้ระบบนี้ (ถ้าไม่ใช้ท่ายาก)

* ปัญหาที่เกิดจากระบบนี้ *
เนื่องจากระบบจะบังคับผู้ใช้ที่ต้องการใช้ service ที่ระบบสามารถเป็น proxy/cache ให้ได้ เช่น http (web) port 80 ดังนั้น ผู้ใช้ที่อยู่ในกลุ่มที่ถูกบังคับให้ใช้งาน ก็ต้องจำยอมใช้งานไป โดยปัญหาที่อาจจะเกิดกับความรู้สึกผู้ใช้งาน (Quality of Experience) ก็มีทั้งแง่บวก และแง่ลบ

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

+ แง่ลบ
เนื่องจากข้อมูลในปัจจุบัน เปลี่ยนแปลงไปจากเมื่อหลายสิบปีก่อนอย่างมาก ข้อมูลที่เป็น dynamic content เพิ่มขึ้น ข้อมูลขนาดใหญ่อย่างเช่น video, os update, iso file ฯลฯ เข้ามามีบทบาท และผู้พัฒนา web ส่วนใหญ่ จะไม่สร้าง application มาเพื่อให้ทำงานร่วมกับ proxy/cache แบบดั้งเดิมได้ดีนัก ระบบ cache จึงพยายามไม่สนใจว่า web จะบอกว่าอะไร ตะบี้ตะบัน cache แบบไม่สน หน้าอินทร์หน้าพรหม ซึ่งระบบประเภทนี้ จะต้องมีการปรับค่า การหมดอายุลงของ object ซึ่งบางระบบก็มีการเช็คที่ดี และบางระบบก็ไม่มีการเช็คเลย

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

และกรณีที่น่าเป็นห่วง เมื่อ cache เก็บ malware ไว้ และยังไม่หมดอายุ ก็จะส่งให้ผู้ใช้เรื่อย ๆ ถึงแม้ว่าทางต้นทางจะแก้ไขปัญหา malware แล้วก็ตาม

=== ทางเลี่ยง ===
ถ้าพบว่า ตัว Transparent Proxy/Cache คือ ต้นตอของปัญหา ทางออกระยะยาวคือ แจ้งทางผู้ดูแล cache เพื่อให้ตรวจสอบ และ clear cache หากเป็นไปได้ แต่ถ้าทำไม่ได้จริง ๆ ก็ต้องเลี่ยงไปใช้ ช่องทางอื่น ๆ ที่ไม่ถูกโยนเข้า Transparent service เช่น SSH Tunnel, VPN ฯลฯ

=== สรุป ===
Transparent Proxy/Cache มีทั้งข้อดี และข้อเสีย ถ้าปรับให้เหมาะสม ปัญหาก็จะน้อย ซึ่งบางคนก็มีคำถามว่า ทำไมต้องมี Transparent Proxy/Cache ด้วย คำตอบคือ ระบบนี้ เข้ามาช่วยแบ่งเบาภาระการลงทุนของผู้ให้บริการ ลองคิดง่าย ๆ ว่า ถ้าระบบนี้ สามารถช่วยประหยัดแบนด์วิธด์ได้ในระดับ 10 - 99% และถ้าตัดออกไป ผู้ให้บริการจะต้องลงทุนเพิ่มเท่าไร และจะให้มาคิด ราคาต่ำกว่าพัน หรือพัน สองพัน กับเราต่อไปได้ไหม นั่นหละครับ เหตุผลของการมีตัวตนอยู่ของ ระบบ Transparent Proxy/Cache
ลองนึกถึงราคา leaseline จะให้ลากมาใช้ที่บ้านก็กะไรอยู่ (มันแพงเติบเด้ครับ)

โดย neutron ณ 16 January 2014 03:03 GMT

วิเคราะห์ประเด็น True แบบงู ๆ ปลา ๆ

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

* ประเด็น DNS spoofing (DNS cache poisoning) *
=== ทำความเข้าใจ DNS ===
ถ้าพูดถึง DNS ที่ผู้ใช้เข้าใจ ว่าต้องชี้ไปที่ไอพี โน่นนั่นนี่ แล้วแต่จะเลือกตามสะดวก เพื่อให้สามารถเข้าใช้งานอินเทอร์เน็ตได้ นั่นเป็นครึ่งทางของ DNS ซึ่งเรียกอย่างเป็นทางการว่า Caching DNS แต่ละเจ้า ISP ก็จะต้องมีไว้อย่างน้อย 1 ระบบ (1 เครื่อง, 1 rack, หรือ 1 ชั้น ก็แล้วแต่ scale) ส่วนอีกครึ่งทางคือ Authoritative DNS หรือ DNS ที่มีการเก็บข้อมูลว่าปลายทางที่เราจะไป ด้วยชื่อ blablabla.com อยู่แห่งหนตำบลใด

เนื่องจาก DNS ทำงานกันแบบกิ่งก้านใบ (Hierachy) ดังนั้น DNS query ที่เราร้องขอไป อาจจะผ่านไปหลายชั้นของ DNS server ได้
เช่น กรณีที่ข้อมูลปลายทางยังไม่ถูก cache และ query ไปยัง www.kku.ac.th

dns query => caching dns => root dns => top level domain (.th) => kku dns [reply 202.12.97.4]

หลังจากนั้น caching dns จะจำค่า www.kku.ac.th [202.12.97.4] ไว้ แล้วแต่กำหนดระยะเวลา ก่อนจะร้องขอใหม่อีกครั้ง เมื่อ cache หมดอายุ

dns query => caching dns [reply 202.12.97.4]

จากเส้นทางในกรณีไม่มี cache จะเห็นว่า การร้องขอ ผ่านเส้นทางที่เชื่อถือได้ เนื่องจากปัจจุบัน ระบบ DNS มีการเปิดใช้งาน DNSSec (http://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions) เพื่อป้องกันการส่งข้อมูลแปลกปลอมเข้ามาในสารบบ จะมีประเด็นบ้างก็ตรง leaf domain ซึ่งอาจจะยังไม่ได้เปิดใช้งาน DNSSec ซึ่งส่วนนี้ ก็ยังเป็นช่องให้เกิดการโจมตี DNS ได้อยู่

=== ตามรอย DNS ===
การตามรอย DNS ว่าไปไหนมาไหน ก็เป็นเรื่องที่ทำได้ปกติอยู่แล้ว ซึ่งก็มีประเด็นกันว่า tool ไหนใช้ได้ ไม่ได้ ตอนนี้อย่าหลงประเด็นนะครับ ว่า เรากำลังกล่าวหา DNS server อย่างอื่นอย่าพึ่งดึงเข้ามายุ่ง

+ จะใช้ traceroute ก็ไม่ผิด เพราะสุดสายปลายทาง มันจะแสดง ip ที่เราวิ่งไปหา โดนปลอมหรือไม่ปลอมก็เช็คได้ครับ

+ แต่ traceroute ไม่ได้บอกว่า DNS ตัวไหนที่เป็นคนตอบเรามา ถ้าคิดว่า DNS นั่นแหละคือ ผู้ต้องสงสัย ก็ต้องลอง trace dns ดู

$ dig +trace www.kku.ac.th

หรือจะใช้ dnstracer แสดงผลดูง่ายกว่า

$ sudo apt-get install dnstracer
$ dnstracer -4 -s [dns server] www.kku.ac.th
Tracing to www.kku.ac.th[a] via [dns server], maximum of 3 retries
127.0.0.1 (127.0.0.1) Got answer 
 |\___ kknt.kku.ac.th [kku.ac.th] (202.12.97.21) Got authoritative answer 
 |\___ kku1.kku.ac.th [kku.ac.th] (2001:03c8:c108:0000:0000:0000:0000:0001) Not queried
 |\___ kku1.kku.ac.th [kku.ac.th] (202.12.97.1) Got authoritative answer 
  \___ ns2.kku.ac.th [kku.ac.th] (202.28.117.198) * ^C

หรือไล่ย้อนกลับจาก top level domain

$ dnstracer -4 -s . www.kku.ac.th
A.ROOT-SERVERS.NET [.] (198.41.0.4) 
 |\___ th.cctld.authdns.ripe.net [th] (2001:067c:00e0:0000:0000:0000:0000:0116) Not queried
 |\___ th.cctld.authdns.ripe.net [th] (193.0.9.116) 
 |     |\___ kku1.kku.ac.th [kku.ac.th] (2001:03c8:c108:0000:0000:0000:0000:0002) Not queried
 |     |\___ kku1.kku.ac.th [kku.ac.th] (202.12.97.1) Got authoritative answer 
 |     |\___ ns.thnic.net [kku.ac.th] (202.28.0.1) 
 |     |\___ ns2.kku.ac.th [kku.ac.th] (202.12.97.44) * ^C

+ สุดท้ายถ้าเป็น DNS spoofing จริง ... เปลี่ยน Caching DNS ที่ไม่ได้อยู่ในกิ่งที่มีปัญหา อาการต้องหาย นอกจากที่ gateway จะมีการบังคับ ทุก DNS query เข้า Caching DNS ตัวเดิม (DNS interception)

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

ยังมีอีกประเด็นหนึ่ง ที่ไม่พูดถึงไม่ได้ คือ Transparent Proxy/Cache ซึ่งกรณีนี้ ก็เกี่ยวกับ cache poisoning ได้เหมือนกัน เอาไว้ต่ออีกบทวิเคราะห์หนึ่งละกันครับ

โดย neutron ณ 16 January 2014 02:03 GMT

1 January 2014

Sothorn

แจกหนังสือ CentOS ฉบับเข้าใจง่าย สำหรับลีนุกซ์มือใหม่

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

      จากที่เคยเขียนหนังสือเป็นคู่มืออบรมมาแล้วครั้งหนึ่งซึ่งเป็นคู่มือ CentOS 5 แล้วนำมาให้ดาวน์โหลดก็ได้รับผลตอบรับเป็นอย่างดี ต่อมาเพื่อนได้แนะนำให้เขียนภาษา Latex เมื่อทดลองเขียนก็พบว่าถูกใจมาก จึงมีความคิดที่จะปรับปรุงหนังสือเล่มเก่านำมาเขียนใหม่โดยใช้ Latex  ในการทำหนังสือเล่มนี้ผมใช้โปรแกรม Kile ซึ่งเป็นเครื่องมือในการเขียนภาษา Latex  xetex  จึงเป็นที่มาของการปรับปรุงหนังสือเล่มเก่าที่เคยให้ดาวน์โหลด แต่ในเล่มนี้จะไม่เขียนการคอนฟิกเซิร์ฟเวอร์
เนื่องจากว่าปัจจุบันสามารถค้นหาการคอนฟิกเซิร์ฟเวอร์ต่างๆ ได้จากอินเทอร์เน็ตซึ่งมีอยู่เยอะ
อีกอย่างผู้เขียนเองปัจจุบันทำสวน  ไม่ได้คอนฟิกเซิร์ฟเวอร์เหมือนแต่ก่อน ซึ่งถ้านำเสนอไปอาจเกิดความผิดพลาดได้

สำหรับหนังสือเล่มนี้นำไปแจกจ่ายได้ตาม สัญญาอนุญาตเป็นแบบ  Creative Commons  (CC-BY-NC-SA)

ดาวน์โหลด 1

ดาวน์โหลด 2

ขอบคุณแหล่งดาวน์โหลด โรงพยาบาลภักดีชุมพล และโรงพยาบาลกุดชุม

โดย sothorn ณ 1 January 2014 13:20 GMT

28 September 2013

Sothorn

Google ย้ายฐานข้อมูลจาก MySQL ไปสู่ MariaDB

เป็นที่แน่นอนแล้วว่า Google เปลี่ยนจาก MySQL 5.1 ไปใช้ MariaDB 10.0

โดย sothorn ณ 28 September 2013 03:14 GMT

28 July 2013

q0022

compile กับความหลัง slackware

นานแล้วที่ไม่ได้คอมไพล์โปรแกรม แต่เมื่อ postgrsql ที่มากับ ubuntu 13.04 มันเก่าเหลือเกินอยากลอง json data type ก็ทำไม่ได้ อย่ากระนั้นเลย ไปดาวน์โหลด source มาคอมไพล์เองเลยดีกว่า คิดถึงอดีตเมื่อครั้งยังเป็นเพื่อนสนิทกับ slackware สมันก่อนอยากได้อะไรก็คอมไพล์เองตลอด เดี๋ยวนี้ไม่เคยเลยเจ้าตัวนี้เป็นตัวแรกในรอบหลายปีทีเดียว คิดถึงวันวานแฮะ ว่าแล้าว่างคอมไพล์ kernel เล่นดีกว่า

โดย q0022 (noreply@blogger.com) ณ 28 July 2013 14:39 GMT

24 May 2013

Ott

แสนสิริ Home Care Less or More?

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

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

แต่สิ่งที่แสนสิริฯ​น่าจะปรับปรุงคือบริการ Home Care

หลังจากที่เราตกลงใจซื้อบ้านแล้ว ตรวจรับ และ โอนกรรมสิทธิ์แล้ว ปัญหาต่างๆ ภายในบ้าน จะถูกดูแลโดยบริการที่เรียกว่า Home Care ซึ่งจะรับประกันภายหลังการขายเป็นเวลา 1 ปี

ทว่าคุณภาพของบริการของ Home Care นั้น ต่ำกว่าบริการอื่นๆ ของแสนสิริฯ อย่างเห็นได้ชัด
ผมเข้าอยู่บ้านนี้มาเกือบสองปีแล้ว ปัญหาต่างๆ ของ Home Care ก็ยังแก้ไม่เสร็จ จนไม่แน่ใจว่ามันเป็นที่ฝีมือ หรือ ทางเทคนิคของงานก่อสร้างจริงๆ

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

หลังๆ โทรตามเยอะๆ ก็ไม่รับสาย ไม่โทรกลับ นานๆ ทีโทรกลับ นานมากๆ ก็บอก โอมันนานแล้ว เลยเวลารับประกันแล้วหรือเปล่าครับ

หลังๆ มีเทคนิค คือ โทรไปโวยกับ call center เลย ให้เขาช่วยตาม เหมือนจะได้ผลนะ

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

หลังบ้านแตกร้าวเป็นรอยจำนวนมาก แก้เป็นรอบที่ 8 ได้แล้วมั้ง ก็ยังไม่หาย ไม่รู้เป็นที่อะไร วัสดุ หรือ ฝีมือ แต่ก็ยังดีที่ยังสัญญาว่าจะแก้ให้ต่อไป

กระเบื้องในห้องน้ำห้องนอนแตก เขาก็แก้ให้แต่ทำไงรู้ไหมครับ เลาะกระเบื้องออกไปเหลือผนังปูนโป๊ๆ แล้วก็บอกว่าเดี๋ยวไปสั่งกระเบื้องก่อน  รอไปเดือนนึง ค่อยเอามาปิดให้ เฮ้ยทำไมไม่สั่งให้เรียบร้อยแล้วค่อยมาเลาะมาปิดวันเดียวกันล่ะ งง ไหม

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

หลังคารั่ว แก้แล้วยังรั่ว แต่กว่าจะทราบว่ารั่วก็เลยมาอีกหน้าฝนนึง เขาว่ามันนานไปแล้ว เลยประกัน อ่าว แต่เถียงกันยืดยาว ก็ตกลงว่าจะส่งบริษัทหลังคาฯ​มาดูให้

บางอย่างก็ไม่แก้ให้ อาจจะเป็นข้อจำกัดจริงๆ

เสาหน้าบ้านแตกร้าว Home Care บอกมันเป็นเสาหลอก แตกแน่ๆ แก้ไปก็แตก แต่ก็ยังดีอุตส่าห์แก้ให้ 1 ครั้ง แล้วไม่ถึงเดือนผ่านไปก็แตกใหม่จริงๆ ก็ปล่อยมันแตกไป อืม

พื้นโรงรถเริ่มแตก Home Care บอกไม่แก้ ไม่รวมในขอบเขต

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

ทำไมแสนสิริไม่ใช้ผู้รับเหมาแบบมืออาชีพ (ดู http://callmeott.blogspot.com/2013/05/blog-post.html) ซึ่งผมว่าน่าจะดีกว่านี้นะ นัดหมายเป๊ะๆ มาเป็นทีม วัสดุ อุปกรณ์พร้อม แลดูมืออาชีพมากๆ

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

โดย Pattara Kiatisevi (noreply@blogger.com) ณ 24 May 2013 06:00 GMT

ผู้รับเหมา สองแบบ

ช่วงสองสามปีที่ผ่านมา มีประสบการณ์ซ่อม/ซื้อ/ตรวจรับ/<wbr style="background-color: white; color: #37404e; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;"></wbr>เก็บงานซ่อมแซมบ้านมาพอสมควร เจอผู้รับเหมาอยู่ 2 แบบ 

คือ แบบถูกแต่ปวดหัว เป็นเจ้าของกิจการส่วนตัว คิดราคาไม่แพง ฝีมือก็มีดีบ้าง ไม่ดีบ้าง มาสายบ้าง เบี้ยวบ้าง ช่างก็มาแบบบ้านๆ บางคนเก่ง บางคนมึนๆ แล้วแต่ดวงจะได้ช่างคนไหน โดยมากแต่ละคนจะเก่งเป็นบางงาน เราต้องรู้ว่า เขาถนัดงานปูน งานไม้ งานไฟ ต้องอย่าฝืนให้ทำสิ่งที่เขาไม่ถ<wbr style="background-color: white; color: #37404e; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;"></wbr>นัด แต่ปัญหาคือ นัดยาก นัดไม่ค่อยเป็นนัด ติดโน่น ติดนี่ บางทีทำแล้วก็ลืมของโน่นนี่ ต้องออกไปซื้อ กลับมาอีกทีเย็น เลิกงาน ทำได้วันละนิด ถ้าฝีมือดียิ่งนัดยาก ถ้าให้มาแค่เก็บงานเล็กๆ น้อยๆ ยิ่งนัดยากสุดๆ

กับ อีกแบบคือแบบแพงแต่กระเป๋าตังค์<wbr></wbr>จะรั่ว คือ เป็นบริษัท การบริการแทบจะเป็นอุดมคติ มีหัวหน้ามาดู มาตามเวลานัดเป๊ะๆ เก็บรายละเอียดหมด ส่งใบเสนอราคา เขียนชัดเจนว่าจะทำอะไรบ้าง ใช้วัสดุอะไร งานเล็กก็ยอมมาทำ, ก่อนงาน 1 วันโทรคอนเฟิร์ม มาถึงหน้างานตรงเวลา ข้าวของครบ ช่างทุกคนแต่งตัวยูนิฟอร์ม รู้นาทีของตน ทำเร็วโคตร ชำระเงินรูดบัตรเครดิตก็ได้ ออกบิลก็ยังได้ รับประกันผลงาน 1 ปี มีเสียในสิ่งที่ทำไป ซ่อมให้ฟรี

แต่แพงโคตรๆ เลยล่ะ น่าจะ 2-3 เท่าของแบบแรกได้ เรียกใช้เฉพาะอะไรที่มันฉุกเฉิน<wbr></wbr> น้ำรั่ว อะไรพวกนี้ที่รอไม่ได้ และเรียกแบบแรกก็ไม่ยอมมา

มันจะมีแบบตรงกลางมั้ยนะ ที่เอาบริการดีๆ แต่ราคาเบาๆ หน่อย เข้าใจว่าการบริการที่ดีมันก็ต้<wbr></wbr>องมีค่าใช้จ่ายในการจัดการ แต่คุณก็ใช้ซอฟต์แวร์ใช้การบริห<wbr></wbr>ารจัดการอะไรทำให้มันมีประสิทธิ<wbr></wbr>ภาพ ต้นทุนจะได้ไม่สูงมาก ได้ไหม

โดย Pattara Kiatisevi (noreply@blogger.com) ณ 24 May 2013 05:28 GMT

20 April 2013

Kitt

Happy New Year 2013

Happy Hacking ! .. Wish we all have a productive year of coding ;)

โดย kitty ณ 20 April 2013 06:36 GMT

25 March 2013

Vee

ทรรศนะทางการเมือง

ทรรศนะทางการเมือง ย้ายไปที่ http://politicsivo.tumblr.com/

25 March 2013 16:53 GMT

20 March 2013

Vee

เราเป็นคนไทยนะ

หลายปีมาแล้ว ผมบอกทำนองว่า censorship มันต้องตรวจสอบได้ ไม่งั้นจะรู้ได้ไงว่าคน censor มั่วหรือเปล่า เอาประโยชน์เข้าตัวเอง แกล้งคนอื่นหรือเปล่า

เขาบอกผมว่าเราเป็นคนไทยนะ ...

ผมงึดครับ ...
 
<script type="text/javascript">// </script>
<noscript>Please enable JavaScript to view the comments powered by Disqus.</noscript> comments powered by Disqus

20 March 2013 06:17 GMT

25 September 2012

Kamthorn

~/.ssh/config

เทคนิคการใช้ไฟล์ config ของ ssh ซึ่งเป็นไฟล์ค่าปรับแต่งสำหรับ ssh client บน Linux ซึ่งปกติเราจะระบุค่าต่างๆ ด้วย option ท้ายคำสั่ง ซึ่งบางครั้ง โฮสต์ปลายทางคนละโฮสต์ก็ต้องใช้ option ต่างกัน โดยเฉพาะ port ซึ่งมีหลายๆ โฮสต์ที่อาจจะเปลี่ยนหมายเลข port เป็นตัวอื่น ไม่ใช่ 22

ให้สร้างไฟล์ ~/.ssh/config ขึ้นมา (ปกติไม่มีไฟล์นี้อยู่)

ใส่เนื้อหา
Host *
Protocol 2
ServerAliveInterval 300
ServerAliveCountMax 100

เป็นการตั้งค่าแบบทั่วไป คือเวลาติดต่อกับทุก host ให้ใช้ protocol version 2 เท่านั้น และกำหนดให้ส่งแพกเกจเพื่อกระตุ้นให้มีการเชื่อมต่อทุก 5 นาที (300 วินาที) และส่งเป็นจำนวนสูงสุด 100 ครั้ง แสดงว่า ssh ที่เชื่อมจะไม่หลุดเป็นเวลา 500 นาที (8 ชั่วโมง 20 นาที) ถ้าไม่ตั้งแบบนี้บ่อยครั้ง ssh จะหลุดเร็วเกินไป

Host terminus
HostName terminus.abcdef.com
Port 18222
User ubuntu

แบบนี้เป็นการตั้งค่าเฉพาะ host โดยจะกำหนดชื่อ host สำหรับใช้อ้างอิง เช่น terminus, แล้วระบุที่อยู่แบบเต็ม เช่น terminus.abcdef.com, กำหนด port เชื่อมต่อปลายทางเป็น 18222 ปกติคือ 22 ซึ่งไม่ระบุก็ได้เพราะเป็นค่าปริยาย แต่บางเซิร์ฟเวอร์อาจจะเลี่ยงมาใช้พอร์ตอื่นเพื่อลดการโจมตีแบบ portscan แล้ว attack ที่พอร์ต ssh, ระบุชื่อ user เป็น ubuntu ถ้าไม่ระบุมันจะใช้ชื่อ user เราที่เครื่อง local เอง หรือระบุที่ command line

ถ้ามีโฮสต์อื่นก็เพิ่มเข้าไปทำนองเดียวกัน

การตั้งค่าอื่นๆ มีอีกมาก ดูได้จากคำสั่ง
$ man ssh_config

ถ้าเป็นเครื่องที่ใช้ร่วมกันหลายๆ คนหรือมีบริการอื่นรันอยู่เพื่อให้บริการบุคคลภายนอกด้วย หรือไม่แน่ใจ ควรเปลี่ยนสิทธิของไฟล์นี้ให้อ่านเขียนได้เฉพาะ user เราเองเท่านั้น โดยสั่ง
$ chmod go-rw ~/.ssh/config
$ ls -l ~/.ssh/config
-rw------- 1 kamthorn kamthorn 381 Aug 15 12:31 /home/kamthorn/.ssh/config


การใช้งาน
เดิมเราต้องสั่งด้วย
$ ssh -p 18222 ubuntu@terminus.abcdef.com

พอเราตั้ง config ไว้แล้วก็แค่
$ ssh terminus

เวลาจะ scp หรือ rsync ผ่าน ssh ก็จะง่ายขึ้น ไม่ต้องระบุพอร์ตอีกต่อไป

โดย Kamthorn Krairaksa (noreply@blogger.com) ณ 25 September 2012 09:13 GMT

28 August 2012

Thep

Pango-HarfBuzz Merge and The Effects on Thai Module

One major change in GNOME 3.6 is Pango’s shaper engines replacement with HarfBuzz. Only language engines (for word break analysis, for example) are retained. So, I’m checking how this affects Thai/Lao rendering and what to do next.

Over all, Behdad has put a good effort to make it right. Most Uniscribe behaviors have been achieved for compatibility. He even cares enough to cover some widespread Thai fonts in which the language tag 'latn' is used instead of 'thai', as seen in Mozilla #719366. Unfortunately, this font set has been declared as standard fonts in official documents. The workaround seems inevitable.

Supported Fonts

In my experiments with some existing Thai OpenType fonts, the new Pango still renders well without regression.

Loma font from fonts-tlwg (glyph positioning with GPOS, rearrangement with GSUB):

Loma on new Pango

Arundina Sans font from Fonts-SIPA-Arundina (positioning by substitution, only GSUB, no GPOS):

Arundina Sans on new Pango

But for legacy fonts without OpenType features, it renders badly:

Non-OpenType on new Pango

In addition, according to Behdad, PUA glyphs in legacy fonts are not supported yet. This means there will be regression on fonts designed for Windows XP or below. But modern fonts designed for Windows 7 should be fine.

Changes on Bugs

The engine replacement from scratch certainly affects existing bugs. Some become obsolete, some still remain. Here are the summary for Thai/Lao engine, as resolved upstream:

Closed bugs:

Questionable bugs:

Remaining bugs:

28 August 2012 07:25 GMT

26 June 2012

Kamthorn

10 ซอฟต์แวร์เพื่อบริการ web site สำหรับทุกวันนี้


Cores แกนหลักๆ ซึ่งก็คือ LAMP นั่นเอง

  1. Linux ซึ่งปกติใช้ Debian ตอนนี้รุ่น stable คือ squeeze (6.0) บนสถาปัตยกรรม amd64 คงไม่มีใครใช้ 32 bit นะ
  2. Apache httpd โดยใช้ MPM แบบ worker แม้ว่าจะมีคู่แข่งอย่าง lighttpd หรือ nginx แต่ apache httpd มีฟีเจอร์มากมายและตั้งค่าได้ง่าย ในเรื่องความเร็วในการให้บริการเว็บแบบ dynamic content ด้วย PHP ไม่ได้ต่างกันมาก
  3. MySQL จริงๆ คือ database server สักตัว แต่ส่วนใหญ่ developer ยังถนัดจะใช้ mysql กันอยู่ ก็ตามนั้นไปก่อน ทางเลือกอื่นๆ ก็มี percona ซึ่งเป็น mysql clone, postgreSQL หรือจะ NoSQL ก็ mongodb, couchdb เป็นต้น
  4. PHP ตอนนี้ใช้รุ่น 5.3 อยู่ แต่รันแบบ fpm (php5-fpm) ตัวนี้ยังไม่มีบน squeeze แต่สามารถลงได้จาก repo ของ dotdeb.org เป็นตัวที่ รัน php5 ในโหมด fastcgi ซึ่งมีระบบบริหารจัดการโพรเซสด้วย ต่างจาก php5-cgi ที่แม้ว่าจะรันเป็น fastcgi ได้แต่ชอบมีปัญหา process ค้าง

Extensions ส่วนขยายที่ทำให้ระบบทำงานได้ดีขึ้น

  1. varnish ตัวนี้เป็น reverse proxy สำหรับรับ connection ที่ port 80 ก่อนจะส่งต่อให้ apache จุดเด่นคือ ทำ caching ได้, มี apache เป็น backend หลายๆ เครื่องได้ คือทำ load balance ได้นั่นเอง, เขียน script เพื่อจัดการกับภาระกิจบางอย่างได้ เช่น backend เรียกไปแล้ว error 503  กลับมา ก็สั่งให้เรียกไปใหม่ หรือให้แสดงหน้ารอ แล้ว refresh ใหม่ เป็นต้น (503 มักเกิดจาก backend ไม่พร้อมให้บริการในขณะนั้น ส่วนใหญ่รอสักพักแล้ว refresh ก็ใช้ได้ตามปกติ) ปัญหาหนึ่งของการใช้ varnish + apache คือข้อมูลล็อกของ apache จะเก็บ client IP เป็น IP ของ varnish เอง ไม่ใช่ของ client ที่แท้จริง แก้โดยใช้ libapache2-mod-rpaf
  2. couchbase ใช้ทำหน้าที่เป็น memcache โดยใช้สำหรับ 1. เก็บ php session data 2. ใช้เป็น memcache สำหรับเก็บข้อมูล cache ชั่วคราว โดยไม่ต้อง query จาก database บ่อยๆ (ต้องเขียนแอปให้รองรับการใช้ memcache ด้วย) เดิมใช้ memcached แต่ couchbase ดีกว่าตรงที่ สามารถทำงานแบบ cluster คือมีหลายๆ เครื่องช่วยกันทำงานได้ สามารถเก็บลงดิสก์ได้ มีหน้าเว็บสำหรับ monitor และตั้งค่าต่างๆ ได้
  3. ufw การกำหนดค่า firewall ด้วย iptables (netfilter) นั้นสำหรับผมเองถือว่ายุ่งยากมาก โดยเฉพาะเวลาที่ต้องกลับมาแก้หรือปรับบางค่าใหม่ พอมาลอง ufw แล้วสะดวกสบายขึ้นมาก

Luxuries ไม่ได้ทำให้ระบบทำงานดีขึ้น แต่ช่วยสนับสนุนในการติดตามเฝ้าดูระบบ

  1. munin เอาไว้เก็บข้อมูลการทำงานของระบบไว้ตรวจสอบ โดยมันจะสร้างเป็นชุดของแผนภูมิให้ดูง่ายๆ และสวยงามเลยทีเดียว สามารถใช้เก็บข้อมูลจากหลายๆ เครื่องได้โดยติดตั้งเฉพาะแพกเกจชื่อ munin-node แล้วให้ munin ตัวหลักไปเรียกเอาข้อมูลมาประมวลเป็นแผนภูมิ
  2. monit เอาไว้คอย monitor ระบบและจัดการแจ้งเตือน หรือรันคำสั่งที่ตั้งไว้ เมื่อตรวจพบเหตุบางอย่าง เช่นเปิดหน้าเว็บที่กำหนดไว้ไม่ได้ ดิสก์เหลือน้อย พบแพทเทิร์นล็อกที่กำหนดไว้ เป็นต้น
  3. webalizer เอาไว้วิเคราะห์ล็อกของ web server แสดงเป็นรูปแผนภูมิสวยงาม ดูง่าย และน่าจะคุ้นเคยกันดี

โดย Kamthorn Krairaksa (noreply@blogger.com) ณ 26 June 2012 04:38 GMT

31 May 2012

Chatsiri

New Kindle DX

Kindle-4 DX,First screen when kindle shutdowns desktop.

โดย chatsiri ณ 31 May 2012 18:18 GMT

7 May 2012

Chatsiri

ในความเก่าที่ยังไม่ลืม

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

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

โดย chatsiri ณ 7 May 2012 16:45 GMT

13 January 2012

Hui

Post แรกหลังเปลี่ยน Template เป็นแบบใหม่ สีฟ้าเรียบๆ

โดย Hui/ฮุ้ย (noreply@blogger.com) ณ 13 January 2012 02:35 GMT

25 October 2011

q0022

Disable The Overlay Scrollbars

สิ่งหนึ่งที่เป็นเรื่องน่ารำคาญสำหรับผมคือ Overlay Scrollbars ใน ubuntu โอเค ถ้าในหน้าจอเล็กๆ อย่าง netbook ก็ว่าไปอย่างแต่ใน notebook แล้วมันทำให้การทำงานยากขึ้น ซะอย่างนั้นแล้วเอา Feature นี้ออกดีกว่าโดยการคำสั่งนี้ใน Terminal

sudo su
echo "export LIBOVERLAY_SCROLLBAR=0" > /etc/X11/Xsession.d/80overlayscrollbars

แล้วทำการ Reboot หนึ่งครั้ง
ถ้าไม่ได้ผลให้ทำการ remove ออกดังนี้

sudo apt-get remove overlay-scrollbar liboverlay-scrollbar-0.1-0

แล้ว Reboot อีกที
และแล้ว Scrollbar อันเก่าที่เราคุ้นเคยก็กลับ อิอิ

ที่มา... http://www.webupd8.org/2011/04/how-to-disable-overlay-scrollbars-in.html

โดย q0022 (noreply@blogger.com) ณ 25 October 2011 09:59 GMT

2 October 2011

Thep

Myanmar Visit

Quite a belated English blog (after the Thai version), due to busy personal life lately.

I had visited Yangon during 4-11 Sep. to give some talks and tutorials on Debian packaging and mirroring. And I've shared some information with community.

The visit was initiated by Ngwe Tun and the Myanmar L10N team. I found later that a Facebook event had been created for this.

Localization

The first day was a comparison between Myanmar and Thai supports in GNU/Linux, in which I briefed the status on Thai side, and Thura Hlaing on Myanmar side. It was nice that we had the Myanmar Computer Federation (MCF) director presiding the meeting til the end. That means GNU/Linux support has been awared at executive level.

According to Thura, Burmese has gained support in GNU/Linux quite well. On the rendering side, all the reordering for the logical order is normally done with pure GSUB in the fonts, without special processing on the rendering engine. This is suboptimal in principle, but it's the most effective way, as Windows redering engine itself does not yet support Myanmar, either.

For input method, Myanmar XKB map has been available in xkb-data for a long time, but to serve users' familarity with visual order typing, some reordering input methods have been developed, based on keymagic and ibus. But all are not context-sensitive like what's done for Thai in other frameworks. Fortunately, with the surrounding text API recently added to ibus, this has become possible.

One unusual requirement for Myanmar script editing is the caret movements. It needs to move syllable-wise, not character-wise nor cluster-wise. So, I suggested them to have a look on UAX #29 to see how it should be amended.

Myanmar locales are already done, both for GNU C library and CLDR. And even a GNOME applet for Myanmar lunar calendar is also available. This latter thing is what Thai can learn from.

Burmese word segmentation is not supported in general. But R&D works have been done for this in its NLP lab.

A serious issue left to solve is the existing abuses of Unicode. In Myanmar, there exist at least 14 variations of font hacks, abusing some free slots in Unicode charts as pre-composed clusters for information interchange (not for font internals), making plain text interchange impossible without the proper font for rendering.

For program translation, the new Myanmar L10N team is trying to request for a mass submission to the current GNOME team. And for Debian, Thura Hlaing and Ngwe Tun has already started the translation process with Christian's help.

Along my stay, I could see the team actively discussing on the IT glossary, trying to settle down the translated terms. This looked very fun.

Debian

Then, the next three days were a workshop on Debian packaging, where I have presented the basics of Debian package building, uploading, quality-controlling, modifying, creating and delivering. This aimed toward the development of a local distribution based on Debian.

Each day in the afternoon was the time for setting up a Debian mirror, not only for convenient local distro developement, but also for general users. This is important because internet penetration is still low in Myanmar. The main media for software distribution is CD/DVD, which means only stable version of Debian can be spread, which is not good for desktop users. Having a mirror should improve the situation somehow. It should make dist-upgrading to testing/unstable easier. And it should make CD snapshotting using local distributions easier, too.

For this, I also presented another quick slide on Debian mirroring & caching.

In the last day, I was introduced to the staffs of Myanmar NLP Lab and their projects, which include Myanmar OCR (based on tesseract), information retrieval, machine translation, and other lingustic resources like dictionary, lexicon and text corpus.

Furthermore, I was also offerred technical helps on developing a Lao/Esaan Tham font for a Lao and North Eastern Thailand variation of Tham script, which is Mon-based and is closely related to Myanmar script. (See some sample transliterations if you are curious how it looks like. It was part of my hacking during DebConf11 travelling.) Currently, its OpenType support is quite sufficient, but it still renders poorly on Mac OSX. To cope with this, I was given a Mac Mini as a present from Myanmar for its development, as well as some explanations on AAT features from a Myanmar font developer. And I am very grateful for that.

2 October 2011 08:31 GMT

31 July 2011

Eakasak

จะ Flash Rom Android ใหม่ทั้งทีต้อง Backup อะไรบ้าง

Flash Rom เจ้า Android คู่ใจทั้งสองเครื่องทุกครั้งก็ต้องมานั่งนึก เลยเขียนเก็บไว้ดีกว่า

  1. SMS by SMS Backup & Restore
  2. Call logs by Call Logs Backup & Restore
  3. Application list by AppBrain Sync
  4. WiFi Setting รอเขียนเป็นวิธีทำ
  5. มีเพิ่มเดี๋ยวมา update

โดย Zena (noreply@blogger.com) ณ 31 July 2011 21:49 GMT