Latest Publications

จากประสบการณ์จริงของ Developer ตัวน้อยๆ

ก่อนจะเลื่อนไปอ่านบทความนี้ทางด้านล่าง ผมจะบอกไว้ก่อนว่า คราวนี้ไม่ใช่ เทคนิค หรือวิธี พัฒนาโปรแกรมอะไรก็ตามแต่ เพราะว่ามันเป็น “เรื่องของผมล้วนๆ”

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

สรุปเลยละกัน วันนี้ผมจะมาตั้งสติ นึกทบทวนว่าในการทำ web app แต่ละตัว นั้นผมลงมือ ลำดับการทำงาน ก่อนหลังยังไงบ้าง…. (more…)

jQuery Validation ครบทุกเม็ดในการ validate

ใจจริงนั้น วันนี้ขี้เกียจอัพเดทมากๆ แต่นี่ก็ใกล้จะหมดเดือน เมษาแล้ว และถ้าอัพบทความนี้สำเร็จ ก็จะกลายเป็นเดือน ที่มีบทความอัพเดทมากที่สุด นั่นก็คือ “11 บทความ” เรียกว่าเป็นการทำลายสถิติ ตัวเอง นั่นเอง 555+

นานมาแล้วครั้งนึงผมเคยแนะนำ plugin ของ jQuery ที่ชื่อว่า Really Simple Validation ซึ่งก็เอาไว้ใช้ทำงาน validate ข้อมูลจาก Form เป็นตัวที่ค่อนข้างจะใช้งานง่ายมากเลยทีเดียว

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

สำหรับ validation plugin ตัวนี้นั้น สามารถที่จะ ตรวจเช็ค ข้อมูลได้หลาย แบบมากๆ เรียกว่าทุกแบบเลยดีกว่า เพราะมันเขียน condition เติมเองได้ รวมไปถึงการ remote เพื่อใช้ตรวจสอบ พวกชื่อ username, email, captcha ได้โดยไม่ต้อง มีการเปลี่ยน page แต่อย่างใด (more…)

เปลี่ยน Font เน่าๆ ให้ดูสวยงามด้วย jQuery + sIFR

บทความนี้มันมีที่มาครับ เนื่องจาก วันก่อน เห็น K.Non และ K.Golf คุยกันใน Twitter ว่า “เว็บไซด์ thairath ใช้ sIFR ด้วย” ก็เลยทำให้เกิดความสงสัยครับ ว่า ไอ้ sIFR เนี่ย มันคืออะไรหว่า?

และก็ไม่รอช้า ถามพี่ Google ในทันที และก็ไม่ผิดหวัง สุดท้ายก็ได้คำตอบมาว่า

ไอ้ sIFR เนี่มันคือโปรเจคของ พี่ Mike Davidson ซึ่งมีหน้าที่คือ นำ Flash มาแทนที่ตัวอักษรภายใน Element ที่ระบุ โดยที่เราสามารถ ใช้ Font จากที่ไหนก็ได้

แล้วก็ลองทำดูได้หน้าตาออกมาแบบนี้ Online Demo (ลอง view Source ดูประกอบ)

หลักการของมันมีอยู่นิดเดียวเองครับ (more…)

Simple HTML DOM Parser มันคือ jQuery’s selectors ดีๆ นี่เอง

ไปเจอของดีมาครับ เป็น PHP Library ที่ทำงานในลักษณะ คล้ายๆกับ Selectors ของ jQuery แต่ว่าเป็น PHP ซึ่งเรียกให้ถูกมันก็คือ HTML DOM Parser น่ะแหละครับ ซึ่งการใช้งานค่อนข้างง่าย เล่นเอาลืม Regexp ไปเลย

เดี๋ยวนี้ เว็บไซด์ส่วนใหญ่นั้น จะเขียนกันในรูปแบบ XHTML ซึ่งมักจะมาการระบุ Class หรือ Id ให้กับ Elements เกือบทั้งหมดอยู่แล้ว ซึ่งบางที ถ้าเราจะทำการ Get Content ที่อยู่ในช่วง tag ของมัน เราก็มักจะใช้ความสามารถของ Regular Expression (Regexp) โดยส่วนใหญ่ แต่…..

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

เท่าที่ไปลองไล่ lib มาก็เห็นว่าใช้ความสามารถของ regexp เหมือนกัน แต่ทว่า มันเขียบนได้ เทพ แท้ๆ เลยครับ (more…)

จะเขียน jQuery ให้ดี ต้องหัดเป็นคนขี้เกียจก่อน

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

และวันนี้ผมก็จะมานำเสนอ วิธีเขียน jQuery ให้มัน optimize และ สั้นสุดๆ โดยไม่เสีย ความตั้งใจ ในการทำงานของเราไป ลองมาดู วันนี้ผมมีอะไรมาให้ ชิม !

