Wednesday, April 27, 2011

Make your own shutdown command :D

စာေရးမယ္ ေျပာတုန္းကေျပာျပီး ေရးဖို႕ၾက ပ်င္းတယ္။ Game က လည္း ဆက္ကစားရအုန္းမယ္ ။ အခ်ိန္ေတြက ေလာက္ကို မေလာက္ဖူး ။ ေခါင္းစဥ္ဖတ္ျပီး ၾကီးၾကီးက်ယ္က်ယ္ေတာ့ မထင္ပါနဲ႕ ။ Linux ေပၚမွာ ေပါက္ကရ ေပါက္စေလးတစ္ခုေလာက္ လုပ္ၾကည့္ရေအာင္။

Bash မွာ command alias ေလးတစ္ခုေလာက္ ေရးၾကည့္ရေအာင္ ။ ကိုယ့္နာမည္႐ိုက္လိုက္ရင္ laptop က shutdown က်သြားတာမ်ိဳးေလးဆို မဆိုးဘူး။
$HOME ရဲ့ေအာက္မွာ .bash_profile သို႕မဟုတ္ .profile ဆိုတယ့္ file ရွိပါတယ္။ Bash shell မွာ .bash_profile လို႕ေတြ႕ရျပီး Sh မွာေတာ့ .profile လို႕ေတြ႕ရပါတယ္။ ( မိုးေလဝသ ေၾကညာတယ့္ ေလသံမ်ားေပါက္သြားလားမသိဘူး) Filename မွာ ေရွ႕မွာ full stop ပါပါတယ္။ ဒါ nix မွာ ေတာ့ hidden attribute ပါ။ ls နဲ႕ၾကည့္ရင္ ls -a ဆိုမွ ျမင္ရပါလိမ့္မယ္။ ကဲ အဲဒီ file ကို edit လုပ္ၾကမယ္။ vi ပဲျဖစ္ျဖစ္ vim ပဲျဖစ္ျဖစ္ nano ပဲျဖစ္ျဖစ္ ၾကိဳက္ရာနဲ႕ ဖြင့္၊ edit ျပီး save လို႕ရရင္ ျပီးတာပဲ။ ျပီးရင္ ဒီ ႏွစ္လိုင္းကို ေအာက္ဆုံးမွာ ျဖည့္လိုက္ပါ။

gant=`which shutdown`
alias divinity='$gant -h now'


Generic ျဖစ္ေအာင္ ႏွစ္လိုင္းေရးလိုက္တာပါ။ Shutdown file ရွိတယ့္ path ကိုတန္းေပးျပီး $gant လို႕ မေပးေတာ့ရင္လည္း ရပါတယ္။ divinity ေနရာကေတာ့ ကိုယ့္နာမည္ ကိုေျပာင္းေပါ့။ Save လုပ္ျပီးရင္ စမ္းခ်င္ရင္ logout ျပီး ျပန္ login ဝင္ရပါတယ္။ Shell environment ကို edit တာမို႕ ခ်က္ခ်င္း effective မျဖစ္ပဲ next login မွာမွ effective ျဖစ္ပါတယ္။ ကဲ အခုဆိုရင္ေတာ့ ကိုယ့္နာမယ္ ကိုယ္႐ိုက္ျပီး shutdown ခ်လို႕ ရပါျပီ ။ ( စားၾကမယ္ေဟ့ ေကာင္းေကာင္း ေလသံေပါက္သြားလားမသိ )


Divinity

Smart, and Gets Things Done.

Smart, and
Gets Things Done.

အဲဒါေျပာတာ ကြ်န္ေတာ္မဟုတ္ပါဘူး။Joel Spolsky ဆိုတဲ႔ company ပိုင္ရွင္ေျပာတာျဖစ္ပါတယ္။ သူက အင္တာဗ်ဴးရင္ အဲဒီလို Get Things Done in smart ways ျဖစ္တဲ႔ငနဲရွာခ်င္တာပါ။ ပင္ကိုယ္စြမ္းရည္ေကာင္းတာမ်ိဳးလိုခ်င္တယ္လို႕ေျပာတယ္။ သူေျပာတာက သင္ထားတာေတြတတ္ေနတာအျပင္ ပင္ကိုယ္ကလည္း အလုပ္လုပ္ရင္ ျဖစ္ေအာင္လုပ္တဲ႔လူမ်ိဳးလုိခ်င္တာ။

Joel ေျပာတာက အရင္က သင္ထားလို႕တတ္ေနတာေတြက Technically ေျပာရင္ အေဟာင္းၾကီးေတြျဖစ္ေနျပီ။ နည္းပညာအသစ္ေတြကို အင္တာဗ်ဴးလာေျဖတဲ႔သူက နားလည္ႏုိင္မလား၊ အျမန္ေလ႔လာႏုိင္မလားဆိုတာကို Joel က သိခ်င္ပါတယ္။ သူ႕ရံုးမွာခန္႕မယ္႔လူေတြကို အဲဒီလို ပင္ကုိယ္စြမ္းရည္ေကာင္းတာမ်ိဳး ျဖစ္ေစခ်င္တယ္ေပါ႔ဗ်ာ။ ေခတ္နဲ႕အံမ၀င္တဲ႕နည္းပညာေတြကို သိပ္ကိုကြ်မ္းေနပါတယ္ဆိုတာမ်ိဳးကို သူကမခန္႕ခ်င္ဘူး။


စမတ္က်တယ္ဆုိတာသတ္မွတ္ရခက္ပါတယ္။ အင္တာဗ်ဴးေမးခြန္းေတြကို ဘယ္လုိေျဖသလဲ၊အေျဖရေအာင္ဘယ္လုိခ်ဥ္းကပ္သလဲဆိုတာေတြကေန ခန္႕မွန္းၾကည္႕ရတာပါပဲ။ ဒါေပမယ္႔ အလုပ္ကိုျပီးေျမာက္ေအာင္၊ ေအာင္ျမင္ေအာင္ လုပ္တတ္တဲ႔အမူအက်င္႔ကေတာ႔ အေရးအၾကီးဆံုးပါပဲ။ တစ္ခ်ိဳ႕လူေတြက သိပ္ေတာ္တယ္။ အလုပ္ျဖစ္ေအာင္သာမလုပ္တတ္တာ၊ အဲဒီလူေတြက phD ေတြဘာေတြရတဲ႔အထိျဖစ္ႏုိ္င္တယ္။ Smart က်တာနဲ႕ အလုပ္ျပီးေအာင္ လုပ္တတ္တာမတူပါဘူး။

