Aug 19

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

แต่วันนี้ขอแว่บมาเขียนเรื่องสั้นๆ สักหน่อยจากความเห็นล่าสุดในบทความเรื่อง We’re just pity

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

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

เขาใช้เงินนั้นหมดไปในเวลาไม่กี่วัน….. แล้วกลับไปขับสามล้อตามเดิม

มีรายการทีวีรายการหนึ่งไปถามเขาว่าเขาเสียดายเงินหลายล้านนั้นบ้างไหมที่ใช้หมดไปอย่างรวดเร็ว

คนขับสามล้อนั้นตอบว่าไม่เสียใจ และถามกลับว่าจะมีสักกี่คนในโลกนี้กันที่มีโอกาสใช้เงินได้อย่างเขา

น่าสนใจ!!!

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

ปล. สำหรับน้องๆ ที่รอโจทย์ Shell Script

  • ข้อแรก จงเขียนโปรแกรมตัดประโยคแรกของแต่ละบรรทัดใน Text file
  • ข้อสอง จงเขียนโปรแกรมตัด e-mail ทั้งหมดใน text file (ใช้ regular expression)
  • เรียงคำสั่งที่ใช้บ่อยที่สุดสิบคำสั่งแรกออกมา (มีเฉลยอยู่แถวนี้ด้วยนะ)
  • เขียนโปรแกรมตัด Title ของเว็บ รับ argument เป็น url (ใช้ curl หรือไม่ก็ wget)

written by lewcpe \\ tags:

Aug 06

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

แต่มาวันนี้ต้องยอมรับว่าผมเข้าใจผิด และบิล เกตต์ มองโลกได้ไกลกว่าคนอย่างผมหลายก้าวนัก

ผมมาตระหนักความจริงข้อนี้เอาตอนที่เขียนข่าวโทรศัพท์มือถือใน Blognone เพิ่มขึ้นในช่วงหลังมานี้ ต้องยอมรับว่ามันเพิ่มยอดผู้เข้าชมเว็บได้อย่างทรงประสิทธิภาพทีเดียว

มาร์คเคยบอกผมว่ามีคนบอกมาอีกที (งงเปล่า?) ว่าสิ่งหนึ่งที่ Blognone ต่างจากเว็บอื่นๆ คือคนเข้ามาอ่านเว็บนี้ปรับตัวเข้ากับเว็บ แทนที่ตัวเว็บจะปรับตัวเข้าหาคนอ่าน

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

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

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

เราพบว่าเราคงไปถึงจุดนั้นได้ยาก

Blognone ยังต้องพยายามชี้นำชุมชนของเราให้เป็นชุมชนแห่งการให้ (Contribute) โดยให้ทุกคนให้ส่วนเล็กๆ ของตัวเอง เช่นหนึ่งคนเขียนหนึ่งข่าวต่อเดือน ด้วยยอดสมาชิกหกพันคน เราจะมีข่าวอ่านกันวันละ 20 ข่าว น่าจะมากกว่าเซ็คชั่น Sci-Tech ของหนังสือพิมพ์เล่มไหนๆ

เรากำลังไปถึงจุดนั้น ตัวเลขปีที่แล้วจำนวนคนเขียนเราเริ่มกระจายตัวขึ้น แต่เริ่มหยุดนิ่งในช่วงหลายเดือนมานี้ อาจจะถึงเวลาที่เราต้องคิดแนวทางใหม่ๆ กันอีกครั้ง

written by lewcpe \\ tags:

Aug 02

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

Clouds Along the Road

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

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

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

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

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

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

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

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

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

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

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

written by lewcpe \\ tags: ,

Jul 31

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

แต่เรื่องหนึ่งที่น่าสนใจคือผมพบว่าผู้ผลิตซอฟต์แวร์บ้านเราตื่นตัวกับเทคโนโลยีใหม่ๆ กันน้อยมาก หลายครั้งที่เราเห็นการทำงานแบบ 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 นี่สิบโมงครึ่งแล้วครับ ถ้านักพัฒนาไทยจะจับ คงได้เวลาเต็มที่แล้ว

written by lewcpe \\ tags: ,