Latest Publications

Beauty Your CI Step 2 – Beauty MY Controller

รู้มั้ยครับ ว่าทำไมผม Update บทความนี้ช้าเสียเหลือเกิน เพราะผมไม่รู้จะอธิบาย ยังไงน่ะสิ มันค่อนข้างจะวุ่นวายมากในการ ที่จะเปลี่ยน controller ใน ci ให้เป็น bootstrap ของ application

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

- language
- access control list
- time zone

โดยพวกนี้คือ ส่วนสำคัญที่มัน “จำเป็น” ต้องมี ใครอยากจะเอาไป modify เพิ่มเรื่อง user settings ต่างๆ เช่น theme, widget ก็ควรจะทำผ่านตรงนี้แหละ (more…)

Beauty Your CI Step 1 – Beauty My Model

เอาล่ะครับ ทิ้งช่วงให้รอมาพักนึง ต้องขอโทษด้วย พอดีเป็นคน ธุระ ทั้ง ราชทั้งหลวง เยอะจัด 555+

ตอนแรกที่จะนำเสนอเกี่ยวกับ Long Story ที่ตั้งชื่อตอนซะเก๋ชื่อ “Beauty Your CI” เป็นการสร้าง Model (M) ที่มีความสามารถมากกว่าเดิมอย่างเห็นได้ชัด …

เอ่อแล้วก่อนที่จะเริ่มอ่านบทความนี้ขอให้กลับไปอ่าน มาใช้ “Zend Framework ใน CI กันเถอะ” แล้วทำให้ได้ตามตัวอย่างซะก่อน เพราะถ้าทำไม่ได้ บทความนี้ และต่อๆไปก็จะไร้ความหมายไปในทันที เพราะผมใช้ Zend เยอะมากๆ … (more…)

เฮ้ยจะกลับมา Update แล้ว 555+

หายไปทำบ้าทำบอ อยู่ราวๆ ครึ่งปี จนตอนนี้เก็บสะสม ความรู้ใหม่ๆได้เพียบเลย จะค่อยๆ กลับทยอย อัพเดทให้อ่านกันอีกครั้งนะครับ โดยเรื่องที่จะอีัพเดทที่มีเตรียมไว้ในหัวตอนนี้ก็คือ

1. CodeIgniter Ready to Code
อันนี้เป็น CI Structure ที่ผมทำมาเอง ซึ่งตอนนี้ผม ทำเทสหลายๆ ด้าน รวมถึงความง่ายในการเขียน รับรองว่า สุดจี๊ด เลย ทั้งสวยงามน่าใช้ ทั้ง performance ดีเยี่ยม จนคุณลืม CI แบบปกติทิ้งไปได้เลย (more…)

เทคนิคการ Filter class เพื่อประหยัดการใช้งานโคด

จริงๆ ขี้เกียจจะอัพมากๆ ที่ไม่อัพเพราะว่า เร็วๆ นี้ jQueryTips.com กำลังจะย้ายบ้านอ่ะ สาเหตุหลักๆ ที่ผมไม่อัพเลย ในหลายเดือนที่ผ่านมา เพราะกำลัง จะย้ายบ้านนี่แหละ แล้วก็บ้านใหม่ไม่ใช่ WordPress, Drupal หรือ Free CMS อะไรพวกนี้แล้ว แต่เป็น app ที่เขียนเองครับ ทุกชิ้น ทุกขั้นตอนผลิตเองทั้งหมด แล้วก็ที่สำคัญไม่ได้ผลิตมาใช้ คนเดียว แต่เป็นลักษณะ Multi Users ซึ่งความสามารถไม่แพ้ cms พวกนี้แน่นอน บอกได้แค่นี้แหละ เดี๋ยวไม่ลุ้น

แต่ที่วันนี้ต้องมาอัพเพราะเดี๋ยวกลัวตัวเองจะลืม ผมใช้ jQueryTips แห่งนี้เป็นเหมือน สมุดช่วยจำส่วนตัวน่ะ อิอิ

