Wednesday, November 14, 2012

ကျွှန်တော်တို့အဖေ

ဘာကြောင့်ရယ်မသိ မော်လမြိုင်မှာပျော်နေသော အဖေသည် ကျွှန်တော်လည်း ၈ တန်းရောက်ရော ရန်ကုန်ပြောင်းဖို့ လုပ်ပါတော့သည်။ ဒီလိုနဲ့ ၈၈ အရေးအခင်းကို မော်လမြိုင်မှာကြုံပြီး၊ ကျောင်းတွေပိတ်ထားတုန်း ရန်ကုန်ကို ရောက်လာပါတော့သည်။

ရန်ကင်းက ရန်ကုန်တီတီစီ အမျိုးသားဆောင်ထဲက အခန်းလွတ်လေးမှာ မိသားစုအတူနဲ့ခဲ့တဲ့ အချိန်တွေကို သတိရမိပါသည်။ ကျွှန်တော်တို့ ရန်ကုန်ကို ရောက်စက အမေက အလုပ်ပြောင်းလို့မရသေးတဲ့ အတွက် မော်လမြိုင်မှာ ကျန်နေခဲ့ပါသည်။ ရန်ကုန်ရောက်စက အဖေရယ်၊ ကျွှန်တော်ရယ်၊ နီနီရယ်၊ သက်ဖူးရယ်ပဲပါပါသည်။

သက်ဖူးကြီးက အိမ်သာသွားရမှာ ကြောက်တဲ့အတွက် အိပ်ရာထဲမှာ သေးပေါက်ချတဲ့ အခါ အဖေပဲ လျှော်ရပါသည်။ ကျွှန်တော်တို့ ညီအကို တွေစားဖို့အတွက် အဖေပဲ ကန်ပဲ့ဈေးထဲသွားပြီး ပုဇွန်စိတ်တွေဝယ်ပြီး ကျော်ကြွေးပါသည်။ ပုဇွန်ခေါင်းတွေလည်း မခွာ၊ ပြီးတော့ နှုတ်ခမ်းမွေးတွေလည်း မနှုတ်၊ ဒီအတိုင်းကျော် ကြွေးပါသည်။ စားမကောင်းတဲ့အတွက် ညီမလုပ်သူ နီနီက သိပ်မစားပါ။

အဲ့ဒီနောက်ပိုင်းလည်း ကျွှန်တော်တို့တွေအတွက် အဖေသည် သူအမုန်းဆုံး လူချမ်းသာများ၏ သားသမီးများအား မာနချကာ ကျူရှင်သင်၍ ကျွှန်တော်တို့ ညီအကို မောင်နမတွေကို ကြွေးမွေး ပြုစုခဲ့၏။

ဒါကြောင့်၊ တစ်ခါတစ်ရံ အဖေပြောသော စကားများသည် စည်းမလွတ်၊ သူပြောချင်ရာပြောသည်၊ အားလုံး သူ့စည်းမျဉ်းနဲ့ တိုင်းသည်။ ဒါပေမယ့် ကျွှန်တော့်မှာ အဖေကို မလွန်ဆန်ဝံ့ပါ။ မလွန်ဆန်ဝံ့ တာထက် မလွန်ဆန် ချင်ပါ။ ဘာလို့လည်းဆိုတော့ ကျွှန်တော်တို့ အဖေသည် ကျွှန်တော်တို့အား အလွန်ချစ်မှန်း ကျွှန်တော်သိသောကြောင့် ဖြစ်ပါသည်။

Saturday, October 20, 2012

Japan Offshore ရဲ့ လက်ရှိအနေအထား ၂

ပြီးခဲ့တဲ့ တစ်ခေါက်က Japan Offshore ရဲ့ လက်ရှိအနေအထား ဆိုပြီး ခေါင်းစဉ်တက် ပြီးမှ အိပ်ငိုက်လာတဲ့အတွက် ပြီးအောင်မရေးနိုင်ခဲ့။ ဒါကြောင့် ဒီတစ်ခေါက်လည်း အဆိုပါခေါင်းစဉ် နဲ့ပဲ ဆက်ရေးပါဦးမည်။

Japan မှာ Offshore များကိုစတင်လုပ်ကိုင်လာခဲ့သည်မှာ သိပ်ပြီးမကြာသေးပေ။ ကျွှန်တော်ကျောင်းပြီးခါစ ၂၀၀၄ခုနှစ် လောက်တွင်ပင် Offshore လုပ်သမျှ အောင်မြင်တဲ့ ပရိုဂျက်ဟာ မကြားသေးဘူးဟု လူတိုင်း နီးပါး ပြောဆို နေခဲ့ကြ၏။

ပြီးခဲ့တဲ့ ပရိုဂျက်မှာ ဂျပန်နိုင်ငံ၏ အချက်အချာကျသော ဘဏ်တစ်ခု၏ ပရိုဂျက်ဖြစ်၏၊ အဲ့ဒီပရိုဂျက်တွင် ဦးစွာ Offshore များကို တွေ့ခဲ့ရ၏။ ပရိုဂျက်တစ်ခုတွင် များသောအားဖြင့် အဓိက ကုမ္ပဏီ ၄ခု ၅ခုလောက်ပေါင်းပြီး လုပ်ကိုင်နေသည်က များ၏။ Risk Management အတွက် ဖြစ်ပါသည်။ အကယ်၍ ကုမ္ပဏီတစ်ခုခုက မလုပ်နိုင်ရင်တောင် အခြားသော ကုမ္ပဏီများနှင့် ဆက်လက်လုပ်ကိုင် သွားနင်သောကြောင့် ဖြစ်၏။ နောက်တစ်ချက်မှာ Costပိုင်းဆိုင်ရာမှာ အပြိုင်အဆိုင်ရှိစေလိုသော အချက်လည်းပါမည် ထင်သည်။

ပြီးခဲ့တဲ့ တစ်ခေါက်က Japan ကုမ္ပဏီ ၄ ခုအတွင်း IBM သည် Offshore အား အသုံးပြုခဲ့၏။ Analysis နှင့် Design အား ဂျပန်ရှိ IBM က ရေးသားပြီး Coding နှင့် Test အား တရုတ်ပြည်တွင်း ရေးသားစေပါသည်။ Bug တွေများလွန်းသည်ဟု ထင်သော်လည်း Cost ပိုင်းဆိုင်ရာမှာ ဂျပန်မှာရေးသည်ထက် အဆပေါင်းများစွာ သက်သာခဲ့၏။

ဒီတစ်ခေါက် နော်မှုရာအရောက်တွင် Fund လုပ်ငန်းဖြစ်သောကြောင့် ဘဏ်လောက် မတင်းကြပ်သည်မှာမှန်၏။ သို့ရာတွင် အဖွဲ့အားလုံးလိုလို Offshore အား အသုံးပြုခဲ့၏။ အသုံးပြုခဲ့သော Framework ကအစ ကိုရီးယား လုပ် Framework များဖြစ်၏။ သုံးရသည်မှာ အဆင်မပြေခဲ့သော်လည်း အမြင်ပိုင်း ဆိုင်ရာမှာ မဆိုးလှပါ။ အသုံးပြုသူသည် အတွင်းပိုင်းမှာ ကောင်းကောင်း မကောင်းကောင်းသူ စိတ်မဝင်စားပါ။ ကြည့်လိုက်ရင် လှပလန်းဆန်းနေဖို့ပဲ လိုအပ်ပါသည်။ Transaction, Peek Connection, Performance နှင့် Reusable အစရှိသည့် စကားလုံးများအား စိတ်မဝင်စားပါ။ ကုန်ကျစရိတ်သက်သာပြီး လှပဆန်းသစ်နေရင် သွားဖြီးသွားမည် ဖြစ်သည်။

ဘာပဲပြောပြော အသုံးပြုသူ အကြိုက်ကို ရေးသားနိုင်ဖို့သာ အရေးကြီးပါသည်။ ပါးနပ်သော Developer ဆိုပါက အသုံးပြုသူအား နားလည်အောင် ရှင်းပြ၍ အကောင်းဆုံးကို ရေးသားသွားမည် ဖြစ်သည်။ သို့ရာတွင် လက်တွေ့မှာ အလွန်ခဲရင်းပါသည်။ စကားဝေးသွားပြန်ပြီ။ ဒီတစ်ခေါက်ရဲ့ ခေါင်းစဉ်ကို ပြန်တည့်ပါဦးမည်။

Offshore ကိုအသုံးပြုရခြင်း၏ အကျိုးမှာ ကုန်ကျစရိတ်မှာ လွန်စွာသက်သာမည် ဖြစ်၏။

အား အိပ်ငိုက်လာပြန်ပြီ။ နောက်နေ့မှ ဆက်ရေးပါဦးမည်။
 

Wednesday, October 17, 2012

Japan Offshore လုပ်ငန်း၏ လက်ရှိအနေအထား

ကျွှန်တော်သည် ဒီပရိုဂျက်မှာ လုပ်လာခဲ့သည်မှာ ၁နှစ်ကျော်ပြီဖြစ်၏။ နော်မှုရာ ရှောကန်းဆိုသည်မှာ ဂျပန်ပြည်ရှိ IT လုပ်ငန်းများတွင် ထိတ်တန်း ကုမ္ပဏီတစ်ခုဖြစ်၏။ Innovation အစရှိသည့် စကားလုံးများအား အသုံးပြု၍ လုပ်ငန်းများအား ရှေ့ဆောင်ခဲ့သော ကုမ္ပဏီတစ်ခုဖြစ်၏။ သူ၏ ဝန်ထမ်းများမှာလည်း ဂျပန်နိုင်ငံရှိ ထိပ်သီး တက္ကသိုလ်ထွက် ကျောင်းသားများသာ ဖြစ်၏။ ပြောရမည်ဆိုလျှင် Tokyo University အစရှိသည့် ထိပ်သီးကြီးများသာ။

ကျွှန်တော်တို့ အတူတွဲ အလုပ်လုပ်ရပါသည်။ နော်မှုရာ၏ အောက်တွင်။ သူတို့က Project Management အစရှိသည့် အပိုင်းများအားတာဝန်ယူကာ ဖြစ်လိုသည့် Enterprise System များအားရေးသားခဲ့၏။ ဂျပန်နိုင်ငံ၏ System အတော်များများသည် ပြည်တွင်းမှာ ရေးသားခြင်းမရှိပဲ အကုန်ကျစရိတ်သက်သာစေရန် တရုတ်ပြည်တွင် ရေးသားသည်က များ၏။ အလွန်ထူးချွံသော Tokyo University ထွက် ကျောင်းသားများနှင့် တရုတ်၊များပေါင်းသော အခါ ဘာဖြစ်သနည်း။ အတော်လေးကို စိတ်ပျက်ဖွယ်ကောင်းသော Bug များအား ဖြစ်ပေါ်စေပါသည်။

 ကျွှန်တော်သည် မြန်မာပြည်ကိုပြန်ရန် အတွက် အလုပ်ထွက်စာတင်ထားသည်မှာ ၂လကျော်ရှိပြီဖြစ်သည်။ ကျွှန်တော်တို့ ပရိုဂျက် မံနေဂျာက ၁၁လပိုင်း ကုန်တဲ့အထိတော့ နေပေးပါလို့ ပြောလာတဲ့အတွက် အောင့်သက်သက်ဖြင့် နေနေခဲ့ပါသည်။ တကယ်ဆို ကျွှန်တော့်အလုပ်ကပြီးပြီ ဖြစ်သည်။ Maintenance အတွက် ကျွှန်တော်တို့ ကုမ္ပဏီက လုပ်ချင်တဲ့အတွက် ကူပေးပါလို့ တောင်းဆိုလာတဲ့အတွက် ဆက်နေခဲ့ပါသည်။

အဲ့ဒီမှာအိမ်မက်ဆိုးများကို မက်စေပါတော့သည်။

မနေ့က ကျွှန်တော် အလုပ်နားပါသည်၊ စနေနေ့ အလုပ်သွားရမှာဖြစ်သည့်အတွက်။ ဒီနေ့ အလုပ်သွားသောအခါ Trouble ပေါင်းများစွာက စောင့်နေသည်။ မနက်အလုပ်သွားသည်နှင့် စောင့်မျော်နေကြသည်။ ကျွှန်တော်တို့ System မှာ ပြဿနာပေါ်နေသည်။ ကျွှန်တော်တို့ ရေးထားသော Sub System မဟုတ်။ အားလုံးရဲ့ Maintenance ကို ယူထားတဲ့အတွက် အားလုံးပြဿနာ ကျွှန်တော်တို့ရဲ့ ပြဿနာဖြစ်၏။ အတွေ့အကြုံတော့ရပါသည်။ Trouble Shooting က။ ဒါပေမယ့် အတော်လေးကို အုံးစားပါသည်။

အား အတော်နောက်ကျသွားပြီဖြစ်တဲ့အတွက် အိပ်ပါဦးမည်။ ပြဿနာနဲ့ ဖြေရှင်းပုံများအား နောက်ရက်တွင်ဆက်လက် ရေးသားသွားပါဦးမည်။

တော်သေးပြီ။

Monday, September 10, 2012

ရေကြည်တစ်ပေါက်

ဘာပဲပြောပြော ကျွှန်တော် မြန်မာဂျာဗားယူဇာကို ရေးသားလာခဲ့သည်မှာ ၂နှစ်ကျော်ရှိခဲ့ပြီ ဖြစ်၏။ စာဖတ်သူများလည်း အထိုက်အလျှောက် ရှိလာပြီဖြစ်၏။ ဟိုတလောက အားလုံးပေါင်း ၇၀၀၀ကျော်ခဲ့ပြီဖြစ်၏။

အခုတလော စာသိပ်ပြီး မရေးဖြစ်ပါ။ အလုပ်များနေသည်က တစ်ကြောင်း၊ စိတ်မပါသည်က တစ်ကြောင်း အကြောင်းကြောင်း ကြောင့်ဖြစ်သည်။ နည်းပညာ အကြောင်းနှင့် ပတ်သက်လာလျှင် ကျွှန်တော်သည် တကယ့်ကို စေတနာထားပါသည်။ တော်တော်လေးကို အသေးစိတ် အထိလေ့လာ၊ ကိုယ်တိုင်လည်း နားလည်အောင် စမ်းသပ်၍ ရေးသားခဲ့ပါသည်။

ဟိုတလောက မြန်မာပြည်နှင့်ပတ်သက်သော ဂျပန်အိုင်တီ အကြောင်းကို အခန်းဆက်ဘာသာပြန် ရေးသားခဲ့၏။ အဲ့ဒီအကြောင်းများအား လူဖတ်များပါသည်။ ကျွှန်တော်ဘာဆက်ရေးရမှန်းမသိ။ သူတို့တွေ မဖတ်ချင်တာတွေကို ငါလျှောက်ရေးမိနေလားလို့။ ဒါနဲ့ အခုတလော ဘလောဂ် သိပ်မရေးဖြစ်ပါ။ ကွန်ပျူတာရှေ့ထိုင်တိုင်း Facebook လေးကြည့်လိုက် သတင်းလေးဖတ်လိုက်နဲ့ အချိန်ကုန်နေခဲ့ပါသည်။

ဟိုတလောက ကိုယ့်ဘလောဂ်ကို ပြန်ကြည့်မိပါသည်။ အခုတလော Update မလုပ်ဖြစ်တာကြာပြီ ဖြစ်သည့်တိုင် နေ့စဉ် စာဖတ်သူများကို တွေ့ရပါသည်။ ထို့အပြင် ကျွှန်တော် ယခင်က ရေးသားခဲ့သော အခြေခံများကို ဖတ်လာသည်ကို တွေ့ရ၏။ ဝမ်းသာလိုက်သည့်ဖြစ်ခြင်း၊ ကိုယ်ရေးထားတာကို ဖတ်တဲ့သူရှိပြီ၊ အဲ့ဒီအသိက ကျွှန်တော့်ကို နည်းပညာနဲ့ပတ်သက်တဲ့ စာတွေကို ပြန်ရေးရန် တွန်းအားပေးလာပါသည်။

လောလောဆယ်တော့ ရေးလက်စတွေကို ပြန်ဖတ်ပြီး အကြောင်းအရာတွေကို ပြန်လည်စီစဉ်ပါဦးမည်။ စာဖတ်သူများသည် စာရေးသူများအတွက်  ရေကြည်တစ်ပေါက်ပင် ဖြစ်ပေသည်။

Monday, August 13, 2012

မရေးသားသင့်သော ရေးသားနည်း

မနေ့က မွေကိုက်သွားသည်။
ကျွှန်တော်သိ ဟိုစပ်စပ် ဒီစပ်စပ် ပါတတ်သောကြောင့်၊ အလုပ်ထဲမှာ ဘယ်သူမှ မလုပ်ဘူးသော အလုပ်များဆိုပါက ကျွှန်တော့်ဆီကို ရောက်သည်က များပါသည်။

ဒီလိုနဲ့ ကျွှန်တော်တို့ ပရိုဂျက်ရဲ့ System Testမှာ Batch System ကို Run ရတဲ့တာဝန် ကျွှန်တော်ကျသွားပါတယ်။ အစကတော့ဘယ်လိုလုပ်လဲ ဆိုတာစမ်းပြီး၊ လူသစ်တွေကို လွှဲပေးမယ် လို့ ဆိုပေမယ့်၊ စကတည်းက တက်လိုက်တဲ့ ပြဿနာ။ စာရွက်စာတန်းကလည်း မစုံ၊ ရေးထားတဲ့ Shell တွေကလည်း စိတ်ကုန်လောက်အောင် မလိုအပ်ပဲ ရှုပ်ထွေးနေ၏။ ပြီးတော့ Developer တွေက စည်းကမ်းမရှိတော့ ပြင်ချင်တဲ့ နေရာမှာ ပြင်ချင်သလိုပြင်ထားတော့ ဘယ်ဟာက မှန်တယ်ဆိုတာ ဆုံးဖြတ်ရ အလွန်ခက်သွားပါတယ်။

Cycle တစ်ခုမှာ ပြဿနာ တစ်ခါတက်ရင်း နောက်ဆုံးတော့ အဲ့ဒီ Batch Cycle ဟာ ကျွှန်တော့်တာဝန် ဖြစ်သွားတယ်။ အဲ့ဒီကြောင့် တနင်္လာနေ့ဆို အလုပ်စောစောသွားရတယ်။ မနေ့က Shellတစ်ခုမှာ ပြဿနာ  တစ်ခုတက်တယ်။ MV လုပ်တာ MV လုပ်မယ့် ဖိုင်တွေမရှိလို့တဲ့ Abnormal End ဖြစ်သွားတယ်။ ဟဘာလည်းဟ ဆိုပြီး Shell ကို ကြည့်တော့ အစက ကိုယ့် Log ဖိုင်နာမည်နဲ့ သွားရှာတယ်။ မတူတာရှိရင် flag ကို on လုပ်ပြီး၊ နောက်တွင် flag on ပါက အဲ့ဒီ ဖိုင်တွေကို Backup Directory ဆီသို့ mv လုပ်တယ်။

ပြဿနာက ဒီမှာစတယ်။ ဖိုင် အမည် စစ်တဲ့ Regression နဲ့ mv လုပ်တဲ့ Regression က မတူဘူး။ အဲ့ဒီတော့ တစ်ချို့ဖိုင်တွေကို MV မလုပ်နိုင်ဘူး ဖြစ်သွားတယ်။ ကျွှန်တော် စဉ်းစားလို့မရတာ ဒီပရိုဂရမ်မာက ဘာကြောင့် စစ်တဲ့ Regression နဲ့ mv လုပ်တဲ့ Regression ကို အတူတူမသုံးတာဆိုတာကိုပါ။

ရှေ့နဲ့ နောက်မတူတဲ့အတွက် ဒီတစ်ခေါက် မွေကိုက်သွားပါတယ်။

Sunday, August 12, 2012

ဒေါင်းသွေး


အရေးကြီးပြီ ညီအကို ညီအမတို့
သွေးစည်းကာ ညီကာညာကြစို့