smart ေတြဟာ ေတာ္တယ္။ get Things Done ခ်င္မွ done မယ္။ company အၾကီးၾကီးေတြမွာ ရာထူးအၾကီးၾကီးေတြနဲ႕ေနခ်င္လည္းေနမယ္။ သိပ္လည္း smart ျဖစ္တယ္။ လုပ္လုိ႕မျဖစ္ႏုိင္ေလာက္တာေတြပဲလုပ္ေနလို႕ ဘယ္သူမွ သူ႕ဆီက အၾကံမယူႏို္င္ေလာက္ေအာင္ကို smart ျဖစ္ေနတာမ်ိဳး။ သူတုိ႕က သိပ္ကို အခဲဒမစ္ဆန္တဲ႔အတြက္ software ေတြ ဘယ္အခ်ိန္မွာျပီးဖုိ႕ထက္၊ ျပႆနာတစ္ခုခုကို အေလးအနက္ကိုင္တြယ္ေျဖရွင္းဖုိ႕ကို ပိုစိတ္၀င္စားတယ္။

အလုပ္မျဖစ္ဘူးဆိုတာက အလုပ္မလုပ္တာကိုေျပာတာမဟုတ္ဘူးေနာ္။ သူလုပ္ခ်င္တာလုပ္ေနလို႕ တကယ္လုပ္ရမယ္႔ဟာေတြမျပီးတာမ်ိဳးလည္းျဖစ္ႏုိင္တယ္။ အလုပ္မဟုတ္တာေတြကို လုပ္လုပ္ေနတတ္လုိ႕ Joel က အဲဒီလို smart ေတြ၊ smart but not useful လုိ႕သတ္မွတ္ပါတယ္။ သူ႕အတြက္သတ္မွတ္တာပါ။ ဒီလုိလူေတြက research ေတြဘာေတြသြားဖုိ႕သင္႔ေတာ္တယ္လုိ႕ကြ်န္ေတာ္ျမင္ပါတယ္။ အံမ၀င္တာမ်ိဳးပါ။ ျပိဳင္ကားေမာင္းဖုိ႕မ်က္လံုးေကာင္းျပီး၊ ဦးေႏွာက္က response ျမန္တဲ႔သူကို စပါးလံုးေကာက္ခိုင္းဖုိ႕ အလုပ္ခန္႕ေနတာမ်ိဳးလည္းျဖစ္ေနႏို္င္တယ္လုိ႕ျဖည္႕စြက္ေတြးမိပါတယ္။


အလုပ္ပဲျဖစ္ေအာင္လုပ္ျပီး smart မက်တဲ႔ေကာင္က ပိုေတာင္ဆိုးေသး။ သူက အလုပ္ျဖစ္ေအာင္ ျဖစ္သလိုလုပ္ပစ္မယ္။ ေနာက္က်ရင္ သူလုပ္ထားတာေတြကို ျပန္ရွင္းေနရတာနဲ႕ပိုဆုိးကုန္တယ္။ အဲဒါကို ကြ်န္ေတာ္နည္းနည္းျဖည္႕ေျပာလုိက္ခ်င္တယ္။ Developers ေတြအလုပ္လုပ္ရင္ နားလည္ဖုိ႕မၾကိဳးစားခ်င္တဲ႔အခါ hard code လုပ္ပစ္တာမ်ိဳး၊ အဲဒါကို အေပၚလြင္ဆံုးျပႏိုင္တဲ႔ အဂၤလိပ္ အီဒီယမ္တစ္ခုကေတာ႔ sweep things under the carpet ပါ။ ျပႆနာေတြကို ဖံုးထားလိုက္တယ္။ ေနာက္ေတာ႔မွ ေလွ်ာက္လုပ္လုိက္တာေၾကာင္ျပႆနာ႔ပိုၾကီးသြားျပီ။ အပ္နဲ႕ထြင္းရမွာကေန c4 နဲ႕ခြဲရတဲ႔အဆင္႔ကိုေရာက္ပါတယ္။


Joel ေျပာတာက အင္တာဗ်ဴးမွာ ဘာလုိ႕ သိပ္အသံုးမက်တဲ႔ေမးခြန္းေတြဘာလို႕ေမးမွာလဲတဲ႔။ ဥပမာ oracle8i မွာ varchar နဲ႕ varchar2 ဘာကြာလဲေမးတာမ်ိဳးတဲ႕၊ ဒီလိုေမးခြန္းအတြက္ အြန္လိုင္းကေန ၁၅ စကၠန္႕နဲ႕ရွာလုိ႕ရတယ္ဆိုတာ သူသိတယ္။ အဲဒါမ်ိဳးေတြေမးတာ ရယ္စရာေကာင္းတယ္လို႕သူကေျပာပါတယ္။

သူလုိခ်င္တဲ႔အရည္အခ်င္းေတြထဲမွာ passion နဲ႕အလုပ္လုပ္တဲ႔အခ်က္လည္းပါပါတယ္။ အဲဒါေလးကိုေတာ႔ အေလးအနက္ေျပာခ်င္ပါတယ္။ အင္တာဗ်ဴးမွာ ကိုယ္တကယ္လုပ္တတ္လားမလုပ္တတ္လားခန္႕မွန္းဖုိ႕သာမလြယ္တာ၊ ကိုယ္႔အလုပ္ကိုကုိယ္ေျပာတဲ႔အခါ သိပ္ကိုတက္ၾကြျပီးအာေပါင္အာရင္းသန္ေနရင္၊ အခု laptop ေပးအခုေရးလုိက္ခ်င္စမ္းတယ္ဆိုတဲ႔အထာၾကီးနဲ႕ေျပာေနဆိုေနရင္ ဒီလူဟာ ၀က္ကိုေဟာလစ္လုိ႕ထင္တဲ႔အစားပဲဆိုျပီး အလုပ္ခန္႕ခ်င္လည္းခန္႕မွာတဲ႔။

ေနာက္တစ္ခုက်န္ေသးတယ္။ အရင္အလုပ္မွာလုပ္ခဲ႔တာကို အပိုေတြေျပာမယ္ဆိုရင္ လုိသေလာက္ပဲအပိုေျပာဖုိ႕ပါ။ လုပ္ခဲ႔တာက developer။ project ကိုလည္း ကိုယ္ပဲ manage လုပ္ခဲ႔တယ္သြားေျပာရင္ယံုမွာမဟုတ္ဘူး။ ဒါေပမယ္႔ အဲဒီလို High level view ရိွေၾကာင္း၊ System Analysis လုပ္တုန္းကပါခဲ႔ေၾကာင္းေလာက္ေျပာရင္ကိုအိုေကျပီ။ အကန္႕အသတ္ေလးနဲ႕ေျပာဖုိ႕။ ကို္္ယ္ထြက္သြားလုိ႕ ဟိုကုမၸဏီမွာ Do နဲ႕မ်က္ရည္သုတ္က်န္ခဲ႔သေယာင္ၾကီးေတြ ေလွ်ာက္မေျပာဖုိ႕၊ Attitude ေကာင္းဖုိ႕ေတြသတိထားျပီးေျဖဖုိ႕ေတြကို သူကေျပာပါတယ္။

