ด้วยรักและอูบุนตู

สองปีกว่าแล้วที่ผมตัดสินใจหักดิบตัวเองเลิกใช้วินโดวส์เด็ดขาด แล้วลุยอูบุนตูอยู่นานหลายเดือนกว่าอะไรๆ จะเข้าที่เข้าทาง

ผมรู้สึกสนุก และได้เห็นเส้นทางแห่งเสรีภาพ

มันอาจจะไม่สวยหรูนัก แต่มันมีเสรีภาพให้เราเดินไป ความสนุกในการดึงซอร์ส ใส่แพตซ์ เพื่อแก้ปัญหาที่ครั้งหนึ่งผมเคยได้แต่ภาวนาว่าผู้ผลิตจะหันมาสนใจผมบ้าง วันนี้ผมอาจจะเหนื่อยกับมันสักหน่อย ลองถูกลองผิดกับมันซักวัน แล้วท่องไว้ว่า “ทุกอย่างแก้ไขได้” ทางออกมันอยู่ตรงนั้นเสมอ ไม่ว่ามันอาจจะใกล้หรือไกลไปสักหน่อย

แต่วันนี้ขอผมบ่นบ้างแล้วกัน

ตั้งแต่อูบุนตู 6.06 เป็นต้นมา ผมเห็นแสงรำไรว่าวันหนึ่งผมจะสามารถบอกให้คนรอบข้างที่ใช้คอมพิวเตอร์อยู่คนเดียว ดูหนัง เข้าเว็บ เล่น M หันมาใช้ลินุกซ์ได้อย่างเต็มภาคภูมิ

6.06 เป็น LTS รุ่นแรกของอูบุนตู มันทำได้ดีมากในแง่ว่าก่อนหน้านี้การลงลินุกซ์ไม่ใช่เรื่องสนุกเลย ผมพบกับความแปลกใจเมื่อการลงลินุกซ์ครั้งแรกแล้วผมใช้ไวร์เลสในเครื่องได้ทันที แน่นอนว่าหน้าจอมีปัญหาบ้าง เสียงอาจจะไม่สมบูรณ์ แต่ด้วยพลังแห่งอินเทอร์เน็ต “ทุกอย่างแก้ไขได้”

6.10 แสดงความพัฒนาที่ต่อเนื่อง 7.04 เช่นเดียวกันคือไม่มีอะไรโดดเด่นเท่าใหร่ แต่แสดงการพัฒนาที่เริ่ม “เกือบๆ แล้ว”

ผมพิมพ์บล็อคนี้บนอูบุนตู 7.10 Gutsy Gibbon อูบุนตูรุ่นนี้ถือเป็นรุ่นที่ดีที่สุดเท่าที่เคยมีมา มันเสถียรมากอย่างไม่น่าเชื่อ ฟีเจอร์ที่เต็มเปี่ยม ทุกอย่างดูดีมาก

ผมเชื่ออย่างเต็มที่ว่าอูบุนตู 8.04 จะเป็นรุ่น 1.0 สำหรับผม มันจะเป็นรุ่น LTS รุ่นที่สองที่ได้รับการแก้ไขข้อผิดพลาดจากรุ่นแรกไปจนหมด มันจะเข้ากันได้มากกว่าเดิม

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

แต่ไม่รู้ว่าเกิดอะไรขึ้นในระบบการจัดการของอูบุนตู 8.04 นับเป็นรุ่นที่แย่ที่สุดรุ่นหนึ่งนับแต่ 6.06 การเขียน Driver Manager (jockey-gtk) ใหม่และดึงดันจะใส่ให้ทันทั้งที่ก่อนหน้าวันออกตัวจริงเพียงไม่กี่สัปดาห์มันยังอิมพลีเมนต์ฟีเจอร์กันไม่ครบ ไม่ต้องพูดถึงการทดสอบในวงกว้าง