ဒါဒို့မြေ ငါတို့မြေ
တို့အဖိုးတို့အဖွားတွေ ပေးတဲ့မြေ
သူတို့သွေးတွေနဲ့ ရင်းခဲ့တဲ့မြေ

ငါတို့ညီစွာ
ကာကွယ်ကြပါစို့

ငါတို့ မြေမှာနေ
ငါတို့ ရေကိုသောက်
ငါတို့ အမျိုး
ငါတို့ ဘာသာ
ငါတို့ သာသနာကို စော်ကား

မဟုတ်မတရား ပြောနေသူ ကုလားများအား
ငါတို့ ညီစွာ ဆန့်ကျင်ကြစို့

ငါတို့ ညီအမတွေ
ငါတို့ပြည်မှာနေ
စိုးရိမ်မှု့ကြောက်လန့်မှု့တွေ
ကင်းဝေးစေအောင်

ကုလားစုတ် ကုလားပုတ်
ကျူငုတ်မကျန်
ငါတို့ တွန်းလှန် ခြေမှုန်းကြစို့

ငါတို့ ဘာသာ သာသနာကို ငါတို့ ကိုယ်တိုင်
စောင့်ရှောက်ကြစို့

ခွတ်ဒေါင်းတွေလည်း တွန်နေပြီ
ငါတို့သွေးတွေ
ရဲရဲနီ
ညီညာကြပါစို့

Thursday, August 9, 2012

ပရိုတစ်ယောက်ရဲ့ ခံယူချက်

၁။ ငါဟာ မလိမ်ဘူး။
၂။ ငါဟာ တာဝန်ယူပြီးရင် ဖြစ်အောင်လုပ်တယ်။
၃။ ငါဟာ ငါ့တန်ဖိုးကိုငါသိတယ်။
၄။ ငါဟာ ငါ့လုပ်ရပ်အတွက် အခကျေးငွေကို ငါကိုယ်တိုင် ကြေနပ်စွာရယူတယ်။
၅။ ငါဟာ ငါ့တန်ဖိုးကို အခြားလူတစ်ယောက်က ဈေးလာဖြတ်တာ လက်မခံနိုင်ဘူး။

အဲ့ဒီတော့ မင်းမကျေနပ်ရင် ငါနဲ့ လာအတူတူ အလုပ်မလုပ်နဲ့။
မှတ်ထားဖို့ကတော့ မင်းငါ့ကို ဘယ်တော့မှ ဈေးလာမစစ်နဲ့။

သိထားဖို့က ငါ့မကြိုက်ရင် ငါဘာမှမလုပ်ဘူး။

Wednesday, August 8, 2012

Installation of scratch

Download the installer from here.
http://info.scratch.mit.edu/ja/Scratch_1.4_Download


After downloading Execute the installer


Press Next Button


Then Next


Then Press Install


Press Next again



Press Finish , You'll see the scratch browser.



Enjoy the programming.

Monday, July 16, 2012

Firefox နှင့် Flash

ပြီးခဲ့တဲ့ အပါတ်ကတည်းကဖြစ်သည်။ Firefox ဖြင့် Youtube တွေကို ဖွင့် မရသည့်ပြဿနာကို ကြုံခဲ့ပါသည်။ ဘာဖြစ်တာပါလိမ့်ပေါ့။ ဒါပေမယ့် မအားတာကြောင့် သိပ်ပြီး မကြည့်ဖြစ်ပဲ Chrome နဲ့သာ သုံးနေခဲ့မိသည်။

Chrome ကို သိပ်မကြိုက်ပါ။ မြန်မာစာဖတ်ချင် စိတ်ကြောင့် Zawgyi နဲ့ ရေးထားတာတွေကို Unicode ကို ပြောင်းတဲ့ Plugin ဖြစ်တဲ့ One Universe ကို အင်စတောလုပ်ထားပြီး၊ ဇော်ဂျီ နဲ့ရေးထားတာတွေကို ယူနီကုဒ်ကို ပြောင်းပြောင်းပြီး ဖတ်လေ့ရှိပါတယ်။ ဒါပေမယ့် ရန်ဖန်ရံခါ မှန်အောင် ပြန်နိုင်ခြင်းမရှိပဲ ရှုပ်ရှက်တွေခပ် ကုန်သည့်အခါ ရှိပါသည်။

ဒါပေမယ့် ဒီလိုကြည့်လို့ရအောင် ကြိုးစားပေးထားတဲ့ ကိုစေတန်ကို ကျေးဇူးတင်လျှက်၊ ယခုအချိန်အထိ ဇော်ဂျီကို သုံးနေသော သူများကို ဒေါပွမိ၏။ သင်းတို့ကြောင့် မြန်မာ ကွန်ပျူတာလောက က မဖွံ့ဖြိုးတာ။ သာမန် အသုံးပြုသူဆိုထားတော့။ Developer ဖြစ်ပြီး ဇော်ဂျီသုံးနေသူများကိုတော့ အတော်လေးကို စိတ်ကုန်မိပါသည်။

ဒါတွေထားတော့ အဓိက ပြောချင်တာဒါမဟုတ်။ အဲ့ဒါကြောင့် Firefox ကို Unicode နဲ့ ချိန်ပြီး သုံးနေမိခဲ့တာက များပါသည်။ ရန်ဖန်ရံခါ ကိုယ်လေးစားတဲ့သူက Facebook ပေါ်မှာ ရေးထားတာကို Firefox နဲ့ ဖတ်မရမှသာ Chrome ကို ဖွင့်ပြီး ဘာရေးထားတာတုန်းဟု ဝင်ဖတ်လေ့ရှိပါသည်။ ကျွှန်တော်အမြဲသုံး Firefox က ပြီးခဲ့တဲ့အပတ်က စပြီး Flash တွေကို ကောင်းကောင်း အလုပ်မလုပ်စေတော့ပါ။ Flash Player Version အသစ်ထွက်ပြန်ပြီဟု ထင်မိလိုက်ပါသည်။

ဒီအပါတ်ပိတ်ရက်ကြမှပဲ ရှာကြည့်ပါသည်။ Flash Player Version 11.3 ကို ဇူလိုင်လ ၈ရက်နေ့ကစပြီး ထုတ်ပြန်လိုက်ပုံရ၏။ ကျွှန်တော့် ကွန်ပျူတာမှာက အင်စတောလုပ်ရမှာ အလုပ်ရှုပ်တာနဲ့ ဗားရှင်း အပ်ဒိတ်ကို အလိုအလျှောက်လုပ်ရန် ချိန်ထားပါသည်။ ဒါကြောင့် ဗားရှင်း အသစ်ကို အလိုအလျှောက် အပ်ဒိတ်လုပ်သွားပါသည်။

ဗားရှင်း 11.3 တွင် Windows Vista နှင့် Windows 7 ကို သုံးပါက Firefox အတွက် Safety Mode ကို အသစ် ဖြည့်စွက်ခဲ့ပုံရ၏။ အဲ့ဒီ ဖန်ရှင် အသစ်သည် Firefox တွင် ကောင်းစွာအလုပ်လုပ်ပုံမရ။ ဒါကြောင့် Flash Player အသစ်ကို အင်စတောလုပ်ပါက Firefox တွင် Youtube တွေကြည့်မရသည့် ပြဿနာကို ဖြစ်ပွားစေပုံရ၏။

အချို့သောဆိုဒ်များတွင် Setting ဖိုင်အား ပြင်လျှင်ရသည်ဟု ရေးသားထားသော်လည်း ကျွှန်တော် ပြင်ကြည့်သောအခါ မရပါ။ ဒါကြောင့် ရှိပြီးသား Flash Player အသစ်ကို Un Install လုပ်ပြီး ဗားရှင်းအဟောင်းကို http://helpx.adobe.com/flash-player/kb/archived-flash-player-versions.html ဒေါင်းလုဒ်လုပ်ပြီး ပြန်အင်စတော လုပ်လိုက်ပါသည်။

ဒီတော့မှ Firefox ဖြင့် Youtube ကြည့်လို့ရပါတော့သည်။ ဒီနေရာမှာတော့ Chrome က Firefox ထက် ပိုတော်သွားသည်ဟု ဆိုရမည်။ ဘာပြဿနာမှ မတက်လိုက်ပါ။ ဒါပေမယ့် Facebook ရဲ့ layout အချို့နဲ့ ဓာတ်ပုံ အချို့မှာ အခုထက်ထိ Bug တွေတက်နေတုန်းဖြစ်ပါသည်။ ဒါက Chrome နဲ့သိပ်မဆိုင်ပဲ Facebook Developer တွေရဲ့ ညံ့ဖျဉ်းမှု့ကြောင့် ဖြစ်ပါလိမ့်မည်။ Web Developer ဖြစ်ပါက အနည်းဆုံး IE, Chrome, Firefox နဲ့ Opera တို့မှာ တူညီစွာ အသုံးပြုနိုင်ရန် ရေးသားရန်လိုအပ်ပါသည်။

Flash Player ဗားရှင်း အဟောင်းကြီးသုံးနေရတာ အမှန်တော့ အန္တရယ်ကြီးပါသည်။ အဲ့ဒီနေရာက Security Hole ဖြစ်သွားနိုင်ပါသည်။ သတိဝရိယရှိစွာနဲ့နေမှ။

Monday, June 25, 2012

Playframework နှင့် တိုင်ပတ်ခဲ့ရသောည

Heroku မှာ Account ဖွင့်ပြီးတာကြာပြီ။ လက်တွေ့မစမ်းဖြစ်သေးပါ။ မနေ့ကစပါသည်။ Playframework Application တစ်ခု Heroku ပေါ်တွင်တည်ဆောက်ပြီး Check Out လုပ်ခဲ့ပါသည်။ တဖန် Heroku ကို သိပ်ပြီး သုံးလေ့မရှိတဲ့အတွက် ဟိုကြည့်ဒီကြည့်လုပ်နေရင်း မနေ့က တကယ်တမ်း မရေးဖြစ်ခဲ့ပါ။

ဒီနေ့မနက် အလုပ်သွားကတည်းက စိတ်ထဲတွင် ဒီ Heroku အကြောင်းပဲ ပေါ်ပေါ်လာပါသည်။ ၁၀တန်းအောင်ပြီး ရီးစားစထားကစကလိုပင်။ ဘာလုပ်လုပ် ခေါင်းထဲဝင်ဝင်လာ၏။ အလုပ်ထဲတွင် ကွန်ပျူတာကြီး ဖွင့်ပြီး Test Case တွေရေးနေရင်းရော၊ ထမင်းဘူးဖွင့်ပြီး တူကိုင်ကာ ငိုင်တိုင်တိုင်လုပ်နေရင်းကော၊ အလုပ်ပြီး အိမ်ပြန်လို့ ရထားပေါ်တွင် ထိုင်နေရင်းပါ ဒီ Heroku ကိုပဲ စိတ်ထဲရောက်နေပါသည်။

Heroku သည် GAE၊ Cloudbees, Open shift နှင့် Cloudfoundry တို့ကဲ့သို့ Java ကို အသုံးပြုနိုင်သော Cloud Services တစ်ခုပင် ဖြစ်၏။ ဘာကြောင့် ဒီလောက် စိတ်ထဲကို ရောက်ရောက်နေတာလဲ။ Heroku ကို ဝင်ကြည့်လိုက်လျှင် သိပါလိမ့်မည်။

အရမ်းကို လွယ်ကူ၍၊ အရမ်းကို စွမ်းအားကြီးပြီး၊ အရမ်းကို လွတ်လပ်တဲ့အတွက်ဖြစ်ပါတယ်။ လွယ်သလားဆိုတော့ Mail Account တစ်ခုရှိရုံနှင့် Heroku Account ကို ဖွင့်နိုင်ပါတယ်။ Facebook ကို ဝင်တုန်းကထက်တောင် လွယ်ပါသေးတယ်။ ပြီးတော့ create application ကို နှိပ်လိုက်တာနဲ့ Heroku အပေါ်မှာ နှစ်သက်ရာ Template မှ တဆင့် အပလီကေးရှင်းကို တည်ဆောက်နိုင်သည်။

ပြီးရင် git ကနေ checkout လုပ်ပြီး ပြင်ဆင်ရေးသားရုံပင်။ ၁၀မိနစ် တောင်ကြာမည်မထင်။

ဒါနဲ့ မနေ့က Playframework အပလီတစ်ခုကို တည်ဆောက်ပြီး၊ အမျိုးမျိုး စမ်းနေကြည့်မိသည်။ ဒါပေမယ့် Eclipse မှာတော့ import မလုပ်မိသေးပါ။

ဒီနေ့ အိမ်ပြန်ရောက်တာနဲ့ ထမင်းစား၊ တူဖြစ်သူ ကောင်းကောင်းလေက Youtube ကြည့်နေတာစောင့်ပြီး၊ ကောင်းကောင်း အိပ်တာနဲ့ Eclipse ကို ဖွင့်ကာ import လုပ်ပါတော့တယ်။ အဲ့ဒီကျမှ ဒုက္ခတွေ့ပါတော့တယ်။ param eclipsify ကို မသိဘူးဖြစ်နေတယ်။ တက်လိုက်တဲ့ အဲရာတွေ။ ဘာဖြစ်တာလဲပေါ့။

နက်ထဲမှာ ဟိုရှာဒီရှာလုပ်တာလည်း အဖြေကမတွေ့။ Play ကိုလည်း စသုံးကာစမို့ ဘာဖြစ်လို့ဖြစ်မှန်း မသိ။ ဒါနဲ့ Eclipse ကမဟုတ်ပဲ cmd နဲ့ ကြိုးစားကြည့်ပါတယ်။ Heroku က ချက်အောက်လုပ်ထားတဲ့ project မဟုတ်ပဲ ပရိုဂျက်တစ်ခုကို create လုပ်ပါတယ်။

ပြီးတော့ play ကွန်ဆိုးကိုခေါ်ပြီး၊ eclipsify ဆိုပြီး စမ်းကြည့်တယ်။ အလုပ်လုပ်တာကိုတွေ့တယ်။ ကျွှန်တော် ရိပ်မိလိုက်ပါပြီ။ ကျွှန်တော် ဒေါင်းလုဒ်လုပ်နေတဲ့ Play framework က အသစ်ဖြစ်နေသည်ဟု။ ဒါနဲ့ Heroku မှ ယူထားသော Play Project ကို ကြည့်ကြည့်သောအခါ ဗားရှင်းမှာ ဟောင်းနေပါသည်။

နောက်နေ့မှ Play အသစ်နဲ့ အပလီကေးရှင်းကို Heroku ပေါ်တင်ကြည့်ပါဦးမည်။

ဒီနေ့တော့ အိပ်တော့မည်။

Thursday, June 21, 2012

.htaccess hack

အခုတလော မြန်မာဟက်ကာများနှင့် ဘင်္ဂလားဒစ်ဟက်ကာများ၏ စိုက်ဘာစစ်ပွဲဟု ဖြစ်ပွားနေကြပါသည်။ ဘာတွေများ ဖြစ်ကြတာပါလိမ့်ဟု။ မြန်မာဟက်ကာတွေက ဘင်္ဂလာဒစ်မှာရှိတဲ့ Web Site တွေကို ဟက်၊ ဘင်္ဂလားဒစ်က ဟက်ကာတွေက မြန်မာပြည်က Web Site တွေကို ဟက်ပေါ့။

သေချာစဉ်းစားလျှင် အဟက်ခံရတဲ့ Web Site တွေက ကြားထဲက ခံရခြင်းဖြစ်၏။ ဒီကောင်တွေ ဒီလောက်စွမ်းနေမှတော့ အပြင်မှာ တုတ်ဆွဲပြီး ရိုက်ကြကွာဟု ပြောလိုက်ချင်ပါသည်။

ဟက်ပုံများကို လေ့လာကြည့်ပါသည်။ ဒီတစ်ခေါက် ဟက်ကြခြင်းသည် .htacess hack နည်းနှင့် ခပ်ဆင်ဆင်နည်းများကို အသုံးပြုထားခြင်း ဖြစ်၏။


.htacess hack ဆိုသည်မှာ

Web Server များ၏ .htacess ဖိုင်အား ပြုပြင်ပြောင်းလည်းခြင်းဖြင့် ထို Web Site အား Access လုပ်သည့်အခါ အခြားသော Web Site ဆီသို့ Redirect လုပ်ပစ်ခြင်း ဖြစ်သည်။ ဤနေရာတွင် Redirect လုပ်ခြင်းမဟုတ်ပဲ တိုက်ရိုက်ပြုပြင် ပစ်ခြင်း ဖြစ်သည်။

ဖြစ်ပွားပုံအကြောင်းအရင်းမှာ အောက်ပါအချက် ၃မျိုးမှဟု စဉ်းစားနိုင်ပါသည်။

  • Admin ၏ ကွန်ပျူတာအား ဗိုင်းရပ်စ်ဝင်ရာမှ၊ Admin မှ Web Server အား FTP ဖြင့် ဖိုင်တင်ရာတွင် account နှင့် password သည် ပေါက်ပွားသွားခြင်း။
  • Admin ၏ ကွန်ပျူတာအား ဗိုင်းရပ်စ်ဝင်ရာမှ၊ Admin ၏ FTP Setting အချက်အလက်များ ပေါက်ကြားသွားခြင်း။
  • Web Serve တွင် အသုံးပြုနေသော Web Application (CMS) များ၏ အားနည်းချက်များမှ ပြင်ပမှ ဖောက်ဝင်ရလွယ်ကူစေခြင်း။

ကြိုတင်ကာကွယ်ရန်အတွက်၊ အောက်ပါ အချက်များအား ကရုပြုသင့်ပါသည်။
  • စကားဝှက်ခြင်း မပြုပဲ File များအား FTP ဖြင့် upload လုပ်ခြင်းအား ရှောင်ရှားခြင်း။ Upload လုပ်လိုပါက SFTP, FTPS နည်းကို အသုံးပြုခြင်း။ FTP ကို သာအသုံးပြုနိုင်သော FFFTP အား တတ်နိုင်သလောက်အသုံးမပြုပဲ၊ SFTP, FTPS ကို အသုံးပြုနိုင်သော FileZilla ဒါမှမဟုတ် WinSCP အား အသုံးပြုခြင်း။
  • FTP Software များ၏ Setting File များအား စကားဝှက်စနစ်အားအသုံးပြု၍ ထိမ်းသိမ်းခြင်း။ Master Password နည်းကို အသုံးပြုသော Software များကို အသုံးပြုခြင်း။ FFFTP နှင့် WinSCP တို့သည်၊ Master Password ကို အသုံးပြုနိုင်ပါသည်။
  • မိမိကအသုံးပြုနေသော CMS Application (Wordpress, Joomla, Movatype ...) များ၏ လုံခြုံရေး သတင်းများအား မကြာခဏ နားစွင့်နေပြီး၊ အမြဲဆိုသလို Update လုပ်ခြင်း။

အဓိကအကျဆုံးမှာ မိမိအသုံးပြုနေသော ကွန်ပျူတာတွင် Antivirous Software တစ်ခုခုကို တင်ထားခြင်း။ Windows Update ကိုလည်း မမေ့ခြင်း။ မဖွယ်ရာသော ဆိုက်များအား Access မလုပ်ခြင်း။ ထို့အပြင် ဒေါင်းလုဒ်လုပ်ပါဟု ပြောတိုင်း Yes မလုပ်မိစေခြင်း အစရှိသည်တို့သည်လည်း မရှိမဖြစ်လိုအပ်သော အခြေခံများကိုလည်း လိုက်နာသင့်ပါသည်။



အဟက်ခံရပြီဆိုပါက