ဒီပို႕စ္ကေတာ႔ Blah-Blah ပါပဲ။ Blah-blah ဟာ Blurred blurred ထက္ေတာ႔ေကာင္းပါတယ္။ တကယ္လုိ႕ အလုပ္တစ္ခုမွာ လုပ္ေတာ႔မယ္ဆိုရင္ အဲဒီအလုပ္ကို professional ပီပီသသ လုပ္ရင္ ေရရွည္မွာပိုျပီးတုိးတက္လာတာပါပဲ။ အင္တာဗ်ဴးေျဖတာေတြကလည္း ကိုယ္သိတာကို အားၾကိဳးမာန္တက္ေျပာတာအေရးၾကီးသလို၊ကိုယ္တကယ္သိဖုိ႕လုိတာေတြသိေနဖုိ႕လည္းလုိပါတယ္။ အခုလုိ Resume' ျပင္ေရးေနတဲ႔အခါသမယမွာ Tips and Tricks ေတြကို share လိုက္ပါတယ္။

နတ္လူသာဓုစ္ေခၚေစေသာ္၀္။

Regards,

Zero


Religion : Googlism

Google သာမရွိရင္ က်ေနာ္တို႕ engineer ျဖစ္ပါ့မလား ? Google သာမရွိရင္ က်ေနာ္လည္း mechanical engineer ပဲလုပ္ျဖစ္မယ္ထင္တယ္။ အခုလို IT ျဖစ္လာမွာမဟုတ္ဖူး။ က်ေနာ္တို႕ အတြက္ Google က ဘဝပဲ ဟဲဟဲ။ ဒါလည္း ေျပာရရင္ေတာ့ မေကာင္းဘူး။ က်ေနာ္တို႕ မွတ္ဉာဏ္ထက္ Google docs ေတြ Google bookmarks ေတြ ကိုပိုအားကိုးလာရင္ မေကာင္းဘူးလို႕ထင္တာပဲ။ အတိုင္းအတာ တစ္ခုထိ သုံးရေပမယ့္ ဒီေပၚမွာပဲ depends မလုပ္မိသင့္ပါဘူး။ က်ေနာ္ဒီေန႕ MySQL cluster setup လုပ္ျဖစ္လို႕ က်ေနာ္ရဲ့ ပထမဆုံး setup လုပ္ျဖစ္တယ့္ အေတြ႕အၾကံုနဲ႕ ျပန္ယွဥ္စဥ္းစားမိပါတယ္။

က်ေနာ္တို႕ ဒီက Telecom တစ္ခုအတြက္ application တစ္ခု setup လုပ္တုန္းကပါ၊ က်ေနာ္က servers setup လုပ္ရပါတယ္။ Solaris 8 ေပၚမွာ။ သူတို႕ server ေတြထားတယ့္ server room ေတြမွာ က်ေနာ္တို႕အတြက္ internet access မရွိပါဘူး။ အဲ server ကိုတိုင္လည္း IP က approve မျဖစ္ေသးလို႕ link activate မျဖစ္ေသးပါဘူး။ အဲေတာ့ ေျပာရင္ ဘာ network connection မွမရွိပါဘူး။ Documentation ျပင္ဆင္သြားေပမယ့္ ရွန္းတတ္တယ့္က်ေနာ္ documentation မွာအဆင့္ေက်ာ္သြားပါတယ္။ ရွာစရာ internet လည္းမရွိဘူး။ အဲတုန္းက iphone မေပၚေသးဘူး။ :D Windows mobile မေကာင္းေၾကာင္းကေတာ့ က်ေနာ္မေျပာေတာ့ဘူး။ က်ေနာ္တို႕မွာ internet ကေန ရွာဖို႕ phone မွာရွာ လိုက္ဖတ္ ၊ ေနာက္မွ က်ေနာ္ အဆင့္ေက်ာ္သြားတာမွန္းသိတယ္။ အဲတုန္းကဘာပဲလိုလို Google မွာရွာ ေတြ႕တယ့္ အတိုင္းလုပ္လိုက္တာပဲ။ ရရင္ရ ၊ မရရင္ ဆက္ရွာ။ ဒါပဲလုပ္တတ္တယ္။ အဲဒါကိုပဲ လုပ္တတ္ေနျပီလို႕ ကိုယ့္ဟာကို ထင္တာ။ Internet မရွိတယ့္ ေနရာမွာ အလုပ္လုပ္ဖူးျပီးမွ ငါေတာ္ေတာ္လိုေသးတယ္လို႕ သိတာ။ ဒါေတာင္ compilation မလုပ္ရလို႕။

Internet က ေလ့လာၾကတာ အလြန္ေကာင္းေပမယ့္ internet ရွိမွ ျဖစ္ရင္ေတာ့ မေကာင္းဘူး။ Howto ေတြရွာၾကရင္လည္း ဘာေၾကာင့္ ဒီ howto မွာ ဒီလို လုပ္သလည္းဆိုတာကို ေလ့လာဖို႕ သိပ္မလုပ္ၾကဖူး။ Ubuntu howto ကို Fedora ေပၚမွာ ျပန္အသုံးမခ်ႏိုင္တယ့္ linux ဆရာေတြ ေတြ႕ဖူးပါတယ္။ ဒီ command ကရွိမွ မရွိတာ ဆိုျပီး fedora version howto ရေအာင္ လိုက္ရွာတာမ်ိဳး။ ေနာက္ေတာ့ က်ေနာ္ README file ေတြ ဖတ္ျဖစ္လာတယ္။ ဘာပဲ compile လုပ္လုပ္ README အရင္ဖတ္တယ္။ ျပီးမွ internet မွာရွာတယ္။ ဒါလည္း reference အေနနဲ႕ပါ။ Linux မွာ source file ေတြမွာပါတယ့္ text file ေတြမွာ compilation / installation အတြက္ ရွင္းျပထားတာမ်ိဳး ပါေလ့ရွိပါတယ္။ က်ေနာ္လည္း ေနာက္မွေတြ႕တယ္။ MySQL source file ထဲမွာ INSTALL-BINARY ဆိုတယ့္ file တစ္ခုမွာ အဆင့္လိုက္ရွင္းျပထားပါတယ္။ အဲတုန္းကေတာ့ 20C temperature အခန္းထဲ ေခြၽးေတြပ်ံလို႕။

အျမဲတန္း အလုပ္ျဖစ္သြားရုံထက္ explore လုပ္ၾကည့္ပါ အမွားမရွိပါဘူး။ ဒီလို စကားမ်ိဳး Zero ေရးတယ့္ post ေတြမွာ ပါေလ့ရွိပါတယ္။ တစ္ခုကို ေကာင္းေကာင္းနားလည္ထားရင္ မသိေသးတာတစ္ခုကို ရွာေဖြဖတ္ရင္လည္း နားလည္လြယ္ပါတယ္။ Google က က်ေနာ္တို႕ရဲ့ ကိုးကြယ္ရာ မဟုတ္ပဲ ခိုင္းစားရုံေလာက္ပဲ ခိုင္းစားၾကရေအာင္။


Divinity

