Development

ลองเขียน Chrome Extension แบบง่าย ๆ

พอดีอยากได้ฟังชั่นมาเก็บภาพจากหน้าเว็บ แต่เว็บดันบล็อกไม่ให้คลิกขวาสั่งบันทึก หรือลากรูปลงโฟลเดอร์ แต่เราก็ไม่ยอมแพ้จริงไหม? และอีกอย่างตอนนั้นใช้ Chrome เปิดอยู่เลยอยากเขียนเป็น Chrome Extension ถ้าตอนนั้นเปิดกับ Firefox ก็คงเป็น Firefox Plugin ถ้าอยู่บน Arch Linux ไม่แน่อาจจะเขียนเป็น bash script...

โอเค เข้าเรื่อง จะเขียน extension ของ Chrome ได้ จะต้องเปิด developer mode ใน Tools - Extensions ขึ้นมาก่อน ต่อไปก็สร้างโฟลเดอร์เก็บ extension ขึ้นมาสักโฟลเดอร์

FAIL in THAI 2.4

ขอรวม เรื่องราวของ FAIL in THAI รุ่น 2.3 เข้าด้วยกันแล้วกันนะครับ สำหรับรุ่น 2.3 ได้เพิ่มระบบส่งเฟลผ่านทางอีเมลเข้าไปด้วย ซึ่งเป็นวิธีการที่ง่ายที่สุด เพราะ Android เตรียมความสามารถส่งเมลมาให้อยู่แล้ว

การส่งเมลสามารถเรียกใช้ intent ได้ 2 ตัว คือ intent.ACTION_SEND และ intent.ACTION_SENDTO

กว่าจะมาเป็น FAIL in THAI 2.2

ก่อนหน้านี้มันมี FAIL in THAI รุ่น 2.1 ด้วย แต่ตอนนั้นแค่เพิ่มการรองรับแท็บเล็ตเข้าไป แล้วอัพขึ้นเซิฟเวอร์ แล้วทางกูเกิลบอกว่า มีปัญหา ให้ลองใหม่อีกครั้ง แต่ไป ๆ มา ๆ มันก็ปล่อยตัวนั้นออกไป (ซึ่งคงไม่มีปัญหาอะไรหรอกมั้ง...) ดังนั้น ขอเขียนรวบยอดเป็นส่วนหนึ่งของ รุ่น 2.2 ด้วยแล้วกัน

เนื่องจากรุ่นนี้เน้นการปรับปรุงประสิทธิภาพเป็นหลัก โดยมีข้อมูลทางเทคนิคดังนี้

กว่าจะมาเป็น FAIL in THAI 2.0

หลังจากปล่อย FAIL in THAI 1.2 ออกไป ก็เริ่มเพิ่มความสามารถต่าง ๆ ให้กับมัน ซึ่งที่เล็งไว้อย่างแรกคือ การอ่านคอมเม้น เพราะพบว่า หลายคนคอมเม้นได้ฮามาก ๆ (ถ้าไม่นับมุกซ้ำ ๆ ที่เล่นกันจนเกลื่อน) อันนี้ไม่รู้ว่าผมเส้นตื้นเองหรือเปล่านะ แต่เอาเถอะ อันนี้คือว่าตั้งใจแรกแล้วกัน พอทำไปทำมา ก็เปลี่ยนกลวิธีกันหลายอย่างจนสุดท้าย ได้อย่างที่เห็น ดีขึ้น หรือแย่ลง อันนี้ก็แล้วแต่คนมอง ส่วนตัวผม ผมว่ามันดีขึ้นนะ (เข้าข้างตัวเองหน่อยสิ)

FAIL in THAI 1.2

FAIL in THAI ผมพัฒนาขึ้น เพราะอยากจะเอาไว้ดูเรื่องขำ ๆ เวลาเครียด ๆ และเห็นว่ายังไม่มีแอพของ http://fail.in.th ใน Google Play Store ด้วย (แต่พอมาดูตอนหลัง อ้าวมันมีอยู่แล้วนี่หว่า) อีกอย่างนึง ผมอยากจะพัฒนาฝีมือเรื่องการเขียนโปรแกรมโดยใช้ภาษา java ขึ้นมาบ้าง และเห็นว่า Android เป็นระบบปฏิบัติการที่ดี เพราะมีจำนวนผู้ใช้งานเยอะมาก แต่ด้วยความที่มันมีหลายรุ่น หลายระดับ แยกย่อยมากมาย เลยมีอุปสรรคหลาย ๆ อย่าง แต่ก็เป็นความท้าทายอย่างหนึ่ง และจำได้ว่าหลายปีก่อน เพื่อนผมคนนึงบอกผมว่าให้ไปเรียนภาษา java ซึ่งตอนนั้นผมปฏิเสธไปว่า ไว้ให้มีมือถือ Android ก่อนแล้วค่อยเรียนแล้วกัน ตอนนี้ก็มีแล้ว (แม้มันจะถูกแปลงร่างให้เป็น Android ตอนหลังก็ตาม) ก็เลย เอ่อ ไหน ๆ ก็ไหน ๆ อย่าผิดคำพูด

การใช้งานแอพนั้นก็ไม่ยุ่งยาก พยายามให้เข้าใจง่ายที่สุด (แต่ก็ไม่รู้ว่าง่ายจริงหรือเปล่า) โดยใช้การ ปัดซ้ายขวา (และเพิ่มปัดบนล่าง ในอนาคต) แทนที่จะกดปุ่มต่าง ๆ เพื่อให้หน้าจอโล่งที่สุด จะได้เห็นภาพกันชัด ๆ และพยายามแปลเป็นภาษาไทยเข้าไปด้วย

ระหว่างพัฒนา ก็เจออุปสรรคหลายอย่างโดยเฉพาะเรื่อง API ที่ Android รุ่นที่คนใช้เยอะ (Gingerbread 2.3.3) ยังขาด API หลาย ๆ อย่างที่ผมอยากจะได้ แต่จะให้พัฒนาโดยไม่สนใจก็ไม่ได้ เลยตัดใจทิ้งบางฟังชั่นไปก่อนบ้าง หาทางให้สามารถทำได้บนรุ่นเก่า ๆ ผ่านทาง library บ้าง หรือ workaround เอาบ้าง ก็ท้าทายดี (และบางครั้งก็เครียดดี)