မိမိ၏ ဆာဗာအား အဟက်ခံရပြီဆိုပါက အောက်ပါအချက်များအား စမ်းစစ်သင့်ပါသည်။
  • ကိုယ်မသိပဲ .htaccess File တစ်ခုခုများ upload ခံနေရသလားဆိုသည်ကို၊ root အောက်တွင်သာမက Sub Directory များ အောက်ကိုပါ ရှာကြည့်ပါ။
  • နောက်ပြီး ယခင်ရှိခဲ့သော .htaccess ဖိုင်အား ပြုပြင်ပြောင်းလည်းခြင်း ခံနေရသလား ဆိုသည်ကို စမ်းစစ်သင့်ပါသည်။ last update time အား check လုပ်ကြည့်ပါ။ မိမိမသိပဲ အပြုပြင် ခံနေရတတ်ပါသည်။
  • မိမိ မတင်ထားသော ဖိုင်များ ရှိမရှိကို စမ်းစစ်ပါ။
  • Wordpress, Joolma တို့တွင် အသုံးပြုနေသော PHP ဖိုင်များအား စမ်းစစ်ကြည့်ပါ။

နောက်ဆုံးသတိပြုရန် အချက်မှာ အထက်ပါ ဖိုင်နှင့် ဒိုင်အတ္တရီများ၏ Permission အား လူတကာပြုပြင်ရေးသားနိုင်သော 777, 774 အဖြစ်မသတ်မှတ်ပဲ၊ 644, 604 တို့ကို အသုံးပြုရန် တိုက်တွန်းအပ်ပါသည်။

Wednesday, June 13, 2012

Android Action

ဒီနေ့ စနေနေ့က အလုပ်ဆင်းထားပါသဖြင့် အစားနားရပါသည်။ တနေကုန်စာရေးလိုက်၊ စာဖတ်လိုက်နဲ့ အလုပ်ရှုပ်နေခဲ့ပါသည်။ ကျွှန်တော်သည် တစ်ခုတည်းလုပ်ရတာ ၂နာရီထက်ကြားလာလျှင် ပျင်းလာတတ်ပါသည်။

ကွန်ပျူတာကို ကျွှန်တော်နှစ်သက်ခြင်းသည် အဲ့ဒီကိစ္စလည်းပါမည် ထင်သည်။ သူ့မှာ ပျင်းစရာမရှိ။ လေ့လာမယ်ဆိုရင် တကယ်ကို လေ့လာစရာမကုန်။ Web, Desktop, Mobile, Java, Security, Python, Linux အစရှိသဖြင့် လေ့လာရမည် ဆိုလျှင်ကုန်မည်မဟုတ်။ ဒါကြောင့်လည်း ကျွှန်တော်သည် ကွန်ပျူတာနဲ့ တွေ့တော့မှပဲ စိတ်ငြိမ်ရတော့ပါသည်။

ဒီနေ့ ညနေပိုင်းတွင် စာရေးရတာ စိတ်ပင်ပန်းလာပါသဖြင့် Eclipse ကို ဖွင့်၊ ပြီးခဲ့သော အပတ်က ရေးထားခဲ့သော Android ပရိုဂျက်ကို ပြန်ဖွင့်ပါသည်။ ဘာတွေပါလဲပေါ့။



Source Folder အနေနဲ့ src နဲ့ gen ကို တွေ့ရပါသည်။ Java Source တွေကို src ထဲမှာ ရေးရမှာဖြစ်ပြီး၊ gen ထဲမှာကတော့ သူ့အလိုလို ရေးပေးတဲ့ ကုဒ်တွေကို ထားရမှာဖြစ်တယ်ဆိုတာ သိလိုက်ရပါသည်။

ပြီးတော့ folder များအနေနဲ့ assets, bin, rest တို့ကို တွေ့ရသည်။ assets ဆိုတာဘမှန်း မသိသော်လည်း၊ bin ဆိုတာက binary ဖြစ်တဲ့အတွက် class တွေက ဒီနေရာမှာ ထွက်လိမ့်မည်၊ ပြီးတော့ res ဆိုတာကတော့ resource ရဲ့ အတိုကောက်ဖြစ်မည် ဟု တွေးမိပါသည်။

ဒါနဲ့ res ထဲကိုဖွင့်ကြည့်သည်။ drawable-hdpi, drawable-ldpi, drawable-mdpi, drawable-xhdpi, layout နှင့် values တို့ကိုတွေ့ရပါသည်။ drawable တွေက ဘာတွေမှန်းမသိ။ နောက်မှလေ့လာပါမည်။ layout ဆိုတာကို စိတ်ဝင်စားသွား၍ ဖွင့်ကြည့်သည်။ main.xml ကို တွေ့ရပါသည်။ ဒါနဲ့ double click နှိပ်ပြီး ဖွင့်ကြည့်သည်။ GUI လေးအောက်ဒီဇိုင်းနာ ကိုတွေ့ရပါသည်။ GUI တွေကို လွယ်လွယ်ကူကူ ဒီမှာရေးလို့ရမှာပဲဟု။ Swing ကို Eclipse Windows Builder ဒါမှမဟုတ် Netbeans တို့နဲ့ ရေးဘူးသူဆိုပါက အခက်အခဲရှိမည် မဟုတ်။

ချက်ချင်းဆိုသလို TextView နှစ်ခု EditText တစ်ခုနဲ့ Button တစ်ခုကို ရေးကြည့်သည်။ Component အပေါ်မှာ ညာကလစ်နှိပ်ပြီး ဘာလုပ်လို့ရလဲဟုကြည့်သည်။ Edit Text ကို တွေ့ရသဖြင့် ဖွင့်ကြည့်သည်။ Text တွေကို Resource ဖြင့် Mapping လုပ်နေတာကို တွေ့ရသည်။ ဒါနဲ့ မပြောင်းလည်းမယ့် Text တွေကို Project Resource နဲ့ Map လုပ်သည်။ values ဖိုလဒါထဲက string.xml မှာ value အသစ်တွေကို အလိုအလျှောက်ရေးနိုင်သည်ကို တွေ့ရပါသည်။

ဒါနဲ့ input လဲရေးပြီးပြီ၊ button လည်းရေးပြီးပြီ၊ action ကို ဘယ်လိုရေးမလဲ ဟုသွားကြည့်ပါသည်။ ယခင်ရေးခဲ့သော YawanaActivity.java ကို ပဲပြန်ပြင်ရေးရမည် ဟုထင်ပါသည်။

public class YawanaActivity extends Activity {
 
    private Button button1;
    private EditText editText1;
    private TextView textView2;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        this.initView();
    }
    
    private void initView() {
     this.button1 = (Button) this.findViewById(R.id.button1);
     this.editText1 = (EditText) this.findViewById(R.id.editText1);
     this.textView2 = (TextView) this.findViewById(R.id.textView2);
     
     this.button1.setOnClickListener(new OnClickListener() {
   
   public void onClick(View arg0) {
    textView2.setText("Hello " + editText1.getText());
   }
  });
    }
}

အထက်ပါအတိုင်း onCreate ထဲတွင် setContentView ဟု view တွင် ရေးထားသော R.layout.main ကို ရေးသားစေပါသည်။ View ကို ရေးသည့်အခါတွင် အလိုအလျှောက် ရေးသားခံခဲ့ရသော Java Class တစ်ခုဖြစ်ပြီး၊ အချက်အလက်များကို static အနေဖြင့် သိမ်းထားပါသည်။ လောလောဆယ်တော့ main ကို အသုံးပြုလိုသဖြင့် ဤကဲ့သို့ရေးသားလိုက်ပါသည်။

ပြီးလျှင် ကျွှန်တော်ရေးသားထားသော Button ကို Event နဲ့ ပူးပေးရပါမည်။ Swing မှာဆိုလျှင် addListiner ဘာညာပေါ့ ဆိုပြီး codeAssit နဲ့ ရှာကြည့်သည်။ setOnClickListener ကို တွေ့ရသည်။ ဒါပဲပေါ့။ ဒါနဲ့ OnClickListener ကိုပဲ ဒီအတိုင်း new လုပ်ပါသည်။ ပြီးလျှင် override လုပ်ရမည့် onClick ကို ဖြည့်စွက်ရေးပါသည်။

Application ကို run ကြည့်ပါသည်။


နမှုနာအပလီ တက်လာပါသည်။ ဒါနဲ့ input ထဲတွင် Min Lwin ဟုရိုက်ပြီး၊ Greet Button ကို နှိပ်လိုက်သည်။ Hello Min Lwin ဟုထွက်လာသည်ကို တွေ့ရသည်။

Swing အတွေ့အကြုံရှိသူ Java ပရိုဂရမ်မာတစ်ယောက်အတွက် Android သည် လေ့လာရ လွယ်ကူပါလိမ့်မည် ဟု ယုံကြည်မိပါသည်။

JQuery ဖြင့် Link များကို လှပစေခြင်း

အခုတလော စာသိပ်ပြီး မရေးဖြစ်ဘူး။ ရေးရမယ့်စာတွေကို ပြောတာပါ။

  • Esay JSP
  • Happy Hacking
  • Java 7 ရဲ့ အခန်းဆက်
  • Essential Java API
  • Easy B Shell
  • XML ဆီသို့ ခြေလှမ်းများ
  • Play Framework
  • အခြေခံ Database
  • အခြေခံ Web Design
ဒါပေမယ့် JSP အရောက်မှာ ထစ်နေသည်။ ရေးတော့ရေနေပါသည်။ Java EE နဲ့ပတ်သက်ပြီး Framework တွေပိုင်းမှာ အားကောင်းနေပေမယ့် အခြေခံနေရာတွေမှာ သိပ်ပြီး အားတက်မလာတာကို တွေ့ရသည်။ ဒါကြောင့်လည်း ဒီအချိန်မှာ JSP ရယ်လို့ လုပ်နေတဲ့သူ ရှားနေတာပါလားလို့ တွေးမိပါသည်။

ဒီနေ့ကတော့ tech4mm မှာ Security နဲ့ပတ်သက်သော အကြောင်းကို ရေးသားဖြစ်ပါသည်။ တဖန် မနေ့ညက Easy B Shell ရဲ့ Built In Command များ အကြောင်းကို ရေးခဲ့ပါသည်။ ဒါလည်း ထစ်နေသော ပိုစ်တစ်ခု ဖြစ်ပါသည်။ JSP တွင်လည်း JSTL အကြောင်းကို ရေးရင်း ထစ်နေခြင်းဖြစ်ပါသည်။

ရေးပြီးစိတ်ပြေလက်ပျောက်အနေနဲ့ TCP/IP အကြောင်းကို လေ့လာခဲ့သည်။ ၂နာရီလောက် စာဖတ်ပြီးသော် အနည်းငယ်ပျင်းလာပါသဖြင့် မြန်မာဂျာဗားယူဇာဘလောဂ်တွင် တစ်ခုခုပြင်မှပဲဟု စဉ်းစားမိပါသည်။

ဟုတ်ပြီ jQuery ကို သုံးပြီး တစ်ခုခု ရေးမှပဲဟု။ Top 10 post များရှိပါသည်။ ဒီ လင့်ခ်တွေကို လှုပ်လှုပ်ရှားရှား ဖြစ်အောင်လုပ်မှပဲဟု။

သူရဲ့ ဖွဲ့စည်းပုံက DIV / UL / LI / A ဟုဖြစ်သည်။ Top 10 သည် blogger ၏ plugin တစ်ခုကို သုံးထားပါသဖြင့် အတွင်းပိုင်းကို အလွယ်တကူ ပြုပြင်၍မရပေ။ ဒါနဲ့ div ကို ကြည့်သည်။ class မှာ popular-posts ဟု ရေးသားသားသောကြောင့် jQuery နဲ့ Access လုပ်နိုင်သည်ဟု တွေးမိသည်။

အရင်တစ်ခေါက်ရေးထားသော side menu တွင် jquery ကို သုံးထားသောကြောင့် အဲ့ဒီထဲတွင် ပြင်ရေးရန် ဆုံးဖြတ်လိုက်သည်။

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script>
$(document).ready(function() {

// Accordion Menu
$("#accordion").accordion({ autoHeight: false });


// Popular posts
$('div.popular-posts > ul > li > a').hover(
    function() { //mouse in
        $(this).animate({ paddingLeft: '20px' },400);
    }, 
    function() { //mouse out
        $(this).animate({ paddingLeft: 0 }, 400);
    }
);

// Tag cloud
$('a.tagcloud').hover(
    function() { //mouse in
        var size = parseFloat($(this).css('font-size'),10);
        $(this).animate({ fontSize : size * 3 },400);
    }, 
    function() { //mouse out
        var size = parseFloat($(this).css('font-size'),10);
        $(this).animate({ fontSize : size / 3 }, 400);
    }
);

});
</script>


အထက်ပါ Popular posts ကို ကြည့်ပါ။ $('div.popular-posts > ul > li > a') ဟု လင့်ခ် Tag ကို ဆက်သွယ်ပြီး၊ hover လုပ်ဆောင်ချက်ကို လုပ်ဆောင်စေပါသည်။ hover လုပ်ဆောင်ချက်၏ ပဋ္ဌမပါရာမီတာအဖြစ် ဘယ်ဘက်ကို peddingLeft လုပ်စေမည့် Animation ကို လုပ်ဆောင်စေမည့် လုပ်ဆောင်ချက်ကို သုံးပြီး၊ ဒုတိယပါရာမီတာအဖြစ် 0 px peddingLeft လုပ်ဆောင်စေမည့် လုပ်ဆောင်ချက်ကို ခေါ်ယူစေပါသည်။ နမှုနာကို စမ်းသပ်ကြည့်ပါ။


တဖန် Tag Cloud နမှုနာမှာ $('a.tagcloud').hoverဖြင့် Font Size ကို ၃ ဆကြီးစေခြင်း၊ ပြန်ငယ်စေခြင်းကို သုံးထားပါသည်။


JQuery ကို အသုံးပြုခြင်း အားဖြင့် သင်၏ ဘလောဂ်ရှိ လင့်များကို လှပစေနိုင်ပါသည်။

Tuesday, June 5, 2012

Hello Android

ဒီနေ့ အလုပ်ပြီး အိမ်ပြန်ရောက်တာနဲ့ ကောင်းကောင်းလေး ကွန်ပျူတာ မသုံးတဲ့အချိန်ကို စောင့်ကြည့်ပြီး Android SDK ကို ဒေါင်းလုဒ်လုပ်ပါတယ်။ ပြီးတော့ Eclipse မှာ Plugin ကို အင်စတောလုပ်ပါတယ်။

ပြီးတော့ New Project နဲ့ Android Project တစ်ခုကို တည်ဆောက်ပါတယ်။ အထဲထဲမှာ Activity ကလပ်စ် တစ်ခုကို တွေ့တယ်။

နမှုနာထဲမှာပါတဲ့အတိုင်း TextView အော့ဘဂျက်တစ်ခုကို ခေါ်ယူပြီး၊ အဲ့ဒီနေရာမှာ "Hello Android Application." ဟု ဖြည့်စွက်ရေးသားပါတယ်။

ပြီးတော့ Run As > Android Application ကို Run ကြည့်ပါတယ်။ Android Virtual Device မရှိတဲ့အတွက် ဘာကိုရွေးမလဲဆိုပြီး AVD Manager က ထွက်ပေါ်လာပါတယ်။ သြ AVD မရှိဘူးပဲ။ ဒါနဲ့ AVD တစ်ခုကို New လုပ်ပါတယ်။

ပြီးတာနဲ့ ပြန်ပြီး Run ကြည့်ပါတယ်။



မဆိုးပါဘူး။ နောက်နေ့မှ ဆက်လုပ်ပါဦးမယ်။

Monday, June 4, 2012

Android မှာ မြန်မာယူနီကုဒ်ကို သုံးလို့ရတဲ့ ဘရောင်းဇာ မရှိဘူး

ကျွှန်တော်သုံးနေသော ဖုန်းသည် Android ဖြစ်၏။ ကျွှန်တော်သည် Java ပရိုဂရမ်မာ တစ်ဦးဖြစ်၏။ Android ပေါ်ခါစက လေ့လာရန် စဉ်းစားခဲ့သော်လည်း မလုပ်ဖြစ်ခဲ့။ Android သည် ဖုန်းတစ်လုံးသာဖြစ်ပြီး၊ ဒီကောင်ပေါ်မှာ လုပ်နိုင်တဲ့အလုပ်ဟာ သိပ်ရှိမှာမဟုတ်ဘူး၊ ပြီးတော့ အခြားသော Java တွေက ပိုပြီးစိတ်ဝင်စားစရာကောင်းတဲ့ အတွက် Android ကို လေ့လာတဲ့အထိ မရောက်ခဲ့ပါ။


ဒီနေ့ Android Play ဈေးကွက်ထဲက မြန်မာ ဘရောင်းဇာတစ်ခုကို ဒေါင်းလုဒ်လုပ်ခဲ့ပါသည်။ ဇော်ဂျီကုဒ်ကို ဒီအတိုင်းကြည့်လို့ရပါသည်။ မြန်မာယူနီကုဒ်ကို ကြည့်မရပါ။ အတော်လေးကို တင်းသွားပါသည်။ ဘယ်သူမှ ရေးမထားရင် ငါရေးမယ်ဆိုပြီး။ ဒါပေမယ့် အခုကစရပါမည်။ လော်လောဆယ်တော့ ရှိပြီးသား ပရိုဂျက်အဟောင်းများကို လိုက်ပြီး ရှာဖွေပါဦးမည်။

မြန်မာယူကုဒ်ကို နေရာတကာမှာ အသုံးပြုနိုင်ရေးသည် ကျွှန်တော်တို့အားလုံး အရေးဖြစ်ပါသည်။

Monday, May 21, 2012

ဂျာအေးနှင့် မုန့်လုံး

မုန့်လုံးကို စက္ကူကပ်လို့

ပြာကလပ်နဲ့ ဆွမ်းတော်တင်

ပုလင်ပေါ်က မြောက်ကလေး

ဆင်းတယ်လို့ပြေ ဂျာအေး

ဂျာအေးကို သူ့အမေရိုက်ပါလို့

မောင်မိုက်မှာငို

ကိုလူပျို ထံရံအောက်က

ခြေထောက်ကိုဆွဲ တွဲလဲ

တွဲလဲနေပါအုံး

မိုးတောင်ကချုန်း မုန့်လုံး


စကားသိပ်ပြီးမပြောလိုသော ကျွှန်တော်

ကျွှန်တော်သည် စကားအများကြီး မပြောချင်သောကြောင့် လူတွေနဲ့ သိပ်ပြီး မဆက်ဆံရသော ပရိုဂရမ်မာ အလုပ်ကို ရွေးချယ်ခဲ့ပါသည်။ အထူးသဖြင့် စီးပွားရေး သမားများဖြင့် သိပ်ပြီးစကားမပြောလိုပါ။

ဒါပေမယ့်လည်း ဒီအတိုင်း ပရိုဂရမ်တွေကြီးပဲ ထိုင်ရေးနေတော့မလားလို့ ကိုယ့်ဟာကိုယ်မေးကြည့်ပါသည်။ သူများခိုင်းတာကြီးပဲမဟုတ်ပဲ ကိုယ်ရေးလိုတာကိုရေး၊ ကိုယ်စိတ်ဝင်စားတာကိုလေ့လာ အဲ့ဒီလိုနေချင်ပါသေးသည်။

လုပ်ချင်တာတွေကြီးပဲလုပ်နိုင်ဖို့ မလုပ်ချင်တာတွေကိုလည်း အနည်းငယ်လုပ်ဖို့လိုပါလိမ့်မည်။ ကျွှန်တော် အားရင် အိမ်မှာကုက်၊ စာဖတ်စာရေး ပရိုဂရမ်ရေးတာကို ခေတ္တရပ်နားပါဦးမည်။ အပြင်ထွက်မည်၊ လူတွေနဲ့ စကားပြောရပါဦးမည်။

ဟိုတရက်က အပြင်ခဏထွက်ပါသည်။ စကားပြောမိပါသည်။ စီးပွားရေးသမားတွေနဲ့ စကားပြောရတာ အလွန်ဒေါသထွက်ဖို့ကောင်းပါသည်။ မဖြစ်၊ မဖြစ် ဒီနေရာမှာ ငါသီးခံမှ ဟု ကိုယ့်ဟာကိုယ်အားပေးရင်း ကြိုးစားလိုက်ပါဦးမည်။

