ข่าวดีๆ จาก Microsoft

Microsoft เผยตัดสินใจไม่เก็บค่าใช้ซอฟท์แวร์ป้องกันสปายแวร์

ในงาน RSA Conference 2005 ที่จัดขึ้นที่เมืองซานฟรานซิสโก, สหรัฐอเมริกา บิล เกต บอสใหญ่ของ Microsoft ได้กล่าวให้รายละเอียดเกี่ยวกับซอฟท์แวร์ป้องกันสปายแวร์ ที่ทาง Microsoft ได้เข้าซื้อบริษัท Giant Software และนำเทคโนโลยีมาใช้ ซึ่งขณะนี้กำลังทำการทดสอบใช้งานอยู่ว่ามีการตัดสินใจ ที่จะไม่ทำการเก็บค่าใช้บริการซอฟท์แวร์ป้องกันสปายแวร์ดังกล่าวแล้ว โดย Microsoft เห็นว่าขณะนี้นั้นปัญหาด้านสปายแวร์เป็นสิ่งที่ต้องจัดการโดยเร็ว ทำให้มีการตัดสินใจที่จะให้ลูกค้าที่ใช้ระบบปฏิบัติการ Windows ทั้งหมดสามารถใช้ซอฟท์แวร์ป้องกันคอมพิวเตอร์ของตนได้ โดยไม่ต้องเสียค่าใช้จ่ายใดๆ ซึ่ง Microsoft เพิ่งทำการเปิดทดสอบซอฟท์แวร์ป้องกันสปายแวร์ไปตั้งแต่ช่วงเดือนที่แล้ว โดยมีการเปิดเผยสถิติว่าในช่วงเดือนตุลาคมที่ผ่านมานั้นมีรายงานว่า 80เปอร์เซ็นต์ของคอมพิวเตอร์ลูกค้า Microsoft ทั้งหมดจะมีสปายแวร์แฝงตัวอยู่ ทำให้ Microsoft ค่อนข้างจะเอาจริงเอาจังในการแก้ปัญหาสปายแวร์

Microsoft เตรียมแยกเปิดตัว Internet Explorer 7

หลังจากที่ก่อนหน้านี้ Microsoft บริษัทผู้ผลิตซอฟท์แวร์รายยักษ์ ได้มีการประกาศว่าจะยังไม่มีการเปิดตัวซอฟท์แวร์ตระกูล Internet Explorer เวอร์ชั่นใหม่ที่จะได้รับการปรับยกเครื่องชุดใหญ่ จนกว่าจะมีการเปิดตัวระบบปฏิบัติการ Windows “Longhorn” ในช่วงปีหน้านั้น ในวันอังคารที่ผ่านมา บิล เกต ประธานบริษัท Microsoft ก็ได้เปิดเผยในงาน RSA Conference 2005 ที่จัดขึ้นที่เมืองซานฟรานซิสโก, สหรัฐอเมริกา ว่ามีการตัดสินใจอีกครั้งที่จะทำการแยกอัพเกรด Internet Explorer ครั้งใหญ่ออกจากแผนเดิมที่จะทำพร้อมกับ Windows “Longhorn” โดยในช่วงฤดูร้อนปีนี้จะมีการเปิดตัว Internet Explorer 7 เวอร์ชั่นทดสอบ หรือ Beta ออกมาค่อนข้างแน่นอน ซึ่งการแยกอัพเกรด Internet Explorer ออกจากแผนอัพเดทระบบปฏิบัติการ Windows นั้นเป็นการตัดสินใจหลังจากที่ช่วงนี้เวบบราวเซอร์ Internet Explorer เป็นเป้าหมายสำคัญของเวิร์มไวรัสต่างๆ รวมถึงสปายแวร์ ที่ใช้เจาะระบบผ่านเข้ามาในคอมพิวเตอร์ของผู้ใช้ และมีผลทำให้คู่แข่งในตลาดอย่างเวบบราวเซอร์ Firefox ของ Mozilla.org มีส่วนแบ่งตลาดมากขึ้นอย่างรวดเร็วเกินคาด เนื่องจากผู้ใช้คอมพิวเตอร์จำนวนหนึ่งไม่ไว้ใจระบบความปลอดภัยของ Internet Explorer ที่ใช้อยู่ จึงหันไปหาทางเลือกอื่นๆแทน

