Saturday, December 26, 2009

ဇော်ဂျီ မှ ယူနီကုဒ် ၅.၁ သို့ပြောင်းခြင်း

ကျွန်တော် linux သုံးတဲ့အချိန်ဆို တခြားဘလောဂ်တွေဖတ်ရတာအဆင်မပြေပါဘူး။ ကျွန်တော့်အစ်ကိုဘလောဂ် အပါအဝင်ပေါ့။ သူ့ဘလောဂ်ဆို စကာစက ဖောင့်ရွေးတာလေးထည့်ပေးထားတော့ အဆင်ပြေသေးတယ်။ နောက်ပိုင်းကျတော့ ဘာဖြစ်လို့လဲမသိဘူးဖြုတ်ပြစ်လိုက်တော့ အဆင်မပြေတော့ဘူး။
ဒီညတော့ဘာရယ်မဟုတ်ဘူး လျောက်ရှာရင်း ဒါလေး သွားတွေ့တယ်။ Firefox extension Greasemonkey ထဲမှာ user script သုံးထားတာပါ။ အရင်တင်လိုက်ပါဦး။ Firefox အောက်ညာဖက်က မျောက်ပုံလေးကို ညာကလစ်နှိပ်ပြီး New User Script... ရွေးလိုက်ပါ။ Name နဲ့ Namespace ပေးပြီး အိုကေနှိပ်လိုက်ရင် ပထမဆုံးအကြိမ်ဆို editor ရွေးခိုင်းပါလိမ့်မယ်။ /usr/bin/gedit ပေးလိုက်ပါ။ gedit ထဲမှာ source code အကုန်လုံးကူးထည့်လိုက်ရုံပါပဲ။ မူလရေးသူမသိလို့ ကျေးဇူးမတင်နိုင်တာ စိတ်မကောင်းပါဘူး။ ဘားဂလစ်ရှ်အဖွဲ့ကဖြစ်မယ်ထင်ပါတယ်။

Friday, December 25, 2009

Developing OpenType Fonts for Myanmar Script - နိဒါန်း

ခေါင်းစဉ်ကြည့်ပြီးကြောက်မသွားပါနဲ့ဦး။ ပထမ Myanmar OpenType Spec လို့ ခေါင်းစဉ်တပ်မလို့၊ နောက် Microsoft Typography Specifications ကအတိုင်းပဲ ခေါင်းစဉ်တပ်လိုက်ပါတယ်။
မြန်မာဖောင့် အကြောင်းမစခင် OpenType ဖောင့်အကြောင်း နဲနဲ အကျဉ်းလောက်ပြောကြည့်ရအောင်။ OpenType ဖောင့်ဆိုတာ TrueType ဖောင့်ပုံစံကို ချဲ့ထွင်ထားတာဖြစ်ပြီး Postscript ဖောင့်ဒေတာကိုပါ အထောက်အကူပြုနိုင်အောင် ထပ်ဖြည့်ထားတာပါ။ Microsoft နဲ့ Adobe တို့ ပူးပေါင်းအကောင်အထည်ဖော်ပါတယ်။ TrueType ဖောင့်ကို Apple Computer က စထွင်ခဲ့ပြီး Postscript Type1 ဖောင့်ကို Adobe က စထွင်ခဲ့တာပါ။ ပြောရရင်တော့ Adobe ကို လိုင်စင်ကြေး မပေးချင်လို့ Apple နဲ့ Microsoft တို့ ပေါင်းပြီး TrueType ဖောင့်ကိုထွင်ကြတာပါ။ ကျွန်တော်မှတ်မိသေးတာ ဟိုတုန်းက Postscript Type1 ဖောင့်သုံးဖို့ ATM တင်ရပါတယ်။ (Automatic Teller Machine မဟုတ်ပါ၊ Adobe Type Manager ပါ) အမှတ်မမှားဘူးဆိုရင် WinMyanmarဖောင့်တို့၊ Geocomp ဖောင့်တို့လည်း စစချင်း Postscript နဲ့ပါ။ Truetype ပြောင်းပြီးသုံးကြတာ မှတ်မိနေပါတယ်။
OpenType ရဲ့ အားသာချက်တွေထဲက Extended language suport နဲ့ Advanced typography ကိုပဲ စိတ်ဝင်စားတာပါ။ OpenType Layout Tables ထဲမှာ အချက်အလက်အပိုတွေ သိမ်းဆည်းထားခြင်းဖြင့် ရှုပ်ထွေးတဲ့ဘာသာစကားတွေကို ထောက်ကူစေနိုင်ပါတယ်။ OpenType Layout မှာသုံးတဲ့ အသုံးအနှုန်းလေးတွေပါ။

