Lug
Advertisement

เมื่อวานนี้มันวันอะไรวะเนี่ย. จากเสื้อม่อฮ่อม มันกลายเป็น iconv -c ได้ยังไง.

  1. กลางวันเมื่อวาน นั่งคิดว่าเสื้อม่อฮ่อมถ้าไม่ต้องรีด จะช่วยลดภาวะโลกร้อน.
  2. น่าจะเสนอให้ฝ่ายบุคคลอนุญาตแบบฟอร์มพนักงานที่เป็นเสื้อม่อฮ่อม, เพื่อลดภาวะโลกร้อน.
  3. แล้วก็ค้น google หาข้อมูลของเสื้อม่อฮ่อม.
  4. ค้นเจอ ก็ได้ทราบประวัติเสื้อม่อฮ่อม.
  5. มาลองเปิด th.wikipedia, ไม่มีคำว่า ม่อฮ่อม หรือ เสื้อม่อฮ่อม.
  6. น่าจะเอาสิ่งที่เราเพิ่งอ่าน มาเรียบเรียงเขียนลง th.wikipedia ซะเลย.
  7. แต่ว่าแทนที่จะได้เขียนบทความเสื้อม่อฮ่อม ลง th.wikipedia, ก็เหลือบไปเห็นมีคนส่งข้อความหาเราใน th.wikipedia
  8. เข้าไปอ่านข้อความ, เขาเห็นว่าเราเคยเขียน บทความ "วิทยาการคอมพิวเตอร์" ตั้งแต่ปี 2004 โน่น, สรุปก็คือ เชิญชวนให้เรากลับไปช่วยเก็บกวาดให้สมบูรณ์หน่อย.
  9. เราก็ลืมไปแล้ว, ว่าเราไปเขียนอะไรไว้วะ
  10. ก็เข้าไปดู history, อ่อ, เราเคยเขียนไว้หยั่งงี้ๆ.
  11. ดูใน history เดียวกันนั้น, พบว่า user ไร้นาม เคยมาเขียนด้วย.
  12. เกิดความสนใจว่าคุณ ไร้นาม เขียนบทความไรไว้มั่ง.
  13. นั่งไล่เปิดดูบทความที่ ไร้นาม เขียน
  14. ไปเจอ ไร้นาม discuss กะคนอื่นๆ ในหน้าพูดคุย ของ บทความ บทความหนึ่ง.
  15. มีอยู่คนหนึ่งที่ไร้นามไปตอบ, แต่คนนั้นคงจะลืมลงชื่อ signature ไว้.
  16. อยากรู้ว่าข้อความนี้เป็นใครเขียน.
  17. จะนั่งไล่ดู history ก็เหนื่อย, เสียเวลา load, รอนาน.
  18. คือว่า ถ้าเจอว่าใครเขียนก็จะได้เอา signature มาใส่ให้เค้าด้วย, เพื่อว่าคนอื่นจะได้ไม่ต้องสงสัยเหมือนเรา. คนอื่นจะได้ไม่ต้องไล่ดู history เหมือนเรา.
  19. พอดีว่าเคย load xml database ของ th.wikipedia เก็บเอาไว้ในเครื่องเรา, เป็น xml ที่รวมข้อมูลย้อนหลังทั้งหมด, ก็เลยว่าจะมา search ดูจาก xml ที่เรามีอยู่ดีกว่า.
  20. แต่ว่า มันเป็น xml มัน search/grep ยาก.
  21. พอดีเคยใช้ perl + libxml เขียนโปรแกรม parse mediawiki xml ไว้.
  22. ที่เคยเขียนนั้น เขียนดึงแค่บาง field.
  23. ก็เลยปรับแก้นิดหน่อยให้ generic ขึ้น, ให้ใส่ option เลือก field ที่จะดึงได้.
  24. แล้วก็แก้ไขอีกนิดให้มันส่ง output ออกมาเป็น csv, เพื่อจะได้ grep ข้อมูลได้ง่ายๆ หน่อย.
  25. ได้เป็น xml2csv.pl
  26. จากเสื้อม่อฮ่อม ได้ xml2csv.pl 1 ตัว.
  27. ยังไม่จบ.
  28. convert แล้ว มันยังเป็น utf8 มันดูยาก.
  29. จริงๆ ก็ดูได้แหละ, ตั้ง terminal charset เป็น utf8 ก็ได้.
  30. แต่ไม่ชอบ terminal utf8.
  31. เลยใช้ iconv -c เพื่อแปลงเป็น tis620
  32. ก็ใช้ iconv -c แปลงไปเรื่อย, ทำไมมันยิ่งกิน mem มากขึ้นเรื่อยๆ วะ.
  33. มันกิน mem มากตามปริมาณข้อมูล. wikipedia xml ข้อมูลมันไม่ใช่น้อยๆ. กิน mem หยั่งงี้ มีหวังเครื่อง hang
  34. เลยใช้ lib iconv ใน perl เขียน iconv.pl เองดีกว่า.
  35. (iconv.pl ผมทำให้มันรับ option -t, -f เหมือน iconv เลย, โดยใช้ lib getopt)
  36. เขียน iconv.pl ก็เจอ bug
  37. นั่ง debug, อ้าว มันเป็น bug ที่ lib iconv perl นี่หว่า.
  38. ก็เลย reportbug ไปที่ debian.
  39. จากเสื้อม่อฮ่อม ได้ reportbug อีก 1 ตัว. (เพื่อนบอกว่าผมเป็นคนแบบ depth first search - -')
  40. แล้วก็หาวิธีเลี่ยง, ปรับโปรแกรมหลีกเลี่ยง bug ตัวนี้.
  41. ก็เขียนสำเร็จ.
  42. ทีนี้ iconv.pl ที่เขียนเนี่ย, จะต้องให้มันทำตัวเหมือน option -c ของ program iconv ด้วย.
  43. แต่ทำยากชิบหาย, เพราะ libperl-iconv มันดันไม่ support in-byte-left, กรณีมี error.
  44. ก็ใช้วิธีแบบถึกๆ, เสร็จแล้วก็ลองรันดู, ช้าโพด.
  45. ช้าหยั่งงี้ไม่ไหว, ก็เลยไม่ได้ใช้.
  46. ไม่รู้จะทำไงดี.
  47. ดึกแล้ว ยังคิดอะไรไม่ออก, กลับบ้าน.
  48. จบ.
  49. เมื่อวานนี้เลยไม่ได้ทำงานอะไรเลย, มัวทำบ้าอะไรอยู่ก็ไม่รู้.
  50. เกิดจาก เสื้อม่อฮ่อม เรื่องเดียว.

สรุปสิ่งที่ได้[]

  1. xml2csv.pl 1 ตัว.
  2. reportbug 1 ตัว ไปที่ debian.
  3. iconv.pl แบบห่วยๆ ช้าๆ 1 ตัว.

--Ans 08:28, 12 กรกฎาคม 2007 (UTC)

Advertisement