การอัพเดตเคอร์เนลที่ดูเหมือนจะเป็นจุดบอดที่ไม่เคยได้รับการแก้ไข ผู้ใช้ต้องประสบกับความจริงที่ว่าอัพเดตที่อูบุนตูบอกพวกเขาว่ามันจะช่วยรักษาความปลอดภัย, เพิ่มเสถียรภาพ, และแก้ปัญหาของซอฟต์แวร์ กลับทำให้ USB ใช้งานไม่ได้, เสียงไม่ออก, VMWare หยุดทำงาน, หน้าจอทำงานผิดพลาด และอีกสารพัดที่ผมไม่เชื่อว่าจะมีผู้ใช้คนใดๆ ในโลกคาดคิดว่ามันจะเกิดขึ้นจากการ “อัพเดต”

ปัญหาแบบนี้เหมือนเป็นคำสาป ทุกครั้งที่เราจะกดอัพเดต สิ่งที่เกิดขึ้นคือการภาวนาว่าเครื่องของเราจะอยู่รอดปลอดภัย

ไม่เว้นแม้แต่รุ่น 8.04.1 “LTS”

คุณคิดจะไม่อัพเดตหรือ? ข่าวร้ายคือถ้าคุณไม่อัพเดตไปถึงวันหนึ่ง คุณจะพบว่าเครื่องที่ทำงานได้อย่างมีเสถียรภาพของคุณไม่สามมารถลงโปรแกรมใหม่ได้ แม้มันจะเป็นโปรแกรมที่เล็กที่สุดก็ตามที Dependency จะวิ่งตามมาเป็นพรวน และหลอกหลอนคุณได้อัพเดตมันในที่สุด

แผนการเล่นอูบุนตูครั้งต่อไปของผม

ติดตั้งใหม่ > ลงโปรแกรมให้ครบที่สุดเท่าที่จะครบได้ > ทดสอบ > แก้ปัญหา > Sync Pool มาเก็บไว้ใน USB HDD ซะ

แล้วใช้งานมันอย่างสงบไปอีกสักครึ่งค่อนปี แล้วค่อยเริ่มต้นวัฐจักรใหม่อีกรั้ง

 

Computing is changing #2

ต่อจากเมื่อวานนี้

Clouds Along the Road

ผมเคยเขียนเมื่อตอนต้นปีที่ Blognone ว่าเทคโนโลยีอะไรที่น่าจับตามองที่สุดในรอบปีนี้ สิ่งที่ผมเขียนไปนอกจากจะเป็นเรื่องของ Multi-Core (ที่กำลังจะตกยุค และเข้าสู่ยุคของ Many-Core) แล้ว อีกเรื่องหนึ่งที่ผมมองว่าสำคัญกว่าเสียอีก คือเรื่องของ Cloud Computing