Character နဲ့ Glyph
တကယ်တမ်း ကျွန်တော်တို့ ကွန်ပျူတာမှာ ကြည့်နေတာ၊ ပုံထုတ်တာ Character တွေမဟုတ်ပါဘူး။ Glyph တွေပါ။ Glyph ဆိုတာ Character ကို ကိုယ်စားပြုပေးတာ။ Unicode Character "Myanmar Letter Ka" U+1000 ကို Glyph "က" နဲ့ကိုယ်စားပြုသလိုမျိုးပါ။ ဒါပေမယ့် Character နဲ့ Glyph တစ်ခု တစ်ခုချင်းပဲ ဆက်စပ်မယ်လို့မဆိုနိုင်ပါဘူး။ Unicode Character "Myanmar Consonant Sign Medail Ra" U+103C ဆိုရင် Glyph တွေအများကြီးရှိနိုင်ပါတယ်။ ဘယ် Glyph နဲ့ဖော်ပြမယ်ဆိုတာ နောက်မှာဖော်ပြမယ့် Feature တွေကလုပ်သွားပေးမှာပါ။ ဖောင့်ဆိုတာ အဲဒီ Glyph တွေစုထားတာ။

Scripts
Script ဆိုတာ နီးစပ်ရာ Character တွေ ပေါင်းစပ်ထားပြီး ဘာသာစကားတစ်မျိုးတည်းမက ကသုံးနိုင်ပါတယ်။ Latin, Arabic နဲ့ မြန်မာ (Myanmar) တို့လိုမျိုးပေါ့။ မြန်မာ script အတွက် tag က mymr ပါ။

Language systems
Script ကို ဘာသာစကားတွေအနေနဲ့ ခွဲထုတ်နိုင်ပါတယ်။ လက်တင် (Latin) script ကို အင်္ဂလိပ်၊ ပြင်သစ်၊ ဂျာမဏီ ဘာသာစကားတွေအတွက်သုံးသလိုပါ။ မြန်မာ script ကျတော့ ဗမာ၊ မွန်၊ ကရင်၊ ရှမ်း ဘာသာစကားတွေပါ။ Language system tag တွေက မွန် (Mon) အတွက် MON၊ ကရင် (Karen) အတွက် KRN၊ ရှမ်း (Shan) အတွက် SHN တို့ဖြစ်ပါတယ်။

Features
ဖောင့်ရဲ့ အခြေခံလုပ်ဆောင်နိုင်ချက်ကို Features နဲ့ သတ်မှတ်ပေးပါတယ်။ ဖောင့်ထဲမှာပါတဲ့ glyph တွေကိုဘယ်လိုသုံးပြီး script ဒါမှမဟုတ် ဘာသာစကားတစ်ခုကို ပုံဖော်ရမလဲဆိုတာ Feature က အချက်အလက်ပေးပါတယ်။ Glyph အစားထိုးခြင်း၊ glyph နေရာချခြင်းတွေအတွက် သတ်မှတ်ပေးတာပါ။ မြန်မာစာအတွက် Feature တွေကတော့
  • abvf (Above-base Forms)

  • blwf (Below-base Forms)

  • pstf (Post-base Forms)

  • pres (Pre-base Substitutions)

  • abvs (Above-base Substitutions)

  • blws (Below-base Substitutions)

  • psts (Post-base Substitutions)

  • abvm (Above-base Mark Positioning)

  • blwm (Below--base Mark Positioning)

  • mkmk (Mark to Mark Positioning) တို့ပဲဖြစ်ပါတယ်။
