YAiTRON XSLT stylesheets

YAiTRON is a cleaned-up version of NECTEC’s LEXiTRON in a well-formed XML format, created by Vee Satayamas. Its tag names are TEI-inspired.

technorati tags:
,
,
,
,

di dictionaries….sssss

นั่งเขียน/แปล “นครรัฐ” ในวิกิพีเดีย (ไม่เสร็จหรอกนะ) เห็นคำว่า microstate .. แปลว่าอะไรดีหว่า นึก ๆ microbe มัน “จุลชีวัน” งั้นอันนี้ก็คง “จุลรัฐ” ล่ะมั้ง

เลยลองค้นในกูเกิลดู ว่ามีใครใช้คำนี้มั๊ย … ได้เรื่องครับ

เจอเว็บรวมพจนานุกรมสุดยอดนี่เข้าไป:
http://se-ed.net/r3dic/

ไม่รู้จะรวมอะไรกันนักหนา มีสารพัดเลย ศัพท์วิชาชีพ คำย่อ วลี ภาษิต อุปมาอุปมัย ชื่อเฉพาะ สำนวน ราชาศัพท์ คำพ้อง อุปสรรค ปัจจัย คำคม ฯลฯ เยอะจัด

ในส่วนของวิชาชีพ ก็เช่น การเมือง รัฐศาสตร์ เศรษฐกิจ กฎหมาย ศิลปะ วรรณกรรม การแพทย์ ป่าไม้ ประกันวินาศภัย ดาราศาสตร์ … แง่ว

กดบุ๊คมาร์กแทบไม่ทัน

technorati tags:
,

Longdo OpenSearch

นั่งทำอยู่ซักพัก เป็นปลั๊กอินเปิดพจนานุกรม Longdo โดยใช้ OpenSearch ลองทดสอบกันดูครับ
มีแนะคำโดยใช้ Google Suggest ช่วยด้วย(!)