ช่างเป็นอะไรที่ดีเกินคาดจริงๆ สำหรับเรื่องเหล่านี้ เรื่องแรก การที่ Microsoft ได้ปล่อย MS AntiSpyware Beta 1 ออกมาเมื่อไม่นานมานี้ ทำได้ดีพอสมควรทีเดียว แต่ก็มีข้อกังขา ในเรื่องประสิทธิภาพที่ดีเกินไป ในการกำจัด Spyware บางครั้งดันออกโปรแกรมบางตัวเป็น Spywae ซะได้ หรือไปไล่ลบข้อมูลผิดที่ ดันไปลบไฟล์งานซะงั้น หรือลงโปรแกรมบางตัวไม่ได้ เฮ้อ ….. เอากับมันดิ ทาง Microsoft ควรทำการจัด Rating ความร้ายแรงให้จัดการได้ง่ายกว่านี้ในตัวโปรแกรมเพราะว่าบางส่วนยังทำง่าย หรือเข้าถึงได้ยาก และซับซ้อนอย่างมาก คือมันยากกว่า Spybot S&D เสียอีกนะเนี่ย

ส่วนเรื่อง IE 7 นี่น่าจะเป็นข่าวใหญ่อีกครั้งนึง หลังจากที่ Microsoft ประกาศว่าจะไม่ทำการปรับปรุงเปลี่ยนแปลง Version ไปมากกว่าที่เป็นอยูมากนัก แต่ก็ทำให้ตกอกตกใจกันอีกครั้ง ในเรื่องนี้ ผมก็ว่าเป็นการแก้เกมส์ที่ดี ในการสร้างความสนใจในเรื่องการเปลี่ยนแปลงที่ควรจะเกิดขึ้นแต่ดันไม่เกิด แต่พอมันเกิดก็ทำให้เป็นข่าวได้แรงกว่าการที่บอกไปว่าจะออกมาแน่ การสร้างแนวคิดการโฆษณา แนวๆ หรือกรายๆ ว่าเรากลับลำ หรือพลิ้กคำพูดเป็นกลยุทธสร้างความแปลกใจ และสร้างข่าวได้ใหญ่โตกว่าแบบธรรมดามาก ดังที่ได้เห็นๆ กันในหลายๆเรื่องแล้วเช่นกัน

 

แย่จัง “เลื่อนเปิดตัว Firefox 1.1”

“Ben Goodger หัวหน้าโปรแกรมเมอร์ผู้พัฒนาเวบบราวเซอร์ Firefox ได้เปิดเผยในเวบบล๊อกของตัวเองว่าการเปิดตัว Firefox เวอร์ชั่น 1.1นั้นจะถูกเลื่อนไปจากกำหนดเดิมอีก 3เดือนเนื่องจากมีส่วนต่างๆ อีกหลายจุดที่ต้องทำการพัฒนา โดย Goodger ได้ให้ความเห็นเพิ่มเติมว่าการล่าช้าในการพัฒนา Firefox 1.1 นั้นไม่ได้มีส่วนเกี่ยวพันกับการที่เขาเพิ่งเข้าทำงานกับ Google เวบไซต์เซิร์ชชื่อดังที่เพิ่งเป็นข่าวแต่อย่างใด แต่จำเป็นที่จะต้องมั่นใจในคุณภาพใช้เวลาในการทดสอบ ซึ่งสิ่งต่างๆเหล่านี้ต้องอาศัยคนอื่นๆเข้ามาร่วมงานด้วย โดยก่อนหน้านี้ Firefox 1.1 มีกำหนดในการเปิดตัวช่วงเดือนมีนาคม 2005นี้ แต่ถูกเลื่อนออกไปเป็นช่วงเดือนมิถุนายน 2005 ซึ่งสิ่งที่จะเห็นได้ชัดใน Firefox 1.1 นั้นจะเป็นการแสดงเวบได้รวดเร็วมากขึ้น เนื่องจากการปรับปรุงประสิทธิภาพของ Gecko ที่เป็นเอ็นจิ้นของ Firefox”

