Thursday, April 21, 2011

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 ေတြလည္းမေရးျဖစ္ေသးပါဘူး။ အိမ္ေျပာင္းမွာမို႕လို႕ စာအုပ္ေတြသိမ္းထားတဲ႔အတြက္လည္း ဒီမွာသိပ္မေရးျဖစ္ေသးပါဘူး။

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

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