1. ขี้เกียจจะเช็ึีค

  1. // Don’t
  2. if ($(‘#item’).get(0))
  3.   $(‘#item’).somefunction();
  4.  
  5. // Or
  6. if ($(‘#item’).length)
  7.   $(‘#item’).somefunction();
  8.  
  9. // Just
  10. $(‘#item’).somefunction();

jQuery จะทำงาน ใน function เฉพาะกรณี ที่ถูกต้องเท่านั้น ไม่จำเป็นต้องไปเช็คให้เสียเวลา

2. เปิดแค่สั้นๆ ก็พอแล้ว (more…)

เกี่ยวกับ Thumbnail ใน CI วันนี้ผมเอา Idea มาแชร์

วันนี้ บทความที่ผมจะมาเขียน เป็นเรื่องเกี่ยวกับ Thumbnail ล้วนๆ ซึ่ง เป็นการสร้างภาพ Thumbnail on the fly นั่นแหละ แต่มันก็มีทั้ง ข้อดีและ ข้อเสียเหมือนกัน ลองดูเอานะ

Concept:
โดยปกติแล้ว เวลาเราสร้าง Thumbnail หลักการก็คือ
1. Upload Original Binary File.
2. Resize to smaller and upload.

ซึ่งอาจจะเห็นมันมีแค่ 2 อย่างก็จบแล้ว แต่พอเอาเข้าจริงมันเป็นงานที่น่าเบื่อมากเลย ทำไมต้องมาเสียเวลา ทำงานซ้ำไปซ้ำมา ผมก็เลยเกิด idea ทำไมไม่ให้มัน Generate on the fly เลยล่ะ?

แต่….

ถ้าทำอย่างงั้นมันก็ไปเปลือง ทรัพยากร Server แย่สิ หนักเอาการเลยนะนั่น ก็เลยคิดต่ออีกหน่อย… (more…)

หายไปซะนาน วันนี้มาคุยกันเรื่อง session ใน CI พอหอมปากหอมคอกันดีกว่า

ไม่ได้มาอัพซะนาน จนเกือบจะลืมไปละ ชื่อเว็บ ตัวเองสะกดยังไง 555+

พักนี้ไปทำตัวไร้สาระ ซะจนเบื่อ พอละ เลยมา อัพเดทซะหน่อยกลัวจะลืม กัน อิอิ

เรื่องที่จะพูดวันนี้ไม่ใช้ jQuery นะครับ แต่เป็น session library ใน CI ซึ่งตัวเองก็เพิ่ง มีโอกาสได้ลองใช้ ที่ไม่ได้ลองไม่ใช่เพราะมันไม่ดีนะครับ แต่ตอนนั้น ผมมีปัญหาว่า session ใน CI มันไม่ยอม สลาย หลังจาก ปิด Browser ซึ่ง บางโอกาส มันก็ไม่เหมาะกับงานของผม ก็เลย เขียน session lib ใหม่ ซึ่งเป็น native ใช้งาน เอง (session lib ของ CI จะทำงานด้วย Cookie) แต่ตอนนี้ อยากมาลองดูบ้าง เพราะเห็นมันบอกว่า “offering more flexibility for developers” จะดูซิว่าจริงรึเปล่า? (more…)

เปลี่ยนใจใช้ Zend Cache

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

พอดีตอนนี้กำลังเล่น Zend Framework และได้ทีโอกาสลอง Libraries หลายๆ ตัวของ มัน โดยเมื่อวานผมได้ลองเรื่อง Cache ไป ซึ่งก่อนหน้านั้น ผมเขียน lib ชุดนี้ขึ้นใช้เองครับ โดยทำงานกับ File, APC, Memcached ซึ่งก็ไม่ได้มีปัญหาอะไร แต่ทีนี้พอได้มาลอง Zend_Cached ดู ก็ถึงกลับโละของเก่าออกเลยครับ เปลี่ยนทันที เพราะว่า lib ตัวนี้ทำงานได้ค่อนข้างละเอียด และ ยัง cache ได้หลายแบบ ดังนี้
(more…)

มาทำ Akuma ปล่อย Hadouken กัน (ขำๆ)

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

จากตัวอย่างใน link นี้ เราสามารถทำงานได้โดย ใช้ ภาพแค่ 3 ภาพเองครับ โดยประกอบไปด้วย

1. ภาำพ akuma ยืน
2. ภาพ akuma ปล่อยพลัง
3. ภาพ ลูกพลัง 555+ (more…)

จะว่าไปแล้วผมยังไม่เคยเอ่ยถึง Trigger ใน jQuery เลยนี่นา

Trigger เป็นส่วนนึงใน Events ของ jQuery โดยอยู่ในหมด event handing

ถ้าจะให้อธิบาย ตาม manual ของ jQuery กันเป๊ะ ผมว่าคงมึนกันเป็นแถบๆ ดังนั้นผมจะขออธิบาย ในภาษาของผมเองก็แล้วกัน 555+

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

ผมจะบอกว่า ก่อน กินข้าว ให้แปรงฟันก่อน หรือ หลังกินข้าว ให้ล้างจานด้วย หรือ ระหว่างกินข้าว ให้ใช้ข้อนกลาง ยังไงยังงั้นแหละ (more…)