Theppitak's blog

My personal blog.

30 มิถุนายน 2553

libdatrie 0.2.4

ออก libdatrie 0.2.4 ไปแล้วเมื่อกลางวัน รุ่นนี้มีการเพิ่ม API ใหม่เข้ามา ตามคำแนะนำของผู้ใช้

ก็ตามปกติครับ ดูเหมือนผู้ใช้ส่วนใหญ่ของ libdatrie จะเป็นนักพัฒนาชาวต่างประเทศ ความคิดเห็นส่วนใหญ่ที่ผ่านมาจะได้จากชาวต่างประเทศมากกว่าคนไทย สำหรับรุ่นนี้ ความเปลี่ยนแปลงคือ:

  • แก้บั๊กลืมปิดแฟ้มในฟังก์ชัน trie_save() รายงานโดย Xu Jiandong (แซ่เดียวกับผมนะนี่)
  • เพิ่ม API trie_store_if_absent() ซึ่งจะเก็บค่าลงใน trie เฉพาะเมื่อไม่มีคำเดิมอยู่ใน trie เท่านั้น ถ้ามีอยู่แล้วก็จะคืนสถานะล้มเหลวกลับมา ซึ่งจะมีประโยชน์สำหรับโปรแกรมแบบหลายเธรด เพราะถ้าเขียนทับจะเกิด race condition ได้ เรื่องนี้เสนอแนะโดย Dan Searle จากสหราชอาณาจักร
  • เพิ่ม API trie_fread() และ trie_fwrite() สำหรับอ่าน/เขียนข้อมูล trie จากแฟ้มที่เปิดไว้ โดยไม่ปิดแฟ้มหลังทำเสร็จ ตรงนี้จะมีประโยชน์สำหรับโปรแกรมที่ต้องการเก็บข้อมูล trie รวมอยู่ในแฟ้มเดียวกับข้อมูลส่วนอื่น โดยทำให้อ่าน/เขียนข้อมูลเฉพาะส่วน trie แล้วย้อนกลับไปให้โปรแกรมอ่าน/เขียนข้อมูลส่วนอื่นต่อได้ ซึ่งก็ดูจะเป็นอีกขั้นของการรวมข้อมูล หลังจากที่ผมจับข้อมูล double-array กับ tail มารวมเข้าในแฟ้มเดียวไปแล้วตั้งแต่ 0.2.0 เสนอแนะโดย NIIBE Yutaka ซึ่งเป็น DD จากญี่ปุ่น

อัปโหลดแพกเกจเข้า Debian เรียบร้อยแล้วครับ

