26 มกราคม 2553

พระเจ้าคงอยากให้เราอ่านหนังสือเล่มนี้มากเลย

วันนี้เลิกจากสัมมนาเย็นมาก ไปที่ร้าน SKS Bookstore ที่ตึก Tan Boon Liat ไม่ทันแน่เลยตัดสินใจหาซื้อหนังสือ How to Read Bible for All it Worth ของ Stuart & Fee แถว Orchard เพราะต้องใช้หนังสือเล่มนี้ประกอบการเรียน และไม่อยากกอปปี้จากคนอื่น แต่ไม่รู้ร้านหนังสือคริสเตียนอยู่ตรงไหน เลยหาร้านหนังสือทั่วไป ไปเจอร้านหนึ่งใกล้ทางลง MRT ชื่อร้าน Borders ที่อาคาร Wheelock มี Section หนังสือศาสนาด้วย หายังไงก็หาไม่เจอ เลยถามพระเจ้าว่าร้านนี้จะมีเหรอ พระองค์ตรัสว่ามีสิ เราก็ตาลาย ตัดสินใจไปถามพนักงาน เพราะจำชื่อหนังสือก็ไม่ได้ จำชื่อผู้แต่งได้แค่คนเดียวคือ Gordon Fee กับจำรูปปกเลยถามว่าหาจากคนแต่งได้ไหม เขาก็หาให้ ขึ้นชื่อหนังสือมาก็ไม่แน่ใจ พนักงานก็เลยพาไปหยิบ โป้ะเช้ะเลย เหลือเล่มเดียวอีกต่างหาก ขอบคุณพระเจ้า

20 ตุลาคม 2552

ดีใจที่เจอคนรู้จักที่งาน itSMF

วันนี่มีเรื่องดีใจสองเรื่องจากการที่ไปร่วมงาน itSMF Thailand

เรื่องแรกเกิดขึ้นเมื่อทางทีมงานที่ Office ส่ง email มาถามว่าจะสามารถร่วมงานนี้ได้หรือไม่ เพราะบริษัททำงานทางให้บริการทางด้าน IT ก็เลยดู link ที่ส่งมาด้วยพบว่ามีพี่คนหนึ่งซึ่งรู้จักมาตั้งแต่ปี 92 อยากจะเจอแต่ไม่มีโอกาส มีชื่ออยู่ใน Panel Discussion ในงานด้วย เลยตั้งใจอย่างยิ่งที่จะไปพบ

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

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

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

น้องเขาบอกว่าโลกมันกลม แต่ผมว่ากรุงเทพมันแคบต่างหาก

กำลังนึกอยู่ว่า นี่เราแก่แล้วใช่ไหมนี่ ถึงมาดีใจแค่เจอคนที่ไม่เจอกันนาน

11 ธันวาคม 2550

แก้ปัญหาไม่สามารถใช้ eth0 ได้เมื่อเปลี่ยน Network Card ใน Ubuntu 7.10

ใน Ubuntu 7.10 (อันที่จริงตั้งแต่ที่เริ่มใช้ udev) Network Card ที่ udev ตรวจสอบได้จะถูกบันทึกไว้ที่ /etc/udev/rules.d/70-persistent-net.rules (ไม่มี /etc/iftab ต่อไป) ถ้าเปลี่ยน Network Card ตัวใหม่จะถูกเพิ่มต่อท้าย ให้เปลี่ยนตัวที่เพิ่มขึ้นมาเป็น eth0 (หรือ Interface อื่น) และลบบรรทัดที่มี MAC address เดิมทิ้ง

20 มิถุนายน 2550

ปัญหาเรื่อง Time Zone ใน PHP และ MySQL

Time Zone Problems, ใน PHP และ MySQL ทำให้เวลาที่ใช้งานคลาดเคลื่อน สำหรับ PHP สามารถแก้ได้ใน Code ด้วย
date_default_timezone_set("Asia/Bangkok"); ซึ่งจะตั้งให้เป็นเวลามาตรฐานประเทศไทย
ถ้าต้องการแก้ค่า default ให้แก้ใน php.ini ที่
[Date]
; Defines the default timezone used by the date functions
date.timezone = Asia/Bangkok


ส่วน MySQL ให้ใช้ SQL Command "SET time_zone = '+7:00'" ตั้งให้เป็นเวลามาตรฐานประเทศไทย
ถ้าต้องการแก้ค่า default ให้แก้ใน /etc/mysql/my.cnf (my.ini สำหรับ Windows) ที่
[mysqld]
default-time-zone=+07:00
หรือตามด้านล่าง (ใช้บน Windows ไม่ได้)
[mysqld]
default-time-zone=Asia/Bangkok

