Archive for September, 2010

iPhone Apps Guide Part I

4

ว่าจะเขียนบล็อกเรื่องนี้มาประมาณครึ่งปีแล้ว เห็นว่า iPhone 4 เพิ่งวางจำหน่ายในประเทศไทยอย่างเป็นทางการ เลยถือโอกาสเขียนถึงเสียเลย โดยไกด์นี้ผมจะแนะนำว่าผมใช้ iPhone อย่างไร มี App อะไรดีหรือแย่อย่างไร และ Setup (พวก Sync ต่างๆ) อย่างไรบ้าง จากประสบการณ์ส่วนตัว โดย App ทั้งหมดนั้นโหลดและซื้อผ่าน AppStore เท่านั้น (ผมไม่นิยม Jailbreak) และอ้างอิงกับ iOS 4 กับ iPhone 3GS (ที่ผมใช้อยู่ ณ ปัจจุบัน) เป็นหลักครับ

และเนื่องจากพอเขียนไปเรื่อยๆ มันชักยืดยาว ผมเลยต้องขอแบ่ง Post นี้ออกเป็นหลายๆ ภาคนะครับ (คิดว่าน่าจะมีสัก 2-3 ภาค) โดยแต่ล่ะภาคจะนำเสนอ App ต่างๆ และการใช้งานแยกเป็นหมวดๆ ไป ซึ่งหมวดนี้จะไม่ตรงกับหมวดใน AppStore นะครับ แต่เป็นหมวดที่ผมอุปโลกน์ขึ้นมาเองครับ

(more…)

Alliance of Illusionary Eyes

0

Alliance of Illusionary Eyes (幻視同盟 Genshi Doumei) เป็น Doujin Game แจกฟรีจากค่าย TYPE-MOON ครับ (เผื่อใครยังไม่รู้จัก ค่ายนี้เป็นค่ายที่ทำเกม Fate/stay night นั่นเองครับ) โดยเกมนี้เป็นเหตุการณ์ในช่วง 2 เดือนหลังจากเกม Tsukihime (เป็น Visual Novel เกมแรกที่ผมเล่นจบเลย ประทับใจมากๆ มีเวอร์ชั่นภาษาอังกฤษแปลโดย mirrormoon ให้เล่นด้วยครับ) ซึ่งรายละเอียดผมก็ยังไม่ทราบมากนัก เพราะยังไม่มีเวลาเล่น

พอดีว่าวันก่อนผมเห็นทาง mirrormoon ปล่อย English Patch ของเกมนี้ออกมา (นึกว่าตายไปแล้วซะอีก เงียบไปนาน) เลยถือโอกาสเอามาแจกให้ลองเล่นกันครับ ใครที่สนใจสามารถดาวน์โหลดได้จาก Link ด้านล่างครับผม สำหรับตัวเกมนั้นมีหลายเวอร์ชั่น แต่แตกต่างกันแค่คุณภาพเสียงเท่านั้น ผมไปถามทาง mirrormoon มาแล้ว Patch นี้สามารถใช้ได้กับทุกเวอร์ชั่น ยังไงเพื่อประสบการณ์ที่ดีที่สุดผมแนะนำให้โหลดไฟล์ใหญ่ที่สุดไว้ก่อนครับ

ป.ล. ดูเหมือนว่า Link ดาวน์โหลดเกมเต็มที่โฮสโดย fuzzy จะแบนประเทศไทยด้วยเหตุผลบางประการ ยังไงโหลดจาก mirror เอาก็ได้ครับ

ป.ล. 2 ระหว่างเขียน Post นี้ไปเจอเว็บที่บอกรายละเอียดของเกมในโลก Tsukihime ทั้งหมด ด้วยครับ (นับแค่ Tsukihime แต่จริงๆ แล้วเกมของ TYPE-MOON มันก็โลกเดียวกันหมดแหละ)

Recursively Delete Files and Directories with PHP

2

คุณเคยประสบปัญหากับไฟล์ที่สร้างโดย PHP แล้วไม่สามารถลบได้ผ่าน FTP หรือ SSH ใช่หรือไม่? ผมขอแนะนำ Unlinker ซึ่งเป็น PHP Script ที่จะ Recursive เข้าไปลบ File และ Directory ทั้งหมดที่อยู่ใน Level เดียวกันและต่ำกว่าครับ ซึ่ง Script ตัวนี้ผมเขียนไว้เมื่อนานมาแล้ว ตั้งแต่เพิ่งเริ่มศึกษา PHP ใหม่ๆ (ดังนั้น Code เลยดูไม่ค่อยสวยเท่าไหร่) แต่พบว่ามันก็ยังมีประโยชน์อยู่เรื่อยๆ เวลาต้องทำงานกับระบบไฟล์ด้วย PHP หรือเวลาที่ CMS ทั้งหลายมันดันสร้างไฟล์ไม่พึงประสงค์ออกมา เลยเอาลองมาแจกดู เผื่อจะมีประโยชน์กับคนอื่นบ้างครับ

เวลาจะใช้ก็โยนมันไปไว้บน Server แล้วเรียก Script นี้ จากนั้นกดปุ่มยืนยันอีกรอบนึง แค่นี้ก็เรียบร้อยแล้วครับ ไม่ต้องแจ้งให้ Admin คอยลบอีกต่อไป

(more…)

Random Thoughts on Web Application Development

