27 October 2006

C Compiler สำหรับ PIC

ช่วงนี้เตรียมสอนแล็บใหม่เทอมหน้า ซึ่งต้องยุ่งเกี่ยวกับไมโครคอนโทรลเลอร์ที่ชื่อว่า PIC ขอจดไว้ก่อนว่ามีคอมไพเลอร์ภาษาซี ชื่อ BoostC เป็น ANSI C ไม่มีไวยากรณ์ประหลาดๆ ให้ยุ่งยากใจ นอกจากนี้ยังใจดีให้ใช้รุ่นจำกัดฟรีอีกด้วย ซึ่งจะมีข้อจำกัดเกี่ยวกับการใช้หน่วยความจำพอสมควร แต่แค่เรียนแล็บก็คงพอแล้วล่ะ ยังไม่ต้องซื้อ

Presentation

ช่วงนี้ปิดเทอม มีเวลาว่างเยอะขึ้น จึงเป็นโอกาสอันดีที่จะเตรียมการสอนสำหรับเทอมหน้าไว้ก่อน เพราะเปิดเทอมแล้วจะมีเวลาเตรียมน้อยลง ยิ่งเตรียมแบบอาทิตย์ต่ออาทิตย์ ก็จะไม่ได้เอกสารหรือสไลด์ประกอบการสอนที่ดีนัก ที่นี้ก่อนจะเตรียมการสอนก็ไปลองหาดูก่อนว่าจะใช้โปรแกรมอะไรทำสไลด์ดี ปัญหาที่สำคัญที่ทำให้ไม่ชอบใช้โปรแกรมสร้าง Presentation สำเร็จรูปอย่าง MS Powerpoint หรือ Apple Keynote ก็คือ สไลด์สำหรับการสอนวิชาทางคอมพิวเตอร์นั้น จะต้องมีสมการคณิตศาสตร์อยู่ที่เป็นจำนวนมาก ซึ่งโปรแกรมส่วนใหญ่จะไม่ได้สนับสนุนอย่างเต็มที่ เช่น จะต้องใช้โปรแกรมต่างหากในการพิมพ์สมการ (MS Office เตรียมมาให้แล้ว ส่วน Keynote ก็ต้องใช้โปรแกรมสร้างสมการจาก LaTeX เช่น LaTeXiT) เสร็จแล้วค่อยตัดเข้ามาแปะในสไลด์อีกที แถมบางครั้งก็ต้องเว้นที่ไว้ เพื่อให้แปะสมการลงในข้อความได้พอดี แต่ก็ยังมีปัญหาอยู่ เช่น ถ้าเปลี่ยนขนาดสไลด์ก็ต้องมาขยับพวกสมการใหม่หมด ทำให้เสียเวลาและแรงงานมาก

เทอมที่ผ่านมาก็เลยเปลี่ยนมาใช้ LaTeX (beamer -- คนเยอรมันมักจะใช้คำนี้เรียก projector ได้ยินครั้งแรกเล่นเอางง) ทำสไลด์ประกอบการสอนซึ่งทำให้ทำงานง่ายขึ้นเยอะ เพราะสามารถแทรกสมการเข้าไปในข้อความได้เลย สมการที่ได้ก็หน้าตาดีกว่า Equation Editor ที่มากับ MS Office เยอะ แต่จุดอ่อนของ beamer ก็คือ ปรับแต่งหน้าตาสไลด์ยาก หรือถ้าต้องการใส่อะไรแปลกๆ ลงไป ก็ต้องเสียเวลาไปหา package อื่นๆ ของ LaTeX มาลงเพิ่ม คราวนี้เปิดเทอมใหม่ก็เลยคิดจะหาวิธีการทำสไลด์แบบใหม่