Thursday, April 26, 2012

လူ့အလိုနတ်မလိုက်နိုင်

ကွန်ပျူတာလောကတွင် ထင်ရှားသော ပုံပြင်တစ်ခုရှိ၏။ ရွာတစ်ရွာတွင် လူသားတစ်ယောက်ရှိ၏။ သူ့အမည်မှာ မောင်လူလေးဖြစ်၏။ တနေ့ မောင်လူလေး ကောက်ရိတ်ရာကအပြန် လမ်းတွင် သစ်ပင်တစ်ပင် ပြိုလဲနေပြီး လမ်းပိတ်နေပါသည်။

မောင်လူလေးလည်း ဒုက္ခပဲ။ ရွာထဲက ကျောင်းသားတွေတော့ ကျောင်းနောက်ကျတော့မှာပဲ ဆိုပြီး၊ သစ်ပင်ကို ကြိုးစားပမ်းစား ဖယ်ထုတ်ပြီး လမ်းရှင်းခဲ့ပါသည်။ ဒီလိုနဲ့ မောင်လူလေး အိမ်ပြန်ရောက်ပြီး ရေချိုး၊ ထမင်းစား ဗွီဒီယိုကြည့်ပြီး ညအိပ်ပါသည်။

မောင်လူလေး အိပ်မောကျနေချိန်မှာ ကိုယ်ရောင်ကိုယ်ဝါတွေနဲ့ နတ်သားတစ်ပါးကို အိမ်မက်မြင်မက်ပါသည်။ နတ်သားက မောင်လူလေးရှေ့ကို လာပြီး၊ လူလေး သင်သည် ဒီကနေ့ အလွန်ကောင်းမွန်သော အပြုကို ပြုခဲ့၏။ သင့်ကြောင့် လူအပေါင်း လွန်စွာမှ အကျိုးရှိခဲ့ရ၏။ ဒါကြောင့် သင့်ကို ဆုမွန်ကောင်းပေးရန် ငါ သကြားပြည်က နေလာခဲ့ရ၏။

ထိုအချိန်မှာ မောင်လူလေးက "ဟာ ငါတွေ့နေတာ သကြားမင်းပါလား၊ နတ်သားလို့ထင်နေတာ" လို့ တွေးမိပါသည်။ ဆက်ပြီး သကြားမင်းသို့မဟုတ် နတ်သားက ဆက်ပြောပါသည်။ လူလေး သင်လိုရာ ဆု၃ခုကို တောင်းနိုင်၏။ သင့်အလိုကို ငါဖြည့်မည်။

ဒါနဲ့ မောင်လူလေးက "သကြားမင်း၊ ဒါဆို ကျွှန်တော် ပိုက်ဆံချမ်းသာချင်ပါသည်၊ ကျွှန်တော့်အား ရွှေငွေတွေပေးပါ" ဟု ပြော၏။ နတ်သားသို့မဟုတ် သကြားမင်းက အနည်းငယ်ကြောင်သွားပြီး "သင့်အလိုပြည့်စေ" ဟု ဆုပေး၏။ အိမ်မက်က နိုးသည်နှင့် လူလေးဆီကို ရွှေငွေတွေ အလိုလိုကို ရောက်ရှိလာပါသည်။

ဒီလိုနဲ့ ညရောက်ပြီး မောင်လူလေး အိပ်ပျော်သောအခါ၊ နတ်သားသို့မဟုတ် သကြားမင်းသည် မောင်လူလေး၏ အိမ်မက်ထဲကို ရောက်လာပြန်၏။ အသင်လူလေး ဘာများထပ်အလိုရှိသလဲဟု မေး၏။ မောင်လူလေးက တွေး၏။ ဤသကြားမှာ အမှန်အကန်သကြားဖြစ်၏။ ငါ့အား သူရွှေငွေတွေပေးခဲ့၏။ ဒီတစ်ခေါက်တော့ ငါဟာ  အာဏာရှိအောင် လုပ်ပေးပါ သကြားမင်းဟု ပြော၏။

သကြားလိုလိုနတ်လိုလို သူကလည်း ပြည့်စေဟုပေး၏။ မောင်လူလေးတွေးမိ၏။ ငါ့မှာ ရွှေတွေ၊ ငွေတွေ၊ အာဏာတွေရှိပြီ၊ ဒါပေမယ့် လိုနေသေး၏။ ငါစော်ကြည်ဖို့လိုသေး၏ဟု။ ဒါနဲ့ မောင်လူလေးလည်း ငါအိပ်ပျော်ရင် သကြားမင်းရောက်လာတဲ့အတွက်၊ ငါနောက်တစ်ရက်ကို မစောင့်ပဲ ဆက်အိပ်တော့မယ်ဟု။

ဒီလိုနဲ့ မောင်လူလေး နောက်တစ်နေ့မကူးပဲ ဆက်အိပ်ပါသည်။ ဒါပေမယ့် သကြားသို့မဟုတ် နတ်သားသည် သစ္စာရှိပါသည်။ မောင်လူလေး အိပ်ပျော်သွားချိန်မှာ မောင်လူလေး အိမ်မက်ထဲကို ရောက်လာပြန်၏။ အသင်ဘာလိုချင်လဲဟု မမေးသေးခင် မောင်လူလေးက "အရှင် သကြားမင်း၊ ကျွှန်တော့်အား မိန်းကလေးများ အကြိုက်များအောင် လုပ်ပေးပါ" ဟု ဆုတောင်း၏။

သကြားမင်းလိုလို နတ်သားလိုလိုကလည်း ဆုပေးလိုက်၏။ အသင် ဆုတောင်းပြည့်ပါစေဟု။ နောက်တစ်နေ့ မောင်လူလေးနိုးသောအခါ မောင်လူလေးသိ အလွန်စားကောင်းဖွယ်ရှိသော ချောကလက်ကြီး ဖြစ်နေပါတော့သည်။ ဘေးနားလေးမှာ စာအခေါက်ကလေး တစ်ခုကျနဲ့၏။ ထိုအထဲတွင် လူလေး ငါသကြားမဟုတ်ဘူး၊ နို့ဆီကွ ဟု ရေးသားထားပါသည်။

ဤပုံပြင်သည် ပရိုဂရမ်မာများအကြားတွင် ထင်ရှားသော စာကားတစ်ခုဖြစ်၏။ ပရိုဂရမ်မာများသည် လူသားများဖြစ်ကြ၏။ လောဘကြောင့် အမှားများကို ရေးနေမည်။ ထိုကဲ့သို့ လောဘကြောင့် မှားရသော အားနည်းချက်များသည် ဟက်ကာများအတွက် ဝင်ပေါက်များပင်ဖြစ်၏။ ထို့ကြောင့် လူယောက်က ရေးသားထားသော စစ္စတမ်တစ်ခုသည် တနေ့နေ့ တစ်ချိန်ချိန်တွင် အထိုးဖောက်ခရခြင်းပင်ဖြစ်၏။

Thursday, April 12, 2012

ရိုးသားစွာမှားယွင်းခြင်း

ကျွှန်တော်တို့ ပရိုဂျက်ဟာ အခုဆိုရင် Test ပြီးလို့ Release အပိုင်းကို ရောက်နေပါပြီ။ အသုံးပြုမယ့် ကုမ္ပဏီတွေကို တစ်ခုခြင်း၊ Sub System တွေကို တစ်ခုချင်းဆိုသလို ခွဲပြီး Release လုပ်တဲ့ နည်းကို အသုံးပြုပါတယ်။ အရင်ဆိုရင် ကျွှန်တော်ဟာဘယ်တော့မှ Release အထိမနေဘူးပါ။ ရေးပြီး Test ပြီးတာနဲ့ အခြားသော ပရိုဂျက်အသစ်ကို ပြောင်းဖြစ်တာများပါသည်။

ဘာကြောင့်မှန်းမသိ ဒီပရိုဂျက်မှာတော့ ကျွှန်တော်တာဝန်ယူထားတဲ့ Sub System က Release လုပ်ပြီးတာတောင် ဒီပရိုဂျက်မှာ ကျန်နေခဲ့ပါသည်။ အလကားတော့မနေရပါ၊ ကျွှန်တော်တို့အဖွဲ့က Lib ကို တာဝန်ယူသူက အသစ်ဖြစ်နေသည်။ ဘာဆိုဘာမှမသိ။ ကွန်ပိုင်းလုပ်ရင်း Error တက်လို့ကတော့ ဘာလုပ်ရမှန်းမသိတော့ပါ။ မနေနိုင်တဲ့ကျွှန်တော်က သွားကူပြီး ဖြေရှင်းမိပါသည်။ အဲ့ဒီနေ့ကစပြီး ကွန်ပိုင်းလုပ်တာ Release လုပ်တာ အဲ့ဒီကိစ္စများဟာ ကျွှန်တော့်အလုပ်ဖြစ်သွားပါသည်။

ကျွှန်တော်ငယ်ငယ်က ကြည့်ခဲ့ဘူးသည့် ရုပ်ရှင်ထဲကလို ထန်းပင်တက် လက်မှတ် ရသွားပါတော့သည်။ Lib တာဝန်ခံသည် မလွယ်ပါ။ အလုပ်အတော်များပါသည်။ ဒီအပါတ်မှာ Release လုပ်မယ့် Resource တွေ မပြီးသေးဘူးလား။ Release မပြီးမချင်း သူ့အလုပ်မပြီးသေးပါ။ အခုတလော အိမ်ပြန်ရောက်ချိန်သည် နောက်တစ်နေ့ကူးနေသည်က များပါသည်။ ဒါပေမယ့်လည်း ပင်ပမ်းသလို ပညာလည်းရပါသည်။

အမှားများကို အများကြီးတွေ့ရသောကြောင့်ဖြစ်၏။ တစ်ခါတစ်လေ အမှားများသည် မယုံနိုင်လောက်အောင်ပင် ရိုးရှင်းလွန်းလှသည်။ တော်ရုံဆို ဒီအမှားမျိုးမှားစရာမရှိ လို့ထင်ရလောက်ပေမယ့် လက်တွေ့တွင် မှားတက်ပေသည်။

ဒီကနေ့က ကျွှန်တော့်တစ်သက်နဲ့တကိုယ် အံ့သြစရာအကောင်းဆုံး အမှားတစ်ခုကို ပြောပြပါမည်။ ပြီးခဲ့တဲ့စနေနေ့က ဖြစ်ပါသည်။ အချို့သော ကုမ္ပဏီအချို့ကို Release လုပ်ပါသည်။ ဦးစွာ Data တွေကို System အဟောင်းကနေ အသစ်ဆီကို ရွှေ့ပါသည်။ ပြီးလျှင် Server တွေကို Restart လုပ်ပြီး အခြေခံ အသုံးပြုနည်းများကို စမ်းသပ်ကြည့်ပါသည်။ အဲ့ဒီနေရာမှာ Batch Process တစ်ခုက ၅နာရီကျော်ကြာသည် မပြီးပဲ System Error ဖြစ်သွားကြပါသည်။ အားလုံးပြာရာတွေခတ်။ ရပ်ရပ်ဆိုပြီး။ Release ကို တစ်ပါတ်ရွှေ့ခဲ့ကြပါသည်။

အရင် Test လုပ်တုန်းက 50 m လောက်ကြာခဲ့သောကြောင့်၊ performance tuning လုပ်ရန် ဖြစ်လာပါသည်။ နောက်တစ်ရက် တနင်္လာနဲ့ည ပြန်ပြီး အဲ့ဒီ Process ကို Run ကြည့်ပါသည်။ ၈မိနစ်သာကြာခဲ့၏။ အဲ့ဒီမှာတရားခံပေါ်ပါသည်။ Database ကို Inport လုပ်ပြီးတဲ့အခါမှာ Analyse လုပ်ဖို့မေ့သွား သောကြောင့် ဖြစ်သည်။ တော်ပါပေရဲ့ မောင်မင်းကြီးသားရယ်။ မောင်မင်းကြီးသားကြောင့် SQL တွေကို Performance ပြန်ချိန်၊ Tuning လုပ်ရနဲ့ အဖွဲ့တစ်ခုလုံး ၁ပါတ်လုံး အလုပ်များသွားပါသည်။ ရိုးသားစွာမေ့လျှော့ခြင်းသည် တစ်ခါတစ်ရံ အသက်ပေးရတတ်ပေသည်။

တော်ပြီ နောက်ဆို ဘယ်တော့မှ ကွန်ပိုင်းအဲယာတက်လည်း ဘာမှဝင်မပြောတော့ပါ။

Thursday, March 15, 2012

သမီးရှင်

ပရိုဂရမ်မာ တစ်ဦးဟာ သမီးရှင် ဖခင်တစ်ယောက်နဲ့ တူပါတယ်။ ကိုယ်ရေးထားတဲ့ အပလီကေးရှင်း တစ်ခုဟာ ကိုယ့်သမီးလေးတစ်ယောက်ပေါ့။ ကိုယ့် အ ပလီကေးရှင်းကို Release လုပ်တဲ့အချိန်ဟာ ကိုယ့်သမီးရဲ့ မင်္ဂလာပွဲနဲ့ တူပါတယ်။

ကိုယ်ပြုစုပျိုးထောင်ခဲ့တဲ့ သမီးလေးဟာ အခုတော့ သူ့လမ်းကို သူသွားပါတော့မယ်။ အိမ်ထောင်ကျ သွားပြီးတဲ့အခါ၊ ဆိုင်သာဆိုင်တယ် မပိုင်တော့ပါဘူး။ တန်ဖိုးမထားတတ်တဲ့ အသုံးပြုသူတွေနဲ့ တွေ့တဲ့အခါ သူဟာ လင်ဆိုးတစ်ယောက်နဲ့ အိမ်ထောင်ကျဖြစ်တဲ့ ကံမကောင်းတဲ့ သမီးလေးဖြစ်သွားပါမယ်။ ဒဏ်ရာတွေ ဗလပွနဲ့ သမီးလေးကိုတွေ့လည်း ကျွှန်တော့်မှာ ဘာမှာမတက်နိုင်တော့ပါ။

ဘာလို့သူက ဒီလိုသုံးရတာလည်း။ အဲ့ဒီလိုပြင်လို့မရဘူးလေ။ အဲ အဲ့ဒီနေရာမှာ အဲ့လိုသွားပြင်ရင်တော့။ အစရှိသည့် ယူကြုံမရမှု့တွေက စကားလုံးတွေကို ဆွံ့အစေခဲ့ပါတယ်။ ဘာပဲပြောပြော ကိုယ့်ရေးသားခဲ့တဲ့ ကိုယ့်သားသမီးတွေကို ချစ်ခင်ကြင်နာစွာနဲ့ အသုံးပြုစေချင်သည်မှာ မိဘတိုင်းရဲ့ ဆန္ဒပဲဖြစ်ပါလိမ့်မယ်ဟု ကိုယ်ခြင်းစာခဲ့မိပါတယ်။

ဒီနေ့ ကံဆိုးတဲ့ ကျွှန်တော့် သမီးငယ် တစ်ဦးနဲ့ တွေ့ဖြစ်ခဲ့ပါတယ်။ သူ့မှာ ဒဏ်ရာတွေ နဲ့။ ကျွှန်တော့်မှာ စိတ်မကောင်းရုံကလွဲပြီး ဘာမှ မတက်နိုင်ခဲ့ပါ။   ချစ်သမီးလေး စိတ်ချမ်းမြေ့ပါစေလို့ ဆုတောင်းပေးရုံမှလွဲပြီး မတတ်နိုင်ခဲ့ပါ။

အတွေးတစ်ခု

အခုတလော ကျွှန်တော် အလုပ်တော်တော် များနေပါသည်။ မနက်ခင်း ၈နာရီခွဲလောက် အိမ်ကထွက်သွားရင် ည ၁၂နာရီခွဲမှ အိမ်ကို ပြန်ရောက်တက်ပါသည်။ ဒီအတွက် ကျွှန်တော်ရေးလက်စ ဖြစ်သော မြန်မာ ဂျာဗားယူဇာ ဘလောဂ်ကို သိပ်မရေးဖြစ်ပါ။ Easy JSP အကြောင်းကို ဆက်ရေးရပါဦးမည်။ Java 7 Nio 2 ကိုလည်း လက်စသပ်ရဦးမည်။ ဒါမှ Fork And Join Framework နဲ့ Project Lambda ဘက်ကို ရွှေ့နိုင်မည်ဖြစ်၏။ အခြေခံ Java အကြောင်းရေးနေသည်ကိုလည်း Class နဲ့ Method အကြောင်း၊ Interface အကြောင်းနဲ့ Exceptionအကြောင်းကို ရေးပြီး ဖြတ်ချင်ပါသေးသည်။ ဒါမှ Essential Java API ကို ဆက်ရေးနိုင်မည် ဖြစ်သည်။

Happy Hacking ကတော့ ကျွှန်တော်ပျင်းတဲ့အခါ ရေးရန် ထားထားပါမည်။ XML ဆီသို့ ခြေလှမ်းများ ကိုလည်း အခန်းသုံးပြီးတော့ ဆက်ပြီး XML Schema ကစပြီး XML DB ကို ဖော်ပြချင်သေးသည်။ အလုပ်ရှုပ်ပါသည် ဆိုမှ ဟိုရက်က ပရိုဂျက်တစ်ခုကို လက်ခံမိပါသည်။ ကိုယ့်စိတ်ကြိုက်လည်း ရေးလို့ရတယ်၊ ပြီးတော့ ပိုက်ဆံလည်းရတော့ မဆိုးပါ။

ကျွှန်တော်ရေးနေသော Web Tool လေးတွေက ဟားရပါသည်။ ဘလောဂ်ဂါ တွေအတွက် အစဉ်ပြေမယ့် Tool များကို ရေးပေးနေခြင်းဖြစ်၏။ Tool ကို Run ထားပါက၊ အင်တာနက်ထဲကနေ သက်မှတ်ထားတဲ့ Key Word နဲ့ သတင်းတွေကို စောင့်ကြည့်နေပြီး၊ ကိုယ့်ဘလောဂ်မှာ ပြန်တင်ပေးတဲ့ Tool ပါ။ အဲ့ဒီလိုတင်တဲ့ နေရာမှာလည်း ကြော်ညာလင့်ခ်တွေကိုပါ ယူပြီးတင်ပေးပါတယ်။ ပြီးတော့ အဲ့ဒီ Key Word ကို စိတ်ဝင်စားတဲ့ ဘလောဂ်ဂါတွေရဲ့ ဘလောဂ်ကို ခြေရာလိုက်ပေးပါတယ်။ ဘလောဂ်ဂါတွေက ကိုယ့်ခြေရာကိုကြည့်ပြီး ကိုယ့်ဘလောဂ်ကိုလာကြည့်၊ ပြီးကြော်ငြာလင့်ခ်ကို ကလစ်နှိပ်ရင် ပွိုင့်ရတဲ့ စနစ်ပါ။

ကျွှန်တော်က ဂျာဗားကြိုက်တော့ အားလုံးကို ဂျာဗားနဲ့ ရေးပါတယ်။ အပြင်းလည်းပြေတယ်၊ မုတ်ဖိုးလည်းရတယ် ဆိုတဲ့သဘောပါ။ ဟိုတနေ့က ကျွှန်တော့်အသိတစ်ယောက်က ကျွှန်တော့်ဘလောဂ်ကို ဖတ်ပြီး အကြံပေးတယ်။ မင်းဟာက နောက်နည်းနည်းလောက် ဖြည့်လိုက်ရင် အခြေခံ ဂျာဗားစာအုပ် တစ်အုပ်ဖြစ်တော့မယ် ဆိုပဲ။ ဟုတ်သည်။ အခြေခံကိုပြီးအောင်ရေးပြီး၊ Essential Java API ကို ရေးပြီးပါက Java စာအုပ်တစ်အုပ်ဖြစ်လာမည် ဖြစ်သည်။ ကျွှန်တော် စာအုပ်ထုတ်ချင်လာပါသည်။ ဒီတော့ စာအုပ်တစ်အုပ် ဖြစ်အောင် ရေးပါမည်။ ပြီးလျှင် Tool ရေးတဲ့ ပိုက်ဆံနဲ့ ကိုယ့်ဟာကိုယ်ထုတ်ပါမည်။ ပြီးလျှင် အခမဲ့ ဖြန့်ဝေသွားပါမည်ဟု။

