Ubiquity

อ่าน Ubiquity internationalization blogging roundup แล้วมีลิงก์ไปยังบล็อก The Tower of Babel ของคุณ jono นักพัฒนาหลักของ Ubiquity เจอกับประโยคนี้

Fired up by conversations with an international crew of Mozilla localizers, and by an inspiring keynote speech from Mitchell Baker on (among other things) the importance of internationalization, I set to work and spent the next 48 caffeine-fueled hours of the summit writing a proof-of-concept Japanese parser for Ubiquity. (Japanese happens to be the language I know best other than English). I was able to show off the Japanese parser in action at my summit presentation.

“But how will this work in Finnish?” “How will it work in Thai?” asked the localizers and other interested parties who surrounded me after my presentation was done. Every human language has its own idiosyncrasies. Is Mozilla going to write a unique parser for every language in the world?

ตัวหนาเป็นคำถามของผมเอง (ที่ Mozilla Summit) ผมเดินไปถามพี่แกข้างเวทีหลังพูดจบ เป้าหมายหนึ่งคืออยากรู้ แต่เป้าหมายอีกอันคือต้องการจะปัก "แผนที่ประเทศไทยในแผนที่ซอฟต์แวร์โลก" (เคยเป็นคำขวัญของ SIPA อยู่พักหนึ่ง) ตอนนี้ก็พบว่ามันสำเร็จแล้ว อย่างน้อย jono ก็จำได้ว่ามีภาษาไทย :D (ผมไปอธิบายเรื่องภาษาไทยไม่มีช่องว่างระหว่างคำให้เขาฟังอยู่พักหนึ่งด้วย พี่แกพยักหน้าหงึกๆ แล้วบอกว่ายากโคตร)

ขั้นต่อไปก็ต้องมานั่งนึกๆ คิดๆ ระดมสมองกันว่า ถ้า Ubiquity จะสามารถสั่งเป็นภาษาไทยได้ มันจะออกมาหน้าตาอย่างไร แน่นอนว่ามันจะไม่ถูกใช้กับ Ubiquity เพียงอย่างเดียว แต่จะรวมไปถึง UI ที่เป็น natural language อื่นๆ ในอนาคตอีกมากด้วย

ช่วงนี้ผมกำลังย้ายบ้าน ไม่มีเวลาตอบคอมเมนต์มากนัก เดี๋ยวสถานการณ์ลงตัวแล้วจะมาตอบให้ ตอนนี้เอาประเด็นทางเทคนิคที่น่าสนใจจาก feed ที่อ่านไปก่อน (จริงๆ คือจดให้ตัวเองตามมาอ่านเมื่อมีเวลา)

Software Engineering

  • Songbird path to Agility Part II พูดถึงการนำวิธี Agile มาใช้ในโครงการ Songbird มีกราฟประกอบด้วย (แปลว่า Agile วัดได้นะครับ) มีภาคแรกด้วยแต่ไม่น่าสนใจเท่าภาคสอง

Chrome

  • เท่าที่ดูจาก Planet Mozilla คนของ Mozilla กลัว Chrome กันมาก ออกมาสยบความเคลื่อนไหวกันใหญ่ ในบล็อก 10 Reasons Firefox won’t be worried about Chrome ข้อที่ผมว่าน่าสนใจคือข้อ 10 เพราะจากที่ติดตามทั้ง Firefox และ OpenOffice มา การสร้างแอพพลิเคชันใหญ่ระดับนี้ให้ออกมาดีบน 3 แพลตฟอร์มพร้อมกัน เป็นเรื่องไม่ง่ายเลย ขนาดทั้ง Google Earth หรือ Google Talk เอง กูเกิลยังไม่ประสบความสำเร็จนักที่จะออกให้ครบทั้ง 3 แพลตฟอร์ม ขนาด Firefox เวอร์ชันก่อนๆ บนแมคกับลินุกซ์ก็ตามหลังวินโดวส์มานาน (ตอนนี้ยังตามหลังอยู่แต่ดีขึ้นมาก) คงต้องใช้เวลาและทรัพยากรพอสมควร

Firefox

  • Feedly น่าสนใจดี
  • หลังจาก Chrome ออก ประเด็นที่พูดกันเยอะทั้งบน Blognone และฝรั่งทั่วไป คือเรื่องฟีเจอร์ว่าใครทำอะไรได้บ้าง/ไม่ได้บ้าง ผมพบว่าเสียงของฝ่าย "Opera มีมานานแล้วเฟ้ย" มีเยอะกว่าที่คิดมาก (หรือว่าชาว Opera เสียงดังกว่าก็ไม่ทราบ)​ และมีคนที่นิยม approach แบบ "ฟีเจอร์ครบครัน" มากพอสมควร หลังจากอ่าน Firefox can become Google Chrome เลยรู้สึกว่า อีกไม่นานจะมีคนทำดิสโทรสำหรับ Firefox ที่รวมเอา extension ต่างๆ มาพร้อมสรรพเพื่อแข่งกับ Opera และ Chrome อาจใช้ชื่อ Firefox Extreme Edition อะไรแบบนี้
  • เรื่องดิสโทร Firefox เคยมีบ้างแล้ว เช่น Firefox Campus Edition เมื่อปี 2007 (ตอนนี้เหมือนลิงก์จะหายไปแล้ว) หรือจะนับ Flock ด้วยก็ได้
  • ด้วยจำนวนคนทำคนใช้ extension ในปัจจุบัน (ตัวอย่างดูจำนวนสคริปต์ของ GreaseMonkey ซึ่งเป็นแค่ extension เพียงตัวเดียว) ทำให้เบราว์เซอร์กลายเป็น ecosystem เหมือนกับดิสโทรไปแล้ว