Note : က်ေနာ္ MySQL cluster setup လုပ္ရင္း စဥ္းစားမိတာ ေရးလိုက္တာပါ။ MySQL cluster setup ကေတာ့ ဆက္ပါအုန္းမယ္။ MySQL cluster အတြက္ လိုအပ္တယ့္ ndbd က CentOS repo ထဲမွာ မရွိပါဘူး။ Mysql-max က Redhat မွာ enterprise subscriber ေတြအတြက္ပဲရွိပါတယ္။ အျပင္ rpm ကို download မွာထက္ေတာ့ MySQL site က tgz ေလး download ျပီး ကိုယ့္ဟာကို setup လုပ္တာ က်ေနာ့္အတြက္ ပို အဆင္ေျပပါတယ္။ ဒီည game မေဆာ့ျဖစ္ရင္ mysql cluster ေရးပါအုန္းမယ္။ :D

Monday, April 25, 2011

PL/SQL Developer

PL/SQL Developer

အျမဲတမ္းလုိလုိသံုးျဖစ္တာက SQL developer ပါ။ အခု PL/SQL developer ေျပာင္းသံုးပါတယ္။ သူကေတာ႔ oracle client ရိွဖုိ႕လိုပါတယ္။ Install လုပ္ျပီးရင္ tnsnames.ora ကို admin path မွာထည္႕လုိက္ရံုပါပဲ။ ဒီ IDE ကေတာ႔ DBA ေတြနဲ႕ပိုသင္႔ေတာ္ပါတယ္။

အလုပ္မရိွအလုပ္ရွာျပီး အမ်ိဳးမ်ိဳးစမ္းသံုးၾကည္႕ေနတာပါ။

အခုတေလာ၊ python ေရးတယ္။ php ေရးတယ္။ ASP.net ေရးတယ္။ Java ေရးတယ္။ စိတ္ကူးေပါက္ရာေလွ်ာက္လုပ္ေနတယ္။ မၾကာခင္ Ruby ေရးမယ္။ Closure ေရးပါမယ္။ Languages ေတြရဲ႕ Pros and Cons ကိုမေရးဘူးပဲျငင္းတယ္ျဖစ္မွာစိုးလုိ႕ ..ေရးျပီးမွ ျငင္းၾကမလားလို႕။ Juz kidding.

O_O :P ဆိုတဲ႔ဟာေတြအားလံုးဟာ ဒီပုပ္ထဲက ဒီပဲေတြခ်ည္းပါပဲ။ Language တစ္ခုခုကိုေကာင္းေကာင္းသိရင္ အခ်ိန္တိုအတြင္းမွာေလ႔လာႏုိင္ပါတယ္။ မယံုရင္စမ္းၾကည္႕ပါ။

Git ကိုလည္း အခ်ိန္နည္းနည္းေပးျပီးစမ္းၾကည္႕ဖုိ႕တိုက္တြန္းပါတယ္။ Repoနဲ႕ေရးတာဟာ Team နဲ႕ေရးတဲ႔အခါၾကရင္ျဖစ္ျဖစ္၊ Code Merging အတြက္ပဲျဖစ္ျဖစ္ အဆင္ေျပေစပါတယ္။ Developer ေကာင္းတုိ႕မည္သည္ Source Code ကို Check in မလုပ္ဘဲ အိမ္ျပန္သည္မရိွကုန္ ဆိုတာကိုလည္းမွတ္ထားပါ။ အလုပ္ထြက္တဲ႔အခါ၊ အကုန္လံုး Repo ထဲမွာ ထည္႕ျပီးျပီ တာ႔တာလုိ႕ေျပာလုိ႕ေကာင္းပါတယ္။

ဘာသာျပန္တာေတြ မနက္ျဖန္မွာတင္လုိက္ပါမယ္။

ဒီမွာလာဖတ္တဲ႔သူ ၇ ႏွစ္ေယာက္ေလာက္ေတာင္ရိွတဲ႔အတြက္ အမ်ားၾကီး၀မ္းသာပါတယ္။ တစ္ေယာက္က Divinity၊ တစ္ေယာက္က ကြ်န္ေတာ္ ဆိုေတာ႔ က်န္တဲ႔ ငါးေယာက္ကိုလည္း ေက်းဇူးတင္ပါတယ္။

Sharing လုပ္တယ္ဆိုတာလည္း တစ္ေန႕ေန႕မွာ လုိတဲ႔သူတစ္ေယာက္ေယာက္လာဖတ္ျပီး အိုေကသြားဖုိ႕ပါပဲ။ ေနာက္ထပ္ ၁၀ ႏွစ္ၾကာေသာ္ ျဖစ္ျဖစ္ေပါ႔ေလ။ အဖိုးအိုၾကီးသရက္ပင္စိုက္သလိုေပါ႔။ အဖုိးဘာလုိ႕ သရက္ပင္စိုက္ေနတာလဲဆိုေတာ႔ ေနာက္တစ္ခ်ိန္ၾကရင္ ေမြးလာမယ္႔ကေလးေတြ Eပန္းဖုိ႕ေပါ႔ကြာ လို႕ဆိုသတဲ႔။
ကြ်န္ေတာ္တုိ႕ရဲ႕ရည္ရြယ္ခ်က္ကလည္း အဲဒီအဖုိးၾကီးထက္မေလ်ာ႔ပါဘူး။ ။

Regards,
Zero

Thursday, April 21, 2011

Git Tutorial

Git And GitHub For Windows.

နည္းနည္းေလးစမ္းသပ္ခ်င္သူမ်ားအတြက္။ လြယ္ပါတယ္။ လိုက္လုပ္ၾကည္႕လုိ႕ရပါတယ္။ ဘာမွဆံုးရွံဳးစရာမရိွပါဘူး။ ကိုယ္တုိင္လည္း လုပ္ၾကည္႕ျပီးပါျပီ။ အိုေကပါတယ္။

http://help.github.com/win-set-up-git/

Git ကို နည္းနည္းေလးထပ္ဖတ္ျပီး developer ေတြအတြက္ ထပ္ေရးပါဦးမယ္။ အေပၚက လင္႔ခ္မွာေတာ႔ repository ေဆာက္ျပီး commit လုပ္တာတစ္ခုကိုျပထားပါတယ္။

Regards,
Zero

Related Posts:

Martin Fowler

java ေလာကမွာေတာ႔ သူဟာ ေျပာေရးဆိုေရးရိွသူၾကီးပါပဲ။ သူေရးတဲ႔စာေတြက java ေလာကသားေတြအတြက္ေတာ႔ သိုင္းက်မ္းၾကီးေတြလိုျဖစ္ေနေတာ႔တာပါပဲ။

http://martinfowler.com/

မ်ားမ်ားဖတ္ၾကည္႕ပါ။ အနည္းဆံုး အင္တာဗ်ဴးေတြမွာ ေလေကာင္းေကာင္းေပါႏိုင္ျပီး အေလးစားခံႏိုင္ပါလိမ္႔မယ္။