Sunday, March 4, 2012

တန်ဖိုးဆိုသည်မှာ

ပြီးခဲ့သောရက်က အားလပ်ရက်တွင် ကျွှန်တော်ရေးခဲ့သော Web Tool တစ်ခု၏ လက်ခကို ရရှိခဲ့ပါသည်။ တန်ဖိုးသည် မြန်မာငွေဖြင့်ဆိုလျှင် ၁၂သိန်းခန့်။

ကျွှန်တော့်ညီမဖြစ်သူအား မွေးနေ့လက်ဆောင်အဖြစ် ပေးမည်ဟု ပြောထားသောကြောင့် သူနှစ်သက်ရာ လက်ကိုင်အိပ်တစ်လုံး သွားဝယ်ပေးလိုက်သည်။ အနည်းငယ် စိုက်လိုက်ရပါသည်။

ညီမဖြစ်သူ သုံးနေသော လက်တော့ကွန်ပျူတာပေါ် တူဖြစ်သူက အအေးလောင်းချ၍ သုံးမရတော့ပါ။ ပြန်ဝယ်ရန် သွားကြည့်သည်။ mac book pro ၁၃သိန်းခွဲခန့်။

တစ်လက်စတည်း လိုချင်သော နာရီကို သွားကြည့်မိသည်။ အိုမီဂါ ၂၆သိန်းခွဲ။ ငါရေးတဲ့ အပလီတစ်ခုနဲ့ နာရီတစ်လုံးတောင် မဝယ်နိုင်သေးပါလားလို့တွေး ရမလား။ အပလီကေးရှင်း ၃ခုလောက်ရေးရင် နာရီ တစ်လုံးဝယ်လို့ရတယ် ဆိုပြီး ဝမ်းသာရမလား။ 

Sunday, February 26, 2012

Updating Site Map Menu

ပြီးခဲ့တဲ့ စနေနေ့တွင် ယခင်ရေးသားခဲ့သော Site Map Menu ကို ပြုပြင်ရေးသားခဲ့ပါသည်။ အရင်ကတည်းက အကော်ဒီယံပုံစံဒါမှမဟုတ် Tree ပုံစံကို ရေးသားရန် ရည်ရွယ်ထားခဲ့ပါသည်။ ဒါနဲ့ ဒီအလုပ်ပိတ်ရက်မှာ ဟိုရှာဒီရှာလုပ်ပါသည်။ jquery ui ကို သွားတွေ့ပါသည်။ ကျွှန်တော်လိုချင်သည့် ပုံစံ အတိအကျကိုရှိပါသည်။

နမှုနာ ကုဒ်ကို ကြည့်မိသည်။ ကျွှန်တော်ယခင်ရေးထားသည်ကို အနည်းငယ်ပြုပြင်ပြီး အသုံးပြုလျှင်ရပြီ ဆိုသည်ကို သိရပါသည်။ ခေါင်းစဉ်ကို လင့်ခ်ပုံစံပြောင်း၊ အားလုံးကို Div ထဲထည့်ပြီးတော့ အခုသုံးနေတဲ့ ul Tag ကို Div တစ်ခုထဲထည့်လိုက်ရုံသာပင်။

ရေးသားပုံမှာ အောက်ပါအတိုင်းဖြစ်သည်။
var dateRef;

function loadtoc(a) {
 var catagories = a.feed.category;

 // Sort Catagories
 catagories.sort(function (x, y) {
  x = x.term.toLowerCase();
  y = y.term.toLowerCase();
  return ((x == y) ? 0 : ((x > y) ? 1 : -1 ));
 });

 $("<div id='accordion' style='font-size:85.5%;'>");
 for (var i=0; i<catagories.length; i++) {
  $("<h3><a href='#'>" + catagories[i].term + "</a></h3>");
  var c = 0;
  var list = new Array();
  var dateList = new Array();

  for (var j=0; j < a.feed.entry.length; j++) {
   if(isInCat(catagories[i].term, a.feed.entry[j].category)) {
    list[c ++] = a.feed.entry[j];
   }

   if (i==0) {
    dateList[j] = a.feed.entry[j].published.$t;
   }
  }
  
  // set refdate
  if(i == 0) {
   dateList.sort();
   dateList.reverse();
   dateRef = dateList[10];
  }
  writeList(list);
 }
 $("</div>");
}

function isInCat(cat, cats) {
 for (var i=0; i<cats.length; i++) {
  if(cat == cats[i].term) {
   return true;
  }
 }
 return false;
}

function writeList(list) {
 
 list.sort(function(x, y) {
  return ((x.published.$t == y.published.$t) ? 0 : ((x.published.$t > y.published.$t) ? 1 : -1 ));
 });
 
 $("<div><ol>");
 for(var i=0; i<list.length; i++) {
  writePostLink(list[i]);
 }
 $("</ol></div>");
}

function writePostLink(p) {
 var isNew = p.published.$t > dateRef;
 var href;
 for (var i = 0; i < p.link.length; i++) {
  if (p.link[i].rel == "alternate") {
   href = p.link[i].href;
   break
  }
 }

 var title = p.title.$t;
 $("<li><a href='" + href + "'/>" + title + "</a>");
 if (isNew) {
  $(' - <strong><em><span style="color: rgb(255, 0, 0);">New !!</span> </em></strong></li>');
 }
}

function $(s) {
 document.write(s);
}
အသုံးပြုပုံမှာ အောက်ပါအတိုင်းဖြစ်၏။
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://dl.dropbox.com/u/13831873/blogger/js/sidebar.js">  
</script>   
<script src="http://[အသုံးပြုသူ၏ ဒိုမိန်း].blogspot.com/feeds/posts/default?redirect=false&max-results=9999&alt=json-in-script&callback=loadtoc">  
</script>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script>
  $(document).ready(function() {
    $("#accordion").accordion({ autoHeight: false });
  });
</script>
အထက်ပါ ကုဒ်များကိုကူးယူ၍၊ အသုံးပြုသူဒိုမိန်းနေရာတွင် သင့်၏ ဘလောဂ်ဒိုမိန်းကို ဖြည့်စွက်ကာ၊ သင်၏ blogger blog ၏ Gadget တွင် ဖြည့်စွက်ရေးသားလိုက်ပါက အသုံးပြုနိုင်မည် ဖြစ်ပါသည်။ နမှုနာကို မြန်မာဂျာဗားယူဇာတွင် စမ်းသပ်ကြည့်ရှုနိုင်ပါသည်။ မာတိကာ ဂတ်ဂျက်သည် ဤနမှုနာကို အသုံးပြု၍ ရေးသားထားခြင်း ဖြစ်ပါသည်။

Saturday, February 25, 2012

JDK7 ၏ new type checker

Google Applet Engine Java ကို မသုံးတာကြာပြီ။ အကြောင်းမှာ အလကားနေ SDK ဗားရှင်းအပ် လုပ်နေတာကတကြောင်း၊ ကြောင်တောင်တောင်နိုင်တာက တစ်ကြောင်း၊ GWT ကို လက်မခံချင်တာက တစ်ကြောင်း။ ဒီလိုနဲ့ Easy Servlet အကြောင်းရေးပြီးကတည်းက GAE ကို မသုံးဖြစ်တော့ပါ။

အသုံးများတာက အစဉ်ပြေတဲ့ Cloudbees ပဲဖြစ်ပါတယ်။ ဒါပေမယ့် ဒီနေ့ GAE နဲ့ပတ်သက်ပြီး FB မှာရှိတဲ့ Myanmar Java User Group ထဲမှာ မေးခွန်းတစ်ခု တက်လာပါတယ်။ မသုံးတာကြာပြီဖြစ်တဲ့ GAE ကို ဖွင့်တော့၊ ဗားရှင်းအသစ် သုံးလို့ရပါတယ်တဲ့။ အဲ့ဒါနဲ့ နောက်ဆုံးဖြစ်တဲ့ 1.6.2.1 ကို ဒေါင်လုဒ်လုပ်ပြီး၊ အင်စတော။ ပြီးတော့ တစ်ခါတည်း JDK 1.7.0.3 ထွက်နေတာနဲ့ ဒေါင်းလုဒ်လုပ်ပြီး အင်စတော။

လက်ရှိရှိပြီးသား servlet-tutorials ကို Run ကြည့်ပါတယ်။ အဲရာပေါ်လာပါတယ်။
警告: Error starting handlers
java.lang.VerifyError: Expecting a stackmap frame at branch target 29 in method com.episode5.AccessLogFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V at offset 15
 at java.lang.Class.getDeclaredConstructors0(Native Method)
 at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)
 at java.lang.Class.getConstructor0(Class.java:2714)
 at java.lang.Class.newInstance0(Class.java:343)
 at java.lang.Class.newInstance(Class.java:325)
 at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
 at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:92)
 at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
 at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
 at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
 at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
 at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
 at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
 at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
 at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
 at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
 at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
 at org.mortbay.jetty.Server.doStart(Server.java:224)
 at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
 at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:191)
 at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:239)
 at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:146)
 at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:164)
 at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
 at com.google.appengine.tools.development.DevAppServerMain.(DevAppServerMain.java:113)
 at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)

အရင်ရေးတုန်းက ဘယ်အိုင်ပီကနေ လာပြီး Access လုပ်လဲဆိုတာကို Proxy ကို ခံထားရင်တောင် သိနိုင်သလား မသိနိုင်သလား စမ်းချင်တုန်းက ဖြည့်ထားတဲ့ Filter နေရာမှာ အဲရာတက်နေပါတယ်။ အဲ့ဒါနဲ့ java.lang.VerifyError နာမည်နဲ့ ရှာကြည့်ပါတယ်။ Java 7 အရောက်မှာ အတော်လေးကို တက်နေပုံရပါတယ်။ စိတ်မချရရင် JVM ကနေ throw လုပ်တတ်ပါတယ် ဆိုပဲ။ ဒါနဲ့ web.xml မှာ အဲ့ဒီ Filter ကို comment out လုပ်ပြီး၊ Run ကြည့်တော့ရပါတယ်။ ဒါပေမယ့် session အခန်းကို သုံးကြည့်တော့ Error တက်ပြန်ရော။

ဒါနဲ့ JDK 7 မှာစအသုံးပြုတဲ့ new type checker ကို အသုံးမပြုပါဘူးလို့ JVM Option မှာ -XX:-UseSplitVerifier လို့ သွားဖြည့်လိုက်ပါတယ်။ အဲ့ဒီတော့မှ အလုပ်လုပ်ပါတော့တယ်။


နောက်ရက်တွေမှပဲ Myanmar Java User မှာ JVM Option တွေအကြောင်းကို ရေးသားပါဦးမည်။

ကိုးကား
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

Saturday, February 18, 2012

Site Map for Blogger

ဒီနေ့ JavaScript ဖြင့် Myanmar Java User မှာသုံးဖို့ အတွက် Blogger သုံး မာတိကာတစ်ခု ရေးသားခဲ့ပါတယ်။ ကျွှန်တော်ရေးနေတဲ့ Myanmar Java User က ပိုစ်တွေဟာ ခေါင်းစဉ်တစ်ခုတည်းသာ အသုံးပြု၍ ရေးသားထားပါသဖြင့် ဤတစ်ခေါက်တွင် ခေါင်းစဉ်တစ်ခုကိုသာသုံးတဲ့ Plugin တစ်ခုကို ရေးသားခဲ့ခြင်းဖြစ်ပါတယ်။

Blogger ဟာ Atom API ကို ပံ့ပိုးထားပါသဖြင့် feed တွေကို json အနေဖြင့်ရယူနိုင်ပါတယ်။
<script src="http://[your-domain]/feeds/posts/default?redirect=false&max-results=9999&alt=json-in-script&callback=loadtoc">  
</script>
အထက်ပါအတိုင်း [your-domain] နေရာမှာ သင့်ဘလောဂ်၏ ဒိုမိန်းကို ဖြည့်စွက်ပြီး၊ နောက်ဆုံး callback မှာ ခေါ်ယူ အသုံးပြုလိုတဲ့ ဖန်ရှင်ကို ရေးရုံပါပဲ။ ကျွှန်တော်ဒီနေရာမှာတော့ အကော်ဒီယံ မယ်နျူးပုံစံကို ရေးလိုပါသဖြင့် ဖန်ရှင်အမည်ကို loadtoc ဆိုပြီးရေးထားလိုက်တယ်။ လောလောဆယ်တော့ ပိုစ်တွေလည်းနည်းသေးတော့ ဒီအတိုင်း အရင်ဖြန့်ပေါ်အောင်ပဲ အရင်လုပ်ပါဦးမယ်။ ပိုစ်တွေအတော်များလာတော့မှ အကော်ဒီယံကို CSS နဲ့ပဲရေးမလား၊ js နဲ့ ကိုယ့်ဟာကိုယ်ရေးမလား၊ ဒါမှမဟုတ် jquery လို အခြား လိုင်ဘရီကို သုံးပြီးရေးရင်ကောင်းမလား စဉ်းစားရပါဦးမယ်။

ဒီနေရာမှာရေးမှာက အောက်ပါအတိုင်းဖြစ်ပါတယ်။

  1. ရလာတဲ့ ဒေတာထဲကနေ Category တွေကို ရှာပြီး Sort လုပ်ပါတယ်။
  2. အဲ့ဒီ Category တစ်ခုချင်းရဲ့ အောက်မှာရေသားထားတဲ့ ပိုစ်တွေကို လစ်ထဲကို ထည့်ပါတယ်။
  3. အဲ့ဒီ လစ်တစ်ခုချင်းကို ပိုစ်လုပ်တဲ့နေ့နဲ့ Sort လုပ်ပါတယ်။
  4. အဲ့ဒီနောက်မှာ ပိုစ်တစ်ခုချင်းကို အဲ့ဒီ Category ရဲ့အောက်မှာ လင့်ခ်ကို ရေးသားစေပါတယ်။
  5. အဲ့ဒီလိုရေးသားတဲ့အခါမှာ အဲ့ဒီပိုစ်ဟာ နောက်ဆုံး ၁၀ခုအတွင်းမှာပါရင် New !! ဆိုပြီး ရေးသားစေပါတယ်။
တကယ်တမ်း ချရေးကြည့်တဲ့အရာကတော့ အောက်ကလိုဖြစ်ပါတယ်။
var dateRef;

function loadtoc(a) {
 var catagories = a.feed.category;

 // Sort Catagories
 catagories.sort(function (x, y) {
   return ((x.term == y.term) ? 0 : ((x.term > y.term) ? 1 : -1 ));
 });

 for (var i=0; i<catagories.length; i++) {
  $("<strong>" + catagories[i].term + "</strong>");
  var c = 0;
  var list = new Array();
  var dateList = new Array();

  for (var j=0; j < a.feed.entry.length; j++) {
   if(isInCat(catagories[i].term, a.feed.entry[j].category)) {
    list[c ++] = a.feed.entry[j];
   }

   if (i==0) {
    dateList[j] = a.feed.entry[j].published.$t;
   }
  }
  
  // set refdate
  if(i == 0) {
   dateList.sort();
   dateList.reverse();
   dateRef = dateList[10];
  }
  writeList(list);
 }
}

function isInCat(cat, cats) {
 for (var i=0; i<cats.length; i++) {
  if(cat == cats[i].term) {
   return true;
  }
 }
 return false;
}

function writeList(list) {
 
 list.sort(function(x, y) {
  return ((x.published.$t == y.published.$t) ? 0 : ((x.published.$t > y.published.$t) ? 1 : -1 ));
 });
 
 $("<ol>");
 for(var i=0; i<list.length; i++) {
  writePostLink(list[i]);
 }
 $("</ol>");
}

function writePostLink(p) {
 var isNew = p.published.$t > dateRef;
 var href;
 for (var i = 0; i < p.link.length; i++) {
  if (p.link[i].rel == "alternate") {
   href = p.link[i].href;
   break
  }
 }

 var title = p.title.$t;
 $("<li><a href='" + href + "'/>" + title + "</a>");
 if (isNew) {
  $(' - <strong><em><span style="color: rgb(255, 0, 0);">New !!</span> </em></strong></li>');
 }
}

function $(s) {
 document.write(s);
}
ဒီ js ကို Dropbox အပေါ်တင်ထားပြီး၊ addGadget ကနေပြီး HTML/JavaScriptကိုရွေးပြီး၊ အထက်ပါ js ဖိုင်များကို ခေါ်သွင်းလိုက်တာနဲ့ အလုပ်လုပ်မှာဖြစ်ပါတယ်။
<script src="http://dl.dropbox.com/u/13831873/blogger/js/sidebar.js">  
</script>   
<script src="http://myanmar-java-user.blogspot.com/feeds/posts/default?redirect=false&max-results=9999&alt=json-in-script&callback=loadtoc">  
</script>
ရေးသားထားသည်ကို Myanmar Java User တွင် လက်တွေ့ကြည့်နိုင်ပါတယ်။ myanmar-java-user နေရာမှာတော့ သင်၏ ဘလောဂ်အမည်ကို ရေးသားလိုက်မယ်ဆိုရင် အသုံးပြုနိုင်မှာ ဖြစ်ပါတယ်။

Monday, February 6, 2012

Virtual PC 2007 & Open Suse

Virtual PC 2007 ကို သုံးချင်နေတာကြာပါပြီ။ အကြောင်းကြောင်းကြောင့် မစမိသေးခဲ့။ ပြီးခဲ့တဲ့ စနေနေ့တုန်းက ဒေါင်းလုဒ်လုပ်ပြီး၊ Windows XP ကို စမ်းကြည့်သည်။ မဆိုးပါ၊ အလုပ်လုပ်သွားပါသည်။ ကျွှန်တော် အရင်သုံးနေတဲ့ အိမ်က ဆာဗာ ကြွသွားတာကြာပြီ။ လက်တော့မလျှော့သေးဘူး။ ရအောင်ပြင်ဖို့ စဉ်းစားနေတုန်း။ Bios ကတော့တက်ပါပြီ။ ဒါပေမယ့် CD ကို ကောင်းကောင်းမဖတ်နိုင်ဘူးဖြစ်နေတယ်။ Memory လည်း လဲထားပြီးပြီ။ Hard Disk လည်း 1TB တောင်ထည့်ထားတာ။ မဖြစ်မနေ အသက်သွင်းရပါမည်။ ဒါပေမယ့် မအားသေး။ ဒီကြားထဲအရားပြေသုံးရအောင် Linux ကို Pendrive ကို သုံးမလား၊ Virtual PC ကို သုံးမလား စဉ်းစားနေခဲ့ပါသည်။


ဒီနေ့ Virtual PC မှာ Open Suse Live CD ကို စမ်းသုံးကြည့်သည်။ လှပလိုက်သည့်အမျိုး။ Open Suse ကို အမျိုးမျိုး ကလိရပါဦးမည်။ ဒီနေ့တော့ ဒီလောက်ပင်။ နောက်ရက်များမှ Myanmar Java User တွင် Lunux သုံး၍ Java ရေးနည်းကို ရေးရပါဦးမည်။ ဒီနေ့တော့ အိပ်တော့မည်။

Friday, February 3, 2012

ကျွှန်တော်နှင့် ကိန်းဂဏာန်းများ

မျက်စေ့ကို မှိတ်ကြည့်ပါသည်
တတ်ထားသောနားကြပ်မှ သီချင်းသံများက စီးဆင်းနေစဲ