2


อาทิตย์นี้หมดมุกครับ ปั่นแต่งานๆๆ (ฮว้ากกกกกกกกก) เลยจับเกร็ดเล็กเกร็ดน้อยที่นึกขึ้นมาได้ระหว่างทำงานมาเขียนรวมกันซะเลย

  • Deadline ไม่ใช่ข้ออ้างที่จะเขียน Code ให้สกปรก ถึงจะทำงานตาม Requirement เสร็จออกมาได้ แต่เราจะต้องเสียใจอีกในไม่ช้าแน่นอน
  • ในการเขียน Web App ความเป็นระเบียบของ Code นั้นสำคัญมาก เพราะมันเป็นอะไรที่เขียนได้ไม่มีวันเสร็จ เราต้องอยู่กับมันไปอีกนาน ถ้า Code เริ่มเละจะพาลไม่อยากยุ่งด้วยเอา
  • ถึงจะเกลียดการ Hack (Code) แค่ไหน แต่หลายๆ ครั้งมันก็จำเป็น อย่างน้อยก็ Comment พร้อมลงชื่อไว้หน่อยว่าเรา Hack อะไรไป จะทำให้ชีวิตมีความสุขขึ้น เมื่อต้องกลับมาอ่าน Code ตัวเองในอีกหลายเดือนต่อมา
  • ออกแบบระบบไว้ดี มีชัยไปกว่าครึ่ง
  • การออกแบบระบบที่ดี ไม่ใช่แค่ให้มันทำงานตาม Requirement ได้ Optimize ที่สุดเท่านั้น แต่ต้องให้มันรองรับการเปลี่ยนแปลงในอนาคตด้วย
  • เวลาเก็บ Log นอกจากจะบอก State ของโปรแกรมแล้ว บอกว่า Error อยู่ใน Class ไหน, Method ไหน จะช่วยให้การตามหาจุดที่ต้องแก้ไขทำได้สะดวกขึ้น
  • อย่าสักแต่เก็บ Log แต่ต้องนึกถึงวิธีที่จะเอาข้อมูลจาก Log ออกมาดูใน Context ที่ต้องการด้วย ไม่งั้นก็จะกลับไป Debug ด้วยการ Print นู้นนี่มาดูอีกเหมือนเดิม
  • เสียเวลาสักหน่อยเขียนระบบให้ Web Application เมลล์หาเราเมื่อเกิด Error จะช่วยให้เรา Support ปัญหาต่างๆ ได้สะดวก และทันท่วงทีขึ้นเยอะ
  • อย่าเชื่อใจ Code ชาวบ้านมาก Code ที่ดูเป็นระเบียบไม่ได้แปลว่ามันเวิร์ค แต่แปลว่าเราจะทำความเข้าใจและเข้าไปทำให้มันเวิร์คได้ง่ายขึ้น
  • การใช้ Framework ช่วยงานเราได้เยอะก็จริง แต่ต้องใช้ให้เป็นด้วย ไม่งั้นจะกลายเป็นเสียเวลา Implement Feature ที่ Framework มีให้อยู่แล้วไป
  • ORM ช่วยให้ชีวิตง่ายขึ้นก็จริง แต่สุดท้ายเวลา Deadline ใกล้เข้ามา และติดปัญหา Performance เราก็เขียน Optimized Query Hack แทรกเข้าไปอยู่ดี
  • คำที่ว่าเกลียดอะไรมักได้สิ่งนั้นนี่ท่าจะจริง ผมบ่นเรื่อง PHP ได้เป็นวันๆ แต่สุดท้ายมันดันเป็นภาษาที่ผมชำนาญมากกว่า Python สุดรักไปซะแล้ว (ต้องจับมันทำ Project อยู่ตลอดนี่นะ)
  • อย่าเชื่อใจ Garbage Collection ของ PHP เด็ดขาด ทำลาย Object แบบ Manual ซะตั้งแต่ต้น จะช่วยประหยัดเวลาที่ต้องมาแก้ไข Memory Leak ทีหลังได้เยอะ หลายครั้งที่ผมได้ Memory กลับมาเป็นร้อย MB ด้วยคำสั่ง unset($unused_var) เพียงบรรทัดเดียว

เริ่มรู้สึกว่ายิ่งบ่นยิ่งมัน มีเรื่อยให้บ่นได้เรื่อยๆ ดูท่าว่าคงได้เขียนบ่นแนวๆ นี้ต่ออีกเป็นซีรีส์แหงๆ ใครมีอะไรจะบ่นเพิ่มเติมก็เขียนทิ้งไว้ใน Comment ได้นะครับ

ป.ล. ภาพเปิด Post คราวนี้ก็ไม่ได้เกี่ยวข้องอะไรกับเนื้อหาอีกแล้วครับ แค่ Search จาก Danbooru ซั่วๆ แล้วแปะโลด เห็น Kaguya กับ Eirin (จากเกม Touhou) ทำหน้าเนือยๆ แล้วรู้สึกมันเข้ากับอารมณ์เซ็งๆ ตอนนี้ดี
ป.ล. 2 ตอนแรกว่าจะเอาใส่หมวด Ranting แต่ดูแล้วเนื้อหามันออกไปทาง Development มากกว่า และอาจจะมีประโยชน์กับคนอื่นในอนาคต เลยไว้หมวดนี้แล้วกัน
Go to Top