တခါတေလ အင္တာဗ်ဴးေတြက တကယ္သိဖုိ႕မလိုဘူး။ မသိတဲ႔သူအခ်င္းခ်င္း အသာစီးယူႏုိင္ဖုိ႕လိုတာ။

Regards,
Zero

Wednesday, April 20, 2011

Java Idioms

ဒီေန႕ပဲရံုးက သူငယ္ခ်င္းက Java Idioms ေတြဖတ္ၾကည္႕ပါဆိုလုိ႕ Link ယူထားလို္က္တယ္။ ဖတ္ေတာ႔မဖတ္ၾကည္႕ရေသးပါဘူူး။


Language တစ္ခုခုကို hello world ေရးတတ္ရံုနဲ႕ေတာ႔ ဘာမွမျဖစ္လာပါဘူး။ ဘယ္ Language ကို ဘယ္ေလာက္အထိ ေရးတတ္သလဲ၊ ဘယ္ေလာက္အဆင္႔ျမင္႔ျမင္႔ေရးႏိုင္သလဲဆိုတာက ပိုျပီး အဓိပၸာယ္ရိွပါတယ္။ ဟိုတေလာက PHP ေရးၾကည္႕ေနပါတယ္။ ေပ်ာ္စရာေကာင္းပါတယ္။ Language အမ်ားစုရဲ႕ တူညီမႈေတြကို နားလည္ရင္ ေလ႔လာရတာလြယ္ပါတယ္။

Programming Language ေတြက စာအုပ္ေတြနဲ႕တူပါတယ္။ ဘာသာစကားတစ္မ်ိဳးတည္းနဲ႕ေရးထားတဲ႔စာအုပ္ေတြပါ။ အဲဒီဘာသာစကားက Concept ျဖစ္ပါတယ္။ Concept ရိွတဲ႔သူ၊ တစ္နည္းအားျဖင္႔ ဘာသာစကားကို နားလည္တဲ႔သူ၊ဖတ္ႏုိင္တဲ႔သူဟာ စာအုပ္ေတြနဲ႕တူတဲ႔ language ေတြကိုသေဘာေပါက္ႏုိင္ပါတယ္။ ဘာသာစကားနဲ႕တူတဲ႔ Concept ကုိ ဘယ္ေလာက္ခုိင္ခိုင္မာမာရထားလဲဆိုတာေပၚမူတည္ျပီး Language ကို ဘယ္ေလာက္အဆင္႔ျမင္႔ျမင္႔နားလည္ႏိုင္သလဲဆိုတာျဖစ္လာပါတယ္။

အဲဒီေတာ႔ ကိုယ္ေရးေနတဲ႔ Language ကို သာ ေလးေလးနက္နက္ လုိက္စားမယ္ဆိုရင္ က်န္တာေတြကိုလည္း လြယ္လြယ္ကူကူေလ႔လာႏိုင္ဖုိ႕ အေထာက္အကူျဖစ္ပါလိမ္႔မယ္လို႕ေျပာခ်င္ပါတယ္။

ဘယ္ language ကအေကာင္းဆံုးလဲဆိုတာမ်ိဳးကို ဦးေႏွာက္နည္းတဲ႔သူေတြပဲေျပာပါတယ္။ ဘယ္ language ကမွ ျပည္႕စံုတဲ႔ language မျဖစ္ႏိုင္ပါဘူး။ အားသာခ်က္ရိွရင္၊ အားနည္းခ်က္လည္းရိွတတ္ပါတယ္။ က်က်နနေလ႔လာသင္ယူျပီး အဆင္႔ျမင္႔ျမင္႔ ေရးႏိုင္တဲ႔ developer ေကာင္းေတြ ျဖစ္ဖုိ႕ လြယ္လြယ္ေလးနဲ႕ေတာ႔ မျဖစ္ႏုိင္ပါဘူး။ The Mediocre နဲ႕ The Smart/Excellent ေတြ ၾကားမွာ ျခားနားတာတစ္ခုပဲရိွပါတယ္။

ကိုယ္႔ကိုယ္ကို မွန္မွန္ကန္ကန္အကဲျဖတ္ႏုိင္မႈပါပဲ။

အမွန္ကေတာ႔ တစ္ဆင္႔ခ်င္းေျပာသင္႔ပါတယ္။ Code Quality ကို ဘယ္လိုတိုင္းသလဲ။ ကိုယ္ေရးတာ အိုေကရံုလား၊ အဆင္႔ျမင္႔လား၊ တျခားသူအတြက္ အဆင္ေျပလား၊ OO concept ေတြကို လုိက္နာျပီးေရးသင္႔တာေတြမွာ လုိက္နာလား၊ ေနာက္လာမယ္႔ enhancement ေတြအတြက္ ဘယ္ေလာက္စဥ္းစားထားလဲ၊ Testing ကိုေရာ ဘယ္လိုလုပ္ထားသလဲဆိုတာေတြပါက်ယ္က်ယ္ျပန္႕ျပန္႕ေျပာခ်င္ပါေသးတယ္။

ကိုယ္လုပ္တဲ႔အလုပ္မွာ အေကာင္းဆံုးျဖစ္ေအာင္လုပ္ဖုိ႕ကြ်န္ေတာ္တုိ႕ၾကိဳးစားၾကရပါမယ္။
ကိုယ္႔ကိုယ္ကို ေလးစားႏုိင္ေလာက္ေအာင္ ေတာ္တဲ႔သူေတြျဖစ္ဖုိ႕ ကြ်န္ေတာ္တို႕ ဆက္လက္ၾကိဳးစားသြားရပါဦးမယ္။

ေအာ္ .. ေလာေလာဆယ္ေတာ႔ java language ကို broken ေတြေျပာေနပါတယ္။

Regards,
Zero

Tuesday, April 19, 2011

Oracle, and case sensitive

Oracle, and case sensitive

Oracle မွာ ilike လိုမ်ိဳး case insensitive ျဖစ္ေအာင္လုပ္တာမပါဘူး။
လြယ္တဲ႔ႏွစ္နည္းရိွပါတယ္။ တစ္ခုက session ကို ေဟာသလို change လုိက္ပါ။

ALTER SESSION SET NLS_COMP=LINGUISTIC; 
ALTER SESSION SET NLS_SORT=BINARY_AI;  

select * from tableName where columName like 'test%';


ဒါဆိုရင္ table ထဲမွာ test နဲ႕ TEST ရိွရင္ ႏွစ္ခုစလံုးျမင္ရပါမယ္။ Test ဆိုတဲ႔ အေသးအၾကီးေရာတာလည္းျမင္ရပါမယ္။ teSt ဆိုတာမ်ိဳးေတြလည္း ျမင္ရပါမယ္။ မဟုတ္ရင္ေတာ႔ test ဆို test ပဲျမင္ရလုိ႕ အေတာ္ၾကီးစိတ္ညစ္ရပါတယ္။