เคยรู้สึกรำคาญมั้ยครับ กับเวลาที่เราจะทำงานกับ element ก้อนเดียวแต่มันมีหลาย actions ซะเหลือเกิน เช่นกด class นี้วิ่งไปนี่ กดอีก class นึง วิ่งไปทำงานอีกแบบนึง เอาล่ะ สมมุติก่อน (more…)

jQuery กับคำสั่ง “data” เอาไว้ทำไรน้อ?

เอาล่ะๆ มาแล้ว หลังจากได้รับ e-mail จำนวนนึง ไปบ่น ว่า “ทำไมไม่อัพเดทเลย” บางคนเขียนมาสอบถามอาการนึกว่าผมป่วยด้วยซ้ำ 555++ ก็เลย คิดว่าจะมาอัพเดท สักบทความนึง

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

สำหรับเรื่องที่จะมาบ่นวันนี้ เป็นคำสั่งนึงใน jQuery ครับ ซึ่งผมคิดว่ามันมีประโยชน์ดี คำสั่งนั้นคือ “data” นั่นเองครับ ปกติเวลาเราจะทำค่า hidden หรือฝากค่าไปกับตัวแปร javascript ที่เป็นลักษณะชั่วคราว เก็บไว้เปรัยบเทียบอ้างอิง ก็มักจะเขียนเช่น

  1. $(‘#enter’).click(function() {
  2.         $(‘input:hidden’).val(’ssss’);
  3.  });

หรือ

  1. <a href="javascript:store(‘value’)">Store my value</a>

แล้วเอาไป push ลง array หรือ new variable ใหม่มาเพื่อเก็บไว้ (more…)

Codeigniter validate file before submitting

หายไปนานโครตๆ เลย ยังไม่ได้ตายไปกับหวัด 2009 นะครับ แต่ช่วงนี้มันมีนู่นมีนี่ตลอดเลย ตอนนี้ก็ยังไม่เสร็จ แต่กลัวจะโดนลืมไปซะก่อน เลยขอแวะมาอัพเดท กันสั่งบทความ วันนี้ขอเป็นเรื่อง CI แล้วกันนะครับ

ไม่รู้คนอื่นจะเคยเจอปัญหาแบบเดียวกับผมรึเปล่า คือว่า ผมอยากจะ validate file ก่อน แล้วค่อย submit ไม่ใช่ submit แล้วค่อยมานั่งตรวจทาน กัน แบบนี้มันไม่ประทับใจ ผมก็เลยลองหาวิธีที่คอื่นเค้าใช้แก้กัน ก็ได้มา 2-3 วิธี แต่ลองๆไปแล้ว มันก็ยังไม่ใช่ที่อยากได้อยู่ดี เลยเอาไอ้ที่หาๆ มา ยำๆ กันจนได้เป็นวิธีของตัวเองซึ่งผมคิดว่า Work More เลยเอามาให้ลองกันดูนี่แหละ

เป็นวิธี extends form_validation ของ CI ครับ มาเพิ่ม method ของตัวเองเข้าไป เรามาเริ่มที่ตรงนี้กันก่อนเลยละกัน (more…)

พัก อัพเดทบล๊อกชั่วคราว

อย่าเพิ่งตกใจไปครับ ยังไม่ได้หายไปไหน แต่ว่ากำลังไป “ตามฝัน” ตัวเอง อิอิ ว่าไปนั่น คือว่าช่วงนี้ผมยุ่งๆ หลายเรื่องเลย ทั้งเรื่อง…. (ไม่อยากบอก แต่เพื่อนๆ บางคน คงรู้ -*-) แล้วก็เรื่องงาน ตัวเอง ที่ใช้เวลา มานานมากก็ไม่ขยับเสียที ตอนนี้เริ่มรู้สึกว่าอยากทำจริงๆ จังๆขึ้นมาแล้ว ก็จะขอเอาเวลา ส่วนใหญ่ไป ทุ่มให้กับตรงนั้น

