Sunday, October 22, 2006

OZ is for building Meta grammar?

Most of meta grammar envirments, which I know, i.e. XDG and XMG, use OZ.

Tuesday, October 10, 2006

Where is Teerayut Bunmee?

I don't wonder because of political situation now but Teerayut Bunmee ... Why there is no news about him?

Wednesday, September 20, 2006

./configure

vee____ มีวิธีดูเปล่า ว่าครั้งล่าสุด สั่ง configure ไปอย่างไร?
(How can I see my last configure command?)

thep vee____, head config.log

Tuesday, September 19, 2006

Ruby-Libthai update

The first version of Ruby-Libthai has appeared since 15th February 2003. Until today, only another one method was added, i.e., LibThai::tis?.

Now we can do something like below:

require 'libthai'
"abcd".each_byte{|c|
p LibThai::tis?(c)
}

More infomation: http://th.lug.wikia.com/wiki/Ruby-Libthai

Friday, September 15, 2006

Abiword + non-middle level character layout

MK asked me about non-middle level character layout. Hence I made this experiment and the result is shown in the screenshot below.

abiword screenshot

I think it looks okay.

Wednesday, September 13, 2006

Abiword + Thai text

By uwog and hub help, today I can install Abiword from CVS head on my Ubuntu box. I learned that I must use autoconf 2.59 and automake 1.9.6 instead of old one. :-)

In CVS head, Pango has been already used in Abiword. Hence it can break a line of Thai text with correct word boundaries now. :-) It is very big improvement however there are several issues left, for insance, printing (as mentioned by uwog), etc.

Abiword + Thai text

Thank tf for Abiword + Pango and thep for Pango + LibThai. :-)

You can grab Abiword from CVS following instruction here.

pastebin