ေနာက္တစ္နည္းကေတာ႔ ေပါက္ကရလုပ္ျပီးေရးၾကတာပါ။ ကြ်န္ေတာ္လည္း ဒီနည္းနဲ႕ပဲေရးလုိက္ပါတယ္။ session change ေနရတာပ်င္းစရာေကာင္းတယ္။

select * from tableName where lower(columName ) like lower('test%');

ရယ္စရာေကာင္းပါတယ္။ data ေတြကို ႏွစ္ခုစလံုး lower case ေျပာင္းလုိက္တာပါ။ upper ဆိုျပီး upper case ေျပာင္းလုိက္ရင္လည္းရပါတယ္။ ဒီ query ေလးနဲ႕ oracle မွာ အၾကီးအေသးျပႆနာကင္းေ၀းႏိုင္ပါတယ္။ ဘာမွေတာ႔မထူးဆန္းဘူး။ တကယ္ရွာၾကည္႕ရရင္ပ်င္းစရာေကာင္းတယ္။ ဒါေလးကိုဖတ္ထားလုိက္တဲ႔သူေတြဟာ အနည္းဆံုး နာရီ၀က္ေလာက္ သက္သာသြားပါလိမ္႔မယ္။

ဒီရံုးမွာေတာ႔ တစ္ေန႕တစ္ေန႕ query ေရးေနတာနဲ႕ပဲအေတာ္ေလးအခ်ိန္ေပးရပါတယ္။ Stroed Proc ေတြ၊ Trigger ေတြ၊ constraints ေတြအေၾကာင္းလည္း ၾကံဳသလိုေရးသြားပါဦးမယ္။

Regards,
Z for Zero

VMware vCenter Converter

http://www.vmware.com/products/converter/

Go green ဖို႕ လက္ရွိသုံးေနတယ့္ server ေတြကို Virtualize လုပ္ခ်င္တယ္။ ခက္တာက Downtime မရွိခ်င္ဘူး ။
Server ေသးေသးေလးေတြ အမ်ားၾကီး run ရတာ မီတာကုန္တယ္၊ အားလုံးကို ေပါင္းျပစ္ခ်င္တာ။

ျဖစ္ပါတယ္။ က်ေနာ့္အတြက္ အသုံးအတဲ့ဆုံး ျဖစ္ေနတယ့္ tools တစ္ခုပါ။ အဓိက သုံးျဖစ္တယ့္ အေၾကာင္းရင္းက Power on machine တစ္ခု၊ actual server တစ္ခုကို ၊ downtime မလိုပဲ VMware server image အျဖစ္ ေျပာင္းေပးႏိုင္လို႕ပါ။ ေျပာင္းတယ့္အခါမွာလည္း လိုအပ္ရင္ disk space ကိုျခံု႕လို႕ရပါတယ္။ Spec ကိုျပန္ configure လုပ္လို႕ရပါတယ္။

အရင္က office မွာ project ေတြျပီးသြားရင္ Code ေတြ Data ေတြ backup လုပ္သလို တစ္ခ်ိဳ႕ project မွာက် သုံးခဲ့တယ့္ HDD ကိုသိမ္းထားပါတယ္။ လိုအပ္ရင္ demo ျပန္ျပဖို႕ပါ။ ျပန္ setup မလုပ္ရပဲ လိုအပ္ရင္ ခ်က္ျခင္း ျပန္ run ျပႏိုင္ေအာင္လို႕။ အဲေတာ့ က်ေနာ္မွာ အျမဲတမ္း Hard disk ေတြအပိုကုန္တယ္။ ေနာက္ေတာ့ အဲ HDD ေတြအကုန္ VM image ေျပာင္းျပစ္လိုက္တယ္။ Storage ေပၚကို အကုန္ပို႕ထားလိုက္တယ္။ ေနာက္ျပီး office ထဲမွာ ဘယ္တုန္းကတည္းက run ထားမွန္းမသိတယ့္ P3 server ေတြရွိပါတယ္။ အလကား power ကုန္ heat တက္ပါတယ္။ အဲေကာင္ေတြ အကုန္လုံးလည္း ESXi တစ္လုံး setup ျပီး အကုန္ေျပာင္းလိုက္တယ္။ Server ခန္းထဲက desktop အားလုံး လႊင့္ျပစ္ေရးၾကိဳးစားမႈမွာ ဒီ tool က ေတာ္ေတာ္ အေထာက္အကူျဖစ္ပါတယ္။ တစ္ခါတစ္ေလ UAT မွာ အားလုံးေကာင္းျပီး Production က်မွ ျဖစ္ေနတာဆိုတယ့္ ခက္ဆိုးဆိုး bug မ်ိဳးကို troubleshoot ဖို႕လည္း Production environment ကို downtime မရွိပဲ clone ပြါးလို႕ရပါတယ္။

က်ေနာ္လို႕ မၾကာမၾကာ server ေတြ format ခ် development အတြက္ ျပင္ဆင္ေပး၊ ျပီးရင္ ျပန္ format လုပ္ သံသရာလည္သူေတြအတြက္ VMware product ေတြက ေတာ္ေတာ္အဆင္ေျပပါတယ္။ အလကားလည္း ရပါတယ္။ ပ်င္းပ်င္းရွိရင္ အခု ဒီ blog ကိုဖတ္ေနတယ့္ computer / laptop ကို VM image အျဖစ္ ေျပာင္းၾကည့္ပါလား။ သူ႕ wizard ေလးအတိုင္း လိုတယ့္ username / password ေလးျဖည့္ျပီး next next သြားရုံပါပဲ။ လြယ္ပါတယ္။ :D

Divinity

Friday, April 15, 2011

CVS to Git migration

ဟိုတစ္ေလာက အလုပ္ထဲမွာ source code repository ကို CVS ကေန Git ကိုေျပာင္းမယ္ဆိုျပီး Git server setup လုပ္ထားတာၾကာပါျပီ ။ ထပ္ရတယ့္ project အသစ္ေတြသာ Git မွာသုံးျပီး အေဟာင္းေတြ CVS ကေန မေျပာင္းျဖစ္ေသးဘူး။ Project တာဝန္ခံက ဒီ project migrate ေပးပါလို႕ဆိုမွ က်ေနာ္က ေျပာင္းေပးရတာ။ သူတို႕လည္း ပ်င္းလို႕ထင္တယ္ ။ ဘယ္သူမွ လာမေျပာၾကဘူး။ ဒီေန႕ေတာ့ အရင္ Project အေဟာင္းေလးခု migrate လုပ္ျဖစ္တယ္။ လြယ္လြယ္ကူကူပါပဲ။ Git က CVS ကို ေကာင္းေကာင္းနားလည္းပါတယ္။ သူ႕ဟာသူ ဝင္ checkout လုပ္ျပီး fetch သြားတာပဲ။ က်ေနာ္တို႕ သိဖို႕လိုတာဆိုလို႕ CVS server IP ၊ CVS accessible account တစ္ခု၊ CVSROOT path နဲ႕ migrate လုပ္ခ်င္တယ့္ CVS နာမည္ပဲလိုပါတယ္။