แนะนำกันก่อนว่า [Cloud Computing](http://en.wikipedia.org/wiki/Cloud_computing) คือบริการรูปแบบใหม่ที่ต่างจากการเช่าคอมพิวเตอร์ในแบบเดิมๆ ก่อนอื่นลองนึกภาพว่าวันนี้ถ้าคุณต้องการเครื่องคอมพิวเตอร์มาทำเว็บเซิร์ฟเวอร์ซักเครื่อง สิ่งที่คุณทำได้คือเช่าคอมพิวเตอร์ “หนึ่ง” เครื่องมาใช้งานสำหรับเว็บของคุณ

คำถามคือ แล้วถ้าโหลดมันเกินเครื่องที่เช่ามาล่ะ?

สิ่งที่เราทำในสมัยก่อนคือการเช่าเครื่องใหม่ที่เร็วกว่าเดิม หรือไม่ก็เช่าเครื่องเพิ่มเพื่อแยกงานบางอย่างออกไป แล้วหวังว่าเครื่องจะไม่โหลดเต็มอีกในวันพรุ่งนี้

ข่าวร้ายบางอย่างเกิดขึ้น เมื่ออีกสองวันหนังสือพิมพ์เอาข่าวเว็บสุดเจ๋งของคุณลงไปข่าว แล้วคนพากันเฮโลเข้ามานับล้าน ผลสุดท้ายแล้วเว็บของคุณก็ยังดาวน์ไปในที่สุด

คุณเช่าเครื่องเพิ่มอีกหลายเครื่อง คุณคาดหวังกับการลงทุนครั้งนี้ แต่ผลที่ได้คือคนที่เข้ามาตามข่าวไม่ได้ติดอยู่กับเว็บของคุณไปนานนัก คนเข้าเว็บของคุณเหลือเพียงหนึ่งในสามในเวลาต่อมา คุณมีเครื่องว่างๆ ที่ไม่ได้ทำงานแต่ต้องเสียเงินลงทุนพร้อมกับค่าเช่า Data Center ไปอยู่ทุกเดือน

Cloud Computing แทรกตัวเข้ามา เสนอบริการใหม่จากผู้ให้บริการที่เช่าเครื่องนับพันเครื่องไว้แทนคุณ แล้วบอกคุณว่าจะคิดตามโหลดเครื่องที่ใช้งานจริง นั่นคือถ้าเว็บของคุณไม่มีใครเข้าเลย ก็จะไม่มีค่าใช้จ่ายอะไร แต่ถ้ามีคนเข้าเว็บของคุณจำนวนมหาศาลล่ะ ทางผู้ให้บริการก็จะกระจายซอฟต์แวร์สำหรับเว็บของคุณไปหลายสิบ หรือหลายร้อยเครื่องเพื่อให้รองรับผู้ใช้ได้ทุกคน และถ้าผู้ใช้ของคุณลดลงเท่าใหร่ก็ตาม ค่าใช้จ่ายของคุณก็จะลดลงไปอยู่ที่เดิมในทันที

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

มีคนเคยถามผมว่า Web 2.0 ทั้งหลายจะอยู่รอดได้อย่างไรในการแข่งขันที่สูงจนไม่น่ามีใครรอดอย่างทุกวันนี้

คำตอบผมคงง่ายๆ ทำกำไรให้ได้ในภาวะที่คนยังน้อย และทำกำไรให้มากขึ้นในภาวะที่คนเยอะ ขยายตัวให้ได้แม้จะมีคนโดดเข้ามารุม

Cloud Computing น่าจะเป็นทางออกที่ดี

 

Computing is changing

วันนี้ไปอบรมกับทางอินเทลมา เนื้อหาภายในคงไว้เล่าให้ฟังกันทีหลัง

แต่เรื่องหนึ่งที่น่าสนใจคือผมพบว่าผู้ผลิตซอฟต์แวร์บ้านเราตื่นตัวกับเทคโนโลยีใหม่ๆ กันน้อยมาก หลายครั้งที่เราเห็นการทำงานแบบ Just Work ที่ว่าเคยทำมาอย่างนี้แล้วมันใช้ได้ก็ทำกันไปเรื่อยๆ

โลกซอฟต์แวร์กำลังจะเปลี่ยนไป ถ้าวันนี้คุณไม่รู้ ก็คงได้เวลาแล้วล่ะครับ

ซอฟต์แวร์ที่เราเขียนส่วนมากแล้วเวลาทำงานมักทำงานแบบต่อเนื่องกันไป เช่นว่าเวลาเรียกฟังก์ชั่นสักฟังก์ชั่นแล้วก็หยุดรอให้ฟังก์ชั่นนั้นทำงานเสร็จ ยิ่งเป็นคนเขียนเกมด้วยแล้วคงชินกับฟังก์ชั่นหลักที่วนเป็นลูปกัน

ที่ผ่านมาฝ่ายออกแบบต้องยอมก้มหัวให้กับนักพัฒนาซอฟต์แวร์ตลอดมา เพื่อให้ชิปตัวเองขายได้ นักพัฒนาฮาร์ดแวร์ทำทุกอย่าง (ฝรั่งเรียก At all cost) เพื่อที่จะรีดความเร็วออกมาได้อีกสักนิด

เราเลยมีสถาปัตยกรรมใหม่ๆ เช่น out-of-order execution, register renaming, และอื่นๆ อีกหลายต่อหลายอย่าง โดยในภาษาวิชาการมันเป็นการพยายามทำให้คำสั่งหลายคำสั่งทำงานได้พร้อมๆ กันโดยที่ตัวซอฟต์แวร์เองไม่รู้ตัว ความพยายามนี้เรียกว่า Intruction Level Parallelism (ILP)

มาวันนี้เกิดอะไรขึ้น? นักพัฒนาฮาร์ดแวร์กำลังหันมาบอกว่าที่พยายามทำให้สารพัดนั้นมันกำลังถึงทางตัน แล้วตะโกนใส่หน้านักพัฒนาซอฟต์แวร์ว่าถ้าอยากได้ความเร็วเพิ่มต้องเขียนให้แบ่งงานกันเองแล้ว เป็นการบังคับให้นักพัฒนาซอฟต์แวร์ต้องแบ่งการทำงานซอฟต์แวร์ออกเป็นหลายๆ เธรด เพื่อทำงานพร้อมๆ กัน เรียกว่า Thread Level Parallelism (TLP)

การทำงานพร้อมกันเช่นนี้ทำให้แต่ละงานที่นักพัฒนาซอฟต์แวร์เขียนแบ่งงานให้เธรด สามารถแบ่งทำงานบนคอร์ของซีพียูที่มีมากขึ้นเรื่อยๆ ได้ เช่น PlayStation3 นั้นมีทั้งหมด 9 คอร์ (ทำงานได้ 8 เพราะใช้เลเซอร์ปิดการทำงานไปหนึ่ง)

ยิ่งไปกว่านั้นนักพัฒนาฮาร์ดแวร์เริ่มเรียกร้องมากขึ้นเรื่อยๆ โดยในวันนี้ความเร็วแต่ละคอร์เพิ่มขึ้นเพียงเล็กน้อย แต่อาศัยการเพิ่มจำนวนคอร์มากขึ้นเรื่อยๆ และมีแนวโน้มว่าอนาคตความเร็วของแต่ละคอร์จะลดลงเรื่อยๆ แต่จำนวนคอร์จะเพิ่มขึ้นอย่างมาก ไปในระดับหลายๆ สิบคอร์เช่นใน Larrabee ของอินเทลที่ความเร็วแต่ละเธรดจะลดลงเหลือเพียงครึ่งเดียวเพราะตัดความสามารถในส่วนของ out-of-order execution ออกไป แต่เพิ่มคอร์เข้าไปนับสิบคอร์

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

อาจารย์ผมเคยว่าไว้ว่าอย่าไปจับเทคโนโลยีเอาตอนบ่ายโมง

สำหรับเทคโนโลยี Multi-Thread นี่สิบโมงครึ่งแล้วครับ ถ้านักพัฒนาไทยจะจับ คงได้เวลาเต็มที่แล้ว

 

Symbian is coming back

เรื่องราวของโทรศัพท์มือถือทุกวันนี้อยู่ในระดับที่เรียกได้ว่าสงครามกันอย่างหนัก การแข่งขันระหว่าง Symbian แชมป์เก่า, Windows Mobile ที่ค่อยๆ กินตลาดไปอย่างเงียบๆ และ iPhone ที่หวือหวามาโดยตลอด

อย่างที่เคยให้ความเห็นไปแล้วใน Blognone ว่า Android นั้นพลาดมากที่ไม่ยอมออกโทรศัพท์มาตั้งแต่ Q1 ปีนี้ (จริงๆ แล้วจ้าง ODM อย่าง FIC ผลิตให้ก็ได้) โดยอาจจะขายเป็น gPhone ไปก่อนแล้วเปิดให้เจ้าอื่นใช้งานเหมือนกันแบบ Symbian ก็ไม่น่าผิดอะไร มาวันนี้ผ่านมาสองไตรมาสกับ iPhone 3G ที่อยู่ในตลาดไปแล้วเป็นล้านเครื่อง Android ก็มีที่ยืนน้อยลงเรื่อยๆ

ประเด็นนี้มีเรื่องน่าสนใจเกี่ยวกับที่เคยเขียนเรื่อง [Wow Index][lc1] เอาไว้ว่าความเจ๋งมันอยู่ที่ความลงตัวทั้งหมด เรื่องของเวลา, ราคา, และฟีเจอร์ ปรากฏการณ์น่าสนในในเรื่องนี้คือ[การลดราคาของ Samsung i450 และ i550][bn1] ที่หลายคนอาจจะไม่พอใจเพราะราคาลงมาแรงจนเหมือนหักหลังคนซื้อไปก่อน แต่เรื่องที่เกิดขึ้นจริงคือกระแสของมือถือทั้งสองรุ่นกลับมาดังอีกครั้งได้อย่างไม่น่าเชื่อ [ที่ห้อง mbk][ptc] ผมเห็นคนคุยกันเรื่องนี้ไม่ต่ำกว่าสิบกระทู้เข้าไปแล้ว

บทเรียนเช่นนี้สร้างประเด็นที่น่าสนใจคือการตัดสินใจลดราคาของ Samsung นั้นดึงกระแสมือถือรุ่นเก่ากลับมาได้ และมันกำลังสร้างกระแสให้กับ Symbian ว่าเป็น OS ที่จับต้องได้อีกครั้งหนึ่ง หลังจากที่มันไปฝังตัวกับโทรศัพท์ราคาแพงจนไม่มีใครได้จับมาเป็นเวลานาน

สุดท้ายแล้วโลกอาจจะเหลือแค่สามทางคือ iPhone ให้กับกลุ่มต้องการเอกลักษณ์ในตัวเอง (แม้เอาเข้าจริงมันจะเหมือนกันเป็นล้านเครื่องก็เถอะ) Windows Mobile น่าจะทำได้ดีในตลาดธุรกิจต่อไปภายใต้ร่มเงาของแบรนด์ Windows ส่วน Symbian นั้นโนเกียคงพร้อมที่จะเป็นเจ้าตลาดมือถือระดับล่างที่ครองส่วนแบ่งมากที่สุด และทำกำไรได้ดีต่อไปเรื่อยๆ

สิ่งที่ Symbian ต้องทำในวันนี้เพื่อให้แข่งได้จริงๆ คงเป็นเรื่องของการรวม Platform ของตัวเองกลับมาเป็นอันเดียวกันให้หมด เพราะการใช้ 3 รูปแบบในการพัฒนาทั้ง UIQ, MOAP และ S60 ไม่ใช่เรื่องดีแน่ๆ สุดท้ายแล้วทั้งหมดคงต้องกลายเป็น S60 เพียงอันเดียว UIQ นี่อาจจะง่ายหน่อยเพราะ Sony Ericcson และ Motorola ก็อ่อนแรงเต็มที คงไม่อยากสู้มาดูแลต่อแล้ว ที่คุยยากหน่อยคงเป็น MOAP เพราะ NTT DoCoMo นั้นยังแข็งแกร่งอยู่มาก จะให้อยู่ดีๆ เลิก MOAP แล้วไปใช้ S60 นี่อาจจะคิดหนัก

หลังจากรวม GUI เข้าด้วยกันได้แล้วส่วนที่เหลือคือการสร้าง Handset ให้มากที่สุดเท่าที่จะมากได้ ผมไม่แน่ใจว่าเกิดอะไรขึ้น แต่โทรศัพท์ของโนเกียในระดับกลางเองดูเหมือนจะสุ่มๆ เอาว่าตัวไหนจะใช้ S40 และตัวไหนใช้ S60 ทั้งที่ราคา S40 บางตัวดันแพงกว่า สิ่งที่โนเกียต้องการเพื่อให้ S60 ไปต่อได้คงเป็นการประกาศยกเลิก S40 ทิ้งไป แล้วประกาศใช้ S60 ในโทรศัพท์จอสีทุกรุ่น เพื่อสร้าง Single Platform ที่มีฐานผู้ใช้ขนาดใหญ่

อีกเรื่องคือเครื่องมือการพัฒนา Symbian นั้นถูกต่อว่ามานานแล้วเรื่องของ C++ ที่แปลกประหลาดแบบครึ่งๆ กลางๆ (ไม่รับ STL) แต่โดยส่วนตัวแล้วผมชื่นชอบกับ Python มาก และเชื่อว่านักพัฒนาจำนวนมากจะหันกลับมาถ้าโนเกียรองรับเอา [PyS60][p60] เข้าเป็นแพลตฟอร์มการพัฒนาหลักบน Symbian แล้วดึงนักพัฒนากลับมา

หลังจากนั้นคงต้องสนับสนุนอีกหน่อยให้เครื่องจีนแดงใส่ Symbian แทน Windows Mobile ที่เหลือก็สร้างร้านออนไลน์แบบ AppStore แล้วเก็บเงินลงกระเป๋า

[lc1]: http://lewcpe.com/blog/archives/672/wow-index/
[bn1]: http://www.blognone.com/node/8389
[ptc]: http://www.pantip.com/cafe/mbk/
[p60]: http://opensource.nokia.com/projects/pythonfors60/