0

ย้าย

ย้ายไปที่ http://blog.vee-u.com นะครับ. จะได้ใช้ OpenID login มา comment ได้ :-D. ขออภัยด้วยที่ย้ายไปย้ายมาบ่อยๆ. แต่ว่าใช้ vee-u.com แล้วคงไม่ต้องย้ายบ่อยละ ลงโปรแกรมใหม่เอา.

เพิ่มเติม (15/2/2551): ตอนนี้ blog.vee-u.com กับ openil.wordpress.com กลายเป็นที่เดียวกันแล้ว.

3

ประทับใจ Drupal

วันนี้ลองเล่น drupal ดู ติดตั้งง่าย แถมมี feature ที่ต้องการอีกเพียบ

  • Translation: เราสามารถเขียน 2 entry ที่ เป็นคำแปลของกันและกัน ถ้าใครอยากอ่านภาษาไทยก็ click ไปอ่านได้. อยากอ่านภาษาอังกฤษก็ click ไปอ่านได้  ตัวอย่าง. ทำให้ชาวบ้านที่ไม่ได้อ่านภาษาไทยอ่านได้ คนที่อ่านภาษาไทยได้ก็ได้อ่าน โดยไม่ต้องมาเขียนปนๆกันใน blog entry เดียวให้วุ่นวาย. หรือต้องมาทำ link เองละหว่าง entry ให้งง.
  • มี comment alert (wordpress ก็มี) ทั้งแบบ mail และ rss
  • support OpenID แบบมาใน package หลักเลย ใน version 6beta :-P
0

Junit4 @expect in Python

เวลาจะ test ว่าอยากให้ function ที่เราเรียนมัน raise exception  ตามที่เราต้องการหรือเปล่า ถ้าเป็น JUnit เราก็ใส่อะไรประมาณข้างล่างได้ (แค่ประมาณอาจจะเขียนไม่ถูก)

@expect(IOException)

void testFoo() {

….

}

แต่ว่าพอมาเป็น Python จะทำอย่างไร จากคำแนะนำจากคุณสุกรีที่ codenone ก็ได้แบบนี้ออกมา

def expect(expr):
    def decorator(f):
        def wrapper(*__args, **__kw):
            try:
                f()
                assert False
            except Exception, (e):
                assert type(e) != type(expr)

        return wrapper
    return decorator

@expect(RuntimeError)
def func1():
    raise Exception

func1()

เขียนแยกๆ ดิบดี พอเอาไปใช้กับ nose จริงๆ เจ๊ง -_-!.

0

ปัญหา libthai บน mac os x

ผมพยายามจะลง libthai จะลง libthai ได้ ก็ต้องลง datrie ก่อน. แต่ลงไปแล้วก็ติดเหมือนจะติดที่คำสั่ง nmedit ท่าน่าจะเป็นลงพวงมาจาก Makefile.am ที่มี option ของ library ที่ดูแปลกๆนิดๆ

libdatrie_la_LDFLAGS =  -no-undefined \
        -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
        -export-symbols $(srcdir)/libdatrie.def

ให้เดาก็อาจจะมาจากว่า autoconf หรือ automake ไม่แน่ใจ อาจจะ generate อะไรออกมาแล้วไม่เหมาะกับ mac os x ก็ได้ (แค่สมมุติฐาน). อย่างไรก็ตามผมก็ได้แจ้งไปใน thai foss/linux group ละ.

ทีแรกว่าจะลอง libthai4r (Ruby libthai binding) ซะหน่อย. แต่แค่ build datrie ก็จอดซะละ -_-.

0

เมื่อ Mac OS X บูทไม่ขึ้น

ปกติถ้าใช้ Debian เวลาบูทไม่ขึ้นก็พอจะดูจาก error message ได้ว่าเกิดอะไรขึ้น ในกรณีที่ไม่มี splash screen. ใน Mac OS X เวลาบูทส่วนมากจะเห็นแต่รูป apple แหว่ง เวลาไปค้างก็ไม่รู้ไปค้างที่ไหน. อย่างไรก็ตามเรามีท่าแก้ให้ Mac OS X บูทแบบเห็น message ต่างๆนานาได้ โดยการกด command + v ค้างไว้เวลาบูท เท่านี้ก็จะเห็นอะไรออกมาคล้ายตอน Debian หรือ NetBSD บูทแล้ว. สำหรับเครื่องผมมันไม่ขึ้นเพราะ file system เจ๋ง และก็มีข้อความขึ้นมาบอกว่าให้รัน fsck ด้วยมือ แต่บูทก็ไม่ขึ้นจะมารัน fsck ได้ไงอะ.  ผมก็เลยไป search Google ก็เจอเว็บนี้. เขาบอกว่าให้รับ fsck จาก single mode. ส่วนการจะเข้า single mode เวลาบูทก็ให้กด command + s ค้างไว้. ผมลองทำตามก็ปรากฎว่าเข้ามาที่ shell ได้จริงๆ ก็สั่ง fsck -fy ตามคำแนะนำต่อ และรอไปอีกพักใหญ่ fsck ก็ทำงานเสร็จ ผมก็สั่ง reboot ก็พบว่า Mac OS X กับมาใช้ได้เหมือนเดิม.

สาเหตุการเจ๊งครั้งนี้น่าจะมาจากการที่เครื่องค้าง งงๆเหมือนกันว่าทำไมค้าง แต่ก็ใช้มานานแล้วอะนะจะรวนบ้างก็ไม่แปลก. ผมก็กดปิดแล้ว แต่ว่า file system ที่ผมใช้คือ UFS ที่ไม่ใช่ Journaling file system แบบ Ext3 หรือว่า HFS+ (ของ Mac OS X) เอง. แต่ก็ใช้ UFS เพราะว่าใช้ OS อื่นๆที่ไม่ใช่ Mac OS X มาอ่าน partition ได้. นี่ก็น่าจะเป็นสาเหตุที่ทำให้ file system เจ๊ง