Ubiquity

  • Ubiquity กำลังได้รับความสนใจอย่างมากในโลกของ Mozilla นักพัฒนาหลักคือ Jono (ตัวจริงโคตรฮา ตอนพูดใส่ชุด Firefox ขึ้นไปบนเวที) เขียนบล็อกประเด็นด้าน usability ของ Ubiquity อย่างละเอียดหลายตอน สำหรับคนที่สนใจอนาคตของ Ubiquity แนะนำให้อ่าน Language-Based Interfaces, Part 2: Where do we stand now? กับ Language-Based Interfaces, part 3: Report Card for Ubiquity 0.1.1

Usability

งาน Firefox Summit รอบนี้มันมาก เพราะนอกจากจะเจอหินถล่มปิดทางไปเมื่อวานแล้ว เช้าวันนี้ก็ตื่นมาพบว่าในห้องไฟดับ โทรลงไปถามข้างล่างได้ความว่าดับทั้งโรงแรม เนื่องจากรถขนพวกผ้าปูที่นอนอะไรแบบนั้นไปชนกับเสาหม้อแปลงเข้าให้

ที่น่าแปลกใจคือถึงห้องจะมืด ตู้เย็นจะไม่ทำงาน แต่ access point มันกลับใช้ได้เฉย (เนื่องจากใช้ไฟสายสำรองจากเครื่องปั่นไฟ ถ้าไม่มีคนไปเปลี่ยนตอนหลัง ก็ต้องซูฮกให้กับคนต่อ access point เลยว่าเทพมาก) ตอนแรกชาวบ้านก็ไม่ซีเรียสกับไฟดับกันเท่าไรเพราะว่าต่อเน็ตได้ แต่ผ่านไปซักสองสามชั่วโมงก็เริ่มเครียดกันเป็นแถวเพราะว่าแบตหมด หลายคนถึงกับเปรยๆ ว่าถ้าให้เลือกยอมเจอหินถล่มดีกว่าไฟดับ เพราะหินถล่มยังชาร์จไฟโน้ตบุ๊คได้ (อย่างไรก็ตามรอบนี้โดนทั้งสองอย่าง)

หลาย session เลยต้องเปลี่ยนแผนเพราะ projector ใช้ไม่ได้ บางอันต้องออกมานั่งคุยกับพื้นตรงทางเดินแทนเพราะในห้องมันร้อน ที่เท่คือมี session นึงย้ายไปใช้ห้องสัมมนาของโรงแรมข้างๆ ปรากฎว่าปลั๊กไฟทุกจุดโดนเสียบไปอย่างรวดเร็ว ดูแล้วเหมือนโน้ตบุ๊กกระหายน้ำกำลังแย่งกันดูดจากหลอด

สำหรับผมก็ต้องเปลี่ยนกลยุทธ์การจดเล็กน้อย จากวันแรกจดลง Twitter มาเป็นลง text file ธรรมดาแทน อันที่น่าตื่นเต้นจนต้องรีบมาเขียนลงบล็อกเมื่อมีไฟก็คือโครงการ Ubiquity ของ Mozilla Labs

Ubiquity คือการเอา CLI มาใส่เบราว์เซอร์ โดยใช้คำสั่งภาษาธรรมชาติแทนคำสั่งแบบ shell คล้ายกับพวก Quicksilver แต่ข้อได้เปรียบของมันคืออยู่ในเบราว์เซอร์ เลยทำ mashup กับบริการบนเว็บนานาชนิดได้ทันที

ตัวอย่างที่เดโม

  • เอาเมาส์ลากประโยคบนเว็บ แล้วกดคีย์ลัดเรียก prompt ขึ้นมา แล้ว "twitter this" (ถ้าเป็นบริการที่ต้องล็อกอิน ก็จะขึ้นหน้าต่างล็อกอินให้)
  • เอาเมาส์ลากประโยคบนเว็บ แล้ว "translate this to japanese"
  • เอาเมาส์ลากประโยคบนเว็บ แล้ว "email this to mark with thunderbird"
  • พิมพ์ที่อยู่ในหน้า Compose ของ Gmail ไฮไลท์ที่อยู่นั้น สั่ง "map this" จะเป็นการแทรกแผนที่ของที่อยู่นั้นใน Gmail
  • เอาเมาส์ลากที่อยู่หลายๆ อันในหน้าเว็บ (เช่น craiglist หน้าขายบ้าน) ทำแบบเดิมแต่เปลี่ยนคำสั่งเป็น "map these" จะเป็นหมุดหลายอันในแผนที่เดียวแทน

หนึ่งในทีมงานนี้คือ Aza Raksin ลูกชายของ Jef Raskin เท่าที่ดูจากพรีเซนต์แล้วเทพทีเดียว

ไว้มีเวลาลองเล่นจริงจังแล้วจะมาเขียนอย่างละเอียดอีกครั้ง เห็นเค้าบอกว่าเปิดให้ดาวน์โหลด extension ได้แล้ว ใครอยากลองก็ลุยได้เลย