http://www.pantip.com/tech/newscols/news/010205s.shtml

จากข่าวนี้ไอ้เราก็ว่าแปลกๆ ทำไมช่วงก่อน 1.0 ถึงได้ออกรุ่น 0.8,0.9.x ต่างๆ ถี่ๆ แต่พอ 1.0 มาปั้บกลับห่างหายการ update ไปเลย แต่เท่าที่ได้ติดตามนั้นระบบ firefox ที่ผ่านๆ มาก็ไม่มีปัญหาเรื่องความปลอดภัยแต่ประการใด แต่ไอ้เราก็คิดในใช้ว่า เอ ….. จะมีการ update หรือส่ง path อะไรออกมาหรือเปล่า ซึ่งจริงๆ ที่ใช้ๆ อยู่นั้นโหลดเว็บได้เร็วและใช้ทรัพยากรระบบน้อยอยู่แล้ว แต่ถ้าตัว 1.1 ออกมาผมก็หวังว่ามันจะ optimize code และจัดการทรัพยากรได้ดีกว่านี้สักนิดน่าจะดีขึ้นนะ เพราะว่าใช้ tab extension ก็เลยทำให้มันเปิดๆๆ แล้วมันใช้พื้นที่แรมมากขึ้นๆๆ ไอ้เราก็เลยใช้ไปนานๆ ก็ต้องปิดแล้วเปิดใหม่ แต่ก็เอาเหอะไม่เหนือบ่ากว่าแรงฟร่ะ ……

แต่ …… ถ้าเปิดตัว 1.1 ก็คงไม่ลองแบบรวดเร็วหล่ะ รอสักพัก กลัวใจ กลัวว่า extension มันจะตาม update ไม่ทัน แบบตอน 1.0 กว่าจะเข้าร่องเข้ารอยได้ …… เล่นซะหัวเสียไปหลายวัน

อีกเรื่องคือพวก theme ต่างๆ ที่โดนๆ อยากใช้สวยๆ ก็มีไม่กี่ตัว บางตัวคนอื่นก็ว่าสวยแล้วเราก็ว่าห่วย อ้าว ไง๋งั้นหว่า ….. แต่เอาเหอะ ใช้ๆ ไปดีกว่าใช้ IE หล่ะฟร่ะ

I Love Firefox …..

 

ระวัง !!! FlashDrive ของท่านอาจะไหม้ได้้ T_T

วันนี้ยืมเอา USB Flash Memory เพื่อนมาว่าจะก็อปงานต่างๆ จากเครื่องเพื่อนอีกคน แต่ ซวย !!! เสียบ USB Port หน้าเครื่องปั้บดัง พรึ้บ !!! กลิ่นตุๆ ที่ไม่ได้รับเชิญมาปุ๊บ สรุปว่ามัน …….. T_T

มันคือะไร …….. มันเป็นไปได้ยังไง สรุปคือ ………. สิ่งทำให้มันดัง พรึ้บ !!! มันคืออาการของการสปาร์คของไฟที่ลัดวงจร และกลิ่นตุๆ มันก็คือกลิ่นไหม้ แต่อะไรไหม้หล่ะ ?

ระหว่าง M/B หรือ USB Flash Memory ใจไม่ดี ซะแล้ว ………….

เปิดฝาออกมาดู ตัว M/B ซึ่งคือ Controller ไม่มีปัญหาใช้งานได้ เฮ้อ …. โล่ง …… งั้น ??!!##$@#