1. ပထမဆုံး လိုအပ္တယ့္ tools ေတြအရင္စစ္ရမယ္။ cvsimport က git-core ထဲမွာ ပါေလ့ရွိပါတယ္။ ဒါေပမယ့္ distro ကျပန္ျပီး package ေတြခြဲထားတာမ်ိဳးဆိုရင္ မပါတတ္ပါဘူး။ Fedora မွာဆို git-core အျပင္ git-cvs ကိုသက္သက္ install ျပန္လုပ္ရပါတယ္။ ကို install ထားတယ့္ git-core ထဲမွာ cvsimport ပါမပါကို git help -a နဲ႕ ၾကည့္လို႕ရပါတယ္။ Support လုပ္တယ့္ git command ေတြထြက္လာပါလိမ့္မယ္။ မ်က္စိေနာက္ရင္ grep နဲ႕ filter လုပ္ၾကည့္ေပါ့။ git help -a | grep cvsimport လို႕ filter လုပ္ၾကည့္ပါ။

2. ေနာက္တစ္ခုက cvsps command line tools ရွိမရွိၾကည့္ပါ။ CVS patchset generate လုပ္တယ့္ tools ပါ။ Patchset ဆိုတာကေတာ့ change history ေတြ၊ revision information ေတြ၊ commit history ေတြကို CVS log ကေန patch set ေျပာင္းေပးပါတယ္။ ( ပက္စက္တယ္ေပါ့ဗ်ာ )။

3. CVS server ကို login လုပ္မယ့္ credential ကို အရင္ prepare လုပ္ထားရေအာင္ ။ ဒီအဆင့္က optional ပါ။ ဒါေပမယ့္ CVS ထဲက repo တစ္ခုမက ခဏခဏ migrate လုပ္ဖို႕လိုရင္ေတာ့ ဒီအဆင့္ေလးကို ေက်ာ္မသြားတာေကာင္းပါတယ္။ Command syntax ကေတာ့

CVSROOT=:cvs-login-method:cvs-user-name@cvs.server.name:/path/to/CVS/root cvs login

ဒီမွာ cvs-login-method ၊ username ၊ servername ၊ CVSROOT path ေတြကို အစားထိုးရပါမယ္။ ဥပမာ cvs-login-method က pserver၊ username က ngar ၊ Servername / IP က 1.2.3.4 ၊ CVSROOT path က /share/cvs ဆိုပါေတာ့၊ ဒါဆို ဒီလိုျဖစ္သြားပါမယ္ ။

CVSROOT=:pserver:ngar@1.2.3.4:/share/cvs cvs login


ဒါဆို password ႐ိုက္ဖို႕ prompt လုပ္လိမ့္မယ္။ Password ႐ိုက္လိုက္ရင္ password ကို hash လုပ္ျပီး ကိုယ့္ $HOME ေအာက္မွာ .cvspass ဆိုတယ့္ file နဲ႕ သြားသိမ္းပါလိမ့္မယ္။

4. ေနာက္ဆုံး အေနနဲ႕ ( အခုမွ စတာပါ တကယ္က ) CVS ကို Git အေနနဲ႕ import လုပ္ပါတယ္။ Command syntax ကေတာ့

git cvsimport -v -d :cvs-login-method:username@servername:/CVSROOT cvs-module-name -C output-directory-name.git

ခုနက အေပၚမွာ ေျပာခဲ့တယ့္ server ေပၚက zephyr ဆိုတယ့္ CVS module ကို import လုပ္ခ်င္တာဆိုရင္ command က ဒီလိုျဖစ္သြားပါမယ္။

git cvsimport -v -d :pserver:ngar@1.2.3.4:/share/cvs zephyr -C zephyr.git

ဒါဆို CVS ကေန checkout လုပ္ျပီး Git repo အျဖစ္နဲ႕ import လုပ္ပါလိမ့္မယ္။ ဇိုက္ဖာရ္ ေဒါ့ ဂစ္ ဆိုျပီး Git repo တစ္ခုရပါလိမ့္မယ္။

အမွန္က ဒါကို Server ကို master အေနနဲ႕ ျပန္ push လုပ္ေပးရပါတယ္။ က်ေနာ္လို ငပ်င္းကေတာ့ တစ္ခါ import လုပ္ တစ္ခါ push လုပ္၊ ႏွစ္ခါ အခ်ိန္ကုန္မခံပါဘူး။ Server ေပၚကေနပဲ import လုပ္ပါတယ္။ ျပီးရင္ repo directory (e.g: zephyr.git) ရဲ့ေအာက္မွာရွိတယ့္ .git ထဲက file ေတြ folder ေတြကို ကူးထုတ္လိုက္ပါတယ္။ .git ( dot git ) ရဲ့ေအာက္မွာ Description တို႕ ၊ head တို႕ ၊ hook တို႕၊ refs တို႕ နဲ႕အတူ branches ေတြရွိပါတယ္။ ဒါေတြ အျပင္ကို ကူးထုတ္လိုက္ရင္ တျခား git client တစ္ခုကေန clone/pull လို႕ရပါျပီ။

Divinity


Nearly Related Post:

Thursday, April 14, 2011

How to Backup Archive Folders in Outlook


How to Backup Archive Folders in Outlook

ဒီေန႕ ရံုးမွာ outlook ရဲ႕ pst file size က 3 GB ေလာက္ရိွလာတာနဲ႕ နည္းနည္း ေႏွးစျပဳလာပါတယ္။ ဒါကလည္း outlook ကိုလုပ္ထားတဲ႔ပံုကိုက pst file ႏွစ္ခုမွာ အားလံုးသိမ္းထားလို႕ပါ။ Mail box အတြက္ pst ္file တစ္ဖုိင္၊ Archive အတြက္ pst file တစ္ဖုိင္ပဲရိွပါတယ္။ အဲဒီေတာ႔ အခ်ိန္ၾကာလာတာနဲ႕အမွ် archive file ဟာ fat ျဖစ္လာပါတယ္။ အဲဒါကို ဘယ္လို manage လုပ္ရသလဲဆိုတာ သိခ်င္ပါတယ္။ Divinity ကို ဖုန္းဆက္ျပီးေမးလုိက္ပါတယ္။

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
















Step 1. (File Menu က Data File Managementကို ၀င္လုိက္ပါ။)





















Step 2. (Go to archive.pst file folder path)

ဖိုင္ကေတာ႔ မ်ားေသာအားျဖင္႔ outlook folder ျဖစ္တဲ႔ /Microsoft/outlook ထဲမွာရိွတတ္ပါတယ္။ ဖုိင္ေနရာမသိရင္လည္း အေပၚမွာျပထားတဲ႔ပံုထဲက filename ေနရာမွာရွာၾကည္႕လုိက္လုိ႕ရပါတယ္။ ဖုိင္ေနရာကိုသိဖုိ႕ပါ။ ဘာမွလုပ္စရာမလိုေသးပါဘူး။





















