สละชีพเพื่อหน้าที่, อย่าน้อย ๆ ก็รู้ว่าได้ทำ ;)

หลังจากที่เริ่มทำงานจริง ๆ จัง ๆ (อย่างที่บ่น ๆ ใน blog ไปก่อนหน้านั้น) ก็เริ่มเข้าที่แล้ว ถึงจะมีงานที่เร่ง ๆ บ้างในการจัดการฐานข้อมูลและ  tuning ระบบ แต่โดยรวมถือว่าทำงานได้ราบรื่นดี สิ่งหนึ่งที่ได้แง่คิดจากการทำงานคือ

"ถ้าโดนไล่ออกเพราะเราไปมีปัญหาขัดแย้งกับคน เพียงเพราะเราไม่ยอมละทิ้งกฎของงานที่เราตั้งไว้ ยังดีกว่าเราละทิ้งกฎของงานที่ตั้งไว้และทำเพียงเพื่อรักษาความมั่นคงในงานของเรา อย่างน้อย ๆ ก็ยืดอกออกจากบริษัท และบอกกับคนทั้งโลกได้ว่า เราปกป้องกฎและระบบงานของเราอย่างเต็มที่แล้วนั้นเอง"

ทุกวันนี้ถ้ามีใครมาให้เราละทิ้งกฎก็บอกมันไปเลยว่า "ผมไม่ยอมให้ระบบล่มง่าย ๆ เพียงเพื่อสนองความต้องการเพียงส่วนน้อย" หรืออีเมลมาก็ตอกกลับไปว่า "I don’t break my system policy for take care your web application only." จบข่าวหน้าหงายไป แหมจะให้มันซัดทรัพยากรของระบบคนเดียวไม่ได้หรอก

แล้วจะอยู่ครบโปรไหมเนี่ยตรู -_-‘

อีกอย่าง อย่าคิดว่าฝรั่งมันทำงานดีไปเสียหมด นี่เจอกับตัวทิ้งขี้ให้ชาวบ้านแก้เพียบ -_-‘ ต้องมานั่งบอกมันให้มันแก้ แถมตอนนี้มันก็ยังไม่แก้อีก เฮ้อ …… เส้นมันใหญ่ ได้แต่ทำใจ
ปล. ทำงานตอนนี้ใช้ภาษาอังกฤษเยอะ ด้วยความที่ภาษาอังกฤษนี่อ่านพอจับใจความได้ แต่เรื่องฟังและพูดนี่ยังห่วยแตก ส่วนเรื่องพิมพ์ส่งอีเมลและรายงาน ก็พอได้ แต่ก็โดนติง ๆ ว่าผิดบ่อย ตอนนี้เลยพยายามปรับ ๆ อยู่ -_-‘ พยายามกันต่อไป

ทิ้งท้ายสุด ๆ ข้อคิดดี ๆ จากการ์ตูนเรื่อง GODHAND TERU ใน KC.Weekly ฉบับวันพุธที่ 22 สิงหาคม 50, Vol 727

"การทำไม่ได้น่ะ ไม่ใช่เรื่องน่าอายหรอก แต่การปล่อยให้ทำไม่ได้ต่อไปเรื่อย ๆ ต่างหากที่น่าอาย"

คล้าย ๆ กับ "เป็นไปไม่ได้ ทำไม่ได้ หรือไม่ได้ทำ" เลยหล่ะ

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

โอกาส

นั่งคิดอะไรเล่น ๆ ได้ประโยคเด็ดมาหนึ่งประโยค

"โอกาส" ไม่ว่าจะใช้มันหรือไม่ใช้ มันก็ต้องหมดไปอยู่แล้ว วันนี้ถ้ามี "โอกาส" พยายามใช้ให้เกิดประโยชน์เท่าที่เป็นไปได้ แต่การใช้ "โอกาส" นั้น ๆ ต้องถูกตามคุณธรรมและศีลธรรมด้วย (อย่างใช้ "โอกาส" ไปเบียดเบียนผู้อื่น)

NTFS vs FAT32 (Spec)

เจอใน Folder ชื่อ eBook & eDocs ในเครื่องเลยเอามาลง ของเก่า (เก่ามาก ๆ) แต่น่าจะมีประโยชน์

FAT32 (File Allocation Table 32 bit version) พัฒนาโดย Microsoft พัฒนาในครั้งแรกใช้ใน Windows 95 OSR2 ในปี 1996

– โครงสร้างทาง Data Structure เป็น Linked List
– สามารถใช้ความจุสูงสุดต่อไฟล์ที่ 4 Gb ต่อ 1 ไฟล์
– สามารถบรรจุจำนวนไฟล์ได้มากที่สุด 268,435,437 ไฟล์
– ชื่อไฟล์ตั้งได้ที่ความยาว 8 ตัวอักษรสำหรับชื่อ และ 3 ตัวอักษรสำหรับนามสกุล และ/หรือ 255 ตัวอักษร เมื่อใช้งาน LFNs
– ขนาดความจุต่อ Partition ที่รองรับได้ไม่เกิน 2TB (2,048Gb)
– ระยะเวลาของไฟล์ที่จะสามารถบ่งบงเวลาและวันที่ได้ถูกต้อง 1 มกราคม 1980 – 31 ธันวาคม 2107

NTFS (New Technology File System) พัฒนาโดย Microsoft เริ่มใช้ครั้งแรกใน Windows NT 3.1
– โครงสร้างทาง Data Structure เป็น B+-tree
– สามารถใช้ความจุสูงสุดต่อไฟล์ที่ 16 Eb (17,179,869,184 Gb) ต่อ 1 ไฟล์
– สามารถบรรจุจำนวนไฟล์ได้มากที่สุด 4,294,967,295 (2 กำลัง 32) ไฟล์
– ชื่อไฟล์ตั้งได้ที่ความยาว 255 ตัวอักษร
– ขนาดความจุต่อ Partition ที่รองรับได้ไม่เกิน 16 Eb (17,179,869,184 Gb)
– ระยะเวลาของไฟล์ที่จะสามารถบ่งบงเวลาและวันที่ได้ถูกต้อง 1 มกราคม 1601 – 28 เมษายน 60056

ทั้งหมดอ้างอิงจาก http://en.wikipedia.org/

AJAX on PHP @ NU

ได้รับเชิญจากอาจารย์ที่มหาวิทยาลัยให้ไปสอนเรื่องนี้ มีเวลาเตรียมตัวร่วมเดือน แต่ประกอบกับงานที่เพิ่งเริ่มทำ และมีงานที่เข้ามาตลอดทำให้หลาย ๆ อย่างในการสอนเมื่อวันหยุดช่วงวันแม่ที่ผ่านมาดูไม่พร้อมเท่าไหร่ 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

Powerpoint 2007 | 2003 | PDF

Example

http://www.fordantitrust.com/download/democode.zip
http://www.fordantitrust.com/download/ajax1.zip
http://www.fordantitrust.com/download/xajaxexam.zip