…………….. USB Flash Memory เพื่อนตรู กลับสวรรค์ไปแล้วครับ พังไปแล้ว งาน + เงิน ตรูไปซะแล้ว ในนั้นที่จะก็อปมาหายหมด ต้องหาทางก็อปกันใหม่ …… แม่เจ้าเซ็งจริงๆ ส่งแคลมได้ไหมเนี่ย …… ภาวนากันอยู่ T_T $!#@$!#@$!

เหตุที่มันไหม้ เพราะ ไอ้ร้านเวรมันประกอบเครื่องมาไม่ดี ดันต่อ USB Port ด้านหน้าเครื่องสลับสายสัญญาณกันระหว่างวรจรไฟ กับวงจรสัญญาณ เวรกรรมจริงๆ ซวยเลย ซื้อใหม่เพื่อน แน่ๆ เลย

ทำให้เราจำไว้ขึ้นใจเลยว่า “ตรูจะเสียบ USB Flash Memory ด้านหลังเครื่องช่องของ M/B แทนการใช้ USB Port หน้าเครื่อง เพราะตรูเข็ดแล้ว ประกอบเครื่องห่วยแล้วซวยถึง USB Flash Memory ซื้อของมาราคาไม่ใช่ถูกๆ นะเครื่องน่ะ ประกอบกันดีๆ หน่อย แต่ทำให้ USB Flash Memory ของตรูพังอีก ของมันไม่ใช่ถูกๆ เหมือนกันนะเฟ้ย …. !!”

 

อะไรคือโปรแกรม และการเขียนโปรแกรม ตอนที่ 1

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


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

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


ว่าด้วย การเขียนโปรแกรม

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



มองซ้าย มองแบบคนเรียนวิทย์ – การสร้างสิ่งของ/สิ่งก่อสร้าง

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

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

            และที่น่าสนใจก้คือ การออกแบบและความรู้ที่เราใช้ในการสร้างอะไรอย่างใดอย่างหนึ่งนั้น ไม่สามารถใช้กับการออกแบบ และการสร้างสิ่งอื่นๆ ได้เสมอไป เช่น ถ้าเราต้องการสร้างสิ่งก่อสราง เราต้องการความรู้ทางวิศวโยธา แต่ว่าถ้าเราต้องการเครื่องใช้ไฟฟ้า เราก็ต้องการความรู้ของทางวิศวกรรมไฟฟ้า ถ้าเป็นเครื่องบิน ก็วิศวกรรมการบิน ตลอดจน Aerodynamices ต่างๆ มากมาย นั้นก็คือ เราต้องการความรู้พื้นฐานในสิ่งที่เราต้องการสร้าง นั่นเอง และสิ่งที่พูดถึงไปนั้น ก็ยังคงสามารถนำมากล่าวได้เสมอ นั้นคือ การสรางเครื่องบินโบอิ้ง 747 นั้นใช้เวลาในการออกแบบและวิศวกรรม ตลอดจนใช้คนในการก่อสร้างมากกว่าเครื่องบินของเล่นต่างๆ

            การมองแบบนี้ทำให้เราเข้าใจการสร้างโปรแกรมขึ้นได้อย่างไร? อดใจสักนิด เรามาลองมองอีกด้านนึง ซึ่งต่างจากแนวคิดข้างต้นกันดูดีกว่า


มองขวา มองแบบคนเรียนศิลป์ – การเขียนนิยาย

            เมื่อตอนต้นเรามองการเขียนโปรแกรม ในเชิงการก่อสร้างสิ่งต่างๆ ไปแล้ว ตอนนี้เราลองมามองอีกมุมหนึ่ง โดยมองการ เขียนโปรแกรม เหมือนกับการ เขียนนิยาย กันบ้าง

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

            นอกจากนี้ ความรู้พื้นฐานในเรื่องที่เราต้องการเขียน ก็เป็นสิ่งสำคัญไม่ใช่น้อย เช่นนิยาย/ภาพยนต์เกี่ยวกับอวกาศและเทคโนโลยีชื่อดังเรื่อง 2001: Space Odyssey นั้นใช้ความรู้เกี่ยวกับอวกาศตลอดจนฟิสิกส์ค่อนข้างมาก รวมถึงจินตนการในการสื่อออกมาและการคาดการณ์อนาคตจากพื้นฐานของอะไรหลายๆ อย่างด้วย ในขณะที่นิยายของ Tom Clancy นั้นมักจะมีเรื่องของแผนการต่างๆ และเงื่อนงำต่างๆ ทางทหารเข้ามาเกี่ยวข้อง ซึ่งแน่นอนต้องหาข้อมูลกันมาอย่างดี และผู้เรื่องราวกันอย่างดี

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

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

