My Desktop
by pittayaสืบเนื่องจาก my physical desktop ของ bact’ เจ้าตัวบอกว่าอยากเห็นของคนอื่นบ้าง ก็เลยเอามาให้ดู อันนี้เป็นโต๊ะที่ทำงาน
ดูเหมือนจะยังรกสู้ของคนอื่นไม่ได้
- Published:April 1st, 2008
- Comments:5 Comments
- Category:Photo, Work
สืบเนื่องจาก my physical desktop ของ bact’ เจ้าตัวบอกว่าอยากเห็นของคนอื่นบ้าง ก็เลยเอามาให้ดู อันนี้เป็นโต๊ะที่ทำงาน
ดูเหมือนจะยังรกสู้ของคนอื่นไม่ได้
สองสามวันที่ผ่านมามีงานเร่งด่วนเข้ามา คือต้องทำระบบให้คะแนนแบบสดๆ ของการประกวดอะไรซักอย่างหนึ่ง โดยรายละเอียดของงานก็แบ่งเป็นส่วนๆ คือ ส่วนรับลงทะเบียนที่หน้างาน, ส่วนกรรมการให้คะแนน แล้วก็ส่วนที่เป็น backend สำหรับรวบรวมคะแนนเพื่อให้กรรมการตัดสินอีกที
ขั้นตอนการทำงานของระบบ ตอนแรกคือ ผู้สมัครลงทะเบียนผ่านเวบไว้ก่อนแล้ว พอมาถึงวันงานก็จะมาลงทะเบียนพร้อมกับถ่ายรูปที่หน้างาน ขั้นตอนนี้จะได้หมายเลขประจำตัวของแต่ละคนไป (เป็น 1, 2, 3 เรียงไปเรื่อยๆ) เสร็จแล้วทีมงานก็จะปล่อยให้ผู้สมัครเข้าไปให้กรรมการดูทีละ 10 คน ซึ่งตอนนี้ไม่ต้องรอให้ผู้สมัครทุกคนลงทะเบียนเสร็จก่อน คือลงทะเบียน ถ่ายรูปเสร็จ ครบ 10 คนเมื่อไหร่ก็ปล่อยเข้าไปให้กรรมการให้คะแนนได้เลย พอให้คะแนนครบทุกคนแล้ว ระบบจะรวมคะแนน เรียงลำดับตามคะแนนมากไปน้อย แสดงผลให้กรรมการเข้าไปตัดสินใจเลือกกันเองอีกครั้งหนึ่ง รอบแรกคัดคนให้เหลือ 70 คน หลังจากประกาศรายชื่อแล้วก็มีให้คะแนนรอบสอง แต่คราวนี้ให้เข้ามาทีละ 7 คน กรรมการให้คะแนน รวมคะแนน เหมือนเดิม
หน้าตาของระบบเป็นแบบนี้ เทคโนโลยีก็ใช้เป็น web-based ธรรมดา

ขั้นตอนทางเทคนิคที่ทำคือ
งานดูเหมือนไม่ลำบากมากนัก แต่ก็ได้บทเรียนมาจากงานนี้เยอะพอสมควรคือ
ถึงแม้จะเตรียมระบบไว้อย่างไรแต่เมื่อ event ดำเนินมาจนถึงการให้คะแนน 10 คนสุดท้าย จู่ๆ กรรมการก็ไม่สามารถ submit คะแนนเข้า server ได้ ลองตรวจดูก็พบว่า server ไม่ตอบสนองในช่วงเวลานั้น วิธีแก้ไขข้อมูลเฉพาะหน้าตอนนั้นก็คือ “แจกกระดาษ+ปากกา” ให้กรรมการใช้แทนในช่วงที่ทีมงานหาสาเหตุ
พบว่าสาเหตุที่จู่ๆ server ก็ดับไป เนื่องจากมีคนเตะปุ่ม power! ต้องใครซักคนในกรรมการน่ะแหละ! (Heinlein เคยบอกไว้ว่า “Never underestimate the power of human stupidity”)
หลังจาก boot server ขึ้นมาใหม่ ก็ใช้งานได้ตามปกติ
การป้องกันการเกิดเหตุ server ล่มแบบนี้ อาจจะต้องมี server 2 เครื่อง เป็น master กับ slave มีการ sync db log กันตลอดเวลา แล้วก็ให้ตัว master ปล่อย heartbeat ถ้าเครื่อง slave ไม่ได้ยิน heartbeat ติดต่อกันเป็นเวลาหนึ่งก็ให้ take over ทำตัวเป็น master แล้วทำงานเสียเอง
หรือไม่ก็เก็บ server ไว้ให้ห่างตีนกรรมการ