อันแรกที่เจอคือ ConTeXt ซึ่งเป็น macro สำหรับ TeX เช่นเดียวกับ LaTeX แต่ต่างตรงที่ ConTeXt เน้นที่ความสะดวกในการปรับแต่งเอกสาร คือ ไม่ได้แยกส่วนจัดการหน้าตาเอกสารออกเป็น style file แบบ LaTeX แถมยังมีคำสั่งพื้่นฐานเพื่อปรับแต่งทุกๆ ส่วนได้ง่าย ทำให้เหมาะกับการเขียนเอกสารที่ไม่ได้มีรูปแบบที่กำหนดไว้แล้วเหมือน LaTeX ผู้ใช้สามารถเปลี่ยนแปลงหน้าตาได้ไม่ยาก ฉะนั้นเราจึงสามารถปรับ ConTeXt ให้เหมาะสำหรับสร้างสไลด์ได้ไม่ยากมากนัก แต่ข้อเสียของ ConTeXt คือยังมีกลุ่มผู้ใช้น้อย เอกสารหรือเว็บที่เกี่ยวข้องก็ยังไม่เยอะ และปัญหาหลักก็คือคำสั่งคล้ายกับ LaTeX เยอะเกินไป ทำให้สับสนง่าย โดยเฉพาะเวลาที่ยังไม่ชิน บวกกับการที่ ConTeXt ไม่ได้มี package ที่ออกแบบมาเพื่อการทำสไลด์โดยเฉพาะ ทำให้ขาดฟีเจอร์หลายๆ อย่าง สุดท้ายเลยตัดสินใจที่จะยังไม่ใช้

ต่อมาก็เริ่มหันมาทาง html เพิ่งไปเจอว่ามีคนทำ stylesheet และ javascript สำหรับการนำเสนองานโดยเฉพาะชื่อ S5 เท่าที่ดูก็น่าสนใจ แต่ติดปัญหาเดิมคือสมการคณิตศาสตร์ ถึงแม้ว่าตอนนี้ firefox/mozilla จะสนับสนุน mathml แล้ว แต่ภาษามันดูยุ่งยากชอบกล แถมยังมี bug อยู่บางกับเวอร์ชันบน Mac

สุดท้ายกลับไปตายรัง ขอใช้ beamer ต่อไปอีกเทอมหนึ่งก่อนละกัน

BonEcho Thai บน OS X

เห็น BonEcho หรือ Firefox 2.0 ออกมาแล้ว พี่ฮุ้ยก็ทำรุ่นตัดคำไทยสำหรับ Windows มาแล้ว แต่ยังไม่เห็นมีใครช่วยทำรุ่นสำหรับ OS X ออกมา เมื่อคืนว่างๆ เลยลองคอมไพล์ดูเอง โดยเอา patch cttex ของพี่ฮุ้ยมาใช้ เพิ่งเคยคอมไพล์ Firefox บน OS X เป็นครั้งแรก ไม่ค่อยยุ่งยากเท่าไหร่ แต่ต้องลงไลบรารี่บางส่วนเพิ่มโดยผ่าน fink ตอนแรกด้วยความที่ไม่เข้าใจ ทำให้ได้ binary เฉพาะ PowerPC (ใช้เวลาชั่วโมงกว่าๆ) เสร็จแล้วไปเจอเอกสารเกี่ยวกับวิธีสร้าง universal binary เลยลองคอมไพล์ใหม่ รอไปหนึ่งคืน ก็ได้ universal binary มา ตอนนี้เอาไปวางไว้ที่นี่ เผื่อใครสนใจก็เชิญโหลดได้

ทดสอบ

ทดสอบโพสต์ ด้วยความขี้เกียจรอให้ google ยอมให้เปลี่ยนมาใช้ Blogger beta ตอนนี้เลยเลิกอันเก่า เปลี่ยนมาใช้ beta.blogger.com ไปก่อนเลย

Bon Echo Thai on OS X

ด้วยความที่อยากใช้ Bon Echo หรือ Firefox 2.0 บน OS X แบบที่ตัดคำไทยได้ แต่ยังไม่เห็นมีใครคอมไพล์มาแจก เมื่อคืนว่างๆ เลยลองคอมไพล์ดูเอง โดยใช้ patch cttex ที่พี่ฮุ้ยทำไว้ ตอนแรกทำได้แค่ binary เฉพาะ PowerPC ต่อมาไปเจอเอกสารเกี่ยวกับวิธีสร้าง universal binary ที่ http://developer.mozilla.org/en/docs/Mac_OS_X_Universal_Binaries เลยลองคอมไพล์ใหม่ รอหนึ่งคืนได้ universal binary ออกมา เอาไปวางไว้ที่ http://ict.siit.tu.ac.th/bonecho/firefox-2.0.en-US.mac.dmg เผื่อว่าใครสนใจจะเอาไปใช้บ้างก็เชิญครับ

ส่วน Firefox เวอร์ชันใหม่ เท่าที่ลองใช้ดู ก็ไม่ต่างจากเดิมเท่าไหร่ หน้าตาแตกต่างจากเดิมไปนิดหน่อย ยังไม่ได้ลองใช้ฟังก์ชันใหม่ๆ ตอนนี้เจออย่างเดียวคือระบบจัดการ tab ดูจะดีขึ้น