ComBioLaw.De » Blog » เขียนโปรแกรม
การเขียนโมดูลสำหรับ Python ด้วย Pyrex และ F2Py บน Windows
วันนี้เลยเอาเรื่องเก่ามาเล่าใหม่ นั่นก็คือ การเขียนโมดูลสำหรับ Python ด้วย Pyrex และ F2Py ซึ่งผมเคยเขียนไปแล้วใน เพิ่มความเร็วให้ Python ตอน 1 , ตอน 2 และ ตอน 3 แต่วิธีการต่าง ๆ ที่ผมเขียนในทั้งสามตอนนั้น ผมได้ทดลองใช้บนระบบปฏิบัติการ GNU/Linux เท่านั้น แต่ไม่เคยประสบความสำเร็จในการทดลองใช้บน Windows เลย ปัญหาที่ผมพบคือ ไม่มีคอมไพล์เลอร์ที่เหมาะสม ในการคอมไพล์โมดูล จริง ๆ บน Windows มีคอมไพล์เลอร์ ให้เลือกใช้งานมากมาย แต่ปัญหามีอยู่ว่า คอมไพล์เลอร์ส่วนใหญ่ ไม่ฟรี หรือหยุดพัฒนาไปนานแล้ว คอมไพเลอร์ที่น่าสนใจที่สุดก็เห็นจะเป็น MinGW แต่เนื่องจากผมยังใช้ MinGW ไม่คล่อง และผมไม่เข้าใจ Command Line ของ Windows XP เท่าไร (เพิ่งรู้เหมือนกันว่ามันต่างกับ DOS ที่ผมรู้จักพอสมควร) ทำให้ผมไม่เคยประสบความสำเร็จในการคอมไพล์ Pyrex กับ F2Py บน Windows เลย แต่เมื่อสถานการณ์มันบีบบังคับ ก็คงไม่มีอะไรยากเกินไป :P .... |
19 Aug 07 | by bow_der_kleine | tags เขียนโปรแกรม Python Pyrex F2Py Windows CygWin NumPy
โจทย์การเขียนโปรแกรมที่เปลี่ยนไป
ผมแนะนำว่าควรเข้าไปอ่านบทความนี้ด้วยตัวเอง แต่หากจะให้ผมสรุปแบบรวบรัดตัดตอน ก็พอจะสรุปแบบรวบรัดตัดตอนได้ว่า สิ่งสำคัญที่สุดสำหรับการพัฒนาโปรแกรม ไม่ใช่ความสามารถอันเหนือชั้นของโปรแกรม (features) แต่เป็นความง่ายในการใช้งาน และความยืดหยุ่นของโปรแกรม ที่สามารถนำมาปรับเปลี่ยน พัฒนาต่อยอดได้ภายหลัง เมื่อผู้ใช้ต้องการ แม้ว่าหลักการนี้ ไม่ได้เป็นหลักการที่ใหม่อะไร โดยเฉพาะ การเพิ่ม usability ลด features ก็ไปพ้องกับหลัก Just work ของ Apple เนื่องจากผมไม่มีเครื่อง Apple ให้ใช้งาน ผมเลยบอกไม่ได้ว่าโปรแกรมแบบ Just work ของ Apple มันเวิร์คจริง ๆ หรือเปล่า แต่ Just work ของ Gnome ซึ่งไปลอก Apple มานั้น สำหรับผมแล้ว มันไม่ค่อยเวิร์ค เพราะสิ่งที่ขาดไปคือความยืดหยุ่น โปรแกรมที่มีให้ใช้ ได้ถูกพิพากษามาเรียบร้อยแล้ว ว่าคนใช้ต้องการอะไร ไม่ต้องการอะไร ความสามารถบางอย่างที่โปรแกรมมีอยู่ ถูกซ่อนลึกจนเข้าไม่ถึง ดังนั้น Just work เพียงอย่างเดียวคงไม่พอ มันต้องยืดหยุ่นด้วย หรือในทางกลับกัน ... |
28 Jul 07 | by bow_der_kleine | tags ไอที เขียนโปรแกรม Joomla Wordpress Drupal CMS Usability Flexibility Extensibility
Simulation : หวยใต้ดิน vs ไฮโล
มีโจทย์หนึ่งข้อ ที่ยากมาก ๆ แม้แต่ Prof. เองก็ยอมแพ้ แต่ก็ไม่ได้ออกมาเป็นข้อสอบ เพื่อแกล้งเด็ก นั่นก็คือ ต้องซื้อ Lotto (หวยเยอรมัน) อย่างน้อยเท่าไร และซื้ออย่างไรถึงจะถูกรางวัล หากวิธีการเล่น Lotto ง่ายเหมือนหวยบ้านเรา โจทย์ข้อนี้คงขาดความท้าทาย แต่ให้ตายเหอะ หวยเยอรมันมันซับซ้อนมากมาย จนวันนี้ผมก็ยังงง ๆ อยู่ว่ามันเล่นยังไง เลยกลายเป็นว่าโจทย์ข้อนี้จึงเป็นโจทย์คลาสสิก สำหรับวิชา combinatorics ไป ปกติแล้ว เวลาจะดูว่าการพนันแบบไหน น่าเล่นกว่ากัน จะไม่ได้ดูแค่ความน่าจะเป็นอย่างเดียว ต้องดูค่า expectation ด้วย เวลาคำนวนก็ยากน่าดู เพราะเราไม่รู้ว่า PDF (probability density function) ของการพนันนั้น ๆ เป็นอย่างไร ด้วยความที่ผมเป็นวิศกรผู้ขี้เกียจ เลยใช้วิธี simulation เอา โดยผมได้นำการพนัน ที่นิยมเล่นที่สุดของคนไทยสองอย่าง นำมาเปรียบเทียบกัน นั่นก็คือ หวยใต้ดิน กับ ไฮโล ซึ่งผลการ Simulation เป็นดังนี้ ... |
23 Jul 07 | by bow_der_kleine | tags เขียนโปรแกรม Python การพนัน หวยใต้ดิน ไฮโล
Data interpolation with SciPy
Interpolation นั้นเป็นศาสตร์ และศิลป์ทางคณิตศาสตร์ที่น่าสนใจมากอย่างนึงครับ และสามารถนำไปใช้ประโยชน์ได้มากมาย ไม่ว่าจะเป็นเรื่องของ Signal-Processing, Image-Processing, 3D-Animation, การทำนายค่าบางอย่างล่วงหน้า โดยใช้ข้อมูลที่มีอยู่ เป็นต้น ซึ่งผมเองก็ต้องเรียนในมหาวิทยาลัย แต่เนื่องจาก Prof. ที่สอน สอนได้ขำมาก ๆ เลยฟังโจ้กที่แกเล่าจนลืมเรื่องเรียน เนื้อหาที่ผมจะเขียนเกี่ยวกับ Interpolation จึงขาด ๆ แต่ไม่ค่อยเกินไปบ้าง ก็ขออภัยครับ หัวใจสำคัญของ Interpolation คือ การทำข้อมูลที่เป็น discrete (ข้อมูลเฉพาะจุด) ให้เป็นข้อมูลที่ continue (ข้อมูลต่อเนื่อง) โดยการหาฟังก์ชั่นที่มีคุณสมบัติคล้ายกับข้อมูลที่เรามีอยู่ให้มากที่สุด Interpolation ในวิชาคณิตศาสตร์นั้น มีด้วยกันมากมายหลายวิธี แต่ที่นิยมที่สุด เห็นจะเป็น Polynom-Interpolation และ Spline-Interpolation ... |
08 Jul 07 | by bow_der_kleine | tags เขียนโปรแกรม Python Scipy Mathematic Data-Interpolation Signal-Processing Image-Processing
OpenOffice Document Convertor Interface for Python
12 Jun 07 | by bow_der_kleine | tags เขียนโปรแกรม ไอที Python ODF OpenOffice UNO
ช่วงนี้จะเห็นได้ว่า BioLawCom.De ไม่ค่อยมีผลงานเป็นชิ้นเป็นอัน สาเหตุนั้นคือหล่มปลักแห่งภาระหน้าที่ ที่พวกผมทั้งสามคนต้องควบคุมตัวเอง ให้หันมาสนใจเรื่องการเรียนบ้าง หลังจากปล่อยปละละเลยมาพอสมควร :P อีกทั้งคอมพิวเตอร์คุณเช ฯ ก็เสีย ที่ทำงานผมใช้อินเตอร์เนตไม่ได้ ทำให้พวกผมรู้ว่า ปัจจุบันพวกเราเอาอิสรภาพของตนเอง ไปผูกติดกับเทคโนโลยีมากมายเพียงใด ส่วนเฮียชาร์ ก็ได้รับหน้าที่จากท่านปรมาจารย์เพิ่มเติม ในการดูแลห้องทดลอง และสอนนักศึกษา ผลเลยเป็นอย่างที่เห็น

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