สถานการณ์ของเรื่องนี้ คือ
ผมทำหน้าเวบที่ต้องการประหยัดพื้นที่ จึงต้องบีบขนาดของ Table ให้เล็กที่สุดเท่าที่จะทำได้
และในช่องหนึ่งผมต้องการใส่ข้อมูล
{syntaxhighlighter brush: plain; gutter: false;}Load (2){/syntaxhighlighter}
แต่เมื่อโดนบีบพื้นที่มาก ๆ ผลลัพธ์จะเป็นดังรูป

ทำให้ความสูงของช่องนั้นเพิ่มขึ้นโดยไม่จำเป็น ผมจึงต้องเปลี่ยน HTML เป็นดังนี้
{syntaxhighlighter brush: plain; gutter: false;}Load (2){/syntaxhighlighter}
ก็จะทำให้ได้ผลลัพธ์ตามต้องการ คือ
หลังจากอ่าน Blog ของ Eric Hogue ทำให้ผมเข้าใจสิ่งที่เคยทำแล้วไม่สำเร็จ นั่นคือการ override static method
ที่แท้มันเป็นแบบ early binding นั่นเอง ทำให้ไม่ว่าอย่างไร ก็จะเรียก static method ของ parent เสมอ
แต่ PHP 5.3 ทำให้ความฝันของผมเป็นจริงด้วย feature นี้ "Late static binding"
เอ... CentOS ของเรายังไม่ได้ใช้ 5.3 เลยนะ อด... :'(
Reference:
http://www.php.net/manual/en/language.oop5.late-static-bindings.php
http://erichogue.ca/2011/04/14/late-static-binding/
คอลัมน์ Subversion Command of the Day วันนี้ขอเสนอ คำสั่ง export ครับ
คำสั่ง export มีไว้ใช้ในกรณีที่เราต้องการ export (เออ ก็จริงของมัน) repository ออกมาเฉพาะ file ที่เป็นเนื้อหาจริง ๆ
ไม่ต้องสร้าง directory .svn ออกมาด้วย ทำให้เราสามารถนำไปใช้งานได้เลย ไม่ต้องคอยลบ .svn ทิ้งอีก
วิธีใช้งานก็ง่าย ๆ ดังนี้
เนื่องจากผมต้องการหาว่าจาก Revision ที่กำหนดจนถึงปัจจุบันมี File ไหนเปลี่ยนไปบ้าง
หลังจากอ่าน help ของ svn help diff ก็ได้ความว่าน่าจะใช้ option --summarize
ตัวอย่างเช่น
ผมต้องการตรวจสอบว่าจาก Revision 3008 จนถึงปัจจุบัน (HEAD) มี File ไหนเปลี่ยนไปบ้าง ให้ใช้คำสั่งนี้
(สมมติว่า Subversion repository อยู่ที่ https://example.com/svn/sample/branches/2.1.x นะครับ)
svn diff https://example.com/svn/sample/branches/2.1.x@3008 https://example.com/svn/sample/branches/2.1.x@HEAD --summarize
วันนี้มีโจทย์จากความต้องการของ User (เอ๊ะ หรือของผมเองหว่า)
อยากป้องกันการสมัครสมาชิกโดยใช้ Password ง่ายเกินไป คือ
Password เป็นเลขเดียวกันซ้ำกันทั้งหมด เช่น 111, 2222, 999
เอาหละสิ... ทำ Regular Expression ยังไงดี
วันนี้เกิดอยากจะดูว่า Library ที่ใช้อยู่นั้น Generate SQL อย่างไร
และเนื่องจากถ้าจะไปแกะ Code ดูคงจะเสียเวลามากแน่ ๆ จึงเกิดคำถามว่า
"เราจะดูว่า Application ของเราส่ง SQL เข้าไปที่ MySQL ว่าอะไรบ้าง ได้ไหม และทำอย่างไร"
Twitter REST API
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-user_time...
Get user timeline
Example
http://api.twitter.com/1/statuses/user_timeline/semicolonth.xml
Note: จดไว้ก่อนเผื่อจะใช้
Google เปิดตัว Google Storage service for Developers ให้นักพัฒนาโปรแกรมสามารถใช้ Google Cloud เพื่อเป็นทีเก็บข้อมูลของ Application ได้ Service นี้จะเป็นแบบ RESTful ซึ่งง่ายต่อการเชื่อมต่อและใช้งาน
โดยตอนนี้ยังไม่มีระบุราคาค่าบริการ อาจจะเนื่องจากยังอยู่ใน Labs ก็เป็นได้
เห็น Google โฆษณาว่าเร็ว คงต้องลองไปพิสูจน์กันดูสักหน่อยแล้วหล่ะ
ในบางครั้งบัคประหลาด ๆ ที่เราเจอใน web application ของเราอาจจะเกิดจากการที่เราไม่ได้ทำการตรวจสอบข้อมูลที่ user ใส่เข้ามาก็ได้
ผมเพิ่งเจอกรณีแปลก ๆ ไปเมื่อวันก่อน นั่นคือ user สามารถ submit ข้อมูลเข้ามาที่ record ที่ disable จาก web ไปแล้ว (ผมใช้วิธีการ set field flag ใน database ดังนั้น record ยังมีอยู่จริง แต่ไม่ online เท่านั้น) ซึ่งโดยปรกติแล้ว user จะไม่สามารถทำได้ เพราะ form สำหรับ submit จะไม่ online ทำให้ไม่สามารถกดปุ่มเพื่อ submit ข้อมุลขึ้นมาได้
วันนี้ลองเปิดเวบด้วย Android (HTC Magic) ตัวเก่ง
พบว่าหลาย ๆ เวบมีการทำเวบเฉพาะสำหรับอุปกรณ์ mobile
เพื่อให้ user ใช้งานได้สะดวกขึ้น
เช่น m.yahoo.com, home.mobile.msn.com ฯลฯ
ซึ่งผมก็สงสัยตามระเบียบว่าเวบเหล่านี้เค้าใช้ code อะไรบ้าง
เพื่อให้เหมาะกับการเป็น web application บนอุปกรณ์ mobile
ไอ้ครั้นจะหาอุปกรณ์ใน Android ก็อาจจะพอหาได้ แต่คงใช้ไม่สะดวกนัก
ก็เลยตัดสินใจจะใช้ Firebug addon ของ Firefox บน PC นี่แหล่ะ
และเพื่อความเนียนจึงต้องมีการเปลี่ยน user agent หลอก web server