ဒီ Feature တွေက Microsoft ရဲ့မူကြမ်းပေါ်မှာ မူတည်ပြီး ကျွန်တော့်ဖာသာ သတ်မှတ်ထားတာပါ။ အဆိုပြုချက်လို့ယူသော် ရပါတယ်။
OpenType Layout Feature တွေထဲမှာ Character တွေကို နေရာပြန်စီတဲ့ Feature မရှိပါဘူး။ အဲလိုလုပ်တာက shaping engine ရဲ့အလုပ်ပါ။ Windows ပေါ်မှာ Uniscribe shaping engine က အထောက်အပံ့မပေးမချင်း OpenType Font မှာ မြန်မာစာအတွက် သဝေထိုး၊ ရရစ် နဲ့ ကင်းစီး နေရာပြန်စီတာမရနိုင်သလို အပေါ်က Feature တွေလည်း အလုပ်လုပ်မှာမဟုတ်ပါဘူး။ အခုသုံးနေသလို liga၊ rlig၊ clig စတဲ့ Feature တွေပဲသုံးနေရဦးမှာပါ။ ဒီ Ligature feature တွေက script အပေါ်မမူတည်ဘဲ ပုံမှန်အားဖြင့် အလုပ်လုပ်ပါတယ်။
နောက်ဆက်ရေးသွားမှာတွေကို mymr-pangomod ရေးတာအပေါ် အခြေခံမှာပါ။ အခေါ်အဝေါ်တွေ အဆင်ပြေအောင် အင်္ဂလိပ်လိုပဲရေးသွားပါမယ်။

Wednesday, December 9, 2009

fedora 12, ibus-waitzar

ibus-waitzar ကို fedora 12 မှာ အင်စတောလုပ်ဖို့ အောက်ပါတို့လိုပါမယ်။
su -c 'yum install ibus scons boost-devel boost-python python-devel'
libwaitzar အင်စတောလုပ်ပါ။ iwaitzar-install_guide.pdf အတိုင်းပါပဲ။ SConstruct ဖိုင်ကူးထဲ့ပေးရတာပဲပိုပါတယ်။
wget http://waitzar.googlecode.com/files/libwaitzar_1.0.1.zip
unzip libwaitzar_1.0.1.zip
cd waitzar-lib
rm SConstruct
wget http://prahita.sourceforge.net/files/SConstruct
scons
su -c 'scons install'
ပြီးရင်တော့ ibus-waitzar ကို လမ်းညွှန်အတိုင်း အင်စတောလုပ်ပါ။ System → Preferences → Input Method မှာ Enable input method feature ကို ရွေးပြီး Input Method Preferences မှာ ဝိဇ္ဇာ ကို ထဲ့ပေးပါ။

အဆင်ပြေပါစေ။ abiword မှာ ဝိဇ္ဇာနဲ့စာရိုက်နေပုံလေးပါ။

Tuesday, December 1, 2009

fedora 12, mymr-pangomod and ibus-waitzar

ဒီတစ်ခါတော့ fedora 12 ပေါ်မှာ mymr-pangomod နဲ့ ibus-waitzar စမ်းကြည့်ကြရအောင်။
ကံဆိုးစွာပဲ fedora 12 ရဲ့ pango ဗားရှင်းကလဲ 1.26 ဖြစ်နေပါတယ်။ mymr-pangomod ကောင်းကောင်းအလုပ်လုပ်ဖို့ အရင် ပိုစ်တုန်းက patch လေးတင်ရပါမယ်။
fedora 12 အင်စတောလေးရှင်းက livecd ကတင်တာဆို software update လုပ်ပေးပါ။ တရားဝင်အင်စတောလေးရှင်းလမ်းညွှန် ကတော့ System → Administration → Update System လို့ ဆိုပေမယ့် System → Administration → Software Update ပဲ ရှိပါတယ်။ တစ်ခါတစ်လေ အကြာကြီး စောင့်ပြီးမှ error ပေးပြီး ထွက်သွားတတ်ပါတယ်။ ဒါပေမယ့် ဘာမှားလဲ မသိရတတ်ပါဘူး။ အကောင်းဆုံးကတော့ အောက်က command နဲ့ update လုပ်ပါ။
 su -c 'yum update'