In technical IRC channel (#tlwg, for instance.), we usually want to paste our (possibly long) source codes. Pasting it into IRC directly would be annoying. Therefore pastebin is emerged and help to keep your source code. Then you can give your friend URL instead pasting whole bunch of codes.
http://pastebin.ca/

ในห้อง IRC ทางเทคนิค (เช่น #tlwg) เรามักจะต้องการแปะ source code ที่อาจจะยาวลงไปบ่อยๆ การปะมันลงไปใน IRC ตรงๆ เลยมันอาจจะน่ารำคาญ ดังนั้น paste บินจะโพล่ออกมา และช่วยคุณเก็บ source code ไว้ และแล้วคุณก็สามารถจะให้ URL เพื่อนคุณไปแทนที่จะปะ code ทั้งหมดลงไป
http://pastebin.ca/

Wednesday, September 06, 2006

Part-of-speech tagging in Ruby

Acopost is a part-of-speech tagger written in C. Since now we can useAcopost as a C library, we write a ruby binding for Acopost called Acopost4R. It is hosted at Rubyforge. In addition, modfied version of Acopost (AcopostC) is also included Acopost4R Subversion repository. We will call it. We can write Ruby code for part-of-speech tagging as follow.

Source code:

require 'acopost'
t3 = Acopost::T3.new("/home/vee/train.ngram.utf8",
"/home/vee/train.lex.utf8")
t3.tagging(["ฉัน", "กิน", "ข้าว"]).each{|w|
print "#{w[0]}/#{w[1]} "
}
print "\n"


Result:

ฉัน/pper กิน/vt ข้าว/ncn

T3::tagging accept the array of words as the argument. And it return array of pair of word and part-of-speech, like NLTK-Lite style.

Acopost4R is still in very early stage so there is no release yet. However, you can obtain it from Acopost4R's subversion repository.




Acopost เป็นโปรแกรมกำหนดชนิดของคำที่เขียนด้วยภาษาซี เนื่องจากตอนนี้เราสสมารถใช้Acopost แบบ C library เราจึงเขียน ruby binding สำหรับ Acopost ชื่อว่า Acopost4R Acopost4R อยู่ที่ Rubyforge. มากไปกว่านั้น Acopost รุ่นที่แก้ไขแล้ว (AcopostC) ก็ยังถูกรวมไว้ที่ Subversion repository ของ Acopost4R ด้วย เราจะเรียกมันว่า AcopostC เราสามาถเขียนโปรแกรมภาษารูบีให้กำหนดชนิดของคำได้ตามต่อไปนี้

โปรแกรม:

require 'acopost'
t3 = Acopost::T3.new("/home/vee/train.ngram.utf8",
"/home/vee/train.lex.utf8")
t3.tagging(["ฉัน", "กิน", "ข้าว"]).each{|w|
print "#{w[0]}/#{w[1]} "
}
print "\n"


ผลการทำงาน:

ฉัน/pper กิน/vt ข้าว/ncn

T3::tagging รับ array ของคำเป็นอากิวเมนต์ และส่งผลลัพธ์กลับเป็น array ของคของคำและชนิดของคำ เหมือน NLTK-Lite.

Acopost4R ยังอยู่ในระยะเริ่มต้น ดังนั้นจะยังไม่มี release อย่างไรก็ตามคุณสามารถเอามันมาเล่นได้จาก subversion repositor ของ Acopost4R.

Tuesday, August 29, 2006

Using Acopost as C library

Acopost is a collection of part-of-speech taggers written in C and Perl. However, AFAIK, Perl is used just for the code for training the tagger. According to the lastest version of Acopost, a tagger has be called by command line (unix shell). Since I want to call a part-of-speech tagging function from C code, Acopost must be transformed into a C library. Well, I can use system("t3 .....") but a tagger take quite long time for re-initialization. For convenient, GNU Building tools and pkg-config are used. Anyways, only the t3 tagger can be called from C.

The modified version can be download here.



Acopost เป็นชุดรวมโปรแกรมกำกับชนิดของคำที่เขียนด้วยภาษาซีและ Perl อย่างไรก็ตามเท่าที่ผมทราบ ภาษา perl ใช้เฉพาะใน code สำหรับฝึกฝนตัวกำกับชนิดของคำเท่านั้น ตามที่ดูจาก acopost รุ่นล่าสุด ตัวกำกับชนิดของคำต้องเรียกจาก command line (unix shell) เท่านั้น จากที่ผมต้องการจะเรียกตัวกำกับชนิดของคำจากภาษาซี ดังนั้น Acopost จึงสมควรจะถูกแปลงเป็น C library ถึงแม้ว่าเราจะใช้คำสั่ง system("t3 ....") ได้ แต่ว่า tagger ก็ใช้เวลานานในการเริ่มทำงานแต่ละครั้ง เพื่อความสะดวกในการแปลนี้ก็ได้ใช้ GNU Building tools และ pkg-config อย่างไรก็ตาม ตัวกำกับชนิดของคำ t3 เท่านั้นที่สามารถเรียกจากภาษาซีได้

รุ่นที่แก้ไขแล้วสามารถ โหลดได้ที่นี่.

Saturday, August 26, 2006

LinkGrammar4R update

I plan to release LinkGrammar4R 0.1.0, which will be corresponding to LinkGrammar 4.2.3 from Abisource.

Currently, in SVN trunk, LinkGrammar4R has test units, API for manipulating parse options, API for getting number of linkages from sentence object and also Rubism iteration for handling linkages.

Anyways, I still would like to discuss about the name of methods for getting number of linkages.

Thank Bradford Folkens for his ideas, codes, bug fixing. Actually most of patches, bug reports, are done by him :-) Also thank Ken Bloom for giving me an example of API, which is his link-grammar binding based on Ruby/DL and bug fixing.




ผมกะว่าจะปล่อย LinkGrammar4R 0.1.0 ซึ่งจะสอดคล้องกับ LinkGrammar 4.2.3 จาก Abisource

ตอนนี้ใน SVN กิ่งหลัก LinkGrammar4R มี test units มี API สำหรับจัดการตัวเลือกเกี่ยวกับการแจกโครงสร้างข้อความ มี API สำหรับดึงจำนวน linkages จาก Sentence object และก็ยังมี การเข้าถึงข้อมูลแบบ Ruby สำหรับจัดการกลุ่มของ linkage

อย่างไรก็ตาม ผมยังมีความต้องการที่จะอธิปรายเกี่ยวกับ ชื่อของ method สำหรับดึงจำนวนของ linkage

ขอบคุณ Bradford Folkens สำหรับ แนวคิด รหัสต้นฉบับ การแก้บัก จริงๆ แล้ว patch และการรายงานบักส่วนมาก ก็เป็น Bradford Folkens นั่นเองที่เป็นคนทำ แล้วก็ขอบคุณ Ken Bloom ด้วยที่ช่วยให้ตัวเชื่อม link-grammar ที่เขียนบน Ruby/DL มาเป็นตัวอย่าง และช่วยแก้ bug ด้วย.

Thursday, August 17, 2006

Light at midnight

Even at midnight, how can I read those text without light.
ถึงแม้จะเป็นเวลาเทื่ยงคืน ฉันจะอ่านข้อความเหล่านี้ได้อย่างไรโดยไร้แสงสว่าง

Tuesday, August 15, 2006

A quote from /. YRO

``ถ้ารัฐบาลสามารถตรวจสอบทุกอย่างที่ประชากรแต่ละคนทำได้ ก็จะไม่มีใครทำให้รัฐบาลนั้นอยู่ในการตรวจสอบได้''
``If the government can check everything each citizen does, nobody can keep the government in check.''

และแล้ว Tor ก็ต้องโดน Block?
Then Tor must be blocked?

Source

Tuesday, August 01, 2006

Thai government will buy 100 USD laptop?

Unlike someone predicted, AMD Geode has been used not AMD K6 or K7. Geode is not another name of K6/7. AMD just bought it from National Semiconductor on 2003. So it must consume much less power than someone thought. Wifi don't have to be used to connect the Internet. As we have seen in Nintendo DS and etc., wifi can be used for group playing game and etc, which can be useful for students. Anyways, I didn't hear any news concerning this project from the government for a long time.

ไม่เหมือนที่บางคนทำนายไว้ เครื่อง 100 USD ใช้ CPU ชื่อ Geode ไม่ใช่ K6 หรือ K7 ของ AMD Geode ไม่ใช่อีกชื่อหนึ่งของ AMD K6 หรือ K7 เพราะว่า AMD พึ่งชื้อ Geode มากจาก National Semiconductor เมื่อปี 2003 ดังนั้นมันจึงกินไฟน้อยกว่าที่บางคนคิดไว้ Wifi ไม่จำเป็นต้องเอาไว้ต่อ Internet เสมอไป อย่างที่เราเห็นจาก Nintendo DS และอื่นๆ Wifi สามารถเอาไว้ใช้เล่นเกมส์แบบกลุ่มและทำประโยชน์อื่นๆ ได้ ซึ่งสามารถเป็นประโยชน์สำหรับนักเรียนหลายๆ คน ผมชอบโครงการนี้ อย่างไรก็ตามก็ไม่เห็นมีข่าวอะไรเกี่ยวกับโครงการนี้จากรัฐบาลมานานแล้ว

Thursday, July 20, 2006

Install .deb

Today I try to install scim-thai-xxx.deb from thep (Actually, it is in http://linux.thai.net/apt.) Anyways, on Ubuntu 6.06, it has to be rebuild. Unluckly, I don't know how to install .deb with dependency checking. ans answer my question in #tlwg as follow:


ans-ffox-win2003 vee____: dpkg -i can install any packge without dependency check
vee____ ans-ffox-win2003: i see .....
vee____ ans-ffox-win2003: how could I perform checking?
ans-ffox-win2003 but the package will still in the "unpacked" state, not "configured" state
ans-ffox-win2003 dpkg -i, then "apt-get install"
vee____ ans-ffox-win2003: thank you
ans-ffox-win2003 if dpkg -i without correct dependency, it will be "unpackaged" or "half-configured" state, not "installed" state
ans-ffox-win2003 ayan
ans-ffox-win2003 just run "apt-get install" it will try to complete the dependency
ans-ffox-win2003 ayan
vee____ ans-ffox-win2003: cool
vee____ ans-ffox-win2003: can I post the discussion log to my blog?
ans-ffox-win2003> many installation script that install .deb, does use this method.
ans-ffox-win2003> yes, can post
ans-ffox-win2003 ayan
vee____ ans-ffox-win2003: thx
ans-ffox-win2003 many installation script that install .deb, do the following step,
ans-ffox-win2003 1. dpkg -i xxx.deb
ans-ffox-win2003 2. apt-get install


He also commented that dpkg -s can be used to check installation status.

Thursday, July 06, 2006

[LinkGrammar4R] We need higer-level API?

Thank Bradford Folkens for reporting the bug that sometime LinkGrammar4R just crashes when Linkage.new is called. It occurs since there is no linkage from parsing result. Thus, in Linkage.new, the index was checked before calling linkage_create. If the index is out of range, the exception will be raised.

However, I feel like LinkGrammar4R need more higher-level API that free us for checking these index. It may be an iterator?


iterateLinkage(sent, opt).each{|linkage|
.....
}

or

parsedSentence.eachLinkage(opt) {|linkage|
......
}

Tuesday, July 04, 2006

A product from Nectec's codefest (Release)

I played Parsit firefox extension from Group number 3. This may be practical way for machine translation user interface today. :-)

Thanks blaa for helping to install this, thanks everyone in Parsit firefox extension team for developing such a good software and thanks NECTEC for the excellent campaign.


ผมลองเล่น Parsit firefox extension จากกลุ่ม 3 ดู โปรแกรมแบบนี้อาจจะเป็นวิธีที่ดีในทางปฎบัติที่จะสร้าง user interface สำหรับโปรแกรมแปลอัตโนมัติ

ขอบคุณปลาที่สอนลงโปรแกรมนี้ ของคุณทุกคนที่ทำโปรแกรมนี้ ขอบคุณ nectec ที่ทำโครงการดีๆ ขึ้นมา

Screencast: http://vee.pompokoisme.com/screencast/parsit_ff.swf
Its homepage: http://www.softwarebank.org/projects/parsit-cf03/
Release: http://www.softwarebank.org/project/showfiles.php?group_id=59&release_id=69

Monday, July 03, 2006

TIS-620 will be in xchat-gnome combo box.

TIS-620 was added to xchat-gnome's combo box in the svn truck. Thanks xchat-gnome developer(s) and Thep also for making Thai known to FLOSS community.


นักพัฒนาเพิ่ม TIS-620 เข้าไปใน combo box ของ xchat-gnome แล้ว :-) ขอบคุณนักพัฒนาเอ็กซ์แชทโนม และป๋าเทพด้วยที่ให้ภาษาไทยเป็นที่รู้จักในชุมชนซอฟต์แวร์เสรี

http://svn.navi.cx/misc/trunk/xchat-gnome/src/fe-gnome/irc-network.c
http://bugzilla.gnome.org/show_bug.cgi?id=346396

Wednesday, June 28, 2006

Software Engineering

I may need to know more about these 2 words Spiral model and
Agile.

BTW, even spiral model or agile or other might not be useful for the team have common platform or common standard coding or common programming language. -_-!

Saturday, June 24, 2006

Constituents in Link-grammar API

In Link-grammar 4.4.2, the functions in API for handling constituents are omitted. However, Dom has added them these functions to Link-grammar in CVS trunk already. :-) So LinkGrammar4R in its SVN trunk was changed to be compatible with Link-grammar in CVS trunk too.

I'm just waiting for new release of Link-Grammar with the functions for handing constituent in API. Then I will test and release new LinkGrammar4R too.