ဘာရယ်မဟုတ် ခန္ဓာကိုယ်ကို ရပ်ကြည့်လိုက်တော့
ညာဘက်လက်က မောက်စ်အပေါ်မှာ
ဘယ်ဘက်လက်က asdf
သြော် ဘာရယ်မဟုတ်
ဒါငါ့ရဲ့ အသင့်အနေအထား ပါလား

ခြောက်ခြောက်ခြောက်
နာရီလက်တံရဲ့ အသံ
အားလုံးရပ်နေတဲ့ကြားက စီးဆင်းနေလေရဲ့

ငါ
ဘာကြောင့်
ကိန်းဂဏာန်းတွေကြားက
မလွတ်မြောက်ရတာလည်း

အိုင်းစတိုင်းရဲ့
အလင်းဟာ အမြန်ဆုံးပဲဆိုတဲ့
သီဟိုရီဟာလည်း မှားနေပြီ
ဘာလို့လဲဆိုတော့
ဟိုတလောက အလင်းထက်မြန်တဲ့ အရာကို
တွေ့ရှိခဲ့ပြီလို့ သတင်းထဲမှာတွေ့ခဲ့ရတယ်

ဒါဆိုရင်
နှိုင်းယှဉ် သီအိုရီဟာလည်း
အသုံးဝင်တော့မှာမဟုတ်ဘူး

သူ့ထက်ငါပိုပြီး
ငါ့ထက်သူဆိုပြီး

နှိုင်းချင်တိုင်းလည်း နှိုင်းလို့ရမှာမဟုတ်တော့ဘူး
ဘာလို့လဲဆိုတော့ သုညနဲ့ တစ်ဆိုတာ
တစ်ကယ်မှမရှိတာကို

Wednesday, February 1, 2012

Access denied

ဒီနေ့ ဖြစ်ပုံကတော့ အတော်လေးကို စိတ်ပျက်စရာကောင်းပါသည်။ ကိုယ့်ဟာနဲ့ကိုယ် ပြောတာပါ။ အလုပ်က Integration Test ပြီးလို့ Connection Test ကို ရောက်ပြီဖြစ်သည်။ အသုံးပြုသူများကလည်း အစမ်းသုံးကြည့်နေတယ်ပေါ့။

ဒီအဆင့်ရောက်လျှင် ကျွှန်တော့်အတွက်ကတော့ စိတ်ဝင်စားစရာမကောင်းတော့ပါ။ ဘာမှမရှိသေးတဲ့ နေရာကနေ ဘယ်လိုလုပ်မယ်ဆိုတာကို စဉ်းစားရတာ၊ ပြီးတော့ အသေသတ်ဆုံးနဲ့၊ လှပတဲ့ ကုဒ်များကို တနေ့ထက်တနေ့ ရေးနိုင်ဖို့ စဉ်းစားပြီး ရေးနေရတာ၊ ဖြေမရှင်းနိုင်တဲ့ ပြဿနာတွေကို အပတ်တကုက်နဲ့ ကြိုးစားလမ်းရှာရတာ၊ အဲ့ဒီ အစိတ်အပိုင်းတွေကို အနှစ်အသက်ဆုံးဖြစ်ပါသည်။

စာလုံးလေးကနည်းနည်း စောင်းနေလို့ပြင်ပေးပါဦး၊ အလုပ်မရှိကြောင်ရေးချိုးသည့်အလုပ်များကို သိက်စိတ်မဝင်စားပါ။ မြန်မြန် ပရိုဂျက်အသစ်တစ်ခုကို ရောက်ပါစေလို့ စိတ်ထဲကသာ ဆုတောင်းနေမိပါတော့သည်။ ဒါပေမယ့် ဒီတစ်ခေါက်က Simulation ကို ရေးမိသည့်အတွက် Release လုပ်သည့်အထိ ဒီပရိုဂျက်ကနေ ခွာနိုင်ဖို့လမ်းမမြင်ပါ။

ဒီနေ့ ယူဇာတွေရဲ့ Help Desk အဖွဲ့ကသုံးနေတဲ့ Environment မှာ Data တွေကို အသစ်ပြန်ဖြည့်ပေးဖို့ ဖြစ်လာပါသည်။ System Test များသုံးနေတဲ့ ကုမ္ပဏီတစ်ခုရဲ့ အချက်အလက်တွေကို Export လုပ်ပြီး၊ ကုမ္ပဏီကုဒ်ပြောင်းပြီး၊ Help Desk Environment မှာသွား ထည့်ပေးရုံပင်။ အရင်ဆို Teraterm နဲ့ Remote Access လုပ်ပြီး vi ကို သုံးကာ Shell Script ကို ရေးပြီး လိုအပ်တဲ့ ဒေတာတွေကို ပြောင်းရွှေ့နေကျ။

ဒီနေ့ကပြင်းတာနဲ့ Excels က VB ကို သုံးပြီး၊ အလိုအလျှောက် Script ကို ရေးပေးတဲ့ ပရိုဂရမ်ကို ရေးပြီး အသုံးပြုရန် စဉ်းစားခဲ့ပါသည်။ Excels မှာ အသုံးပြုမယ့် Table နဲ့ ကုမ္ပဏီကုဒ်ကို ဇယားရေးထားပါက Export လုပ်မည့် Shell Script ရော ပြင်မည့်အရာရော၊ Import လုပ်မည့် Script ပါ ရေးပေးမည့် VB Macro တစ်ခုပါ။

ရေးကြည့်သည်။ လိုချင်တဲ့ Script ကို ရေးပေးနိုင်ပါသည်။ ဒါနဲ့ အဲ့ဒီ Script ကို Linux Server ကို FFFTP နဲ့ ပို့ပြီး Run ကြည့်ပါသည်။ Access Denied! User ID ကော Password ပါ မှန်ပါသည်။ ဘာကြောင့်လည်း။ အဲ့ဒီ User ID နဲ့ Password ကို ပြန်ပြီး Login လုပ်ကြည့်သည်။ ရပါသည်။ နည်းနည်း စားသွားသည်။ ဘာလဲဟ။

၁နာရီလောက် အမျိုးမျိုးလုပ်ရင်း အချိန်ကုန်သွားပါသည်။ မြန်မြန်ပြီးမယ့်ဟာကို ဒုက္ခပဲပေါ့။ ဘယ်နားမှာမှားလဲဆိုတာကို ပြန်စစ်ရအောင် အဲ့ဒီ Script ကို ပြန်ဖွင့်ကြည့်ပါသည်။ Local ကိုလည်းမပြန်ချင်တာနဲ့ vi နဲ့ ဖွင့်ကြည့်ပါသည်။ Enter Code တွေက။ CR/LF ဖြစ်နေပါသည်။ အသုံးပြုနေတာက LINUX ဖြစ်တဲ့အတွက် LF မဖြစ်၍မရပါ။ အဲ့ဒီအတွက် mysql ရဲ့ -p password ၏ နောက်ဆုံးစာလုံးတွင် CR ကတစ်စိတ်တပိုင်းပါဝင်ပြီး Password မှားနေသည်ဟု ပြောနေခြင်း ဖြစ်သည်။

LINUX သုံး ပရိုဂရမ်ကို Windows မှာသုံးတဲ့အခါ Encoding ကို သတိထားစေလိုပါသည်။ သတိမမှု ဂူမမြင်တဲ့။ မြန်မာရှေးလူကြီးများ တယ်တော်သကိုး။

Saturday, January 28, 2012

ကြေကွဲဝမ်းနည်းမိသော နေ့တစ်နေ့

ဒီနေ့ ကျွှန်တော်၏ မွေးနေ့ဖြစ်ပါသည်။ အလွန်ချမ်းသောကြောင့်၊ ဘယ်မှမထွက်ချင်ခဲ့ပါ။ မနက်မိုးလင်းကတည်းက ရေးလက်စ ဘလောဂ်လေးများကို လက်စသပ်ရင်း၊ အခြားသော အခန်းဆက်များကို ရေးရင်း လုပ်လာခဲ့ပါသည်။ နေ့ခင်းပိုင်းလည်းရောက်ရော ညီမလုပ်သူက တစ်ဂျီဂျီနှင့် ရေချိုး၊ အပြင်သွားပြီး ဈေးဝယ်ရအောင်ဆိုပြီး ဂျီတွန်နေပါသဖြင့် စိတ်မပါတပါနှင့် လိုက်ခဲ့ပါသည်။

အီကဲဘုကုရောလည်းရောက်ရော ကျွှန်တော်လည်း စိတ်ဝင်စားတဲ့ ကွန်ပျူတာ အထပ်မှာ ဟိုကြည့် ဒီကြည့်လုပ်ပြီး၊ ကဲ မထူးပါဘူးကွာဆိုပြီး၊ လမ်းဘေးအရက်ဆိုင်လေးမှာ ဘီယာသောက်ရင်း စောင့်နေမိပါသည်။ ယောက်ဖဖြစ်သူကို ခေါ်ရန်စဉ်းစားသော်လည်း၊ တူလေးက အိပ်ပျော်နေပါသဖြင့် ဒီအတိုင်းထားလိုက်ပါသည်။

ဘီယာနှစ်ခွက်လည်း ကုန်ရော ညီမဖြစ်သူထံမှ ဖုန်းလာပြီး ZARA မှာ ဈေးတွေတန်တယ်။ လာဝယ်ဦး ဆိုတာနဲ့၊ လိုက်သွားကြပြီး၊ လက်ရှိရှပ်တစ်ထည်၊ ဖိနပ်တစ်ရံနဲ့ တီရှပ်တစ်ထည် ဝယ်ခဲ့ပါသည်။ ယောက်ဖကတော့ အလုပ်ထဲဝတ်ဖို့ ဘောင်းဘီနှစ်ထည်နဲ့ မြန်မာပြည်ပြန်လျှင် လက်ဆောင်ပေးရန် အချို့ကို ဝယ်ခဲ့ကြပါသည်။ ညီမဖြစ်သူကတော့ ဘာတွေဝယ်ခဲ့မှန်မသိ။

နောက်ဆုံးတော့ အထုပ်၃ထုတ် လက်ကစွဲပြီး၊ အိမ်ဘက်ကိုပြန်ခဲ့ကြပါသည်။ အိမ်နားက ဘူတာအရောက်တွင် ညနေစာကို အပြင်မှာပဲ ရှာဘူရှာဘူ စားခဲ့ကြပါသည်။ စား၍မပြီးသေး၊ တူဖြစ်သူက ဂျီကျပါသဖြင့်၊ သူ့အဖေနဲ့ တစ်ယောက်စီ အပြင်ကို ခေါ်ပြီး ရထားတွေကို ပြရပါတယ်။ ဒီလိုနဲ့ ညနေ ၈ နာရီခွဲလောက်မှာ အိမ်ကို ပြန်ခဲ့ကြပါတယ်။

အိမ်ပြန်ရောက်တော့ တီဗီကြည့်ရင်း၊ ခေတ္တအကြာမှာ Java Swing အပေါ်မှာ မြန်မာယူနီကုဒ်ကို မှန်ကန်စွာ အလုပ်မလုပ်နိုင်ခြင်းနဲ့ ပတ်သက်၍ ရှာဖွေခဲ့ပါတယ်။ ဝမ်းနည်းစရာကောင်းလောက်အောင်ပင် ဇော်ဂျီကိုတော့ မှန်ကန်စွာဖော်ပြနိုင်တာကို တွေ့ရတယ်။ ဇော်ဂျီနဲ့ မြန်မာ၃ နဲ့ ဘာကွာလည်းဆိုတဲ့ အချက်ကို အဓိကထားပြီး ရှာဖွေနေခဲ့တယ်။ ဟိုပြောင်းဒီပြောင်းနဲ့ ရှာဖွေခဲ့သော်လည်း အဖြေကမထွက်ခဲ့ပါ။

ဒါနဲ့ အရင်တစ်ယောက်ယောက်က ရှာထားလေမလား ဆိုပြီး၊ နက်ထဲမှာ Java 2D Myanmar Unicode အစရှိသည့် စာလုံးများဖြင့် ရှာဖွေနေခဲ့မိတယ်။ တော်ရုံနဲ့ အသုံးတည့်မည့် စာများကို မတွေ့ခဲ့ရပါ။ ခေတ္တအကြာမှာ အောက်ပါ လင့်ခ်ကို သွားတွေ့ပါတယ်။

အတော်လေးကို မြန်မာယူနီကုဒ်နဲ့ပတ်သက်ပြီး Java Layout Engine အပေါ်မှာ အသေးစိတ်ကို မေးမြန်းထားတာကို တွေ့ရပါတယ်။ ကျွှန်တော်လည်း အတော်လေးကို ဝမ်းသာမိပါတယ်။ ဆွေးနွေးတိုင်ပင်ရမည့်လူ ကိုတွေ့ပြီဆိုပြီးတော့။

http://web.archiveorange.com/archive/v/LDY2d66rr3j7I77CB1tR

မေးမြန်းထားသူကတော့ Mr Keith Stribley ပဲဖြစ်ပါတယ်။ ကျွှန်တော်လည်း သူနဲ့ ဆက်သွယ်နိုင်ရန်အတွက် သူ့နာမည်နဲ့ နက်ထဲမှာရှာဖွေရင်း၊ သူရေးခဲ့သော ဘလောဂ်များ၊ သံလွင် ဆော့ဖ်ဝဲများအကြောင်းကို တွေ့ခဲ့ရပါတယ်။ ကျွှန်တော် သံလွင်ဆော့ဖ်ဝဲကို အသုံးပြုခဲ့သည်မှာကြာပြီဖြစ်သော်လည်း သူရေးသားထားခဲ့မှန်း မသိခဲ့ပါ။ ကျွှန်တော်လည်း သူရေးထားတဲ့ စာများကို ဖတ်ရင်း၊ သူ့ပရိုဂျက်များကို ကြည့်ရင်း တစ်စထက်တစ်စ လေးစားနေခဲ့မိပါတယ်။

ဟိုရှာဒီရှာလုပ်ရင်းနဲ့ အောက်က လင့်ခ်တစ်ခုကိုပါသွားတွေ့ပါတယ်။

http://mmitpros.ning.com/forum/topics/1445004:Topic:239922?xg_source=activity

၂၀၁၁ခု ၂လပိုင်း ၁၅ရက်နေ့ တွင် ကွယ်လွန်ခဲ့ပြီဖြစ်ကြောင်း သိရှိခဲ့ရတယ်။ ကျွှန်တော်ဘယ်လိုပြောရမလဲ။ ရင်ထဲမှာ တစ်ကယ်ကို ဆို့သွားပါတယ်။ ဝမ်းနည်းမှု့၊ ကြေကွဲမှု့တွေနဲ့ အတူ ကျွှန်တော်တို့ မြန်မာအိုင်တီ လောက အတွက် ကြီးမားသော ဆုံးရှုန်းမှု့ကြီးတစ်ခုဖြစ်ကြောင်း သိရှိခဲ့ရတယ်။

 Mr Keith Stribley အားလေးစားစွာ အလေးပြုမိပါတယ်။ ကောင်းရာသုကတိလားပါစေဗျာ။

လေးစားစွာဖြင့်
မင်းလွင်

Friday, January 13, 2012

Friday 13

ကုဒ်များသည် ဘယ်တော့မှ မလိမ်တတ်ပါ။ ရေးထားသည့်အတိုင်း အလုပ်လုပ်ပါသည်။ လူတွေ ကဲ့သို့ ဟိုယောင်ယောင် ဒီယောင်ယောင် မလုပ်တတ်ပေ။

မနေ့က ၁၃ရက်နေ့ သောကြာနေ့။ မနက် အလုပ်ထဲရောက်ကတည်းက တာကာဟရှိအား ဒီနေ့ Friday 13 ဆိုတော့ ဂျေဆင်များထွက်မလား မသိဘူးလို့ နောက်နေမိသည်။ ၁၀နာရီ အထိ ကျွှန်တော်တို့ ပရိုဂျက်၏ လိုက်ဘရီတာဝန်ကျသူက အလုပ်မလာပါ။ ဒါနဲ့ မနက်ပိုင်း အလုပ်လုပ်စရာ သိပ်မရှိသော ကျွှန်တော်က ဒီမနက် ကွန်ပိုင်းလုပ်ရန် တာဝန်ယူပါသည်။

ဒီနေ့ ကွန်ပိုင်းလုပ်စရာရှိတာလုပ် ပြီးတော့ Test ပတ်ဝင်းကျင်ကို ပြန်တင်၊ ပြီးရင် Server ကို Restart လုပ် ဒါဆိုရင် ပြီးပြီပေါ့ ဆိုပြီး၊ အားလုံးစီကို ၁၁နာရီကနေ ၁၅မိနစ်လောက် ကွန်ပိုင်းလုပ်မည် ဖြစ်သောကြောင့် Test ပတ်ဝင်းကျင်ကို အသုံးမပြုပါရန် မေးလ်လှမ်းပို့လိုက်ပါသည်။ ၁၁နာရီမတိုင်မှီမှာ ကွန်ပိုင်းလုပ်စရာရှိတာကို လုပ်ပါသည်။ အဲ့ဒီအထိ ပြဿနာ မရှိသေးပါ။

၁၁နာရီအရောက်မှာ Tomcat ကို Stop လုပ်ပါသည်။ System Exception တဲ့၊ စပြီ။ ဘာများလဲဆိုပြီး ရှာကြည့်တော့ လိုအပ်သောဖိုင်ကို ရှာမတွေ့ပါတဲ့။ ဖိုင်ကို သွားကြည့်တော့ သူ့နေရာတွင် ရှိပါသည်။ Permission ကို ကြည့်လိုက်တော့မှ သြော် apacheusr နဲ့ လုပ်မှရမည်တဲ့။ start.sh ထဲမှာ အဲ့ဒီလို su တွေ တစ်ခါတည်းလုပ်ထားတာ မဟုတ်ဘူးဆိုပြီး လိုင်ဘရီတာဝန်ခံကို ဆဲလိုက်သေးသည်။

ပြီးတော့ Framework ကို Stop လုပ်သည်၊ မရပါ။ Timeout ကြီးပဲ လာဖြစ်နေသည်။ ဘာ Log မှလည်း မတွက်တာနဲ့ ဒီလောက်တုန်းရလား ဆိုပြီး Framework ကို ထဆဲပြန်သည်။ ပြီးတော့မထူးဘူးဆိုပြီး ps ကွန်မန်းဖြင့် process ကို ရှာပြီး၊ အဲ့ဒီ Process ID ကို kill ရပါသည်။

Message Broker ဖြစ်သော Active MQ ကတော့ လွယ်လွယ်နှင့် ပိတ်ရပါသည်။ အကုန်လုံးကို Restart လုပ်ပြီး စမ်းကြည့်ပါသည်။ အိုကေ အလုပ်လုပ်ပါသည်။ ၁ နာရီ ကြာသွားသည်။ ၁၂နာရီ ထိုးနေပြီ။ ဗိုက်ကတော့ ဆာနေပြီဖြစ်သော်လည်း ၁ရာရီလောက် အခြေအနေ စောင့်ကြည့်ပြီး၊ ပြင်ထားတာတွေကို ပြန်စစ်ဆေးပါသည်။ ကျွှန်တော်ရေးထားသော Simulation က ကောင်းကောင်း အလုပ်မလုပ်ပါ။ ကျွှန်တော်တို့ တာဝန်ယူထားသော Sub System တွင် Simulation သည် အရှုပ်ဆုံးနှင့် အသုံးအများဆုံး ဖြစ်ပါသည်။

Simulation လုပ်ကြည့်သော်လည်း၊ အလုပ်လုပ်ဆဲဟုသာပေါ်ပါသည်။ ဒုက္ခပဲ။ ဘာများမှားပြီလဲဟု Error Log  ကို သွားကြည့်တော့၊ Request ထဲတွင် လိုအပ်သော ပါရာမီတာများ ပါမလာသောကြောင့်၊ Error တက်နေပါသည်။ Error တက်တာတော့ ဟုတ်ပြီ၊ Error တက်ရင်လည်း Error နှင့်ပြီးသည် ဆိုပြီး Status ကို ရေးသင့်သည်ဟုထင်ရင်း Source ကို သွားကြည့်သည်။