yum နဲ့ update လုပ်တာက ဘာတွေ download လုပ်နေလဲ၊ ဘယ်လောက်ပြီးပြီလဲ၊ ပြပေးသလို ဘယ်မှာတစ်နေလဲ လည်းသိနိုင်ပါတယ်။ ခုနောက်ပိုင်း update က Presto/Delta သုံးရင် drpm ဖိုင်က download မြန်ပေမယ့် တစ်ခါတစ်ခါ mirror အားလုံးလှည့်စမ်းရင်း မရဘဲ တစ်နေတတ်တယ်။ အဲ့ဒါမျိုးဆို Ctrl+C နဲ့ ရပ်ပြီး တစ်နေတဲ့ package ကို ဟောဒီ က download လုပ်၊ install လုပ်၊ ပြီးတော့မှ update ဆက်လုပ်ရင်ပိုမြန်ပါတယ်။
pango ပြန် compile လုပ်ရမှာဆိုတော့ development tools နဲ့ pango ရဲ့ dependency တွေရှိရပါမယ်။
su -c 'yum groupinstall "Development Tools"'
ပြီးရင် pango source rpm ကို download လုပ်ပြီး install လုပ်ပါ။
cd ~
wget http://kojipkgs.fedoraproject.org/packages/-
pango/1.26.0/1.fc12/src/pango-1.26.0-1.fc12.src.rpm
su -c 'rpm -ivh pango-1.26.0-1.fc12.src.rpm'
ကိုယ့် home ဖိုဒါ အောက်မှာ rpmbuild ဖိုဒါ တွေ့ရပါမယ်။ patch ကို rpmbuild/SOURCES၊ pango.spec ကို rpmbuild/SPECS အသီးသီးကူးထည့်ပေးပါ။
cd rpmbuild/SOURCES
wget http://prahita.sourceforge.net/files/lookup-flag.patch
cd ../SPECS
rm pango.spec
wget http://prahita.sourceforge.net/files/pango.spec
pango rpm package ပြန် compile လုပ်လို့ရပါပြီ။ rpm package က rpmbuild/RPMS/i686 အောက်မှာပါ။ Install လုပ်လိုက်ပါဦး။
rpmbuild -bb pango.spec
rpm -Uvh --force ../RPMS/i686/pango-1.26.0-1.fc12.i686.rpm
mymr-pango rpm package ကို mmitpro က download လုပ်ပြီး install လုပ်နိုင်ပါတယ်။ (fedora 10 နဲ့ fedora 11 package တွေ စမ်းဖို့တင်ထားတာပါ။ တုံ့ပြန်ချက်လဲ ကောင်းကောင်းမရတာနဲ့ sourceforge မှာ release မလုပ်ရသေးပါ) fedora 12 နဲ့လည်း အလုပ်လုပ်ပါတယ်။ (mmitpro က download လုပ်ရင် ဘာလို့ ဖိုင်နံမည်မှာ မျဉ်းတို "-" တွေကျခဲ့လဲ မသိဘူး)
cd ~
wget http://myanmaritpros.com/group/mmunicode/forum/attachment-
/download?id=1445004%3AUploadedFi58%3A148935
rpm -ivh mymrpangomod0.7.02.fc11.i586.rpm
ဖွန့် ကတော့ ကိုယ်ဖာသာ အင်စတောလုပ်ယူရပါမယ်။ အလွယ် ဒေါင်းလုပ်လုပ်နိုင်အောင် ဒီမှာ တင်ထားပေးပါတယ်။
su -c 'mkdir /usr/share/fonts/ttf-masterpiece'
cd /usr/share/fonts/ttf-masterpiece
su -c 'wget http://prahita.sourceforge.net/files/MasterpieceUniSans.ttf'
fc-cache
ဒါဆိုရင်တော့ fedora 12 ပေါ်မှာ မြန်မာယူနီကုဒ်ကို စသုံးနိုင်ပါပြီ။ နောက်နေ့မှ ibus-waitzar ဆက်ပါမယ်။