Step 3. (Remove archive.pst file)

ဘီယာဟာ အရက္မဟုတ္ပါလို႕ေၾကာ္ျငာသီခ်င္းထဲမွာဆိုသလို၊ Remove ဟာ Delete မဟုတ္ပါဘူး။ နည္းနည္းေတာ႔ confusing ျဖစ္ေစသလိုပဲ။ ဒါေပမယ္႔ တကယ္တမ္းက Remove Link ပါ။ ဖုိင္ကိုမဖ်က္ပါဘူး။ Archive Link ကုိဖ်က္လုိက္တာပါ။ archive ဖုိင္ၾကီးက က်န္းမာခ်မ္းသာစြာ တိုင္းျပည္တာ၀န္မ်ားကို ဆက္လက္ထမ္းေဆာင္ဖုိ႕ အသင္႔ရိွေနပါလိမ္႔မယ္။

Step 4 (archive.pst ကို နာမည္ေျပာင္းပါ။)

Rename လုပ္လုိက္ပါ။ ဥပမာ 2010 to 2011 April 14 Backup Archive.pst စသျဖင္႔။





















Step 5 (Backup လုပ္ထားတဲ႔ Archive ဖုိင္ (Renamed Archive) ကို ျပန္ Add ပါ။)

ေနာက္ျပီး။ Inbox ကို Archive လုပ္ၾကည္႕ပါ။ အဲဒါဆိုရင္ archive.pst အသစ္တစ္ခု ကို သူ႕ဘာသာသူ ျပန္ျပီး create လုပ္သြားပါလိမ္႔မယ္။ အရင္ Archive folder ကေတာ႔ ဆက္လက္ၾကီးထြားမလာဘဲ Backup ဘ၀နဲ႕ တစ္သက္လံုး အရိုးထုတ္သြားႏုိင္မွာျဖစ္ပါတယ္။

အဲဒီလိုအားျဖင္႔ သပ္ရပ္လွပ စနစ္က်တဲ႔ Archive ေလးေတြ သိမ္းထားျပီး ေသာင္းေျခာက္ေထာင္ေမးလ္ေတြကို ျမန္ျမန္ဆန္ဆန္ရွာႏုိ္င္ပါလိမ္႔မယ္။

Regards,
Zero

Thanks bro, Divinity for your help.

ႊႊ

Monday, April 11, 2011

Where's my stored Procedure, Qme၅

Where's my stored Procedure, Qme၅

တစ္ခါတေလၾကရင္ stored procedure ကို ျပန္ရွာရတာ သိပ္ပ်င္းဖုိ႕ေကာင္းတယ္။ command line editor ပါတဲ႔ PL/SQL developer လုိမ်ိဳးမွာဆုိရင္ေတာ႔ view ဆိုျပီး ရိုက္လုိက္ရံုပဲ။ မပါရင္သာ စိတ္ပ်က္စရာ။

အဲဒီေတာ႔ တစ္ခါကေန ႏွစ္ခါ ကလစ္ေခါက္ေနရတာပ်င္းလာေတာ႔ web မွာရွာၾကည္႕ေတာ႔ ေတြ႕ပါတယ္။ Google ဂုုေဏာ အနေႏၱာပါပဲ။

select text from user_source
where type = 'PROCEDURE'
and name = procedure_name;

အဲဒီ procedure name မွာ ကိုယ္႔ရဲ႕ stored procedure ေလးသာရိုက္လုိက္ရံုပါပဲ။ အဲဒါက မလိုရင္သာ ဘာမွမဟုတ္တာ။ အခုရံုးလုိ အားတိုင္းယားတုိင္း Stroed proc ေရးတဲ႔ developer ေတြေနသြားခဲ႔တဲ႔ ေခတ္ပ်က္ၾကီးထဲမွာဆုိရင္ တစ္ေန႕တစ္ေန႕ ဟို stored proc ေျပးဖတ္ရ၊ ဒီနား trace လိုက္ရနဲ႕၊ ထမီျပင္၀တ္ေနတုန္း ဗန္းထဲက ငါး ေခြးလာဆြဲတဲ႔ ငါးစိမ္းသည္ေတာင္မွ နည္းနည္းပိုျပီး ဣေျႏၵရႏုိင္တယ္လို႕ေတြးမိတယ္။

အလုပ္မွာ အခု တစ္သင္းထဲလုပ္ေနတဲ႔ လုပ္ေဖာ္ကိုင္ဖတ္က တရုတ္ျပည္သားစစ္စစ္ပါ။ ကြမ္က်ိဳးကလာတယ္။ အဂၤလိပ္မေျပာနဲ႕ မန္ဒရင္းေတာင္ ေကာင္းေကာင္းမတတ္ဘူး။ ရုပ္ကိုၾကည္႕ေတာ႔ ျမန္မာဘုန္းၾကီးေက်ာင္းသားရုပ္။ Technical skills အရ ကိုယ္႔ထက္သာတယ္။ အတုယူေနရတယ္။ သူဘယ္ေလာက္ productive ျဖစ္သလဲဆိုတာကို ေလ႔လာေနတယ္။ ေနာက္ပိုင္းသတိထားမိတာက ဖဦးထုပ္ေတြထက္ တရုတ္ေတြက ပိုျပီး Technical ေကာင္းတယ္။ ဖဦးထုပ္ေတြကေတာ႔ စကားေျပာ ပုိရတယ္။

အခုေတာ႔ဒီေလာက္ပါပဲ။
ေနာက္လည္း ၾကံၾကံဖန္ဖန္ရွာရတာေတြ ေတြ႕ရင္တင္လုိက္ပါမယ္။ ဖတ္ေနတဲ႔ agile ေတြလည္းမေရးျဖစ္ေသးပါဘူး။ အိမ္ေျပာင္းမွာမို႕လို႕ စာအုပ္ေတြသိမ္းထားတဲ႔အတြက္လည္း ဒီမွာသိပ္မေရးျဖစ္ေသးပါဘူး။

အခုအထိ ထိထိေရာက္ေရာက္မေရးျဖစ္ေသးတာကိုလည္း အားမရပါဘူး။ ေနာက္ဆုိရင္ အိမ္မွာ အခ်ိန္မ်ားမ်ားပိုေနျဖစ္ေတာ႔မွာမို႕ အဲဒီအခါၾကမွ ပိုေရးျဖစ္မယ္လို႕ေမွ်ာ္လင္႔ပါတယ္။

ဒီဇင္ဘာမွာ မိန္းမယူမယ္႔တစ္ေယာက္ကေတာ႔ အခုကတည္းကေပ်ာ္လို႕ဆိုျပီး ထထကေနရတာနဲ႕စာမေရးျဖစ္ဘူးလို႕သိရပါတယ္။