
นานๆ จะเขียน ฺblog สักครั้งหนึ่ง ตอนนี้กำลังอยู่ในห้องอบรม กำลังอบรมเรื่อง CMMI ซึ่งคาดหวังว่าจะนำไปใช้ในการปรับปรุงการทำงานของ oss lab เพื่อให้งานมีประสิทธิภาพดีขึ้น ลดเวลาในการทำงาน (และหวังว่าจะลด bugs ลงไปด้วย) พอมาเรียนแล้ว รู้สึกว่ามึนตึบเลย แม่เจ้าโว้ย การที่จะผลิตโปรแกรมสักตัวให้มีคุณภาพตามหลักการของ Software Engineer แล้วเนี่ย มันยากจริงๆ ขั้นตอนต่างๆ ไม่รู้เท่าไหร่ เน้นทำเอกสารมากพอดู (อื่นๆ อีกมากมาย) ลองคิดๆ ไอ้การทำงานของเราแบบเก่าๆ มันคงต้องเปลี่ยนทันทีเลย เรียกว่าหน้ามือเป็นหลัง... เลย ดูแล้วถ้าทำตามทุกอย่างต้องวุ่นวายแน่นอน เฮ้อ... แต่เพื่อคุณภาพงานที่ดีขึ้น ยังไงก็ต้องทำล่ะ
กลับไปต้องไปโน้มน้าวให้คนอื่นๆ เอาด้วยซะแล้ว

ไม่ได้เขียนซะนาน ไม่ได้หายไปไหนหรอกนะ ลาพักร้อน + งานด่วนช่วงปลายปีหลายๆ อย่าง ต้องรีบจัดการ พอมีเวลาแล้วจึงมาเขียน Firstboot ต่อ ไม่ใช่เรื่องง่ายเลยต้องมากำหนด API กันใหม่หมด ต้องออกแบบเป็น Modular เพื่อให้การปรับปรุ่ง เพิ่มงานต่างๆ เป็นไปได้ง่าย ความยากมันอยู่ตรงตัว Engine ใหญ่นั้นแหละ กว่าจะทำออกเป็นเป็นรูปเป็นร่างได้ ต้องใช้เวลานานมากทีเดียว ตัวอย่างจาก Fedora ก็ช่วยได้ไม่มากนักเนื่องจากของ Fedora มีการพัฒนาไปไกลมากแล้ว พวก modules ต่างๆ เฉพาะของ Fedora มีเยอะมาก ซึ่งมันมันผูกกับฐานข้อมูลของ Fedora Z (หรือ Redhat เดิม) เช่นเรื่องฮาร์ดแวร์ เป็นต้น
พอตัว Engine พอเป็นรูปเป็นร่างก็มาทดลองสร้าง Module ทดสอบก่อน ช่วงแรกก็ได้ผลเป็นที่น่าพอใจ แต่พอลองเอาไปใช้จริงก็พอปัญหาหลายอย่าง ต้องกลับมาแก้ไขกันใหม่เป็นระยะๆ ส่วน Module ต่างๆ ที่ทางทีมงานได้กำหนดไว้ก็มาแบ่งๆ กันทำ แล้วเอามารวมกัน ทดสอบเป็นระยะๆ ก็เจอปัญหาต่างๆ กันตามกรณี เช่น เรื่องสภาวะแวดล้อมของแต่ละเครื่องไม่เหมือนกัน ก็ได้ผลไม่เหมือนกัน พอคิดว่าได้ที่แล้วก็ให้ฝ่ายผลิตเอาไปทำแพ็กเกจติดตั้งใช้งานดู

2 - 3 วันก่อนไหน้านี้ พี่ต้น (กำธร) ได้รับติดต่อจาการไฟฟ้าฝ่ายผลิต (กฟผ.) ให้เข้าไปช่วยดูและติดตั้งลินุกซ์เพื่อใช้สำหรับทำเป็นเครื่องเซิฟเวอร์ E-Learning ใช้ภายในการไฟฟ้า พี่ต้นก็เลยมอบหมายให้ผมกับพี่สมเดช เข้าไปดูให้ โดยมีข้อมูลขั้นต้นว่า ต้องการใช้ลินุกซ์ซิส 5.0 เพราะใช้งานง่าย และเครื่องเป็นของ sun ซึ่งลง soralis ไว้แล้ว ก็เลยมีความหนักใจอยู่พอสมควรในเรื่องฮาร์ดแวร์ว่าลินุกซ์ซิส จะไม่สนับสนุน
เมื่อวาน (24/11/2546) ได้มีโอกาสเข้าไปดูเครื่องเซิฟเวอร์ดังกล่าว พอได้คุยในรายละเอียดกับทางพี่อภิชาติซึ่งเป็นหัวหน้าหน่วยอยู่ที่นั่น จึงได้ทราบว่าในความต้องการของทาง กฟผ. นั้น WebAdminTools ของลินุกซ์ซิสไม่ได้ช่วยซักเท่าไรเลย เพราะต้องการทำแค่เว็บอย่างเดียว และในความต้องการแล้วเพื่อเปรียบเทียบการใช้งานจาก Opensource เทียบกับ soralis ด้วย เพราะว่าซื้อมา 2 เครื่องเหมือนกัน (ทุนเยอะจริงๆ)