Friday, November 27, 2009

Further testing of ibus-waitzar

Well! in my last post, I said testing of ibus-waitzar working fine except that candidate window rendering seems not correct. Maybe because of ibus itself is not using pango for rendering in candidate window. In first testing, I installed only mymr-pangomod and ttf-masterpiece (Masterpiece Uni Sans). Now I'll install graphite, pango-graphite and ttf-sil-padauk (Padauk) for further testing.




Then make sure pango is not using graphite pango module by deleting /usr/lib/pango/1.6.0/module-files.d/pango-graphite.modules.


The word chosen for testing is thingyam (သင်္ကြန်) as rendering involves re-ordering. In mymr-pangomod implementation, re-ordering is totally taking care by pango module and Masterpiece Uni Sans opentype font doesn't have any rule for re-ordering (there's no opentype feature for re-ordering, pls correct me :-) So if rendering is not using pango, it won't be shown correctly.

Firstly, preferrred alias for sans-serif family is set to Masterpiece Uni Sans family.



Typing thingyam (သင်္ကြန်) in gedit with ibus-waitzar results the following-



Rendering in gedit is correct and rendering in candidate window is wrong; no re-ordering takes place.

Secondly, preferrred alias for sans-serif family is set to Padauk family.



Below is the result-



Rendering in gedit is wrong as expected since pango is not using graphite module and surprisingly rendering in candidate list is correct !!! But it's confirmed that candidate window is not using pango for rendering.

Tuesday, November 24, 2009

mymr-pangomod-0.7.0, ubuntu 9.10 and ibus-waitzar

Seth က ibus-waitzar စမ်းဖို့ လင့်ခ်လေးပေးလာပါတယ်။ ibus စမ်းချင်တာနဲ့ ubuntu 9.10 တင်ထားတာ အတော်ပဲဖြစ်သွားတယ်။ အဲတော့မှ သတိထားမိတာ mymr-pangomod က တချို့စာလုံးတွေ (အထူးသဖြင့် အောက်မြစ်နေရာရွှေ့တာ) မှားနေတာပါ။


ပထမတော့ ubuntu 9.04 package က 9.10 နဲ့ အဆင်မပြေလို့ထင်တာနဲ့ compile ပြန်လုပ်ကြည့်တော့လဲ မထူးဘူး။ ထုံးစံအတိုင်းဟိုရှာသည်ရှာပေါ့၊ နောက်ဆုံး မိတ်ဆွေကြီး Keith ရဲ့ bug report လေးနဲ့ အိုကေသွားပါတယ်။ pango 1.26 ရဲ့ opentype mark rule နဲ့ ပတ်သက်တဲ့ bug ပါ။ (နောက်မှ မြန်မာယူနီကုဒ် font အတွက် opentype rule တွေ အကြောင်းရေးပါဦးမယ်၊ ကြီးကြီးကျယ်ကျယ် ပြောရရင်တော့ myanmar opentype spec ပေါ့) pango ပြန် compile လုပ်ရတော့ နဲနဲ အလုပ်ရှုပ်သွားတာပေါ့။ mymr-pangomod ကို ubuntu 9.10 နဲ့စမ်းချင်သူများအတွက် အောက်မှာ နည်းလမ်းလေးပါ။ pango-graphite နဲ့ ttf-sil-padauk အတွက်လဲ လိုပါတယ်။

pango source ကို download အရင်လုပ်ပါ။
wget https://launchpad.net/ubuntu/+archive/primary/+files/-
pango1.0_1.26.0.orig.tar.gz
wget https://launchpad.net/ubuntu/+archive/primary/+files/-
pango1.0_1.26.0-1.diff.gz
wget https://launchpad.net/ubuntu/+archive/primary/+files/-
pango1.0_1.26.0-1.dsc
ပြီးရင်အောက်က command က tar-ball ကိုဖြည်ပေးပြီး diff ပါ apply လုပ်ပေးပါလိမ့်မယ်။
 dpkg-source -x pango1.0_1.26.0-1.dsc 
