by

RegChula หรือมนุษย์จะพ่ายแพ้ต่อหุ่นยนต์

*บล็อกนี้เป็นบล็อกเก่าที่เขียนไว้เมื่อวันที่ 5 พ.ย. 2009 เวลาผ่านไป 5 ปี ตอนนี้ reg chula เองก็ได้ออกรุ่นใหม่แล้ว(–feeling old ว่ะ)  ขอเอามาโพสอีกรอบ เผื่อว่ามีใครอยากมารำลึกความหลังกัน


ผมเขียนบล็อกเกี่ยวกับระบบลงทะเบียนหลายรอบแล้ว ครั้งนี้เห็นแล้วทนไม่ไหวจริงๆ เลยต้องมาเขียนถึงอีก

ทุกๆครั้งที่เปิดเทอม มักจะมีนิสิตที่ลงทะเบียนไม่ได้ อาจเพราะลงแล้วเด้ง หรือลืมจ่ายตัง หรือเหตุอื่นๆ ทำให้ต้องมาแย่งลงทะเบียนกันตอน 8:00 น. ของวันเปิดเรียน และจะเพิ่ม/ลดวิชาได้จนถึง 2 สัปดาห์หลังจากนั้น

และทุกๆเทอม ระบบลงทะเบียนจะล่มเนื่องจากนิสิตต้องการลงทะเบียนเยอะเกินกว่าที่ server จะรับไหว

เรื่องนั้นไม่ใช่ประเด็น

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

ทีนี้ด้วยความเบื่อหน่ายที่จะต้องมาคอยเฝ้าดูว่าวิชาที่ตัวเองอยากเรียนมันว่างรึยัง ก็ได้มีคนบางกลุ่ม ประดิษฐ์หุ่นยนต์ขึ้น เพื่อทำการลงทะเบียนโดยเฉพาะ …

http://en.wikipedia.org/wiki/File:Gundam.jpg

จากที่รู้มา ก่อนที่ผมจะเข้ามาเรียนที่นี่ สมัยนั้นเค้าใช้ Auto Mouse กัน มันสามารถคลิกในบริเวณที่ต้องการ ตามเวลาที่ตั้งไว้ ทำให้สามารถ submit ได้เรื่อยๆ ไม่รู้จักเหนื่อย ต่อมา RegChula ได้ทำการตอบโต้ โดยตั้งกฎว่า นิสิตสามารถทำการยืนยันผลการลงทะเบียนได้ไม่เกิน 10 ครั้ง ต่อ 1 วัน ทำให้ Auto Mouse พ่ายแพ้ต่อสงครามไปในที่สุด

รูปตัวอย่างหน้าบันทึก เมื่อกดบันทึกแล้ว จะมีอีกหน้าให้ยืนยัน

ยุคต่อมาในสมัยที่ทุกบ้านใช้ Firefox กัน บอทลิงก็ได้ถือกำเนิดขึ้น ลิงที่ว่ามาจาก Greasemonkey เป็น Extension ตัวหนึ่งของ Firefox มันสามารถเขียน Javascript แล้วให้ทำอะไรกับหน้าเวบได้ตามต้องการ นิสิตก็ใช้ไอ้สคริปนี้แหละ ตรวจสอบว่า Section ที่ตัวเองลงไปมันว่างรึยัง ถ้าไม่ว่างก็ refresh รอ ถ้าว่าง ค่อย submit ทำให้จำนวนครั้งในการยืนยันไม่เกิน 10 ตามกฎของ RegChula นี่เป็นจุดเริ่มต้นของหุ่นยนต์ที่สามารถตัดสินใจได้

แล้วยุครุ่งเรืองของหุ่นยนต์ก็มาถึง เนื่องจากความสามารถของหุ่นยนต์พันธุ์ลิงนั้นมันมีไม่เพียงพอ อธิบายคร่าวๆถึงข้อจำกัดของมันได้สั้นๆ คือ กว่าจะโหลดหน้ามา กว่าจะrenderหน้านั้น กว่า Greasemonkey จะเข้าถึง html เพื่อรัน script มันก็กินเวลาเยอะ หุ่นยนต์ลิงนั้นสามารถทำความเร็วสูงสุดได้ประมาณ 2 request ต่อวินาทีเท่านั้น

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

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

สิ่งที่ RegChula ทำได้ และทำมาตลอดตั้งแต่สมัยยังใช้ mainframe ตัดเกรด คือ ออกกฎ

นี่แหละกฎชัดๆ

วันนั้นเอง หลังจากออกกฎแล้วก็พบว่ามีหุ่นยนต์หลายตัวถูกสังหารไป พร้อมกับการแบน IP ของคณะวิศวฯ

ในเวลาต่อมา ก็มีคนรายงานว่า RegChula มี CAPTCHA แล้ว !

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

 

เอ่อ มันอยู่ในหน้ายืนยันเลยหรอ นี่นิสิตต้องมาพิมพ์ CAPTCHA แข่งกันเพื่อแย่งลงทะเบียนหรือไง ?

ผมตระหนักได้ว่า ที่ RegChula ไม่ติด CAPTCHA ที่หน้า Login ก็เพราะ ถ้าทำแบบนั้น หุ่นยนต์ลิงจะสามารถทำงานได้ไม่มีปัญหา ถ้าติดหน้ายืนยันไปเลย ก็น่าจะกันได้

เอาล่ะ

ผมมองในแง่ของหุ่นยนต์ ครั้งแรกที่ได้เห็น CAPTCHA นี้(จากมือถือของ @bukku) พบว่า รูปของแต่ละตัวมันเหมือนกัน เช่น A ทุกตัวเป็นตัวเดียวกัน แสดงว่าไม่ได้เกิดจากการ Generate ใหม่ ดังนั้น ไม่ต้องทำ OCR ก็น่าจะแกะได้ไม่ยาก

เมื่อกลับมาถึงห้องหลังจากไปเล่นวินนิ่งมา ไม่ทันได้เช็ค Twitter ก็ดิ่งไปที่หน้า “ยืนยัน” พร้อมอาวุธคู่ใจคือ Firebug ผมพบบางอย่าง …

 

ผมอยากจะบ้า ! อย่างนี้มันไม่เรียก CAPTCHA ครับท่านแอดมิน !

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

ด้วยความทนไม่ไหว เลยเขียน Script มาแจก เป็น Javascript ง่ายๆนี่แหละ กดทีเดียวกรอกให้เลย

 

code:

javascript:function captcha(){var html=top.right.courseinfo.courseinfo.document.getElementsByTagName('html')[0].innerHTML;var c=0;var code="";while(c++<4){var m=/[0-9A-Z].gif/gm.exec(html);code+=m[0].substring(0,1);}top.right.courseinfo.courseinfo.document.LAYOUTFORM.code.value=code;}captcha();

วิธีใช้ตามนี้ เอาไปใส่ bookmark ไว้ Firefox, Chrome, IE อะไรก็ว่าไป

 

เสร็จแล้วกดตอนอยากจะใช้

เสร็จ

Script อาจจะไม่ได้ยิ่งใหญ่อะไรนัก แต่มันก็ช่วยให้มนุษยชาติประหยัดเวลาในการอ่านและพิมพ์ ได้หลายวินาที ในขณะที่หุ่นยนต์นั้นทำได้ในระดับมิลลิวินาที …

 

เหล่ามนุษย์เอย เจ้าจงอย่ายอมแพ้ต่อสงครามในครั้งนี้ กร๊ากกกก

Comments

comments

Page 1 of 11