เรียบเรียงบทความโดย Rawitat Pulam
บทความฉบับนี้เป็นไปตามข้อกำหนดของ GNU Free Documentation License 1.2. เท่านั้น

 

หลักการทำ Web Server ที่ดี เอาไปใช้ประยุกต์กับ Server แบบอื่นๆได้

  1. ซึ่งโดยทั่วไปก็คือ บริหาร IO ดีๆ ใส่ RAM เยอะๆ
  2. CPU แรงๆ ไม่มีค่อยมีผลต่างกันมากมายเท่ากับ Resouce ที่มีให้ใช้ครับ นอกจากว่าเป็นการทำงานในลักษณะประมวลผลทางด้าน CGI มากๆ ควรให้ความสำคัญด้านนี้ด้วย แต่ไม่มากเท่า RAM และ CPU ในความเร็วใกล้เคียงกัน แทบจะไม่มีผลแตกต่างกันมาก (ช่วยได้ไม่ถึง 10%) เพราะงานหลักของ httpd เน้นการบริหาร resouce ไม่ได้เน้นการคำนวณคณิตศาสตร์ CPU จึงหนักไปทางบริหาร process ของ OS มากกว่า และถ้า CPU ยัง มี usage ไม่ถึง 100% (หรือใกล้เคียง) ก็แปลว่า มันยังทำงานไหวครับ เพราะการที่ CPU ทำงานมาก แสดงว่า ต้องคำนวณมาก แต่มีผลน้อยกว่า IO ทำงานหนักครับ
  3. RAM ควรมีอย่างต่ำ 512 MBขึ้นไป แต่ว่าผมแนะนำ ที่ 1 GB อยากให้ยอมลด CPU เพื่อแรม ว่างั้นเถอะ เพราะเราทำให้ขั้นตอนประมวลผลทำงานได้เร็วขึ้นข้อมูลไม่คับคั้งมากจนเกินไป พร้อมที่จะดึงข้อมูลที่ใช้บ่อยๆ ก็เก็บใน RAM มาใช้ได้เร็วกว่า HD มาก ทำให้ระบบโดยรวมเสถียร์มากขึ้น การทำระบบ SWAP ต่างๆ ไม่ควรเกิน กว่า 60% จาก ความจุแรมเพราะไม่เสถียรและเปลี่ยงพื้นที่ HD โดยไม่จำเป็น
  4. HD ควรเป็น Ultrawide SCSI 10000 rpm ขึ้นไป ควรใช้ SCSI ครับ คนทำงานเป็น admin ชอบ SCSI เพราะมันไม่ค่อยเกเร และไม่ค่อยมีปัญหา + ทนทาน + ตอบสนองเร็ว + เหมาะกับระบบ multi user ถ้ามีงบน้อย จะใช้ HD IDE ผมก็แนะนำให้ใช้ HD IDE 2 ตัวขึ้นไป สำหรับ กระจายงาน + backup กันเอง โดยทั่วไป ระบบที่เน้นความสเถียรภาพสูงๆ มักจะต้องทำ raid ด้วย เพราะข้อมูลสำคัญมากๆ พังไม่ได้เด็ดขาด
  5. Network Card ก็ควรใช้ของดีๆ โดยทั่วไป นิยมของดังๆ เช่น Intel, 3COM เอาแบบ 100 MBit ไปเลยครับ
  6. Apache ก็ลง mod เท่าที่จำเป็น เพราะจะได้ไม่อ้วนมาก เวลาแตก process เยอะๆ
  7. Optimized WebserServer เท่าที่จะทำได้เช่น ลง Zend Optimizer/Accerator , mod_gzip, phpa (Cache), etc
  8. หมั่น Upgrade Apache บ่อยๆ เพราะรุ่นใหม่ๆ มักจะทำงานและมี security ดีกว่ารุ่นก่าๆ
  9. อย่าลืมว่า mysql (database server) ก็กินแรงเครื่องค่อนข้างเยอะเหมือนกัน ถ้ามีงบพอ อาจจะแยกเป็น database server ต่างหาก ลงแต่ mysql อย่างเดียวไปเลย (spec เครื่องปานกลาง)
  10. mysql บางรุ่น มีปัญหา+bug เช่น connection เต็มบ่อย และไม่คืนให้ ต้อง reboot เครื่องบ่อย ดังนั้น ต้องหมั่น upgrade อีก
  11. บริหาร logs ไฟล์ ให้ดี โดยแยกให้เขียนลงคนละ mount volume หรือคนละ HD กัน เพราะลดการทำงานของ IO และ หมั่นลบ หรือ rotate log ไฟล์ เพราะถ้า logไฟล์โตมากๆ จะทำให้การอ่านเขียนช้าลงไปเยอะ ส่งผลต่อความเร็วโดยรวม ซึ่งส่งผลให้การทำงานหลักๆ ล่มได้ง่าย
  12. โดยหน้าที่ของ web admin/system admin คือ หมั่นศึกษา สังเกตุ และหาความรู้ในเรื่องที่เกี่ยวข้องอยู่เสมอ เพื่อให้ระบบทำงานได้เต็มประสิทธิภาพ และ มีปัญหาน้อยๆ
  13. ควร ติดตามข่าวสาร และ upgrade ระบบบ่อยๆ โดยเฉพาะปัญหา security
  14. email server ให้ระวังการโดนแอบใช้เป็น spam gateway และพยายามหลีกเลี่ยงการให้บริการ smtp แก่บุคคลภายนอก ซึ่งอาจทำได้ โดยการ lock ip หรือ ใช้การทำการตรวจสอบ password ก่อนส่ง
  15. กำหนด Firewalls ป้องกันการกระหน่ำ ping icmp /DDOS ซึ่งทำให้ระบบล่มได้

