Google Docs แบบ Offline มาแล้ว

วันนี้ก็อ่าน CNET จาก Twitter ตามปกติ เห็นเรื่อง Google Docs ที่ คุณกล้าแห่ง Duocore.TV ในตอนที่ 71 ที่บอกว่ายังใช้ไม่ได้ในตอนที่ ตอนนี้ใช้ได้แล้วนะครับ ซึ่งเท่าที่ผมลองก็ยังไม่สมบูรณ์สักเท่าไร ตอนนี้ก็ได้เพียงแก้ Document ที่เรามีอยู่ (สร้างใหม่ไม่ได้) แล้วทำการ Save ซะแล้วเดียวพอต่อ Internet มันจะ Resync ไปที่ Google ให้เองอัตโนมัติ แถมตอนลงมีทำ Shortcut บน Desktop ให้ด้วยนะ

ใครอยากลองใช้ Google Docs แบบ Offline ต้องลง Google Gears ด้วยนะครับ แต่มีเรื่องที่น่าเสียดายครับ The World Browser ยังไม่รองรับการทำงานแบบ Offline ครับใช้ได้เฉพาะ Internet Explorer กับ Firefox (ตัวอื่นผมยังไม่ได้ลอง) ยังไงก็เชียร์เจ้าตัวนี้เต็มที่หวังว่าอนาคต Web App จะพัฒนาจนแทน Desktop App ได้อย่างสมบูรณ์เข้าสักวัน..

Codeigniter , jQuery , Ext-Js และ Adobe AIR

หัวข้อวันนี้ตั้งชื่อหัวข้อได้ไม่ตรงนักแต่ผมอยากจะมาพูดถึงเจ้า 4 ตัวนี้ให้ทุกท่านฟังสำหรับคนที่กำลังจะพัฒนา App ขนาดเล็กหรือกลาง แล้วทำไมเจ้า 4 ตัวนี้มันถึงดังมากๆโดยเฉพาะ jQuery ซึ่งตอนนี้เป็นที่กล่าวถึงของ Javascript Framework กันมากเลยทีเดียว ผมจะมาพูดถึงทีละตัวนะครับ พร้อมความสัมพันธุ์

  • Codeigniter จะว่าผมโม้ก็ไม่ว่านะครับ เป็นตัวที่ผมว่าอนาคตยังอีกไกล แล้วก็ไกลกว่า KohanaPHP อีกด้วยความที่เรียบง่าย Document อ่านง่าย ต่อเติมได้ง่ายทำให้เจ้า Codeigniter นี้สามารถแปลงไปได้ในทุกระบบ ถึงแม้จะมี Function งานไม่ครบเหมือนพวก Symphony หรือ KonahaPHP แต่เจ้าตัวนี้ก็มาทดแทนด้วยความเร็ว , เข้าใจง่าย และ ต่อเติมง่าย แทนโดยเจ้า Codeigniter มีการวางโครงสร้างมาจาก Ruby on Rails (แต่เขียนด้วย PHP ซึ่งมันสุดยอดมาก)
  • jQuery ตัวนี้ใครติดตามผมมานานจะรู้ว่าผมเชียร์ตัวนี้ แทบใจขาดดิ้นๆๆ เลยทีเดียวด้วยความสามารถที่จิ๋วแต่แจ๋ว จัดการ Data ได้อย่างยอดเยี่ยมแถมเปลี่ยนการ Coding ภาษา Javascript ให้ง่ายมากๆ แล้วตอนนี้มันดังจนไปเทียบเท่ากับพวก Prototype , Dojo , YUI ได้แล้ว แล้วมีทีท่าว่าจะดังต่อไป ด้วยหลักการเดิม เร็ว , เข้าใจง่าย และต่อเติมง่าย
  • Ext-Js เป็นน้องใหม่ไฟแรงแถมตอนนี้ได้เปลี่ยน License เป็น GPL หรือนำไปใช้ได้ฟรีแต่ต้องเปิดเผย Source Code กระแสเลยยิ่งแรงขึ้นไปอีก (แต่ถ้าจะทำทางการค้าต้องซื้อนะครับ) โดยเจ้า Ext-JS วิธีการใช้จะคล้ายๆกับเป็น Component (แต่ก็ยังไม่สมบูรณ์) โดยเราสามารถได้ Component มาต่อเติม website ด้วยการ new Object เสร็จแล้วใส่ค่าอีกนิดหน่อยเราก็จะได้ Component ซึ่งมี User Interface ที่สวยงามพร้อมมาทันที แต่จนแล้วจนรอด มันก็เหมาะสำหรับคนที่ใช้ Javascript พื้นฐานมาคล่องพอตัวแล้วเหมือนกัน
  • Adobe AIR เมื่อเจ้า Runtime ตัวนี้ออกมาพร้อม SDK ทำให้การสร้าง Desktop App เปลี่ยนไปทันที คนทำแต่ Web App ตอนนี้จะมีโอกาสได้โชว์ฝีมือในการทำ Desktop App กันแล้วด้วยภาษา HTML , Javascript , CSS 3 ภาษานี้