0

IIS

ผมเขียนโปรแกรมสร้าง web feed ด้วย PHP เป็นอันเสร็จเรียบร้อย.  แผนที่คิดไว้คือเอา Apache ลงด้วยแต่ย้ายไป port 8080 แล้ว จากนั้นก็ใช้ IIS ทำ Proxy เอา. แต่หลังจากลองไปจิ้มๆ Windows ดู เขียน PHP พื้นๆเอาใหม่ดีกว่า นั่งแก้ configuration ของ IIS :-P.

0

Mac OS X กับ Ubuntu

เพื่อนๆมักจะถามอยู่เสมอว่า Apple Macintosh (Mac) มีอะไรดี. เบื้องหลัง platform ต่างๆก็มักจะมี zealot สนับสนุนอยู่เสมอๆ ไม่ว่าจะเป็นระบบไหนๆ ไม่ว่า Mac Ubuntu และ Windows. ผมก็อาจจะเป็น zealot อีกคนหนึ่งเหมือนกันเพราะแอบชอบ Mac มาร่วม 10 ปี จนมีเล่นเป็นของตัวเองได้ 2-3 ปีนี่เอง. มีใช้แล้วก็ชอบใจ เล่นแล้วก็ติดงอมแงม. เรื่องนี้ผมก็พยายามจะเขียนอธิบายว่าทำไมชอบ Mac OS X เมื่อเทียบกับ Ubuntu. ทั้งที่มีหลายอย่างที่ผมชอบ Ubuntu มากกว่า Mac OS X แต่ผมก็จะยังไม่เขียน.

  • Sleep – จริงๆแล้วเครื่องที่ใช้ Ubuntu ก็ sleep ได้ แต่ว่าเท่าที่พบ batt ก็หมดเร็วมาก. หรือว่า Hibernate ก็ได้ แต่ว่าหลังจากทีเปิดใช้อีกที ก็มักจะมีอาการรวนๆ. เครื่อง Mac เก่าๆอย่าง iBook ที่ลง Mac OS X ไว้ปกติแล้ว Hibernate ไม่ได้ ได้แต่ sleep แต่ว่ามันก็ sleep ได้นานพอสมควร มีไฟแสดงชัดเจนว่ากำลัง sleep อันนี้อาจจะเป็นข้อได้เปรียบของการขายพ่วง Hardware + Software. พอ sleep แล้วปลุกให้มันตื่นขึ้นมาแทบไม่พบอาการรวนเลย. ยกเว้นตอน harddisk เจ๊งนะ.
  • การจัดการหน้าต่าง – mac os x สามารถเลือกย่อหน้าต่างของ application เดียวกัน หรือหน้าต่างทั้งหมด ให้อยู่ในหน้าจอเดียวกันแล้วเลือกใช้แต่ละหน้าต่างได้. ความสามารถแบบนี้ Compiz ก็ทำได้เหมือนกัน แต่ว่าใช้ Compiz แล้วก็เวียนหัว อาจจะต้องมีการปรับแต่งอีกสักเล็กน้อย.
  • การค้นหาเอกสารในเครื่อง – บน Mac OS X มี Spotlight ทำให้คนหาเอกสารในเครื่องได้รวดเร็วเพราะทำ Index ไว้ก่อน. จริงๆแล้ว Ubuntu ก็ทำอีกเหมือนกัน อาจจะดีด้วยแต่ผมก็ยังไม่เคยลอง :-P.

เรื่อง development tools ก็อาจจะพอเอามาเปรียบเทียบกันได้ แต่ว่าเอาไว้ก่อนแล้วกัน เขียนมากเกินไปจะผสมปนเปกันเปล่าๆ. ตามความเห็นของผม Ubuntu และ​ Mac OS X มีอะไรที่คล้ายกันมากขึ้นเรื่อยๆ เช่น การใช้ sudo แกมบังคับ แต่ผมก็ไม่รู้เหมือนกันว่าใครทำก่อน. แม้แต่ icon ที่ใช้รอที่กลมๆแล้วมีอะไรหมุนๆก็หน้าตาเหมือนกันอย่างกับแกะ. มากไปกว่านั้นโปรแกรมที่หลายคนพิจารณ์มาตลอดว่ามี user interface ที่ใช้ยากเย็นอย่าง Gimp ก็มีคนออกแบบใหม่. ทำให้ผมคิดว่าชุมชนนักพัฒนาของ Linux, Gnome และโครงการซอฟต์แวร์เสรีอื่นๆก็คงทราบจุดเด่นจุดด้อยของโปรแกรมที่ตนเองร่วมพัฒนาอยู่เทียบกับระบบอื่นๆอย่างชัดเจนมานานแล้ว. ตั้งแต่อดีตถึงปัจจุบัน โครงการอย่าง Gnome ก็แสดงให้เห็นแล้วว่า มันน่าใช้ขึ้นทุกวันทุกวัน. ในอนาคตผมก็เชื่อว่าความชื่นชอบ user interface ของ Gnome กับ Mac OS X (ของผม) ก็น่าจะใกล้เคียงกันขึ้นเรื่อยๆ. ส่วนเรื่อง sleep และ hibernate ก็คงต้องพึ่ง Linux? หรือว่าต้องพึ่ง Hardware?