ควรจะใช้งานได้กับทั้ง Mozilla Firefox 2 และ Internet Explorer 7 (ผมไม่ได้ลองกะ IE7) ไม่รู้ Opera ได้รึเปล่า
สำหรับ Firefox 2 ตัวเบราว์เซอร์มันควรจะ detect ปลั๊กอินให้อัตโนมัติ ให้สังเกตว่ารูปแว่นขยายมันจะเปลี่ยนเป็นสีส้ม ๆ ลองกดดู จะมีคำว่า “Add Longdo” ให้เลือก (พี่อ็อท: ก็อปโค้ดไปแปะ HTML head ของเว็บ Longdo ได้เลยครับ อันนี้:

<link rel="search" title="Longdo"
href="http://siit.net/members/art/searchplugins/longdo.xml"
type="application/opensearchdescription+xml">

ข้างล่างนี้คือเอกสารที่อ่านตอนทำ ตอนแรกงง ๆ หน่อย เพราะ MozSearch มันตีกะ OpenSearch (ใครว่า Mozilla ชอบมาตรฐานเปิด? – -“):

OpenSearch กับ MozSearch นั้นคล้ายกันมาก แต่ดู MozSearch จะเขียนง่ายกว่า และเจ้าฟังก์ชั่น
suggestions นี่ ใน OpenSearch ยังไม่มี (กำลังเสนออยู่ โดยอิง MozSearch)

Longdo OpenSearch (เป็นคำประกอบ หมายถึงปลั๊กอินค้นหาแบบ OpenSearch สำหรับบริการพจนานุกรม Longdo ไม่ได้เป็นชื่อเฉพาะ “Longdo OpenSearch” นะ เพราะจะผิดสัญญาอนุญาตของ Longdo น่ะ) นั้น ตั้งใจเขียนให้เป็น OpenSearch แต่มีใช้ suggestions ด้วย — ซึ่งมันยังไม่มีในข้อกำหนด OpenSearch
แต่ก็ไม่น่าจะเป็นปัญหา เพราะว่าฟังก์ชั่นนี้เรียกใช้โดยการระบุอีเลเมนต์ Url เพิ่มอีกหนึ่งชุด
โดยกำหนดแอตทริบิวต์ type เป็น “application/x-suggestions+json”
ซึ่งอีเลเมนต์ Url นั้น อยู่ใน schema ของ OpenSearch อยู่แล้ว (= XML ยัง valid)

และโดยข้อกำหนดถ้าตัว application ไม่รองรับ type แบบไหน ก็จะข้ามไป ไม่สนใจ จึงไม่น่าจะมีปัญหากับ IE คือ IE ก็แค่ไม่มีความสามารถเรื่องแนะคำเฉย ๆ อย่างอื่นยังใช้ได้ (แต่ผมยังไม่ได้ทดสอบอยู่ดี เมื่อคืนลง IE7 เสร็จ เปิดมาแล้วแฮงค์ตลอด ใช้ไม่ได้เลย ลองเป็นสิบรอบแล้ว แค่้จะเปิดโปรแกรมยังไม่ได้ … beta quality จริง ๆ – -“)

ตอนเขียนก็ดู ๆ เอกสาร ประกอบกับตัวอย่าง google.xml ที่มากับ Firefox 2

ตรงส่วนอีเลเมนต์ Image นั้น ในตัวอย่าง google.xml (ซึ่งเป็น MozSearch) ใช้เป็น base64 เก็บข้อมูลตรง ๆ เลย:

<Image width="16"
height="16">data:image/x-icon;base64,(ข้อมูลรูปภาพ)</Image>

แต่ใน ตัวอย่างที่เว็บ OpenSearch เห็นใช้เป็นลิงก์:

<Image height="64" width="64"
type="image/png">http://example.com/websearch.png</Image>

(ตรง type จะเป็นภาพแบบไหนก็ได้ gif, jpg, png, ico)

ตัว Longdo OpenSearch นี่ ใช้ base64 😛 โดยข้อมูลรูปภาพนั้น ก็ก็อปมาจากปลั๊กอินเก่า

คือใน Firefox 2 นี่ เวลาเราติดตั้งปลั๊กอิน Mycroft มันจะแปลงเป็น MozSearch/OpenSearch
(root element เป็นของ MozSearch แต่มีใช้ XML namespace OpenSearch ด้วย)
ให้อัตโนมัติ รูปที่เคยเป็นไฟล์แยกต่างหาก มันก็จะแปลงเป็น base64 ยัดลงมาใน XML ให้
.. เราก็ไปก็อปไอ้ข้อมูลตรงนั้นแหละมาใช้
แต่ถ้าจะแปลงเองจากรูปโดยตรงเลย ที่เว็บมอซิลล่าเค้าแนะนำให้ใช้เว็บ URI kitchen ช่วยแปลง

พูดถึงวิธีเก็บรูป ไม่แน่ใจว่า MozSearch กับ OpenSearch มันต่างกันตรงนี้มั๊ย หรือว่าใช้แบบไหนก็ได้ทั้งคู่
ตรงนี้ถ้ามองว่าอันไหนโปร่งใส/transparent กว่า ก็ต้องบอกว่า เก็บ url รูปน่ะโปร่งใสดูดีกว่า
แต่ถ้าพูดถึงประสิทธิภาพ รูปไอคอนขนาดเล็ก ๆ แบบนี้ จะให้เปิด connection อีกหนึ่งอันเพื่อดาวน์โหลด มันก็ อืม คงไม่คุ้ม ก็เก็บรวมมันไว้ในไฟล์เดียวเลยละกัน เป็นไบนารี/base64 … แต่แบบนี้มันก็ ไม่ค่อยจะ XML ?

ก็แล้วแต่เลือกล่ะ

จะทำ: ทำรายการแนะคำจากข้อมูลพจนานุกรมโดยเฉพาะ ?

ปรับปรุง:

  • 2006.07.21 – ชี้แจ้งเรื่องชื่อปลั๊กอิน+สัญญาอนุญาต, เพิ่ม “จะทำ”
  • 2006.07.20 – เพิ่มข้อมูลเทคนิก

tags:






PopThaiKwik

PopThaiKwik เป็น bookmarklet ที่ช่วยให้เรียกใช้บริการเปิดพจนานุกรมอัตโนมัติ Longdo PopThai ได้อย่างรวดเร็วยิ่งขึ้น
(สำหรับผู้ที่ไม่ได้ติดตั้ง Longdo Toolbar เอาไว้ในเบราเซอร์)
คือไม่ต้องลอก url เว็บที่อยากแปลไปแปะในเว็บ PopThai เอง

วิธีเอาไปใช้: ลากลิงก์นี้ PopThaiKwik ไปแปะไว้ที่ bookmark toolbar / favorite ของเว็บเบราเซอร์ แค่นั้นแหละครับ

วิธีใช้: ที่หน้าที่อยากแปล คลิกที่ลิงก์ของ PopThaiKwik (ที่ลากไปแปะไว้ตะกี้), ตัว PopThai จะถูกเรียกให้ทำงานโดยอัตโนมัติ

ข้อจำกัด: ไม่น่าจะใช้งานได้กับหน้าเว็บแบบไดนามิกที่ไม่ได้เก็บข้อมูลไว้ใน url
และหน้าเว็บบางอัน ที่มีการใช้ CSS สร้างตารางทับๆ กัน อย่างบล็อกผมเป็นต้น -_-” ลองดูได้ คำแปลมันจะยังขึ้นอยู่ แต่ปัญหาคือ มันจะไปอยู่ด้านหลังของตารางหลักน่ะสิ เลยมองไม่ค่อยจะเห็น

ป.ล.แรก: ไม่รู้จะตั้งชื่ออะไรดี เอาเป็นนี้ละกัน คล้ายๆ ไวไวควิก 😛

ป.ล.ต่อมา: หลังจากแปะลิงก์แล้ว ถ้าชื่อไม่ถูกใจก็เปลี่ยนก็ได้ ตามชอบ
ตัวอย่างชื่ออื่นๆ – PopThai me, AutoDict, เปิดดิกให้หน่อยจิ, ตัวเองงงง, อารียา, เหมียวๆ ฯลฯ

updated 2005.12.21 – ปรับปรุง url เป็น dict.longdo.org

WeeDict

WeeDict 0.3.2 เป็นพจนานุกรม ไทย-อังกฤษ อังกฤษ-ไทย สำหรับ J2ME ที่พัฒนาต่อจาก LekLekDict 0.3.1 โดย อ. พฤษภ์ บุญมา

เป็นโครงการที่ทำเล่น ๆ หลังจากส่งดิสเซอ แล้วว่างงาน เบื่อโคตร (ถามพี่โอ๋ รุ่นน้องอ.พฤษภ์ ได้)
ก็เลยอยากศึกษาการเขียนโปรแกรมภาษาไทยบนมือถือ โดยใช้ J2ME บ้าง (โดยตั้งใจไว้ว่า จะใช้เวลาว่างจากการกินเบียร์และดูบอล -_-“)
เริ่มจากการดาวน์โหลดโค้ด LekLekDict รุ่นล่าสุดในตอนนั้น คือ 0.3.1 มาลองเล่นดู
แก้ไปแก้มา เปลี่ยนโค้ดไปพอสมควร ก็ออกมาเป็น WeeDict ตัวนี้

wee เป็นภาษาสก็อต (Scots) แปลว่า เล็ก ๆ (tiny, little)

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

อ๋อ อีกอันใหญ่ ๆ ที่เปลี่ยนก็คือ พยายามยุบการใช้ String และ byte[] ที่ปน ๆ กัน
ให้เป็น MiniString (คลาสใหม่) อันเดียว เพื่อลด overhead ในการแปลงไปแปลงมา
(จากการทำ profiling ดู พบว่าเวลาส่วนใหญ่หมดไปกับการ getBytes())
หลังยุบรวม ก็พบว่าลด cpu clock ไปได้พอสมควร แต่ไม่ถึงขนาดที่ผู้ใช้จะรู้สึกได้
(สรุปว่าเป็นการ optimize ที่ไม่ค่อยจะจำเป็นเท่าไหร่ คือเธอทำเอามันนั่นเอง)

น่าจะใช้ได้กับมือถือที่รองรับ MIDP 1.0 และ CLDC 1.0
ทดสอบกับ Sony Ericsson k700i ของตัวเอง ใช้งานได้ดี (ไม่เคยลองกับเครื่องอื่น รุ่นอื่น)

WeeDict.jad | WeeDict.jar | source code | Readme
ใช้หนังสืออนุญาตแบบ GPL ตาม LekLekDict

ตัว LekLekDict ต้นฉบับนั้น ตอนนี้พัฒนาไปถึงรุ่น 0.3.3 แล้ว
โดยมีความสามารถเพิ่มเติมหลายอย่าง พร้อมพจนานุกรมตัวใหม่
อ่านรายละเอียดได้ที่ เว็บของ LekLekDict
โดยที่ความสามารถใหม่ ๆ เหล่านั้น ยังไม่มีใน WeeDict รุ่น 0.3.2 (จริง ๆ คือ ไม่รู้เมื่อไหร่จะมี)

ลองเล่นกันได้ครับ
ขอขอบคุณ อ.พฤษภ์ และ อ.วุฒิชัย (น่าจะสะกดแบบนี้) สำหรับโค้ดต้นฉบับด้วย

หมายเหตุ:
ทำใน NetBeans 4.0 RC2, ตอนนี้ 4.0 ตัวจริงออกแล้ว