วันนี้รู้สึกเบื่องานอื่นๆ ยังไงก็ไม่รู้ งานเขียน Python ก็ยังไม่ไปถึงไหนเลย อุตส่าห์เอา source code ของ firstboot ของ fedora มาแกะดูแล้วนะเนี่ย เลยหันมาหยิบเอางานที่ทำจาก CodeFest มาทำต่อเพื่อให้เสร็จสมบูรณ์ สามารถใช้งานได้จริง เอา code มาแก้เรื่อง Interface อยู่นานพอสมควน แล้วเพิ่มส่วนที่ขาดไปให้ครบ เช่น การ restart service ของ named , การทำ links ต่างๆ ให้ถูกกต้อง สุดท้ายก็เอาไปรวมกับ code ของ WebAdminTools จัดรูปแบบให้ถูกต้อง ทดสอบใช้งานดู ก็ทำงานได้แล้ว แต่หน้าตายังไม่ค่อยสวยอยู่ดี คงต้องรอให้คนอื่นๆ มาช่วยดูและแก้ไขเพิ่มเติมอีกที
Screenshot ต้นแบบของงานที่ทำ

ในช่วงงาน CodeFest ครั้งที่ 2 ผมมีโอกาสได้เข้าร่วมกิจกรรมด้วย ซึ่งตอนแรกนั้นก็ไม่ได้ตั้งใจที่จะเข้าร่วมเองหรอก อยากจะเป็นแค่ Staff เท่านั้น แต่ปรากฏว่า กลุ่มของ LinuxSIS นั้นมากันไม่ครบ (โดยพี่สมเดชเชิญเอกชนที่เข้าร่วมโครงการมาร่วมด้วย) ก็เลยต้องเข้าไปร่วมทำงานด้วย
ก่อนวันงาน ได้คุยกันถึงรูปแบบของงานว่าจะทำอย่างไร ซึ่งสรุปออกมาว่ากลุ่มของ LinuxSIS จะเน้นการออกแบบ User Interface และเทคนิคในการปรับแต่งระบบต่างๆ ที่จะนำมาใช้กับ LinuxSIS เช่น การใช้ Proxy Authen User, Fetchmail เป็นต้น โดยจะทำเป็นเอกสารสรุปเก็บไว้ แต่เมื่อในวันงานสมาชิกที่คาดหวังไว้ไม่ได้มาด้วยก็เลยต้องเปลี่ยนแผนเล็กน้อยโดยผมต้องเข้าไปร่วมทำงานด้วย ก็เลยถือโอกาสเอางาเก่าที่คั่งค้างใน LinuxSIS มาทำซะเลย ซึ่งกมีอยู่หลายอย่าง แต่ทางทีมเราก็เลือกที่จะทำหา WebAdminTools สำหรับปรับแต่งค่า Domain Name Service (DNS) เพราะคิดว่าในเวลาประมาณ 20 กว่าชั่วโมงน่าจะทำได้สำเร็จ

เห็น Interface ในลินุกซ์ต่างๆ มีการใช้ Python มาเขียนกันอยู่เยอะเลย ก็เลยอยากลองเขียนดูมั่ง (ยังไม่เคยเขียนเองเลยนะ เคยแต่แกะๆ ดูแล้วแก้ไขนิดหน่อย) บวกกับได้รับมอบหมายให้ทำ FirstBoot สำหรับลินุกซ์ทะเล 8.0 โดยทางทีมงานได้กำหนดให้ใช้ Python ด้วย ก็เลยต้องมาศึกษากันอย่างจริงจังซะที
ได้ Python Bible มาอ่าน โอ้! พระเจ้าจอร์จ มันหนาตั้ง 700 กว่าหน้า (ขี้เกียจอ่านจริงๆ เลย) เอามาอ่านดูโดยเน้นเฉพาะ Syntax และการใช้งานเป็นหลัก เพราะ Concept การเขียนโปรแกรมก็พอเป็นอยู่แล้ว ลองเขียนๆ ตามดู เอ๊ะ ก็ง่ายดีนะ ไม่ต้องประกาศตัวแปรอะไรมากมายด้วย แถมเวลาเขียนโค๊ดมันก็จะใช้ Indent มาเป็นตัวกำหนดบล็อกของแต่ละส่วน (ใน C, C++ จะใช้{ } เป็นตัวกำหนดบล็อก) เขียนแรกก็งงอยู่ เหมือนกันว่า Ident มันจะใช้ยังไง หลังจากลองผิดลองถูกมาพักหนึ่ง ก็พอสรุปได้ว่า Indent จะใช้ช่องว่าง (Space ) หรือแท็บ (Tab) ก็ได้ แต่ต้องใช้ให้เหมือนกัน ถ้าจะใช้ช่องว่างต้องมีจำนวนช่องว่างเท่ากันในแต่ละบล็อก แต่ผมใช้แท็บเอามันง่ายและสะดวกดี
ความคิดเห็นล่าสุด
4 hours 49 min ก่อน
6 hours 53 min ก่อน
8 hours 37 min ก่อน
17 hours 37 min ก่อน
22 hours 37 min ก่อน
1 วัน 17 hours ก่อน
1 วัน 19 hours ก่อน
1 วัน 20 hours ก่อน
1 วัน 20 hours ก่อน
1 วัน 20 hours ก่อน