finally ထဲတွင် Exception တက်နေပါသည်။ User Info မရှိသောကြောင့် Error File ကို ရေးမရပါ။ သို့ပါသော်လည်း Status က Error ဖြစ်သောကြောင့် End Status ကို ရေးသောအခါ မရှိသော Error File ကိုပါ သွားပြီး သိမ်းသောကြောင့် NullPointerException ဖြစ်နေပါသည်။ နောက်ဆုံး finally ကို ပြန်စဉ်းစားသင့်သည်ဟု ခေါင်းထဲထည့်ရင်း၊ Request မှာ ဘာလို့ Security တွေ မပါရသလဲဆိုပြီး Client ကိုသွားကြည့်ပါသည်။

Client အပိုင်းတွင် ဟိုတစ်ခေါက်တုန်းက မှားဘူးတဲ့ ဖိုင်ကို အသုံးပြုထားသည်ကို တွေ့ရသည်။ တရုပ်စုတ်တွေဟု ဒီကောင်တွေ အလုပ်ကို သေသေချာချာ မလုပ်ဘူး ဆိုပြီး၊ ဆဲပြန်သည်။ တစ်ခါမှားပြီးရင် မှတ်သင့်သည်။ ဘာလို့ နှစ်ခါထပ်မှားသလဲ ဆိုတာ စဉ်းစားလို့မရပါ။ အဲ့ဒါနဲ့ တရုပ်ပြည်က Team Leader ဆီကို အမှားတွေ လာတင်ထားသည်၊ နောက်တခါ ကရုစိုက်ရန်၊ ဘာကြောင့်နှစ်ခါထပ်မှားသည်ကို အကြောင်းရှာရန်နှင့် နောက်မမှားရန် ဘယ်လိုလုပ်မည်ဆိုသည်ကို Procedure ကို ဒီနေ့အတွင်း အကြောင်းပြန်ရန် မေးလ်ပို့ပါသည်။ ၁၄နာရီ ထိုးသွားပြီ။ ဗိုက်ကလည်း တကျုတ်ကျုတ် ဆာနေပြီ။ အဲ့ဒါနဲ့ ထမင်းသွားစားပါသည်။

အပြန်မှာ ကော်ဖီကြမ်းတစ်ခွက်ကို ဝယ်ပြီး အလုပ်ကိုပြန်လာခဲ့ပါသည်။ အလုပ်ရောက်တော့ Project Leader က စောင့်နေပါသည်။ ဘာများဖြစ်လဲပေါ့။ Bank နဲ့ အစည်းအဝေး လုပ်ပြီး၊ Simulation ကို ပြင်ချင်ကြောင်း ပြောလာသည်။ ထင်တော့ထင်ပါသည်၊ အစကတည်းက ဘဏ်တာဝန်ခံကို မေးဘူးပါသည်။ တကယ်ပဲ အားလုံး ဖျက်ပြီး Simulation ကို လုပ်မှာလားဟု။ အဲ့ဒီတုန်းက အားလုံးဖျက်ပြီး အသစ်လုပ်မည်ဟု ခဲ့ပါသည်။ အခုတော့ အားလုံးမဖျက်၊ အခု Simulation လုပ်မည့် အရာများကိုသာ ဖျက်မည်၊ PDF ကတော့ Simulation လုပ်သည့်အရာကိုသာ ထုတ်မည်၊ CSV ကိုတော့ တနေ့စာထုတ်မည်တဲ့။

၃လပိုင်း အကုန်မှာ Release လုပ်မည့်အရာဖြစ်သောကြောင့်၊ အကြီးအကျယ်မပြင်ချင်ပါ။ ဒါပေမယ့် မတတ်နိုင်။ ပြင်ရမည်၊ ဘယ်လောက်ကြာမလဲမှန်းပေးပါပေါ့။ တရုတ်တွေကို ရေးခိုင်းရင် ဟိုမေးဒီမေးနဲ့၊ နှစ်ဘက်လုံး အလုပ်ဖြစ်မည်မဟုတ်၊ ဒါနဲ့ ကျွှန်တော်ပဲရေးရန် ဆုံးဖြတ်ခဲ့ပြီး၊ Leader အား ပိုပိုလိုလို ၄ရက်လောက်တော့ ငါ့ကိုအချိန်ပေးပါဟု၊ စပြီး Class Diagram တွေကို ပြင်ကြည့်ပါသည်။ Test ပြီးပြီးသားဖြစ်သောကြောင့် တတ်နိုင်သလောက် မပြင်ရစေရန် စဉ်းစားပြီး ရေးပါသည်။

၁၈နာရီလောက်မှာ Leader က ရောက်လာပြန်သည်။ Company အချို့က လူတွေ Login လုပ်လို့မရတော့ဘူးတဲ့။ အဲ့ဒါနဲ့ ACL Table က အချက်တွေ ပျောက်နေသည်။ ဘယ်သူကများဖျက် သွားပါလိမ့်ဆိုပြီး၊ မနက်က Backup လုပ်ထားတဲ့ Data နဲ့ Restore လုပ်ပေးပါသည်။ Leader အား Security Data တွေကို မဖျက်မိစေရန် မှာပြီး၊ ကုဒ်များကို ပြင်နေပါသည်။ ဒီနေ့ သောကြာနေ့ဖြစ်သောကြောင့် စဉ်းစားထားတာတွေကို မမေ့စေရန် အပြီးရေးမည် ဟုအားခဲထားပါသည်။

၂၁နာရီခွဲ လောက်အရောက်မှာ Leader က ရောက်လာပြန်သည်။ Framework ကို Restart လုပ်တာ အမှားတွေ တက်နေလို့တဲ့။ Framework မှားနေရင်တော့ တနင်္လာနေ့ မနက်ပိုင်းတစ်ပိုင်းလုံး တရုတ်ပြည်က Tester တွေ ယောင်ကုန်တော့မှာပဲဟုတွေးရင်း။ လူ ၁၀ယောက်၏ တမနက်စာသည် လူတစ်ယောက်၏ ၅ရက်စာမက တန်ပါသည်။ ဒီနေ့တော့ ဒါကိုရှင်းမှပဲဟု၊ Leader အား ကျွှန်တော်က တာဝန်ဆက်ယူမည်ဟု ပြောရင်း၊ ဆာဗာကို Remote Access လုပ်ပြီး၊ Framework Process ကို ကြည့်ပါသည်။ မရှိပါ။ ဒါနဲ့ Framework ကို Start လုပ်ကြည့်ပါသည်။ Component ကို Load လုပ်၍မရပါဟု Message သာထွက်ပါသည်။ သုံးစားလို့မရတဲ့ Message ဟု တွေးရင်း၊ Framework Log ကို သွားကြည့်ပါသည်။

XML ကို လုဒ်လုပ်ရင်း Error တက်နေပုံရ၏။ Framework Properties များကို XML ကို ဖက်ပြီး လိုအပ်သော Component ကို Load လုပ်ရင်း ရှိပြီးသား Component ကို လုဒ်ထပ်လုပ်သဖြင့် Error တက်နေခြင်းဟုသိရပါသည်။ ဒါနဲ့ XML ကို ဖွင့်ကြည့်ပြီး မှားနေသော Component ID ကို Search လုပ်ကြည့်ပါသည်။ ၂ခါ ထပ်ရေးထားခြင်း မရှိပါ၊ ဘာလဲဟ။

ဟိုတခေါက်က Jade နှင့် Reverse Compile လုပ်ထားသော Framework Source များကို ဖွင့်ကြည့်ပါသည်။ လားလား၊ Directory ထဲတွင်ရှိသော XML ဖိုင်အားလုံးကို Load လုပ်နေသောကြောင့် Backup ဖိုင်ကိုပါ Load လုပ်မိ၍ Duplicate ဖြစ်နေခြင်းဟု သိရပါသည်။ ဒါနဲ့ Backup file အား bkk_fw_def.xml မှ fw_def.xml_bkk ဟု ပြင်လိုက်ပါသည်။ Restart လုပ်၍ရသွားပါသည်။ Program Never Lie ဟု တွေးရင်းနာရီ ကြည့်သောအခါ ၂၂နာရီ။ Leader ကို ကြည့်လိုက်သည် အထုပ်ပြင်ပြီးနေပြီ။ တနင်္လာနေ့လုပ်စရာ အရာများကို TODO LIST ထဲမှာရေးပြီး၊ အိမ်ပြန်ခဲ့ပါသည်။

အိမ်ကိုရောက်တော့ ၀နာရီခွဲ။ ဖန်ခွက်ထဲကို ရေခဲအပြည့်ထဲ့ပြီး၊ ဘာဘုံဝီစကီကို လောင်းပြီး၊ ရေမရောပဲ တစ်ကျိုက်မော့လိုက်ပါသည်။ အား Friday 13 ကို ကျော်သွားပြီ။ ဂျေဆင် လည်း ပြန်ပြီထင်ပါသည်။

Saturday, January 7, 2012

Cloudbees for Java Cloud

အခုတလော Cloud အပလီကေးရှင်းများဟာ အလွန်ပင်ခေတ်စားလာတာကို တွေ့ရပါတယ်။ Amazon EC2 က စတင်လိုက်တဲ့ Cloud မုန်တိုင်းဟာ၊ Google Applet Engine ကို အခြေပြု၍ တစ်စထက်တစ်စ ပို၍ ပြင်းထန်လာတာကို တွေ့ရပါတယ်။

GAEj အရောက်မှာတော့ Java ပရိုဂရမ်မာ တစ်ယောက်အနေနဲ့ စမ်းသပ် အသုံးပြု ခဲ့ပါတယ်။ ယခင် ကိုယ်တိုင်ပြင်ဆင် အသုံးပြုရမည် ဆိုလျှင် အတော်လည်းကို လက်ဝင်သည့်ကိစ္စက မိနစ်ပိုင်းအတွင်းမှာ ပြီးဆုံးသွားခြင်း၊ Google ရဲ့ နည်းပညာများကို လွယ်လင့်တကူ အသုံးပြုနိုင်ခြင်း တို့က အရမ်းကို စွဲမက်စရာ ကောင်းခဲ့ပါတယ်။

ဒါပေမယ့် ကြိုက်လား၊ လို့မေးလာခဲ့ရင် အဖြေခက်ခဲ့ပါတယ်။ ဘာကြောင့်လည်းလို့မေးလျှင် GAEj သည် Java EE ပတ်ဝင်းကျင်လို့ ပြောသော်လည်း၊ အသုံးပြုဘူးသော ပတ်ဝင်းကျင်များနဲ့ ထူးခြားလွန်းနေတာကို တွေ့ရတယ်။ ဘာမတူတာလဲ ဆိုတာကိုတော့ အသေးစိတ် ခွဲချမ်းပြီး မလေ့လာရသေးဘူး။ ဒါပေမယ့် အကြောင်းကြောင်းကြောင့် ဆက်ပြီးမသုံးဖြစ်ခဲ့တော့။

သည်လိုနဲ့ ဒီ ၂၀၁၁ခုအကုန်ပိုင်းမှာ Easy JSP ကို ရေးဖို့အတွက် အခြား Cloud ပတ်ဝင်းကျင်တစ်ခုကို ရှာခဲ့မိပါတယ်။ အရင်ကတည်းက စိတ်ဝင်စားခဲ့ပြီး၊ အချိန်မရသောကြောင့် မစမ်းရသေးသော Cloudbees ကို သွားတွေ့ပါတယ်။ ဒါနဲ့ New Account တစ်ခုကို လုပ်ပြီး၊ စတင် စမ်းသပ်ကြည့်ပါတယ်။

Cloudbees မှာ ပံ့ပိုးပေးနေတဲ့ ဆားဗစ်တွေကတော့  Jakens, Repository, Application, Databases များပဲ ဖြစ်ကြတယ်။ Free User တစ်ယောက်အနေနဲ့ Repository အပေါ်မှာ 2G နေရာရပါတယ်။ ပြီးတော့ အပလီကေးရှင်း ၅ခုနဲ့၊ ဒေတာဘေးစ် ကိုလည်း ၅ MB အသုံးပြုနိုင်ပါတယ်။ တော်ရုံ Web အပလီ လေးငါးခုကို အလကား အသုံးပြုနိုင်တာကို တွေ့ရတယ်။


အသုံးပြုသူရဲ့ စာမျက်နှာမှာလည်း လွန်စွာ ရိုးရှင်းတာကို တွေ့ရပါတယ်။ အထက်ပါ ဆားဗစ်များထဲမှ အသုံးပြုလိုတာကို ရေးသားသွားရုံပါပဲ။

Jenkins ဆိုတာကတော့ Agile Developing Process ရဲ့ အသုံးချ နည်းပညာ တစ်ခုဖြစ်တဲ့ continuous integration နည်းပညာကို အသုံးပြုနိုင်တဲ့ ပလတ်ဖောင်း ဆော့ဖ်ဝဲ တစ်မျိုးပါပဲ။ နောင်တစ်ချိန်မှာ လေ့လာရန်လိုအပ် ပေမယ့် လောလောဆယ် အသုံးမလိုသေးတဲ့အတွက် ခဏ ထားလိုက်ပါဦးမယ်။

ပြီးတာနဲ့ Repository အသစ်တစ်ခုကို စပြီး အသစ်တည်ဆောက်ပါတယ်။ GUI ပေါ်ကပဲ Create New Repository ကို နှိပ်ပြီး လိုအပ်တဲ့ အချက်များကို ဖြည့်စွက်သွားရုံပါပဲ။


ပြီးတာနဲ့ Eclipse Plugin ကို အင်စတောလုပ်ပါတယ်။ ပြီးတော့ Cloudbees Application တစ်ခုကို Eclipse ကို အသုံးပြု၍ တည်ဆောက်လိုက်ပါတယ်။ JSP Welcome ဖိုင်တစ်ခုနဲ့ Example Servlet တစ်ခု နမှုနာအနေနဲ့ပါတာနဲ့ Source တွေကို ပြင်မရေးသေးပဲနဲ့ Local မှာ Run ကြည့်ပါတယ်။ အခက်အခဲမရှိ အလုပ်လုပ်တာကို တွေ့ရတယ်။


အိုကေပဲဆိုပြီး၊ Run Cloud ကို စမ်းကြည့်ပါတယ်။ တက်သွားသလိုလိုနဲ့ အလုပ်မလုပ်ပါဘူး။ အပလီကေးရှင်းကို ရှာမတွေ့ဘူးကြီး လုပ်နေတယ်။ ဒါနဲ့ Application ဆားဗစ်ကို သွားရှာကြည့်ပါတယ်။


Application Details ကို ဖွင့်ကြည့်ပြီး၊ Application Log ကို ကြည့်တော့မှ၊ ကွန်ပိုင်းလာ ဗားရှင်းမတူမှန်သိရပါတယ်။ ဒါနဲ့ Eclipse ရဲ့ကွန်ပိုင်းလာ ဗားရှင်းကို JavaSE 6 ကို ရွှေ့ပြီး ပြန်ပြီး Deploy လုပ်တော့ အလုပ်လုပ်တာကို တွေ့ရပါတယ်။



ပြီးတာနဲ့ Database ကို သွားပြီး၊ DB တစ်ခုကို တည်ဆောက်ကြည့်ပါတယ်။ အခက်အခဲမရှိ တည်ဆောက်နိုင်တာကို တွေ့ရပါတယ်။


ဒေတာဘေးစ် ရတာတော့ဟုတ်ပါပြီ။ Table တွေကို ဘယ်လိုရေးမလဲ၊ Data Architecture တွေကို ဒီဇိုင်းရေးရမှာ အလုပ်ရှုပ်တယ် လို့စဉ်းစားရင်း၊ ရုတ်တရက်အတွေးပေါ်မိပါတယ်။ ဒီကောင် MySQL ဆိုတော့ MySQL Workbench ကို သုံးကြည့်မယ် ဆိုပြီး ဒေါင်းလုဒ်လုပ်ပြီး၊ Connect လုပ်ကြည့်ပါတယ်။ အခက်အခဲမရှိ ဆက်သွယ်နိုင်တာကို တွေ့ရတယ်။


Source တွေကို သိမ်းထားနိုင်တဲ့ Repository ရယ်၊ Local Developing ပတ်ဝင်းကျင်ရယ်၊ Running ပတ်ဝင်းကျင်ရယ်၊ DB ပတ်ဝင်းကျင်ရယ် ရှိပြီဆိုလျှင်၊ တော်ရုံတန်ရုံ Java EE အပလီကေးရှင်းတွေကို တည်ဆောက်နိုင်မှာ ဖြစ်ပါတယ်။

ဒါတောင် Jenkins ကို တောင်မသုံးရသေးပါဘူး။ Java Developer တွေ ရင်းနှီးပြီးသားဖြစ်တဲ့၊ Tomcat ရယ် MySql ကို အသုံးပြုထားတာဟာ ဝမ်းသာစရာဖြစ်တယ်။

Cloudbees ကို ကြိုက်လားလို့ ကျွှန်တော့်ကို မေးလာမည် ဆိုလျှင်၊ ချက်ချင်းပင် အရမ်းကြိုက်တယ်လို့ ဖြေမိမှာ အမှန်ပါပဲ။

Cloudbees ကို ဒီမှာရယူနိုင်ပါတယ်။
http://www.cloudbees.com/

Cloudbees ဖြင့် ရေးသားထားသော နမှုနာ အပလီ ဖြစ်ပါတယ်။
http://jsp-tutorials.minlwin.cloudbees.net/

Wednesday, January 4, 2012

Framework များ နှင့် ကခုန်ခြင်း

ကျွှန်တော်သည် ဒီအိုင်တီလောက ထဲကို ရောက်တာ ၆နှစ်ကျော် ၇နှစ် နီးပါးရှိပါပြီ။ အစကတည်းက Enterprise အပလီများနဲ့ အကျိုးပေးသည်ဟုထင်သည်၊ တောက်လျှောက် Enterprise အပလီများနှင့်သာ ကြုံရ၏။ အစမှစရေးသည့် ပရိုဂျက်မှအစ၊ ရှိပြီးသား စစ္စတမ်ကို ပြုပြင်ရေးသည့် နေရာအထိကြုံဖူးပါသည်။ တဖန် အပြောများသည့် Waterfall မှအစ Spiral နှင့် Agile ရေးသားပုံ တို့အထိ မျိုးစုံတွေ့ဘူးခဲ့ပါသည်။

စာအုပ်ရေးတဲ့သူတွေက တော်ကြပါသည်။ Waterfall မကောင်းဘူး၊ ခေတ်နောက်ကျနေပြီ၊ စရေးတဲ့အချိန်ကနေ့ ပြီးတဲ့အချိန်မှာ သုံးတဲ့ လိုအပ်ချက်တွေက ကွာဟလွန်းနေတယ်၊ ဘာညာဆိုပြီး Agile က အကောင်းဆုံးလို့ ထင်ရောင်ထင်မှားဖြစ်အောင် ရေးတတ်ကြပါသည်။ ရှင်းရှင်းပြောရင် Spiral နဲ့ Agile နဲ့ ဘာကွာလို့လဲလို့မေးရင် တိတိကျကျ အဖြေရှိမည်မဟုတ်ပေ။ ဒါပေမယ့် Agile ဆိုတဲ့ စကားလုံးက သစ်တော့အတော်များများက Agile ကို လုပ်ပါတော့သည်။ Waterfall ကိုလည်း ပြီးအောင်မရေးဘူးပဲနဲ့ Suck Waterfall လို့ သံရောင် လိုက်နေသူ တွေလည်း နည်းမည်မဟုတ်။

ကျွှန်တော်ကြုံဘူးသမျှထဲမှာ Agile လောက်ရွဲတာ တစ်ခုမှမရှိ။ အာရှလူမျိုးမှာနှင့် Agileဟာ လိုက်ဖက်မည် မထင်။ အနောက်တိုင်းသားများ၏ လုပ်ပုံကိုင်ပုံနှင့် အရှေ့တိုင်းသားများ၏ လုပ်ပုံကိုင်ပုံသည် ကွာမည် ဟုထင်ပါသည်။ ထားတော့ထားတော့၊ ဒီနေ့က ဒီကိစ္စကို ပြောချင်တာမဟုတ်ပါ။



