ได้รับเชิญจากอาจารย์ที่มหาวิทยาลัยให้ไปสอนเรื่องนี้ มีเวลาเตรียมตัวร่วมเดือน แต่ประกอบกับงานที่เพิ่งเริ่มทำ และมีงานที่เข้ามาตลอดทำให้หลาย ๆ อย่างในการสอนเมื่อวันหยุดช่วงวันแม่ที่ผ่านมาดูไม่พร้อมเท่าไหร่ slide สำหรับสอนนั้นเสร็จสด ๆ ก่อนสอนทั้ง 3 วันตลอด ซึ่งถึงแม้ว่าจะเสร็จทันเวลา แต่โดยส่วนตัวแล้วถือว่าเราจัดการเวลาในการทำสื่อการสอนไม่ดี เพราะน่าจะทำให้มันเสร็จก่อนสอนทั้งหมดเสียด้วยซ้ำ โดยการสอนนี่ก็มีเนื้อหาได้แก่
- XHTML, DOM, CSS and JavaScript in Basic
- PHP Basic Concept (OOP, Zend Certification), PHP Manual และ PEAR Package/Frameworks
- Hypertext Transfer Protocol (HTTP)
- AJAX in Basic และ Debug AJAX
- XAJAX Framework
โดยเนื้อหามันอาจจะมีสลับบ้าง นิดหน่อย แต่ประมาณนี้แหละ ได้สอนส่วน OOP ซึ่งก็ intro เรื่อง concept ไปเลย ที่หนักสุดน่าจะเป็น HTTP Protocol มากกว่า เพราะส่วนใหญ่ที่เจอ ๆ ใน outline ตามที่ต่าง ๆ ไม่ค่อยได้สอนเท่าไหร่ แต่มันสำคัญมาก ๆ ในเวลาที่เราต้อง Debug ตัว AJAX มันต้อง Filter การส่งข้อมูลเข้าออกด้วย โดยใช้ 2 ตัวคือ FireBug กับ Proxomitron ในบางครั้งตัว FireBug จะจับข้อมูลที่ถูกส่งผ่าน iframe ไม่ได้ อย่างในกรณีของ google maps เป็นต้น แต่ Proxomitron จะดักได้ เพราะตัว Proxomitron มันดักแบบ Proxy Server ซึ่งข้อมูลทุกอย่างต้องวิ่งผ่านทั้งหมด ทำให้การ Filter ทำได้ง่ายกว่า แถมแก้ไขตัว header และ data ภายในก่อนส่งได้ด้วย เป็นโปรแกรมสำหรับทำมิดีมิร้ายได้เป็นอย่างดี ซึ่งก็ได้สอนเบื้องต้นในการใช้งานเท่านั้น จริงๆ สอนไปหน่อยเดี่ยว เพราะมันมีปัญหากับ ISA Server ของมหาวิทยาลัย ทำให้ Proxomitron ใช้งานไม่ค่อยได้ จะใช้ได้ก็ FireBug ที่พอทำให้เห็นภาพเท่านั้น
ส่วนต่อมาที่น่าจะเป็นก่อนมาเรียนพวก AJAX เลยคือพวก XHTML, CSS, HTML event tag, แนวคิดด้าน DOM แล้วก็ JavaScript อย่างน้อย ๆ ก็เขียนเองได้บ้างก่อน ไม่งั้นนึกภาพไม่ออกแน่ว่ามันเชื่อมโยงกันยังไง แล้วจะทำให้เราไปต่อไม่ได้ ถึงแม้ว่า XAJAX Framework จะทำให้เราไม่ต้องไป focus ที่ตัว JavaScript มาก แต่ว่าในระดับที่มีความซับซ้อนสูงๆ ก็จำเป็นเหมือนเดิม แต่บอกตามตรง XAJAX ทำให้เขียน AJAX เพื่อทำงานกับ PHP ได้ง่ายขึ้นเยอะมาก ๆ ลดเวลาการเขียนลงได้ 3-4 เท่า (วัดจากการที่ได้ใช้เอง) จริง ๆ ยังมี Framework อีกหลายตัวที่น่าสนใจ เอาไว้ว่าง ๆ จะลองเล่นดู
ส่วนที่เป็นพื้นฐานมาก ๆ อย่างเรื่อง path file และ page/data encoding นี่ก็ต้องพูด เพราะในมหาวิทยาลัยไม่ค่อยมีคนสนใจเรื่องนี้เท่าไหร่ ก็ต้องเสริม ๆ ลงไป แถมพูดเรื่อง Unicode ในส่วนของ UTF-8 ไปด้วยว่าในปัจจุบันทำเว็บใช้ UTF-8 น่าจะดีกว่า
จริง ๆ ใน outline กะว่าจะเสริม MySQL in Basic แต่ ไป ๆ มา ๆ ไม่ได้สอน เพราะท่าทางจะหนักเกินไป T_T จริง ๆ ต้องเป็นการสอนระยะยาวมากกว่า เพราะในระดับที่สอนอยู่นี้เนี่ย เป็นระดับปูพื้นฐานและให้ไอเดียว่ามันคืออะไร, การทำงานอย่างไร แล้วถ้ามีข้อผิดพลาดแล้วจะเริ่มไล่ปัญหาจากตรงไหนไปตรงไหนก่อน เพราะถ้าไม่สอนเรื่องพวกนี้ที่เป็นเรื่อง Basic ก่อน ทำงานระดับสูง ๆ ที่ซับซ้อนมาก ๆ พอเจอปัญหา จะเกิดเหตุการณ์แก้ปัญหาแบบมั่ว ๆ ได้
<?php ?> on AJAX
Slide Keynote
Example
http://www.fordantitrust.com/download/democode.zip
http://www.fordantitrust.com/download/ajax1.zip
http://www.fordantitrust.com/download/xajaxexam.zip