แล้วมันเกี่ยวกันยังไงหรอ ? ตอนนี้ผมใช้เจ้า Codeigniter กับ jQuery อยู่ซึ่งขอบอกว่า Work มากในระดับของฟรี เสร็จแล้วมีโครงการที่จะศึกษาการทำงานของเจ้า Adobe AIR ด้วยเหมือนกัน เลยศึกษามาพอสมควรโดยมันสามารถถูกเขียนได้ด้วย 3 แบบคือ AJAX , Flash , Flex แต่ผมขอเลือกทาง AJAX แทนที่จะเป็น Flash หรือ Flex เพราะผมมีพื้นด้านนี้มาเยอะแล้ว ไม่อยากเริ่มต้นใหม่ (ถึงแม้จะลงเรียน Adobe Flash ไปแล้วก็ตาม) แล้วคราวนี้ไอ้เจ้า Ext-Js นี้และที่จะมาทำให้การพัฒนา ออกมาสวยงามและมีประสิทธิภาพ โดยเสียเวลาเขียน code น้อยลง ;) แต่แล้วไอ้เรื่องการจัดการ Data ด้วย Javascript ปกติรวมถึงการท่อง DOM มักก็เป็นปัญหาพอควร

ดังนั้นช่วงเวลานี้กระแส jQuery + ExtJs กำลังมาแรงในการทำ Adobe AIR แต่ยังไม่มี App ที่มาจากเจ้า 2 ตัวนี้ + กันแบบดีๆเลย (เพราะกระแสมันพึ่งเริ่ม) แล้วดูจาก Document รวมถึงผมได้ลองเขียนเจ้า Ext-Js แล้วมัน ไม่ได้เขียนเข้าใจยากมากเมื่อมารวมกับ jQuery โดยผมใช้ jQuery ในการจัดการ Data , AJAX , Event Handler , Effect และท่อง DOM ส่วนที่เหลือก็ใช้ Ext-JS ในการสร้าง Component สวยๆมาใช้แบบง่ายๆ จะเห็นว่า jQuery จะเป็นฐานในการจัดการข้อมูลพื้นฐานส่วน Ext-JS มาเสริมและสุดท้าย

Codeigniter เอะแล้วมาเกี่ยวอะไรกับการใช้ Adobe AIR ละ Web Service ไงครับเจ้า Codeigniter ไม่น่าเชื่อว่าจะทำ Web Service ได้ง่ายโคตรๆ (ขอไม่บอกรายละเอียดในตอนนี้) ด้วยการที่เราสามารถเข้าถึง Method ของ Controller ได้ผ่าน URL รวมกับ function พื้นๆของ PHP อย่าง Array แล้วก็ Json_encode ทำให้มันกลายเป็น Web Service แบบ RESTful โดยง่ายเลยทีเดียว แล้วเราก็ใช้ jQuery เรียก Web Service ของ Codeigniter แล้วรับมันมาแบบ JSON แล้วนำมาใช้ประโยชน์ต่อได้ !

ขอสรุปของการทำงานแบบง่ายๆในอีกมุมหนึ่งที่ผมมา Trend นี้มาแรงในกลุ่มรายย่อยแบบเราๆทำกัน

  • (X)HTML + CSS ทำงานในส่วนของโครงสร้าง User Interface
  • Javascript ทำงานในการดึง Data จาก Web Service และนำมาใส่ใน User Interface รวมถึงทำ Effect ต่างๆด้วย
  • PHP-OOP ใช้ในการนำ Data จาก Database มาประมวลผลต่างๆแล้วนำไปให้ Javascript เรียกใช้ Web Service
  • Database ใช้สำหรับการจัดเก็บ Data แบบง่ายๆเพื่อให้ PHP นำไปประมวลผลต่อ

จุดเด่นของการใช้ Driven แบบนี้

  • ปรับปรุง , บำรุงรักษาและจัดการง่าย เพราะมีการแยกส่วนอย่างชัดเจน
  • ไม่จำเป็นต้องรู้ภาษา SQL ให้ลึกซึ้งเราใช้ PHP-OOP ในการจัดการ Data แทน
  • มี Framework รองรับแล้วเป็น Open-Source ทุกอย่างทั้ง Codeigniter , jQuery , ExtJS รวมถึง Database ที่เป็น Open-Source อย่าง MySQL , PostgreSQL
  • ถอดเข้าถอดออกได้อย่างง่ายดาย
  • เขียน , ออกแบบ และเข้าใจได้ง่าย

จุดด้อยของการใช้ Driven แบบนี้

  • Performance ขึ้นอยู่กับเครื่องของ User มากกว่าของ Server ยกเว้นใช้ Jaxer Server (AJAX at Server)
  • ยังไม่เหมาะสำหรับงานระดับ Enterprise
  • ใช้หลายภาษาทำให้ Curve ในการเรียนรู้สูง (แล้ว J2EE ละ??)
  • ใช้การเชื่อมต่อจากหลายจุด ไม่เป็นหนึ่งเดียวอาจเกิดปัญหาเรื่องการเชื่อมต่อได้

วันนี้ผมก็ลาไปแค่นี้ก่อนละครับเขียนเหนื่อยเลยมีอะไรแนะนำ หรือมาเสนอความคิดเห็นก็ลง Comment กันไว้ได้เลยครับ ;)