พอดีเห็นข่าวว่า Mozilla ออก Firefox รุ่นปรับปรุงรุ่นใหม่ คือ 2.0.0.4 แถมวันนี้ว่างเป็นพิเศษ เนื่องจากเป็นวันวิสาขบูชา BonEcho ที่ใช้อยู่ก็เป็นเวอร์ชัน 2.0.0 ที่เก่าพอสมควรแล้ว เลยไปเอา Firefox มาคอมไพล์ใหม่ ใช้ patch cttex ของพี่ฮุ้ยเหมือนเดิม
แต่คราวนี้ขอเห็นแก่ตัวหน่อย คอมไพล์ให้มัน optimize สำหรับ PowerBook G4 (ppc7450) ที่กำลังใช้อยู่ โดยใช้ flags จากที่นี่ รวมทั้งใช้ SDK ของ Tiger ด้วย เรียกว่าเฉพาะเจาะจงกับเครื่องตัวเองสุดๆ ใช้เวลาไปสองชั่วโมงกว่า
real 137m6.159s
user 54m45.295s
sys 13m38.807s
เอาเป็นว่าถ้าใครใช้ OS X 10.4 บนเครื่อง PowerPC อยู่ ก็สามารถโหลดได้ไปใช้ได้จากที่นี่
firefox, mac
firefox, mac
ช่วงนี้กำลังพัฒนาระบบให้กับที่ทำงานอย่างที่พูดถึงไปแล้วในหัวข้อก่อน เสร็จแล้วระบบนี้จะต้องสร้าง report ออกมาเป็น PDF ตอนแรกก็พยายามไปค้นๆ เจอ fpdf ซึ่งเป็นไลบรารีสำหรับสร้างเอกสารแบบ PDF โดยใช้ php แต่ลองใช้ดูสักพักก็รู้สึกว่าใช้งานยาก คือจะปรับแต่งให้ได้ดั่งใจค่อนข้างยาก (เผอิญ report ที่ต้องการ ประกอบด้วยตารางเป็นส่วนใหญ่) สุดท้ายเลยกลับมาตายรังโดยใช้ php สร้าง source สำหรับ LaTeX จากนั้นก็ใช้ pdflatex รันก็เสร็จแล้ว
ทีนี้พอทำส่วนประกอบต่างๆ เสร็จ ก็อยากจะทำเท่ห์โดยให้ pdflatex ทำงานแบบพื้นหลัง แล้วค่อยใช้ Ajax มาคอยเช็คดูว่าสร้าง pdf เสร็จหรือยัง ก็จำเป็นต้องสร้าง process ใหม่ขึ้นมาเพื่อเรียก pdflatex มาทำงาน ลองค้นดูก็พบว่า php มีกลุ่มคำสั่ง pcntl (Process Control) สำหรับควบคุม process ต่างๆ ซึ่งในนั่นจะมีคำสั่ง pcntl_fork() เอาไว้สร้าง process ลูก และ pcntl_exec(…) สำหรับกำหนดให้เรียกโปรแกรมมาทำงาน
พอใช้ก็โดนเตือนว่าไม่รู้จักคำสั่งพวกนี้ ลองหาไปหามา ก็มีคนบอกว่าต้อง enable pcntl ก่อน ใน ubuntu ไม่ได้ทำมาให้ สุดท้ายก็เลยไปพยายามสร้าง .deb ขึ้นมาใหม่เพื่อการนี้ แต่ก็ยังใช้ไม่ได้ ลองค้นดูอีกเจอว่า คำสั่งพวกนี้จะใช้ได้เฉพาะเวลาใช้ php แบบ CGI เท่านั้น ไม่สามารถใช้ได้เวลาทำงานเป็น module หนึ่งของ Apache (คิดว่าคงเพราะทำงานเป็นส่วนหนึ่งของ process ของ Apache ถ้ายอมให้ทำได้ ก็อาจจะเกิดปัญหาต่างๆ ได้ ต่างจากแบบ CGI ที่ทำงานอยู่บน process ของ php เอง)
สุดท้ายก็เลยเปลี่ยนใจไม่ใช้แล้ว เพราะดูท่าทางจะยุ่งยาก แล้ว pdflatex มันก็ไม่ได้ทำงานนานเท่าไหร่ เนื่องจากไฟล์ค่อนข้างเล็ก
programming, unix
php, programming
ในหลักสูตรของภาควิชาฯ การฝึกงานถือเป็นวิชาบังคับ ที่นักศึกษาทุกคนจะต้องผ่าน ทั้งนี้มีเป้าหมายเพื่อเป็นการเตรียมตัว ให้นักศึกษาเข้าใจสถานการณ์จริงที่ตัวเองต้องประสบหลังจากจบการศึกษาแล้ว ในหลักสูตรส่วนใหญ่มักจะกำหนดจำนวนชั่วโมง หรือจำนวนวันขั้นต่ำที่นักศึกษาจะต้องไปใช้ชีวิตในบริษัทหรือองค์กรภายนอก ซึ่งไม่ใช่แค่ไปให้เขาเห็นหน้าให้ครบตามจำนวนชั่วโมง แต่ต้องแบกความรับผิดชอบ และความเป็นผู้ใหญ่ไปด้วย หมายความว่านักศึกษาควรจะเตรียมตัวให้พร้อม และเตรียมใจไว้ด้วย ว่าเราคือพนักงาน (ชั่วคราว) คนหนึ่งขององค์กรนั้น นอกจากนี้ระหว่างฝึกงานก็ควรจะมีความกระตีอรือร้นที่จะเรียนรู้ในสิ่งใหม่ๆ เพราะสิ่งที่เรียนในมหาวิทยาลัยจะเน้นแค่ทฤษฎี หรือหลักการกว้างๆ ที่นักศึกษาควรเข้าใจ แต่องค์กรธุรกิจอาจจะมีวิธีการทำงาน หรือความรู้เฉพาะด้านที่จะต้องศึกษาเพิ่มเติม นอกจากนี้ควรสังเกตวิธีการทำงาน วัฒนธรรมองค์กร ไปพร้อมๆ กับการมองหาจุดด้อยของตัวเอง เพื่อที่หลังจากการฝึกงานแล้ว จะได้ใช้เวลาที่เหลืออีกหนึ่งปี เตรียมตัวให้พร้อมที่จะก้าวสู่โลกแห่งความเป็นจริงต่อไป
วันนี้มาบ่นอีกแล้ว หลังจากได้รับโทรศัพท์สายหนึ่ง รู้สึกจะเป็นความผิดพลาด และอ่อนประสบการณ์ของตัวเองอีกแล้ว
internship, teaching, university
บ่น, teaching
mcrypt เป็นโปรแกรมที่พํฒนาขึ้นเพื่อทดแทน crypt บน Unix ซึ่งใช้สำหรับเข้ารหัสไฟล์ข้อมูล พอดีตอนนี้ต้องสำรองข้อมูลจาก mysql ไปไว้ที่อื่น เลยอยากเข้ารหัสด้วย เพื่อเพิ่มความปลอดภัย ก็เลยเขียน shell script ขึ้นมาอันนึง ให้เรียก mysqldump จากนั้นก็เรียก mcrypt มาเข้ารหัส แล้วค่อยส่งไปเก็บไว้ที่อีกเครื่องหนึ่ง
วิธีใช้ mcrypt ก็ไม่ยาก เพียงแค่กำหนดขั้นตอนวิธีที่จะใช้เข้ารหัส รวมทั้งวิธีระบุกุญแจที่จะใช้ เช่น
mcrypt -a des --keymode pkdes [filename]
โปรแกรมก็จะรอให้กำหนดกุญแจที่จะใช้ ถ้ากำหนดเรียบร้อยแล้ว ก็จะเข้ารหัสให้ และได้ไฟล์ใหม่โดยเติม .nc เข้าไปข้างท้าย วิธีนี้จะใช้สำหรับ interactive เท่านั้น ถ้าเป็นกรณีที่ต้องการใช้ใน shell script ก็ต้องกำหนดให้ไปเอากุญแจมาจากไฟล์ เช่น
mcrypt -a des --keymode pkdes -f [key-file] [filename]
แต่ปัญหาที่พบก็คือขั้นตอนวิธีเข้ารหัส แต่ละอันจะมีข้อกำหนดเรื่องความยาวสูงสุดของกุญแจ ถ้ากำหนดยาวเกินไปก็จะเกิด error ขึ้น เช่น DES จะรองรับแค่ 8 ตัวอักษรเท่านั้น จึงต้องดูเรื่องนี้ประกอบด้วย โดยรายละเอียดจะมีอยู่ที่ –list-keymodes
unix
unix
หลังจากเป็นครูมาได้สองปี ในที่สุดก็สามารถทำให้นักเรียนปริญญาโทคนแรกเรียนจบได้ (จริงๆ ก็ยังไม่จบแบบสมบูรณ์นัก แต่ในแง่งานวิจัยนั้นจบแล้ว สำหรับตัวเองแล้ว ขออนุโลมว่าจบล่ะกัน และเขากลับบ้านไปแล้ว) รู้สึกโล่งใจขึ้นเยอะ อย่างน้อยก็สามารถสร้างนักวิจัยรุ่นเล็กขึ้นมาได้อีกหนึ่งคน ที่รู้สึกดีใจก็เพราะการเรียนปริญญาโทที่นี่ไม่ง่ายเหมือนที่อื่นๆ เพราะเป็นการเรียนแบบทำวิจัย มีวิชาเรียนแค่ 4 วิชา (จริงๆ แล้ว 2 วิชา คือ Advanced Engineering Mathematics กับ Research Methodology ที่เหลือเป็นวิชาเชิงสัมมนาไม่ได้เรียนจริงๆ จังๆ เท่าไรนัก) จะจบการศึกษาได้ก็ต่อเมื่อมีงานวิจัยตีพิมพ์ใน International Conference อย่างน้อย 1 ฉบับ และ National Journal อย่างน้อย 1 ฉบับ ซึ่งเขาก็ตีพิมพ์ International Conference ไป 3 ฉบับ (ได้ Best Student Paper Award 1 รางวัล) กับ National Journal อีก 1 ฉบับ และกำลังจะส่ง International Journal อีก 1 ฉบับ ผลงานดีทีเดียว
จะว่าไปแล้ว รับนักศึกษาคนนี้มาแบบไม่ทันได้ตั้งตัว เขาเป็นคนเนปาลที่ได้ทุนจากธนาคารพัฒนาเอเชีย แล้วมาถึงก็มีปัญหาว่ายังไม่มีอาจารย์คนไหนยอมรับเป็นที่ปรึกษาวิทยานิพนธ์ ซึ่งตามกฎของสถาบันแล้ว นักศึกษาทุกคนจะมีอาจารย์ที่ปรึกษาตั้งแต่เข้าศึกษา ฉะนั้นเขาจะต้องหาใครรับเป็นที่ปรึกษาให้ได้ มิฉะนั้นก็จะถูกส่งกลับ แล้วก็จะไม่ได้ทุน รู้สึกว่าเรื่องมันเกิดขึ้นตั้งแต่ก่อนที่เราจะเข้ามาทำงานที่นี่ แต่ที่ได้ยินมาคือถูกส่งไปเจออาจารย์แทบจะทั่วสถาบัน แต่ยังไม่มีใครรับปาก สุดท้ายเลยกลับมาที่ภาควิชา และก็กำลังจะเปิดเรียน เราก็เป็นอาจารย์ใหม่เพิ่งมาทำงาน ยังไม่มีภาระนักศึกษาเลย จึงถูกขอร้องแกมบังคับให้รับเป็นที่ปรึกษา จำได้ว่าได้คุยครั้งแรกแล้วไม่แปลกใจเลยว่าทำไมยังไม่มีใครรับ เพราะเขาเป็นคนที่มีวิธีการพูดแปลกๆ มีสีหน้าเคร่งเครียดตลอดเวลา แถมยังบอกว่าอยากจะทำวิจัยทางด้านหุ่นยนต์ แต่ด้วยความเราไม่ได้ทำทางด้านนี้ ก็เลยบอกไปว่าถ้าเปลี่ยนเรื่องมาทาง machine learning หรือ pattern recognition ก็จะรับ ไม่อย่างนั้นก็คงจะรับไม่ได้เพราะไม่ถนัด ไม่อยากรับนักศึกษาแล้วทิ้งๆ ขว้างๆ สุดท้ายคุยเรื่องหัวข้อคร่าวๆ ได้ ก็เลยมีนักศึกษาปริญญาโทคนแรก
ตอนแรกก็ลุ่มๆ ดอนๆ ไปหมด ไอ้เราก็ไม่รู้ระเบียบอะไรซักอย่าง ต้องยื่นเอกสารอะไร จะลงทะเบียนยังไง แม้กระทั่งจะเรียนอะไรบ้าง จะจบยังไงก็ยังไม่รู้ สุดท้ายก็ได้หลายๆ คนช่วย ทำให้ทุกอย่างเรียบร้อย แม้ว่าจะช้าจนเกือบเลยเวลาที่กำหนด เสร็จแล้วก็ให้เวลาเขาหนึ่งเทอม ตั้งใจเรียนวิชาบังคับทั้งสองวิชาให้ดีที่สุด บอกไปว่าต้องเรียนให้ผ่านในเทอมเดียว อันนี้เลียนแบบอาจารย์มา ตอนไปญี่ปุ่นใหม่ๆ เจอแกครั้งแรกแกก็บอกว่าให้เรียนภาษาญี่ปุ่นให้มากที่สุด (แต่ก็สำทับว่า ถ้าว่างก็อ่านหนังสือ AI ไปพลางๆ ด้วยนะ) จำได้ว่าพอได้ยินอย่างนั้นก็โล่งใจขึ้น มีเวลาไปเรียนหนังสือ มีเวลาปรับตัวให้เข้ากับสิ่งแวดล้อมใหม่ๆ ได้ดีขึ้น ก็เลยคิดว่าเขาก็น่าจะคิดเช่นเดียวกับเรา สุดท้ายเทอมแรกก็ผ่านไปได้ด้วยดี
เทอมที่สองก็เริ่มทำงานวิจัยอย่างจริงจัง แต่ด้วยความที่เขาจบวิศวะไฟฟ้ามา ทำให้ไม่มีทักษะทางการเขียนโปรแกรมมากนัก ใช้แต่ Matlab เป็นหลัก สุดท้ายเลยต้องช่วยเริ่มโปรแกรมไปเยอะพอสมควร แต่หลังๆ ก็เห็นปรับตัว แล้วก็ทำหลายๆ อย่างได้ดี แต่สุดท้ายก็ยังไม่ทิ้ง Matlab เรื่องนี้ก็ขู่ไว้เหมือนกัน ว่าถ้าอยากใช้ Matlab ก็ได้ แต่คงช่วยอะไรไม่ได้เพราะใช้ไม่เป็น และไม่คิดจะใช้ (เพราะมันรันบนวินโดวส์) ข้อดีของนักศึกษาคนนี้ก็คือความตั้งใจ และความขยัน ไม่ว่าจะให้อะไรไปอ่าน หรือให้อะไรไปทำ หรือบอกให้ปรับปรุงอะไร ก็ทำได้เร็วทันใจมาก เรียกว่าคนให้งานยังไม่ทันตั้งตัว งานก็เสร็จแล้ว เจอกันบ่อยมาก อาทิตย์ละหลายๆ หน จนเรายังเบื่อเลย เพราะบางทีก็ติดงานอย่างอื่นอยู่ แต่ถ้าเห็นมาด่อมๆ มองๆ อยู่หน้าห้อง ก็ต้องเปลี่ยนโหมดมาคุยงานวิจัยแหละ แถมหลังๆ มีการพัฒนาขึ้น ก็พอให้ไอเดียบางอย่างไป ก็สามารถสานต่อได้ดี ริเริ่มทุกอย่างได้เอง แม้ว่ามันอาจจะไม่ใช่ทฤษฎี หรือวิธีการที่สวยหรูนัก แต่มันก็ทำงานได้ อาจารย์ที่นี่ท่านหนึ่งเรียกว่า “กินนอนอยู่กับมัน” ซึ่งเราก็เห็นด้วย เพราะคุณจะเรียนจบบัณฑิตศึกษาแบบนี้ได้ คุณก็ต้องกินนอนอยู่กับมัน อาจารย์ที่ปรึกษาเป็นแค่คนคอยกระตุ้น คอยตบๆ ให้เดินไปได้ ให้เดินไปแล้วพอมองเห็นอนาคต เท่าที่ประสบการณ์ของอาจารย์แต่ละคนจะมี แต่สุดท้ายคนที่ต้องรู้งานวิจัยนั้นดีที่สุดก็คือนักศึกษาไม่ใช่อาจารย์
ในด้านบุคลิกภาพก็ดีขึ้น อาจจะเป็นเพราะสนิทกันมากขึ้น เริ่มเข้าใจวิธีการพูดของเขา (อย่างน้อยก็ต้องใช้เวลานานเหมือนกัน กว่าจะชินภาษาอังกฤษสำเนียงเนปาล) แต่ว่าจะมีปัญหา ที่เป็นคนลักษณะแบบแขก แบบที่คนไทยไม่ชอบเต็มๆ คือไม่ยอมเสียผลประโยชน์แม้แต่นิดเดียว หรือจะต้องซักถามไว้ก่อน ถ้ารู้สึกว่าอะไรไม่สมเหตุสมผล (ดูเหมือนว่าจะเปิดศึกกับเขาไปทั่วเหมือนกัน เรื่องนี้เลขาคงรู้ดี) ซึ่งจริงๆ ก็เป็นเรื่องดีนะ เราควรจะรู้เหตุผลของสิ่งที่เราจะทำ แต่สำหรับคนรับฟัง บางทีอาจจะรำคาญ และอาจจะรุนแรงเกินไปเหมือนกัน ก็ต้องไปพยายามไกล่เกลี่ยหลายหน
แต่เรื่องที่ยอมรับไม่ได้ก็คือ วิธีการตอบคำถามกรรมการวิทยานิพนธ์ เวลาที่ต้องเสนอความก้าวหน้าของงานวิจัย จำได้ว่าครั้งแรก (ที่นี่ต้องเสนอความก้าวหน้าทุกภาคการศึกษา) เป็นเรื่องที่แย่มากๆ แม้ว่า defence จะแปลว่าการป้องกันตัว คือพยายามรักษาจุดยืน และความชอบธรรมทางทฤษฎีของสิ่งที่เรากำลังทำอยู่ แต่การ defence แบบตอบโต้ทุกกรณี ชิงตอบคำถามก่อนในขณะที่กรรมการยังถามไม่ทันจบ แล้วก็ตอบคำถามแบบว่าฉันรู้ดีในขณะที่กรรมการพยายามจะช่วยเสนอไอเดีย เป็นสิ่งที่แย่มาก ซึ่งเราก็ผิดเองที่ไม่ได้สอนเรื่องนี้ก่อน เพราะตัวเองเป็นพวกไม่ค่อยมีจุดยีน (แหะๆ) ไม่ค่อยพยายามต่อสู้ป้องกันตัวเองเท่าไร จนอาจารย์ต้องสอนว่าให้มั่นใจตัวเองไว้ งานเราดีแล้ว อย่าไปหลงตามกรรมการคนอื่นมากนัก สุดท้ายวันนั้นเลยต้องคุยต้องสอนกันยกใหญ่ อย่างแรกคือฟังคำถามให้จบก่อน คิดให้ดีแล้วค่อยตอบ อย่ารีบตอบเพียงเพื่อให้ได้ตอบ เพราะมันจะไม่ได้อะไร กรรมการก็จะไม่เข้าใจคำตอบ แล้วก็จะถามซ้ำอีก สุดท้ายก็วนไปวนมาอยู่อย่างนี้ แล้วมันก็ไม่จบ อีกอย่างหนึ่งก็คือควรจะยอมรับความเห็นกรรมการด้วย ถ้าเห็นว่ามันเป็นความคิดที่ดี แต่ก็ไม่จำเป็นต้องรับทั้งหมด หลังๆ ค่อยโล่งใจหน่อย ว่าสามารถ defence ได้เป็นระบบมากขึ้น
สุดท้ายที่เขียนมายาว ก็เพราะอยากจะเก็บไว้เป็นความทรงจำที่ดีของตัวเอง แม้จะมีความทุกข์ มีปัญหาบ้าง แต่มันก็ผ่านไปได้ด้วยดี แต่ตอนนี้ก็ยังรู้สึกว่ายังเป็นอาจารย์ที่ปรึกษาได้ไม่ดีนัก และการเป็นอาจารย์ที่ปรึกษาที่ดีเป็นเรื่องที่ยากมากๆ เพราะนักศึกษาแต่ละคนมีลักษณะ และมีพฤติกรรมไม่เหมือนกัน คงต้องพยายามกันต่อไป แต่นับวันก็ยิ่งชอบระบบการจัดศึกษาแบบนี้ เพราะเหมือนกับเป็นตัวเองศิลปิน ที่สร้างนักวิจัยโดยค่อยๆ ปั้น ค่อยๆ ปรับเป็นคนๆ ไป และที่นี่ก็มีข้อดีที่เราอยู่กันเป็นกลุ่ม มีอาจารย์รุ่นพี่ และอาจารย์คนอื่นๆ คอยช่วยเสริมในสิ่งที่ขาด คอยเตือนว่าเราควรทำอะไร ดูเหมือนข้างนอก เขาก็อยากได้แบบ mass production นะ แต่เราก็ยังเชื่อว่าเราไม่สามารถผลิตนักวิจัยที่ดีแบบนั้นได้
research, teacher
research, teaching
Recent Comments