Archive for the ‘Note for Self’ tag
Portfile Patchfile Patching 3 comments
ช่วงนี้กำลังนั่งเล่นกับ Apache CouchDB สำหรับใช้ในโปรเจคถัดไป อ่านวิธีการทำงานของมันแล้วรู้สึกค่อนข้างชอบพอสมควร ถึงแม้ในขณะนี้มันยัง “ไม่สมบูรณ์” และ “ไม่มีการ optimize ใดๆ” แต่การใช้งานโดยทั่วไปน่าจะเรียกได้ว่าเร็วพอควร แต่เอนทรี่นี้ไม่ได้มาสาธยาย CouchDB …
ปัญหามันมีอยู่ว่า หลังจากลง CouchDB ผ่านทาง MacPorts เรียบร้อยแล้ว ก็พบว่าไม่สามารถเข้าไปยัง Futon ที่เป็น Web Interface สำหรับดูแลข้อมูลในฐานข้อมูลได้ ก็เลยลองโพสถามใน couchdb-user ดู แล้วก็ได้คำตอบว่าเป็นเพราะบั๊กตัวหนึ่งของ Erlang (ภาษาที่ CouchDB ใช้เขียน)
บั๊กตัวนี้มีอยู่ว่า (เดาเอา เขียน Erlang ไม่เป็น) คำสั่ง calendar:localtime_to_universaltime จะไปเรียก mktime() โดยมีค่า is_dst เป็น True ซึ่งพออยู่ในเขตที่ไม่มี DST แล้ว mktime() จะคืนค่าออกมาเป็น -1 ทำให้ calendar:local_time_to_universal_time_dst ที่รับค่าจาก localtime_to_universaltime อีกต่อ จะได้ {{1969, 12, 31}, {23, 59, 59}} ไป ซึ่งเป็นเวลาก่อน Epoch บน Mac OS X และ UNIX-like อื่นๆ 1 วินาที และแน่นอนว่ามันต้อง error
วิธีการแก้ก็เพียงแค่ใช้ แพทช์ ที่ Paul Guyot โพสไว้ตอนแจ้งบั๊ก นำมาแพทช์เข้ากับซอร์สของ Erlang และคอมไพล์ใหม่ … อ๊ะ แล้วถ้าหากไม่อยากจะคอมไพล์ใหม่เอง แต่อยากใช้ MacPorts เหมือนเดิมล่ะ จะทำยังไง?
ต้องขอขอบคุณที่ MacPorts นั้นใช้การแพทช์ซอร์สเป็นปกติอยู่แล้ว ดังนั้นเราสามารถเพิ่มแพทช์นี้เข้าไปในรายการนั้นได้ผ่านทางไฟล์ Portfile ซึ่งปกติจะอยู่ใน /opt/local/var/macports/sources/rsync.macports.org/release/ports/ (สำหรับ Erlang ต้องเข้าไปใน lang/erlang อีกต่อ) โดยการย้ายไฟล์แพทช์ที่โหลดมาไปไว้ใน files/ และแก้ไข Portfile เพิ่มชื่อไฟล์ที่ย้ายมาลงไปยังบรรทัด patchfiles
หลังจากแก้ไข Portfile เรียบร้อยแล้ว ก็แค่สั่งลง Erlang ใหม่ เมื่อเปิด CouchDB ขึ้นมาอีกรอบ ก็จะไม่มีปัญหาในการเข้าไปยัง Futon แล้ว แต่ตอนนี้สงสัยว่าแพทช์นี้มีมาตั้งแต่ R12B-4 แล้วตอนนี้มันออก R12B-5 มาแล้ว มันจะได้ commit เร็วๆ นี้หรือเปล่า?
Hello, Ubuntu 2 comments
วันนี้ได้มีโอกาสลง Ubuntu อีกครั้งหลังจากใช้อย่างจริงๆ จังๆ ครั้งล่าสุดเมื่อประมาณปีก่อน และเปลี่ยนกลับไปใช้ Windows Vista ด้วยเหตุผลอะไรบางอย่าง ที่นึกไม่ออกแล้วว่าเป็นอะไร แต่น่าจะเกี่ยวกับเรื่องโปรแกรมที่ใช้ กับไดรเวอร์อีกเล็กน้อย
ลองนับดูแล้ว จริงๆ อยากจะลองมาใช้ดูอีกครั้งตั้งแต่ช่วงที่ Ubuntu 8.04 Hardy Heron ออกใหม่ๆ แต่ก็มีเหตุสำคัญที่ไม่สามารถใช้งานได้ในตอนนั้น ก็คือเรื่องการ์ดเสียง ก่อนหน้านี้การ์ดเสียงที่ผมใช้เป็นหลักก็คือ Creative X-Fi ส่วนหนึ่งก็เพราะจะเล่นเกม อีกส่วนก็เพราะนิสัย “อยากได้ของดีที่สุดเท่าที่ซื้อได้” ของตัวเองเล็กน้อย (ว่ากันตามตรงแล้วก็ไม่ใช่สิ่งที่ดีซักเท่าไหร่) ซึ่ง ALSA ไม่ซัพพอร์ต และแทบไม่มีทีท่าว่าจะซัพพอร์ต