Techno-geeks
หลังจากที่เรา install Ubuntu 8.04 และลง package ต่าง ๆ ที่เกี่ยวข้องกับภาษาไทยเรียบร้อยแล้ว การใช้งานภาษาไทยก็ยังจะไม่สมบูรณ์ ยกตัวอย่างเช่น nautilus จะไม่สามารถเรียงลำดับชื่อไฟล์ที่เป็นภาษาไทยได้ถูกต้อง วิธีการแก้ไขก็คือเราต้องกำหนดค่า Locale ที่ใช้ให้เป็นภาษาไทยด้วย ซึ่งมีวิธีการดังนี้: |
|||
เจ้าเครื่องเซิร์ฟเวอร์ Dell PowerEdge R200 ที่บริษัทผมเพิ่งซื้อมา นี่ทำผมแสบมาก ๆ อุตส่าห์ซื้อมาจะใช้กับ Ubuntu Server ซะหน่อย แต่ก็ติดปัญหาที่ว่า Hardware RAID controller card ที่ติดมากับเครื่องนั้นคือ Dell SAS 6/iR มี Driver สำหรับ Red Hat กับ SuSE เท่านั้น แล้วก็ดันไม่มี source ให้ compile เองด้วยผมละเซ็งจริง ๆ ถ้าไม่ลง Driver ดังกล่าวผมก็ไม่สามารถตรวจสอบสถานะของ Disk ได้ ก็ไม่รู้จะทำ RAID-1 ไปทำไม อย่างนี้โทษใครไม่ได้นอกจากตัวเอง ผมเลยขอเตือนทุกท่านให้เป็นอุทาหรณ์ก่อนเลยว่าถ้าท่านจะซื้อเครื่องเซิร์ฟเวอร์มาใช้กับ Ubuntu Linux ก็ควรจะดูก่อนว่า เครื่องเซิร์ฟเวอร์ดังกล่าวลง Ubuntu ได้หรือไม่ ซึ่งสามารถตรวจสอบได้ http://webapps.ubuntu.com/certification/list/?category=Server ดังนั้นผมเลยต้องจำใจติดตั้ง RHEL 5 บนเครื่องเซิร์ฟเวอร์ของผม คราวนี้ผมก็สามารถตรวจสอบสถานะของ RAID ได้แล้วแต่ปัญหาก็ยังไม่จบสิ้นคือ ถ้าผมใช้ RHEL ผมก็ต้อง subscribe กับทาง Red Hat ก่อนจึงจะสามารถ update โปรแกรมต่าง ๆ ได้ซึ่งค่า subscription มันก็แพงเอาการอยู่ ผมเลยต้องหาทางวิธีเปลี่ยน RHEL ให้เป็น CentOS โดยไม่ต้อง install ใหม่ ซึ่งมีวิธีการดังต่อไปนี้... |
|||
เมื่ออาทิตย์ที่แล้วผมต้องติดตั้ง Ubuntu 8.04 Server Edition ลงบนเครื่องเซิร์ฟเวอร์ Dell PowerEdge 200 ที่เพิ่งซื้อมาใหม่ทั้ง 3 เครื่อง สิ่งหนึ่งที่ผมต้องทำระหว่างติดตั้งก็คือการ Configure IP Address และการใช้คำสั่งเกี่ยวกับ Network บน command line... ผมเห็นว่าวิธีการ Configure IP Address และการใช้ network command บน Linux จริง ๆ แล้วมันก็ไม่ได้น่ากลัวอะไร แต่ผู้ใช้มือใหม่ไม่กล้าใช้กัน ประกอบกับผมไปเจอบทความดี ๆ เข้า ก็เลยผมอยากแปลเพื่อเผยแพร่และรวมรวมคำสั่งเกี่ยวกับ network ต่าง ๆ ที่น่าสนใจ เพื่อที่จะได้เป็นประโยชน์กับผู้อื่นดีกว่า |
|||
พอดีเมื่อวานผมจำเป็นต้องทำงานประมวลผลข้อมูลตัวเลขที่รับมาจาก standard input แต่ละบรรทัด แล้วนำตัวเลขเหล่านั้นไปหาผลรวมและค่าเฉลี่ย (ตัวเลขพวกนี้เป็นผลลัพธ์จากการรันอีกโปรแกรมหนึ่ง) ผมก็นึกหาคำสั่งใน Linux/Unix ว่ามีคำสั่งพวกหาผลรวมทุกบรรทัดว่ามีหรือเปล่าแต่ก็นึกไม่ออก เลยลองถามพี่เฉิงดูว่ามีคำสั่งดังกล่าวหรือไม่ แต่ผมก็ได้รับข่าวร้ายและข่าวดีจากพี่เฉิงว่า "ไม่มี tool นี้หรอก แต่พี่มี perl script เขียนไว้แล้ว" ผมล่ะปลาบปลื้มปิติจริง ๆ ที่มีรุ่นพี่เก่ง ๆ อย่างพี่เฉิงคอยแนะนำ ผมจึงนำเอา perl script ของพี่เฉิงมาใช้งานซึ่งมันก็สามารถทำงานได้ดีทีเดียว แต่ทว่าผมเขียน Perl ไม่เป็น และ script ของพี่เฉิงก็ยังมีบักนิดหน่อยในกรณีที่ไม่มี input เข้ามามันจะเกิดข้อผิดพลาดแบบ division by zero ขึ้น... ดังนั้นผมเลยนำมาเขียนใหม่ด้วยภาษา Python เพื่อที่ผมจะได้แก้ไขปรับปรุงได้เองในอนาคต จึงได้โปรแกรมซึ่งมีชื่อว่า sumstat.py ดังนี้: |
|||
คำเตือน: สิ่งที่ท่านจะได้อ่านต่อไปนี้เป็นเพียงเหตุการณ์สมมติเท่านั้น และผู้เขียนไม่ได้มีเจตนาที่จะเผยแพร่ความรู้เพื่อนำใช้ในทางที่ผิด หากมีผู้ใดนำไปความรู้จากบทความนี้ไปประยุกต์ใช้ในทางที่ผิด หรือกระทำการใด ๆ ที่ผิดกฎหมาย หรือ ศีลธรรม ทางผู้เขียนไม่ขอรับผิดชอบใด ๆ ทั้งสิ้น
เมื่อสัปดาห์ที่ผ่านมาผมมีความจำเป็นต้องไปฟังสัมมนาที่มหาวิทยาลัยแห่งหนึ่ง แต่เผอิญผมไปถึงก่อนเวลานานมาก ๆ เลย จึงอยากหาอะไรทำแก้เซ็ง อาการติดเน็ตเลยกำเริบ ผมเลยลอง check สัญญาณ Wi-Fi ดู ผมก็พบว่าแถว ๆ ที่ผมนั่งอยู่นี้มี Wireless Lan ของมหาวิทยาลัยดังกล่าวให้ใช้ด้วย ซึ่งไม่ได้มีการเข้ารหัสอะไรเลย อย่างนี้ก็เสร็จผมสิครับ ผมเดาว่าวิธีการป้องกันการใช้งานของมหาวิทยาลัยแห่งนี้ก็คงเพียงแค่ให้ นิสิต/นักศึกษา มาลงทะเบียน MAC Address ของตนไว้เพียงเท่านั้นก็สามารถใช้งาน Wireless Lan ได้แล้ว ประกอบกับผมเห็นว่ามีน้องนักศึกษาสาวที่นั่งอยู่ใกล้ ๆ กำลังแซ็ตบน Laptop ของเธออย่างเมามัน ฉะนั้นเพื่อสนองความต้องการใช้อินเตอร์เน็ตของผม ปฎิบัติการ Spoof MAC Address จึงเริ่มต้นขึ้น... |
|||
ผมมี Wireless USB Adapter ของ Edimax รุ่น EW7318USg อยู่อันหนึ่งพอดีวันนี้นึกอยากจะเอามาใช้บนเครื่อง Laptop ของผมซึ่งใช้ Ubuntu 8.04 ซึ่งเจ้า Wireless USB Adaper ตัวนี้ไม่สามารถใช้งานบน Linux ได้เลยทันที ดังนั้นเราจึงต้องลง Driver ก่อนจึงจะสามารถใช้งาน ซึ่ง Driver ที่ผมใช้ก็ดาวน์โหลดมาจาก http://rt2x00.serialmonkey.com ส่วนวิธีการติดตั้ง driver มีขั้นตอนดังนี้: |
|||
คุณอาจจะเคยพบกับปัญหาที่ว่าข้อมูลในตารางนั้นมีข้อมูลซ้ำ ๆ วันนี้ผมก็พบเข้ากับตัวเอง ด้วยเหตุที่ว่าวันนี้เว็บของลูกค้าผมซึ่งสร้างด้วย Drupal ไม่สามารถเข้าไปดูในหน้าของ Organic Subgroup Module ได้เพราะว่าเกิด time out ทุกครั้งที่เข้าไปดูหน้านี้ ผมจึงคิดว่าปัญหาน่าจะอยู่จากระบบฐานข้อมูล ของ Organic Subgroup Module โดยข้อมูลของ Module นี้เก็บอยู่ในตารางเพียงตารางเดียวที่ชื่อว่า "og_ancestry" ซึ่งโครงสร้างข้อมูลในตารางนี้จะมีลักษณะเป็น Tree แน่นอนผมคิดว่าปัญหาน่าจะมาจากการที่มีการอ้างอิงของข้อมูล (reference) ที่ไม่ถูกต้องจนเกิดการอ้างอิงแบบวงวน (circular reference) ซึ่งทำให้ function ที่ query ข้อมูลในตารางนี้แบบ recursive นั้นทำงานไม่รู้จบ จึงเกิด time out ขึ้น ดังนั้นจึงลอง query ข้อมูลในตารางนี้ดู ผมก็พบว่าในตาราง "og_ancestry" นั้นมีข้อมูลซ้ำๆ กันเป็นจำนวนมาก เจองี้เข้าก็อึ้งสิครับ แล้วอย่างนี้ผมจะหาได้หรือเปล่าว่าข้อมูลอันไหนที่ทำให้เกิด loop? ดังนั้นผมจึงควรลบข้อมูลที่ซ้ำๆกันออกไปก่อนเพื่อให้ง่ายต่อการวิเศราะห์ข้อมูล แล้ววิธีการลบข้อมูลที่ซ้ำ ๆ กันล่ะจะทำได้อย่างไร?... |
|||
ต่อไปนี้เป็นความคิดเห็นส่วนตัวของผมนะครับ ที่ผมเขียน blog entry นี้เพราะว่าหลาย ๆ ครั้งที่ผมเห็นคนถกเถียงกันแทบเป็นแทบตายตอนเลือก OS สำหรับเครื่องเซิร์ฟเวอร์ที่ไม่ต้องการให้แฮกเกอร์บุกรุกได้เช่น อย่าใช้ Windows เลยใช้ Linux ปลอดภัยกว่า หรือ Linux มันยังไม่ค่อยปลอดภัยต้องใช้พวก BSD หรือแม้กระทั่ง FreeBSD ก็ยังไม่ปลอดภัย ต้อง OpenBSDสิ ถึงจะปลอดภัยที่สุด |
|||
หากใครเคยใช้ Subversion ก็คงจะทราบดีว่าในบางครั้งเราก็อาจจะมีไฟล์/ไดเร็คทอรี่ที่เราต้องการใช้เฉพาะบนเครื่องของเราเอง และไม่ต้องการที่จะ commit ไฟล์/ไดเร็คทอรี่เหล่านั้นกลับเข้าไปยัง repository ซึ่งโดยส่วนตัวกรณีที่เกิดขึ้นกับผมก็คือ ผมทำงานเขียนโปรแกรมภาษา Java ด้วย Eclipse IDE แต่ทีมของผมไม่ได้ใช้ Eclipse IDE กันทุกคน หรือแม้ว่ามีบางคนใช้ Eclipse IDE แต่ก็ก็ทำงานบน Environment ที่ต่างกันออกไป เช่นผมทำงานบน Linux แต่คนอื่น ๆ ในทีมใช้ Windows เป็นต้น ฉะนั้นผมจึงไม่ต้องการที่จะ commit ไฟล์ที่ เกี่ยวกับ Eclipse Project และ Binary File กลับเข้าไปใน repository เพราะว่า ถ้าผม commit ไฟล์นี้เข้าไปเวลาคนอื่น ๆ check out ออกมา ก็จะต้องมาแก้ไขไฟล์เหล่านั้นเพื่อให้เหมาะสมกับ environment ของตนอีก ซึ่งจะนำไปสู่การ conflict ของไฟล์เหล่านั้นได้ง่าย ๆ และ คงปวดหัวน่าดูในการ maintenance ไฟล์เหล่านี้ ฉะนั้นผมจึงต้องหาวิธีที่จะทำให้ Subversion ไม่สนใจไฟล์เหล่านี้ ซึ่งทำได้ง่าย ๆ ดังนี้... |
|||
One of the most annoying thing about re-install Windows XP in my dual-boot laptop is that MBR is overwritten. In other words, GRUB is lost and I cannot boot my beloved Ubuntu. So, I have to restore it with a few easy steps as follows: |
|||
|
|