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 ဆက်ပါမယ်။