อีกแพกเกจหนึ่งใน Debian ที่มีการเปลี่ยนแปลงคือ scim-thai โดยแก้ปัญหา FTBFS อันเนื่องมาจากรุ่นของ gettext ที่ใช้ตอนออกรุ่นต้นน้ำนั้นเก่ากว่ารุ่นของแมโครที่ aclocal เตรียมให้ขณะ build (Debian #584394)

ป้ายกำกับ: ,

22 มิถุนายน 2553

Life without Flash Player

สั้น ๆ คือ ผมไม่มี flash player ดี ๆ ใช้แล้ว และกำลังถือโอกาสทดลองย้ายหนี flash ไป HTML 5 แทน

แม้จะไม่ชอบเว็บที่ใช้ flash แต่บางทีก็จำเป็นต้องใช้ แรกเริ่มเดิมที ผมก็ใช้ swfdec ต่อมาเมื่อมันถูกถอนออกจาก Debian ก็ย้ายไป gnash ก่อนที่จะตัดสินใจ ยอมลง flashplugin-nonfree เพราะไม่งั้นจะไม่สามารถดูเว็บหลาย ๆ เว็บในเมืองไทยด้วย epiphany ได้เลย เพราะเว็บเมืองไทยนั้น optimized for flashblock จริง ๆ ใช้ gnash แบบไม่มี flashblock เอาไม่อยู่ (epiphany ยังไม่มี flashblock) CPU 100% ตลอด เลยต้องยอมลง flashplugin-nonfree จาก Adobe แล้วก็ใช้อย่างนี้มาตลอด

จนเมื่อเร็ว ๆ นี้ Adobe ออก flash player 10.1 โดยตัดการรองรับ amd64 บนลินุกซ์ออกไป โดยต้องรอ major version หน้าอย่างไม่มีกำหนด

โอเค ใช้รุ่นเก่าไปก็ได้ ไม่เห็นเป็นไร แต่ปัญหาเกิดขึ้นเมื่อมี security advisory ประกาศว่าพบรูโหว่ร้ายแรงให้โจมตีได้ใน Adobe Flash Player 10.0.45.2 และมี security update ออกมาเป็นรุ่น 10.1.53.64 ซึ่งแน่นอนว่า ไม่มีสำหรับลินุกซ์ amd64! จากปัญหานี้ ทำให้ Debian ตัดสินใจ ตัดการติดตั้ง flashplugin-nonfree ใน amd64 ออก

จะทนเสี่ยงใช้ flash แบบมีรูโหว่ต่อไปรึ? ไม่ได้อีก ปรากฏว่าเว็บวีดิทัศน์ยักษ์ใหญ่อย่าง YouTube ไม่ยอมเล่นคลิปถ้าใช้ flash player ต่ำกว่า 10.1 ลงมาตั้งแต่ 3-4 วันก่อน

มีวิธีแก้ไขเหมือนกันถ้าจะพยายาม คือ ติดตั้งโปรแกรมใน 32-bit chroot แล้วเรียกโปรแกรมจากใน chroot นั้น แต่ผมเริ่มคิดถึงอีกทางหนึ่ง

ผมก็ไม่ได้ชอบ flash อะไรนักหนา การใช้งานส่วนใหญ่ก็ใช้ดูคลิป YouTube ต่าง ๆ ที่ชาวบ้านเผยแพร่กันเท่านั้นเอง ก็เลยตัดสินใจทดลองใช้ชีวิตแบบไร้ flash ดู

ทางแก้แบบหนึ่งคือใช้โปรแกรมดูดคลิปอย่าง clive หรือ youtube-dl (รวมทั้งผองเพื่อน *-dl อย่าง metacafe-dl และ nicovideo-dl) แล้วมาดูแบบออฟไลน์ก็ได้ แต่ยังก่อน มีวิธีที่ง่ายดายกว่านั้น

เว็บวีดิทัศน์บางเว็บนั้น เริ่มรองรับ HTML 5 กันบ้างแล้ว เช่น:

  • Dailymotion รองรับ HTML 5 โดยแยกมาเป็นเว็บต่างหากที่ http://openvideo.dailymotion.com/ แต่ก็ไม่ได้มี HTML 5 ครบทุกคลิป ต้องแล้วแต่เจ้าของ
  • Vimeo รองรับ HTML 5 ทุกคลิป โดยจะมีลิงก์ "Switch to HTML5 player" ที่ใต้คลิป คลิกเปลี่ยนแค่ครั้งเดียว แล้วมันก็จะจำสถานะการเปลี่ยนของเราไปตลอด และสามารถเปลี่ยนกลับได้ทุกเมื่อที่ลิงก์เดิม
  • YouTube เอง ก็รองรับ HTML 5 โดยต้องไปคลิกเริ่มเข้าใช้ในหน้า HTML5 Beta แล้วมันก็จะจำสถานะไปตลอดเหมือนกัน จนกว่าจะมาเปลี่ยนกลับที่หน้าเดิมนี้

ทดลอง HTML 5 ครับ ว่าเบราว์เซอร์ของคุณรองรับหรือเปล่า โดยใช้ คลิปหนึ่งจาก Dailymotion:

Update (2010-06-22): สำหรับคนที่อ่าน blog นี้จากแหล่งอื่น เช่น Planet TLWG แล้วมันขึ้นว่าเบราว์เซอร์ของคุณไม่รองรับแท็ก <video> ก็อย่าเพิ่งเชื่อครับ มันอาจจะมาจาก agent ที่ planet ใช้ดึงข่าวป้อน (ซึ่งไม่ใช่เว็บเบราว์เซอร์) จะให้แน่ก็ควรคลิกมาที่ blog ตรง ๆ ครับ

ป้ายกำกับ: , ,

08 มิถุนายน 2553

OSM Tidbits

เขียนถึง OpenStreetMap ไปสองตอนแล้ว (OpenStreetMap และ Meet OpenStreetMapper) ทำไป ๆ ก็พบเกร็ดเล็กเกร็ดน้อยเพิ่มขึ้น

  • เรื่องแรก ใครเล่น identi.ca อยู่ มีกลุ่มชื่อ openstreetmap สามารถ subscribe ได้ครับ จะได้แลกเปลี่ยนข้อมูลและความเห็นกับคนอื่น ๆ ที่ทำ OSM เหมือนกัน และหลายเรื่องที่เขียนใน blog นี้ ก็ได้มาจากกลุ่มนี้นี่แหละ
  • สำหรับคนที่ไม่มีอุปกรณ์ GPS หรือมี แต่โอกาสไม่เอื้ออำนวยให้ออกไปเก็บข้อมูล (โดยเฉพาะช่วงนี้หน้าฝน ติดฝนกันบ่อย หรือไม่ก็ fix ตำแหน่ง GPS ลำบาก) ก็ยังสามารถช่วยแก้ไขข้อมูลแผนที่ได้ โดย OSM จะมีเครื่องมือควบคุมคุณภาพคือ KeepRight ซึ่งจะคอยตรวจสอบหาจุดบกพร่องในข้อมูลแผนที่อยู่เรื่อย ๆ เช่น มีร้านขายยาที่ไม่มีชื่อ มีถนนที่ขาดลอยออกจากถนนอื่น (ที่ถูกแล้ว ถนนทุกเส้นบนพื้นดินควรจะเชื่อมถึงกันหมด) มีจุดที่ขาด tag บางอย่างไป ฯลฯ พวกนี้บางทีคนที่ลงพื้นที่เก็บข้อมูลก็เก็บมาไม่ครบหรือไม่สามารถหาข้อมูลได้ ถ้าคุณรู้ข้อมูล ก็สามารถเข้าไปช่วยเพิ่มได้ สำหรับผม ผมทำ bookmark สำหรับตัวเมืองขอนแก่น ไว้เลย เพราะกว่าจะเลื่อนแผนที่จากโตเกียวมาถึงได้มันช้าเอามาก ๆ
  • คุณ Willi2006 ฝากมาว่า เขาได้เสนอการจัด administrative level (ลำดับชั้นของการปกครอง) ของประเทศไทยเอาไว้ โดยไล่ลงมาจากประเทศไทย (Kingdom of Thailand), จังหวัด (Province), อำเภอ (District), ตำบล (Subdistrict), หมู่บ้าน (Village), ชุมชน (Community/Hamlet) โดยในระดับตำบลจะมี เทศบาล (Municipality) มาคาบเกี่ยว ถ้าใครมีอะไรเสนอแก้ไขหรือเพิ่มเติม ก็เข้าไปคุยกันที่ลิงก์ข้างต้นได้ครับ รายละเอียดของประเทศไทยจะรวบรวมไว้ที่ ฉบับร่างในวิกิ
  • นอกจากจะดูผ่านเว็บแล้ว บน GNOME ยังมีโปรแกรมดูแผนที่ OSM ชื่อ Emerillon อีกด้วย (มีใน Debian/Ubuntu apt-get ได้เลย)
  • ผมเคยเขียนถึง MapDroyd ไว้ใน blog ก่อน ว่าสามารถใช้ดูแผนที่ OSM แบบออฟไลน์บน Android ได้ แต่ปัญหาคือ ข้อมูลแผนที่จะค่อนข้างเก่า และเราไม่สามารถปรับข้อมูลได้เอง ต้องรอให้ทางผู้พัฒนาเตรียมข้อมูลให้ ก็เลยลองค้นหาตัวอื่นดู ก็ไปพบเครื่องมือชื่อ Mobile Atlas Creator สามารถดึงข้อมูลแผนที่ต่าง ๆ มาทำเป็นข้อมูลไว้ใช้แบบออฟไลน์บนมือถือได้ โดยรองรับแผนที่หลายแหล่ง ทั้ง OSM เอง ทั้ง Google Maps, Microsoft/Bing Maps และ Yahoo Maps ด้วย ดึงมาแล้วสามารถสร้างเป็นข้อมูลสำหรับโปรแกรมได้หลายตัว โดยตัวหนึ่งที่น่าสนใจที่ใช้ข้อมูลจากโปรแกรมนี้ได้คือ AndNav2 ผมจึงทดลองทำดู โดยมี คำอธิบาย ให้ที่วิกิของ AndNav ปรากฏว่าใช้การได้ดีครับ แต่ข้อเสียของวิธีนี้คือ ขนาดของข้อมูลจะใหญ่มากเมื่อเทียบกับของ MapDroyd เพราะ MapDroyd นั้นเขาบอกว่าใช้ฟอร์แมตพิเศษที่เรียกว่า MicroMap ซึ่งมีขนาดเล็ก เล็กไม่เล็กลองเทียบขนาดดู MapDroyd เก็บแผนที่ประเทศไทยทั้งประเทศรวมกับแผนที่โลกโดยรวมแบบไม่ลงรายละเอียดแล้ว ใช้เนื้อที่รวม 13 MB ในขณะที่ AndNav2 เก็บแค่แผนที่ตัวเมืองขอนแก่นเท่านั้น ก็ปาเข้าไป 74 MB แล้ว ลองเช็กข้อมูลดู เล่นเก็บข้อมูลเป็นบิตแมปของทุกมาตราส่วน ก็สมควรอยู่หรอก
  • อย่างไรก็ดี ก็ต้องบอกว่า AndNav2 ไม่ได้ออกแบบมาให้ใช้แบบออฟไลน์เหมือน MapDroyd แต่ก็ได้เตรียมการใช้งานแบบออฟไลน์สำหรับเส้นทางที่คำนวณแล้วได้

เสียดายจริงที่ช่วงนี้ติดฝน หรือไม่ก็ fix ตำแหน่ง GPS ลำบาก เลยไม่ค่อยได้ออกไปเก็บ track แต่ถึงกระนั้นก็ยังสามารถเล่นอย่างอื่นไปพลางได้

ป้ายกำกับ: , , ,

hacker emblem