คือว่า …

ผมกำลังจะไปทำงาน ศิลปะ ครับ แต่ว่า เป็นศิลปะ ของ web application ซึ่ง ตอนนี้งานก็เริ่มเดินไปเรื่อยๆ แล้ว พอเอาเวลาไปทำงานตรงนั้น เลยกลัวว่า พอไม่ได้มาอัพเดทบล๊อกเลย เพื่อนๆ จะคิดว่าผมหายไปไหน ก็บอกตรงนี้เลยครับ ว่ายังไม่ได้หายไปไหน บล๊อกก็จะพยายาม อัพ แต่คงไม่ถี่ เหมือนเดิมแล้วล่ะ จะเอาเฉพาะ อะไรที่ “เด็ด” จริงๆ มาอัพ

ยังไงก็อย่าเพิ่งทิ้งกันไปไหนนะครับ ^^

Mr.Tee Plus Plus
(I’m Coding like playing the piano.)

jQuery เด็ดๆ

jQuery เป็น JS Framework ซึ่งมีวิธีการเขียนค่อนข้าง่าย และมี syntax ที่ไม่ซับซ้อน รวมไปถึง selectors ที่เตรียมมา เรียกได้ว่า “สมบูรณ์” เลยทีเดียว ทั้งยังมีการ update ที่ต่อเนื่อง และการเอาใจใส่ จากทีมพัฒนา

ด้วยเหตุนี้เราจึงเห็นได้ว่า plugin ของ jQuery มีมากกว่า plugin ของ JS Framework ตัวอื่นๆ อย่างเทียบไม่ติด และ คนเขียน blog กับมันก็มีไม่น้อย

และหลังจากผมนั่งเก็บ tags เกี่ยวกับ jQuery มานาน จนตอนนี้มีถึง 83 tags เแล้ว ก็เลยอยากจะเอามา share ให้เพื่อนๆ ลองอ่านกันดูบ้าง (more…)

Hasing algorithm

วันนี้ขอพูดเรื่อง performance อีกสักที สำหรับคนที่เคยจับ application ที่ใหญ่ๆ หน่อย ที่มีจำนวน file upload มหาศาล หรือ เอาง่ายๆ แค่หลัก 2-3 หมื่นขึ้นไป ก็จะเห็นได้ว่า หลังจากนั้น application จะทำงาน ค่อยๆ ช้าลงๆๆๆ จนในที่สุด ก็ทะลุ node ที่เป็น limit ของ UNIX ไป (จำไม่ได้ 5 หรือ 6 หมื่นนี่ล่ะ)

วิธีแก้ที่ดีที่สุดก็คือการ ซอย folder ออกเป็น ย่อยๆ เพื่อไม่ให้ไฟล์ ไปรวมกันอยู่ที่เดียว เช่น

  1. parent –
  2.             |- child1
  3.             |- child2

แบบนี้ไฟล์ก็จะไม่รวมอยู่ที่เดียวกัน แต่ จะมีปัญหาตามมาว่า แล้วเราจะ บริหารจัดการยังไง T_T

ตรงนี้แหละที่ ต้องมี hashing algorithm แบบต่างๆ ขึ้นมา ผมจะลอง ไล่ไปดูทีละแบบละกัน (more…)

วิธีการเช็คว่าทำการโหลดเสร็จรึยัง

ครั้งก่อนหน้านี้ผมเคยแนะนำวิธีการเช็ค iframe ว่าโหลดเสร็จรึยัง ไปทีนึง แต่ว่า วันนี้ผม จะแนะนำ อีกแบบก็คือ การเช็คหลังจากที่เราเพิ่ง แก้ไข attribute บางอย่างลงไป

ใช้งานกับ Iframe

  1. $(‘#myIframe’).attr(’src’, ’somecontent.html’).load(function() {
  2.     alert(‘Iframe Loaded’);
  3. });

(more…)