สาเหตุที่ webserver ทั่วไปๆ จะทำงานช้า อืด ไม่ได้ดังใจเจ้าของเวปทั้งหลาย ก็มีสาเหตุหลักๆ ไม่กี่อย่าง คือ

  1. webserver ตอบสนองไม่ทัน request process และ มี process ค้างในระบบมากมาย ทำให้ process ใหม่ๆ ที่ร้องขอเข้ามา ต้องรอเข้าคิว (ทำให้รู้สึกช้า) เพราะ server ระบายงานไม่ทัน
    • ถ้าพูดถึง load หนักๆ แน่นอนว่า อุปกรณ์ที่ใช้ ก็ต้องทนทานอย่างหนาตราช้าง ไม่งั้น ไม่กี่ยกก็จอดครับ โดยเฉพาะ harddisk และไฟล์ขนาดใหญ่ ควรจะหนัก harddisk มากกว่านะครับ เพราะ cpu ทำหน้าที่คำนวณ ไม่ได้ทำหน้าที่เขียนอ่านไฟล์
    • หน่วยความจำที่ต้องเผื่อไว้สำหรับ process httpd จำนวนมากๆ นั้น ต้องมีให้เพียงพอ ผมไม่เคยเห็น webserver ที่รองรับงานหนักๆ ตัวไหน มีแรมน้อยกว่า 512 MB นอกจากว่า เวปนั้น จะมี "hello" คำเดียว แบบนั้นเอาแรม แค่ 64 MB ก็พอไหวครับ เร็วสุดยอด ไม่เชื่อลองดู 555
    • การที่มี process ล้นระบบ พวก script ไม่ทำการย่อ code เลย
    • การใช้ process จนหน่วยความจำไม่พอ (ต้องรอ process เก่าๆ เสร็จงานก่อน)
    • แต่ละ process กินเวลานาน อาจเป็นเพราะ scritp ทำงานเยอะ+ช้า และ ไม่ optimized code ทางออกคือ ปรับเปลียน script ให้ทำงานได้เร็วขึ้น เช่น เปลี่ยน compiler เป็น php, servlet , etc (perl ไม่เหมาะกับงานหนักๆ เยอะๆ ยกเว้น mod_perl อันนี้เร็วสุดยอด แต่เขียนยาก) ควบคู่ไปกับการบริหารหน่วยความจำในข้อ1เพราะ cgi script ทั้งหลาย ที่คือ ตัวดี ที่ทำให้ CPU ทำงานมาก และเมื่อมีการ execute script มากๆ ระบบก็ทำงานหนักมากขึ้น ทั้ง cpu, ram , harddisk , io  และ script สองสามบรรทัด ที่เขียนผิดพลาดหรือจงใจก็แล้วแต่ ก็ทำให้ server  อืดได้นะครับ อย่าประมาท มีตัวอย่างให้เห็นมาบ่อยๆ  ใครยังจำได้ว่า สมัยที่มีคนแกะ script 152 และดันเขียน loop พลาด ทำเอา server ตัวเองล่มกันมาเยอะแล้ว
    • optimized การใช้งานฐานข้อมูล งานบางอย่าง ถ้า insert ฐานข้อมูลหนักๆ ถี่ๆ ก็ทำให้ระบบช้าลงมากก และระบบรวนไปเลยก็มี ดังนั้น ถ้านำ text ไฟล์มาช่วยเบาภาระได้บ้าง ก็จะดีขึ้นมาก
    • เร่งความเร็วของ script โดยใช้ engine ช่วย เช่น mod_perl, Zend Engine, Cache Engine, etc
  2. internet link ความเร็วต่ำ ระบาย bandwidth ได้น้อย จึงทำให้เกิดความคับคั่งของจราจรข้อมูล (รถติดนั่นแหละ) อันนี้เป็นปัญหาโลกแตก แก้ยาก และเปลืองเงินมาก นอกจากจะย้ายไปอยู่กับ data center ที่มี bandwidth มากๆ แทน
    • แก้ปัญหาเบื้องต้นในระบบเดิม ด้วยตนเอง โดยการบีบอัดข้อมูล เช่น ติดตั้ง mod_gzip เพื่อบับอีด text/html ได้ถึง 80% เพื่อให้กิน bandwidth น้อยลง และจะทำให้ client รู้สึกว่าเร็วขึ้นมาก เนื่องจากความคับคั่งของจราจรลดลง
    • เพิ่ม link bandwidth หรือ ย้าย ISP หรือ data center อันนี้ งบใครงบมันครับ แต่จะบอกว่า ต่อให้ server แรงสุดยอดแค่ไหน ถ้า link ช้า ทำยังไง ก็ไม่เร็วครับ เพราะมันคอขวดอยู่ตรงนั้น เหมือนเอา รถ F1 ไปติดแหงก อยู่บนถนน นะแหละครับ
  3. เวปเพจมีขนาดใหญ่ เนื่องจากภาพกราฟิกเยอะ ทำให้ต้องส่งข้อมูลจำนวนมหาศาลเมื่อมี process ร้องขอมากๆ จึงเป็นสาเหตุหนึ่งที่ทำให้ระบบตอบสนองได้ช้าา ทางแก้คือ ต้องลดๆ + บีบอัด กราฟิกกันหน่อย และการเขียนอ่าน IO มากๆ มีผลทำให้ harddisk ตอบสนองได้ช้า โดยเฉพาะการ write ดังนั้น ถ้า IO ไม่ตอบสนอง ได้ดีพอ ก็มีผลต่อความเร็วโดยรวม และ อายุการใช้งานก็สั้นลงด้วยครับ

อ้างอิงมาจาก : http://www.cgitop.com/phpBB2/viewtopic.php?t=602