Framework ဟုကြားလျှင် လူတိုင်းစိတ်ချထားကြပေ လိမ့်မည်။ သူပြောတဲ့အတိုင်း ထရေးရင် တော်ရုံတန်ရုံ အလုပ်တန်းလုပ်နိုင်မည် ဖြစ်၏။ သို့ရာတွင် အတွင်းပိုင်းတွင် လုပ်နေသည်တို့ကို ကျွှန်တော်တို့ စဉ်းစားမိမည် မဟုတ်ပေ။ ကျွှန်တော်တို့ သုံးချင်တာနဲ့ တကယ်ပဲ ကိုက်ရဲ့လား။ ကျွှန်တော်တို့ လုပ်ချင်တဲ့ ပုံစံမျိုးကို တကယ်ပဲ လုပ်ပေးနိုင်လို့လား ဆိုတာ စဉ်းစားရန် အချိန်ပင် ရှိမည်မဟုတ်။

ရေးဟရေးဟ၊ ဆိုပြီး ဘာသံသယ မှမရှိပဲ ထရေးကြမည်ဟု ထင်ပါသည်။ နောက်ဆုံး လုပ်ချင်တာထက်၊ လုပ်လို့ရသည်ကိုသာ လုပ်သွားရသည်ကများမည် ဖြစ်၏။ ကျွှန်တော်တို့ ငယ်ငယ်က ကြားဖူးတဲ့ အရက်သမား အကြောင်းကို ပြန်ကြားမိပါသည်။

လမ်းထိပ်က ငဇော်ပေါ့ကွာ၊ ဒီကောင် အစက အပျော်အပါးနဲ့ သောက်တဲ့ အရက်က အခုတော့ အရက်က သူ့ကိုပြန်သောက်သွားပြီပေါ့ တဲ့။

Framework အသုံးပြုသူများလည်း ဤကဲ့သို့ပင်၊ အစကတော့ သုံးရလွယ်သားဆိုပြီး သုံးရာက နောက်ဆုံးတော့ ဘုမသိဘမသိ Framework ပြောရာ ယုံရတဲ့ ဘဝကို ရောက်မှာကိုယ် ရင်လေးမိပါသည်။ ကျွှန်တော်ကိုယ်တိုင်လည်း လက်တွေ့ကြုံပါတော့သည်။

ကျွှန်တော်တို့ အလုပ်လုပ်ပေးနေသော ဘဏ်ပရိုဂျက်တစ်ခုတွင် ထိုဘဏ်၏ နှစ်ရှည်လများ အသုံးပြုနေသော Framework တစ်ခုရှိပါသည်။ ကျွှန်တော်တို့ ပရိုဂျက်တွင်လည်း ထိုFramework ကို မသုံးမနေ သုံးရန်ဖြစ်လာပါသည်။ အကြောင်းမှာ လက်ရှိ အသုံးပြုနေသည့် ပရိုဂျက်များလည်း အများအပြားရှိခြင်းကြောင့် အယုံအကြည်ရှိခြင်းက အဓိက အချက်ဖြစ်ပါသည်။

လက်ရှိ သုံးနေတဲ့ Framework ဆိုတဲ့ အချက်ဟာ ငြင်းလို့မရအောင် ခိုင်လုံတဲ့ အကြောင်းပြချက် တစ်ခုဖြစ်ပါသည်။ အိုကေ၊ စပြီ။ ရေးကြရေးကြ အားလုံးဝိုင်းရေးကြပါသည်။

ပြီးခါမှ အချို့သော နေရာများမှာ လုပ်ချင်တဲ့ပုံစံ အတိုင်းဖြစ်မနေသည်ကို တွေ့ရပါသည်။

ဟင်ဘယ်လိုဖြစ်တာလဲ?

Document တွေထဲမှာ ဒီလိုရေးရင်ရတယ်ဆို။

အဲ့ဒီအတိုင်းရေးထားတာပဲ။ မှားစရာမှမရှိတာ။ ဒီလိုပဲနေမှာပါပဲ။

အားလုံးလက်လျှော့သွားကြပါသည်။ အဲ့ဒီမှာ မနေနိုင်တဲ့ ကျွှန်တော်က၊ နေဦးလေ၊ ငါတို့ လုပ်ချင်တာ ဒီလိုမှမဟုတ်တာ။ လို့မေးတော့

Framework က ပြောတဲ့အတိုင်းရေးထားတာလေ၊ မှားစရာမရှိဘူး။ ဒီလိုပဲ နေမှာပေါ့တဲ့။

အရီးလေး၊ ငိုရတော့မလို၊ ရယ်ရတော့မလို။ 

Asynchronous Process က ဘယ်လိုကြည့်ကြည့် Synchronous နဲ့ အလုပ်ထလုပ်နေတယ်။ Framework ကလည်း အဲ့ဒီအတိုင်းရေးရမယ်လို့ ပြောထားတယ်။ ယုံပြီပေါ့။

အဲ့ဒီတော့ ဒီကောင်တွေနဲ့ ဆက်မပြောတော့။ ဆက်ပြောရင်လည်းထူးမည် မဟုတ်။

စုပါသည်။ Tools များကို။ Framework က Source မရနိုင်တဲ့အတွက် Class ကနေ Decompile လုပ်နိုင်တဲ့ Jade၊ ပြီးတော့ ကျွှန်တော်အကြိုက်ဆုံး Text Editor Hidemaru။

အခြားလူတွေများနေရင် နားငြီးတာနဲ့ ဒီကနေ့ ဘယ်သူမှအလုပ်မလာတဲ့ အချိန် တစ်နာရီလောက် စောသွားပြီး ရှာပါတော့သည်။ XML Setting တွင် ရေးထားသော ပါရာမီတာက မှားနေပါသည်။ လူအသုံးမများသော Function ဖြစ်သောကြောင့် အကြိမ်ကြိမ် Maintenance လုပ်ရင်း လွဲသွားပုံရ၏။ ပြောပြလိုက်တော့မှ ပြဿနာက ကြီးသွားပါတော့သည်။ လက်ရှိ အမှားကို အမှန်ထင်ပြီး အသုံးပြုနေတဲ့ စစ္စတမ်တွေက မနည်းတော့။ ဒါတောင် နမှုနာတစ်ခု ဖြစ်ပါသည်။

ဒါကြောင့် Framework ဆိုတာနဲ့ အေးဟအေးဟ ဆိုပြီး မယုံကြည်သင့်ကြောင်း သတိပေးလိုပါသည်။


လူသားအားလုံး အမှားနဲ့မကင်းပေ။ 
Framework သည်လည်း ထိုနည်း၎င်း။ 

Tuesday, January 3, 2012

လေသံဖမ်း တရားနာခြင်း

ဒီတစ်ခေါက် ရေးသားမည့် အကြောင်းသည် Java နဲ့ သိပ်မပတ်သက်ပါ။ Rich Client Application များနဲ့ပတ်သက်ပါသည်။ အားလုံး သတိထားပြီး ဖြစ်ပါလိမ့်မည်။ Flash, Flex, Ajex, Silverlight နဲ့ သိပ်ပြီး ခေတ်မစားခဲ့ပေမယ့် ကြိုးစားနေဆဲဖြစ်သော Java FX ဒါတွေအားလုံးဟာ Rich Client Interface Application များအတွက် အသုံးပြုနိုင်သော နည်းပညာများဖြစ်ကြပါသည်။

ကွန်မြူနတီဂိမ်းများကို အစပြု၍ ကြည့်ရင်းကြည့်ရင်း အင်အားကြီးလာတာကို တွေ့ရပါတယ်။ တဖန် iPhone ကို အစပြုပြီး Android နှင့် Windows Phone ဆိုပြီး Client ပိုင်းဆိုင်ရာ အပလီကေးရှင်းများကို အသုံးပြုနိုင်တဲ့ နယ်ပယ်တွေလည်း တဖြည်းဖြည်း များပြားလာပါတယ်။ မည်သူမဆို လွယ်လင့်တကူ အပလီကေရှင်းများကို ရေးသားနိုင်ပြီး ဈေးကွက်ထဲမှာရော၊ မှောင်ခိုထဲမှာပါ ဆော့ဖ်ဝဲပေါင်း များစွာထွက်ပေါ်လာကြပါတယ်။

ဒါပေမယ့် ကျွှန်တော်စဉ်းစားမိတာ ဒီနည်းပညာတွေကို အလုပ်လုပ်စေရန် ပလတ်ဖောင်းကို လိုအပ်ပါတယ်။ ပလတ်ဖောင်းတစ်ခု အတွက်ရေးသားထားတဲ့ အပလီတစ်မျိုးဟာ နောက်ပလတ်ဖောင်းမှာ အလုပ်မလုပ်နိုင်ပါဘူး။ နောက်ပလတ်ဖောင်းပေါ်မှာ အသုံးပြုနိုင်ရန် နောက်တစ်ခါ ပြန်ရေးရပါမယ်။ ဘယ်လောက် စိတ်ပျက်စရာကောင်း သလဲ။ အရင် ဘရောင်ဇာစစ်ပွဲတွေကြောင့် Ajax မော်ဂျူးတွေ အမျိုးပေါင်းများစွာ ထွက်ပေါ်ခဲ့ဘူးပါပြီ။ လမ်းဟောင်းကြီးကို ဆက်လှမ်းနေပြန်ပြီဟု ကြည့်နေခဲ့မိပါသည်။


ဒါပေမယ့် အခုတစ်လော ဒီလမ်းဟောင်းကြီး မကြာခင် ပြီးတော့မည်ဟု ယုံကြည်လာရန် အကြောင်းများကို တွေ့ခဲ့ရပါသည်။ HTML5 ဖြစ်၏။ Tag များကို ဖြည့်စွက်ရုံမက API ကိုလည်း ဖြည့်စွက်လာပါသည်။ ယခင်က ဘရောင်းဇာပေါ်တွင် Animation ကို ရေးရန် Flash, Java, Silverlight အစရှိသည့် ပတ်ဝင်းကျင်ကို ပြင်ဆင်ထားရန်လိုအပ်ခဲ့၏။ တဖန် ပုံရိပ်များကို ရေးသားရန်ဆိုရင်လည်း jpg, gif, png အစရှိသည့် ဖိုင်များကို အသုံးပြုရန် လိုအပ်ခဲ့၏။ Vedio ကို ပြဿရန် Flash Player ကို လိုသည်ဟု ယခုထိ ထင်နေသူများရှိခဲ့၏။ HTML5 တွင် အဆိုပါ အကြောင်းအရာများကို ဘာပလတ်ဖောင်းမှမလိုပဲ ပံ့ပိုးပေးနိုင်မည် ဖြစ်သည်။ တဖန် ကွန်တရိုးများကိုလည်း ရင်းနှီးပြီးဖြစ်သော javascript ဘာသာရပ်ဖြင့် အသုံးပြုနိုင်မည် ဖြစ်၏။

တဖန် HTML Tag အစိတ်အပိုင်းများကိုလည်း CSS3 ကို အသုံးပြုရုံဖြင့်၊ လိုအပ်သလို ဒီဇိုင်းများကို ရေးဆွဲလာနိုင်မည်ဖြစ်၏။ ယနေ့ RIA အပလီများကို ဘာပလတ်ဖောင်းမှ သုံးစရာမလိုပဲ HTML5, CSS3 နှင့် Javascript ဖြင့် ရေးသားနိုင်မည် ဖြစ်၏။ ထို့အပြင် HTML5 ကို ပံ့ပိုးပေးနိုင်သော ဘရောင်ဇာကို အသုံးပြုထားပါက ကွန်ပျူတာပေါ်မှာဖြစ်ဖြစ်၊ iPhone ပေါ်ဖြစ်ဖြစ်၊ Android ပေါ်ဖြစ်ဖြစ်၊ iPad ပေါ်ဖြစ်ဖြစ်၊ Tablet ပေါ်ဖြစ်ဖြစ်၊ သြော်မေ့လို့ windows phone ပေါ်မှာပါ တစ်ခါရေးရုံနှင့် အလုပ်လုပ်နိုင်မည် ဖြစ်သည်။ 

HTML5 သုံး Graphical User Interface အဲဒီတာများသာ ပေါပေါလောလော ထွက်ပေါ်လာပါက၊ အခြားသော RIA များ အလိုလို ပျောက်သွားလိမ့်မည် ဟု ထင်ရပါသည်။ HTML5, CSS3 နှင့် Javascript များကို လေ့လာထားရန် လိုအပ်သည်ဆိုသည်မှာ မှားမည် မဟုတ်ပေ။ 

Sunday, January 1, 2012

၂၀၁၁မှာဘာလုပ်ခဲ့ပြီး ၂၀၁၂မှာ ဘာဆက်လုပ်ဦးမယ်ဆိုတာ

သြော် သည်လိုနဲ့ နှစ်တစ်နှစ် ကူးပြောင်းခဲ့ပြီဖြစ်၏။
၂၀၁၀ခုနှစ်ကစပြီး၊ ပြီးခဲ့တဲ့နှစ်က ဘာလုပ်ခဲ့ပြီး၊ နောက်နှစ်ဘာဆက်လုပ်ဦးမည် ဆိုသည်ကို စဉ်းစားခဲ့မိသည်။
အံ့သြစရာကောင်းလောက်အောင်ပင် ကျွှန်တော်လုပ်ချင်ခဲ့သော အကြောင်းများသည်၊ လေ့လာမည်၊ လေ့လာခဲ့သည်က များပါသည်။
ကျွှန်တော်ကိုယ်တိုင်က လေ့လာခြင်းကို နှစ်သက်ခဲ့ခြင်း ဖြစ်ပါလိမ့်မည်။
သည်လိုနဲ့ ၂၀၁၂အရောက်မှာလည်း ဒီနှစ်ဘာဆက်လုပ်မည် ဆိုသည်ကို စဉ်းစားပါဦးမည်။
ဒီနှစ်မှာတော့ လုပ်ဖြစ်ခဲ့သည့်အရာ၊ မလုပ်ဖြစ်ခဲ့ပဲ ဆက်မလုပ်ချင်တော့သောအရာ။
မလုပ်ဖြစ်ခဲ့၍ ဆက်လုပ်ချင်သည့်အရာနှင့် အသစ်ဆက်လုပ်ရန် ဖြည့်စွက်သည့်အရာဟု ခွဲခြားစဉ်းစားကြည့်ပါမည်။

၂၀၁၁တွင်လုပ်ဖြစ်ခဲ့သည့်အရာများ

  • Java SE 7 ကို လေ့လာခဲ့၏။
  • HTML5 ကို အနည်းငယ် ထိတွေ့လေ့လာခဲ့၏။
  • Google Applet Engine for Java တွင် အပလီကေးရှင်း ရေးသားပုံကို လေ့လာခဲ့၏။
  • Java SE 6 ကိ လေ့လာခဲ့၏။
  • JDO ကို လေ့လာခဲ့၏။
  • Jython အကြောင်းကို လေ့လာခဲ့၏။
  • Ajax နှင့် Servlet ဆက်သွယ်အသုံးပြုပုံကို လေ့လာခဲ့၏။
  • Cloudbees တွင် အပလီကေးရှင်း ရေးသားပုံကို စမ်းသပ်ခဲ့၏။

  • အီးဇီးJava အကြောင်းကို ရေးသားခဲ့၏။ (Myanmar IT Pro & Myanmar Java User)
  • အီးဇီးဆာဗလက် အကြောင်းကို ရေးသားခဲ့၏။  (Myanmar IT Pro & Myanmar Java User)
  • အခြေခံ XMLအကြောင်းကို ရေးသားခဲ့၏။  (Myanmar IT Pro & Myanmar Java User)
  • အခြေခံ DTD အကြောင်းကို ရေးသားခဲ့၏။  (Myanmar IT Pro & Myanmar Java User)
  • အခြေခံ XSLT အကြောင်းကို ရေးသားခဲ့၏။ (Myanmar IT Pro)
  • အခြေခံ DOM အကြောင်းကို ရေးသားခဲ့၏။ (Myanmar IT Pro)
  • Java SE 6 နှင့် ပတ်သက်သည့်အရာများကို ရေးသားခဲ့၏။ (Myanmar IT Pro)
  • Java SE 7 အကြောင်းကို ရေးသားခဲ့၏။ (Myanmar IT Pro & Myanmar Java User)
  • Myanmar Java User Group ကို Facebook ပေါ်တွင် စတင်ခဲ့၏
  • Myanmar Java User Blog ကို စတင်ရေးသားခဲ့၏

  • Zaqzaq Desktop အပလီကေးရှင်းကိုရေးသားခဲ့၏။
  • Redfeather ကို ရေးသားခဲ့၏။
  • JZ2UConverter ကို ရေးသားခဲ့၏။
  • BlackSwan ကို ရေးသားဆဲ။

၂၀၁၁တွင် လုပ်ချင်ခဲ့သော်လည်း ဆက်မလုပ်တော့မည့်အရာများ

  • PHP
  • Java 3D
  • OpenGL

၂၀၁၂တွင် ဆက်လုပ်မည့် အရာများ

  • TCP/IP ကို လေ့လာရန်
  • Websocket ကို လေ့လာရန်
  • Java EE 6 ကို လေ့လာရန်

  • အီးဇီး JSP ကို ရေးသားရန်
  • အခြေခံ UML အကြောင်းကို ရေးသားရန်
  • Java SE 7 အကြောင်းကို ဆက်လက် ရေးသားပါမည်
  • အခြေခံ Java အကြောင်းကို ဆက်လက်ရေးသားပါမည် 

၂၀၁၂တွင်လုပ်ချင်သည့်အကြောင်းအရာများ

  • Database အခြေခံ အကြောင်းကို ရေးသားပါမည်
  • Struts Framework အကြောင်းကိ ရေးသားပါမည်
  • Jakens နင့် Maven2 ကို ပိုင်နိုင်စွာ အသုံးပြုနိုင်အောင် ကြိုးစားပါမည်
  • အသုံးပြုနိုင်သော EMP တစ်ခုကို ရေးသားပါမည်
  • မြန်မာနိုင်ငံနှင့် ပတ်သက်သော အလုပ်များကို လုပ်နိုင်ရန် ကြိုးစားပါမည်
  • နောက်နှစ်နှစ် အတွင်းတွင် မြန်မာပြည်ကို ပြန်ဖြစ်ရန် ကြိုးစားပါမည်။

အားလုံးခြုံကြည့်မည် ဆိုလျှင် ၂၀၁၁ခုနှစ်တွင် ငလျှင်ဖြစ်ချင်း အစရှိသည့် အခြေအနေ အမျိုးမျိုးကြုံတွေ့ခဲ့သော်လည်း လေ့လာစရာတွေ၊ ရေးသားဖြစ်တာတွေ၊ စတင်ခဲ့တာတွေ ရှိခဲ့ပါတယ်။ TCP/IP ကို မလုပ်ဖြစ်ခဲ့ပေမယ့် နောက်နှစ်ဆက်လုပ်ပါမယ်။ PHP ကတော့ လက်လျှော့လိုက်ပြီး Java ဘက်ကိုပဲ ပိုပြီးအားဖြည့်ရန် ဆုံးဖြတ်လိုက်ပါတယ်။

၂၀၁၂မှာတော့ ရေးသားစရာ၊ လေ့လာစရာတွေကို ဆက်လုပ်ရင်း၊ မြန်မာပြည်ပြန်ရန် စီမံကိန်းကိုလည်း ဖြည်းဖြည်းချင်း အကောင်းအထည်ဖော်ရပါမယ်။ နောက်တစ်ခု ကျန်းမာရေးကို ပိုပြီး ဂရုစိုက်ရန် လိုအပ်ပါလိမ့်မယ်။