pango1.0-1.26.0 ဆိုတဲ့ folder ကိုတွေ့ရပါမယ်။ patch ဖိုင် download လုပ်ပြီး အောက်ကအတိုင်း patch လုပ်ပြီးရင် binary package build လုပ်ဖို့ အဆင်သင့်ဖြစ်ပါပြီ။
wget http://prahita.sourceforge.net/files/lookup-flag.patch
cd pango1.0-1.26.0
patch -p1 < lookup-flag.patch
build လုပ်ပြီးရင် ရလာတဲ့ libpango1.0-0_1.26.0-1_i386.deb ကို install လုပ်ရုံပါပဲ။ (build လုပ်ဖို့အတွက် pango build dependencies တော့ရှိရပါမယ်၊ ဟောဒီမှာ ပဲကြည့်လိုက်ပါတော့)
fakeroot debian/rules binary
dpkg -i libpango1.0-0_1.26.0-1_i386.deb
mymr-pangomod ပဲဖြစ်ဖြစ် pango-graphite ပဲဖြစ်ဖြစ် ပြန် install လုပ်ဖို့လိုပါလိမ့်မယ်။
ဟူး ခုမှပဲ ibus-waitzar စမ်းတဲ့ဆီ ရောက်တော့တယ်။ Installation ကတော့ iwaitzar_install_guide.pdf အတိုင်းပါပဲ။ အခု post ရေးနေတာ ibus-waitzar နဲ့ပါ။ စမ်းကြည့်သလောက်တော့ အားလုံးအဆင်ပြေပါတယ်။ တစ်ခုပဲ candidate window မှာ candidate တွေ render လုပ်တာ pango မသုံးသလိုပဲ၊ ဒီဟာက ibus ကိုက pango မသုံးလို့နဲ့တူပါတယ်။

;

Wednesday, January 28, 2009

ပရဟိတ ယူနီကုတ်ဘလောဂ်

မြန်မာယူနီကုတ်စစ်စစ်ဘလောဂ်လေးတစ်ခုပါ။ ပရဟိတ ယူနီကုတ်ပရောဂျက်နဲ့ တခြားယူနီကုတ်နဲ့ဆိုင်တာလေးတွေ မျှဝေမယ် စိတ်ကူးမိလို့ပါ။

တရုတ်နှစ်ကူးတုန်းက ပျင်းပျင်းနဲ့ google ထဲမှာ ကိုယ့်နံမယ်ကိုရှာကြည့်မိတော့ ဒီလင့်ခ်လေး (http://fedoraproject.org/wiki/Prahita_Masterpiece_Uni_Sans_font) သွားတွေ့ပြီး ကိုယ့်ဖာသာ တော်တော်အားမလို အားမရ ဖြစ်သွားတယ်။ ပရဟိတ ယူနီကုတ်ပရောဂျက်စတာ ၂၀၀၆ မေ၊ အစပိုင်းတော့တော်တော်အရှိန်ကောင်း၊ ယူနီကုတ် ၅.၁ ဖွန့် တင်တာကို ၂၀၀၈ ဩဂုတ် ကတည်းက။ ဒါပေမယ့် မအားတာ အကြောင်းပြပြီး ပန်ဂိုမော်ဒျူး ကိုဆက်မရေးဖြစ်ပြန်ဘူး။ အခုတော့ပြီးသွားပါပြီ၊ အတင်းကိုတွန်းရေးလိုက်တာ။

အခု ဘလောဂ်ရေးနေတာ fedora 9 နဲ့၊ mymr-pangomod-0.7.0 (release မလုပ်ရသေးပါဘူး) နဲ့ ပါ။ Input ကတော့ ဝိဇ္ဇာ ပါ၊ scim-waitzar (http://code.google.com/p/scim-waitzar/) တော်တော်လေးကောင်းပါတယ်။ SCIM IMEngine for WaitZar Myanmar input method ပါ။ စမ်းကြည့်မယ်ဆိုပြီးဒေါင်းထားတာကြာပြီ၊ ကောင်းတယ်ဗျာ။