16 มิถุนายน 2550

Zip และ Unzip ด้วย PHP

บันทึกวิธีการ Zip/Unzip ด้วย PHP:
1. Download dUnzip2 จาก phpclasses.org มี 2 classes, dZip & dUnzip

2. Zip โดยใช้ dZip classs
require_once("dzip.inc.php");
$zip = new dZip("archive.zip");
$zip->addFile("myfile.doc", "myfile.doc"); // parameter แรกเป็น source file, parameter สองเป็น ชื่อ file ใน zip
$zip->addDir("subdir"); // สร้าง Folder ใน Zip
$zip->addFile("anotherfile.jpg", "subdir/newname.jpg"); // เพิ่ม file ใต้ Folder
$zip->save();
3. Unzip โดยใช้ dUnzip class
require_once("dzip.inc.php");
$zip = new dUnzip("archive.zip");
$zip->unzipAll("targetfolder"); // Unzip ทุก file ไปยัง folder ชื่อ targetfolder
$zip->unzip("source.doc", "destination.doc"); // unzip source.doc ใน zip file เป็น destination.doc

28 พฤษภาคม 2550

php: baaGrid::setGPCol

baaGrid เป็น Data Grid class ตัวหนึ่งซึ่งสามารถแสดงผล SQL Query จาก Database ได้หลายตัว โดย Default เป็น MySQL

ความสามารถหนึ่งที่ทำให้ baaGrid แสดงรายงานในแบบตารางได้ดีคือ General Purpose Column ซึ่งจะสามารถนำข้อมูลจาก query มาแสดงในรูปแบบอื่นได้เช่น image หรือ hyperlink แต่อย่างหนึ่งซึ่งตัว baaGrid Guide ไม่ได้บอกไว้ก็คือการสนับสนุนการใช้ function ได้ (**อย่างมีข้อจำกัด**) ทั้ง php built-in และ user defined โดยในการ parse funtion นั้น baaGrid ใช้ function_exists ของ php ตรวจอักขระที่ ตำแหน่ง 0 จนถึง วงเล็บเปิดแรก ถ้ามี function ที่รู้จักก็จะผ่านไปให้ eval ของ php ทำงาน
ตัวอย่าง
...
$grid->setGPCol(4, 'myfunction(#1)'); // pass column 1 from query to myfunction, valid for numeric data
$grid->setGPCol(5, 'myfunction("#2")'); // pass column 2 from query to myfunction, valid for string data
$grid->setGPCol(6, 'myfunction(#1)+123'); // also valid
...
$grid->setGPCol(6, '123+myfunction(#1)'); // invalid, function_exists('123+myfunction') returns null

11 พฤษภาคม 2550

wxWidgets ใช้ Image File แบบอื่นนอกเหนือ BMP

ถ้าจะใช้ Image File แบบอื่นนอกเหนือ BMP ต้องทำการระบุชนิดที่ต้องการใช้เพิ่มด้วยดังนี้
1 ใน class ที่ derived จาก wxApp ที่ OnInit จะต้องทำการ add image handler

#include

bool MyApp::OnInit() {
...
wxImage::AddHandler( new wxPNGHandler );
wxImage::AddHandler( new wxJPEGHandler );
wxImage::AddHandler( new wxGIFHandler );
wxImage::AddHandler( new wxXPMHandler );
}



ถ้าเอาทุกแบบใช้ wxInitAllImageHandlers.
Available Image Handlers

  • wxBMPHandler For loading and saving Windows bitmap files.
  • wxPNGHandler For loading and saving PNG files. Images with transparency or an alpha channel are supported.
  • wxJPEGHandler For loading and saving JPEG files.
  • wxGIFHandler GIF files: only for loading, due to legal issues.
  • wxPCXHandler For loading and saving PCX files. wxPCXHandler will count the number of different colors in the image; if there are 256 or fewer colors, it will save as 8-bit; otherwise it will save as 24-bit.
  • wxPNMHandler For loading and saving PNM files. Loading PNMs only works for ASCII or raw RGB images. When saving in PNM format, wxPNMHandler will always save as raw RGB.
  • wxTIFFHandler For loading and saving TIFF files.
  • wxIFFHandler For loading IFF files.
  • wxXPMHandler For loading and saving XPM files.
  • wxICOHandler For loading and saving Windows icon files.
  • wxCURHandler For loading and saving Windows cursor files.
  • wxANIHandler For loading Windows animated cursor files.

2. อย่าลืม Link library ที่เกี่ยวข้อง

  • JPEG, wxjpeg.lib
  • PNG, wxpng.lib & wxzlib.lib