Atom feed activated !

นั่งมั่วๆ อยู่สองวัน และแล้วก็ทำ atom feed เสร็จแล้ว โดย feed ของ blog จะอยู่ที่ http://kitty.in.th/index.php/feed/atom/ ครับ

เพื่อเป็นการยืนยันว่า feed conform กับ atom จริงๆ ผมทดสอบด้วย feed validator ที่ http://atomenabled.org/feedvalidator ผลที่ได้ก็เป็น ดังนี้ ครับ

เขียน feed ยังไง ? .. atom มี specification อยู่แล้ว ผมแค่ลอกๆ ตัวอย่างมาใช้ + ใช้ feed ของ blogger มาเปรียบเทียบ ก็เขียน xml output ได้แล้ว (ขโมย atom css ของ blogger มาใช้ด้วย ใช้ browser ที่สนับสนุน xml เข้าไปดูก็จะเห็นหน้าตาคล้ายๆ feed จาก blogger :P) .. ที่เสียเวลาจะเป็นตรงที่ต้องแปลง html ที่เก็บในฐานข้อมูลจาก tis-620 เป็น utf-8 ซึ่งวิธีง่ายสุดคือ compile php ใหม่ให้สนับสนุน iconv จากนั้นใน .php ก็ประมาณ

iconv("tis-620", "utf-8", $string)

เพื่อแปลงข้อมูลทุกชิ้นที่ query มาจากฐานข้อมูลจาก tis-620 เป็น utf-8 .. เรื่อง convert ก็ผ่านไปได้

ที่เสียเวลาอีกอย่างคือผมไม่ได้บันทึก content เป็น well-formed html ก็เลยต้องมาแก้ content อยู่เหมือนกัน โดยเบื้องต้นนี้แก้ไปเฉพาะที่จะ feed ออก (บันทึกล่าสุด 7 รายการ) .. และต่อจากนี้เวลาบันทึก blog และอื่นๆ ก็ต้องไม่ลืมที่จะบันทึกเป็น well-formed html .. ทำเป็นนิสัยเลยก็ดีเหมือนกัน

ย้าย mailing list เกือบทุกตัวให้ส่งไปที่ gmail แทน ฮุๆ ที่ก็เยอะ ค้นก็ง่าย .. เท่าที่คำนวณหยาบๆ gmail ให้พื้นที่ 1 GB น่าจะเต็มประมาณปีหน้าโน่น .. ถึงตอนนั้น ถ้า gmail ยังฟรีอยู่ก็ค่อยทำความสะอาดกัน :)

Repo. มีอัปเดตเล็กน้อย k3b 0.11.12, glibmm 2.4.3, gtkmm 2.4.3, gkrellm 2.2.1, acroread 5.0.9 แก้ไขให้ plugin ติดตั้งกับ browser อื่นๆ ได้, และ เพิ่ม latex-xft-fonts ใน unstable แพ็กเกจนี้บรรจุ math fonts (*.otf) สำหรับ latex/lyx :)

Extras มี xmms-crossfade, pearpc 0.2.0, และ firefox 0.9.1.. ตัวหลังนี้เป็น binary re-package – เอา pre-compiled binary มา package เป็น rpm ให้ติดตั้ง/ถอดถอนได้ง่าย พร้อมกับทำเมนู ไอคอนให้เรียบร้อยแล้ว ตัวนี้จะติด dependency ไลบรารีตัวนึงที่ไม่มีในทะเล (libcom_err.so.3) นะครับ ผมลองตัด depend ออกและทดลองใช้ดูตลอดทั้งคืน ยังไม่เจอปัญหาอะไรครับ .. มี issue อีกเล็กน้อยสำหรับ firefox 0.9.1 คือ ถ้าติดตั้งแล้ว user ธรรมดารันไม่ได้ ให้รัน /opt/firefox/firefox ด้วย root หนึ่งครั้ง แล้วหลังจากนั้น user ธรรมดาควรจะใช้งานได้ครับ