Tuesday, May 13, 2008

နည္းလမ္းစဥ္ သရုပ္ခြဲပညာ မိတ္ဆက္

ကိုေလာရွည္ကတဲ႔ပြဲ က အျပန္ ဒီေဆာင္းပါးေလး ကို ခြင္႔ျပဴခ်က္ရယူျပီး မလာခဲ႔ပါတယ္။ ေစ်းေကာင္းရလ်င္ ျပန္ေရာင္းမည္ ျဖစ္ပါေၾကာင္းခင္ဗ်ား :P။

နည္းလမ္းစဥ္ သရုပ္ခြဲပညာ မိတ္ဆက္
ကမၻာအရပ္ရပ္မွာရွိတဲ့ တကၠသိုလ္ေတြ ၊ သုေတသန ဌာနေတြနဲ႕ ဓာတ္ခြဲခန္းအသီးသီးမွာ နည္းလမ္းစဥ္ (Algorithm) ေတြကုိ ေလ့လာၿပီး အသစ္ေတြ႕ရွိခ်က္ေတြကို အေျပးအလႊား မွတ္ပံုတင္ (Patent လုပ္) ေနၾကပါတယ္ ။ နည္းလမ္းစဥ္ကုိ နည္းပညာ (Technology) တစ္ရပ္အျဖစ္ သတ္မွတ္လာၾကၿပီး Google, Miscosoft နဲ႕ Oracle စတဲ့ နည္းပညာ လုပ္ငန္းႀကီးေတြက နည္းလမ္းစဥ္ သုေတသနေတြမွာ ရင္းႏွီးျမဳပ္ႏွံမႈေတြ လုပ္လာတာေၾကာင့္ နည္းလမ္းစဥ္ သရုပ္ခြဲပညာ (Analysis of Algorithm) ရဲ႕ အေရးပါမႈဟာ က်ယ္ျပန္႕လာပါတယ္ ။ ဒီစာတမ္းငယ္မွာ နည္းလမ္းစဥ္ သရုပ္ခြဲပညာကုိ မိတ္ဆက္ေပးဖုိ႕ ေအာက္ပါပုစၧာေလးကုိ စဥ္းစားၾကည့္ပါမယ္ ။ပုစၧာ ။ ။ အပင္တစ္ပင္ (Tree) တစ္ခုကုိ ေပးထားပါမယ္ ။ အဆစ္တစ္ခု (Node) တစ္ခုမွာ ကုိင္းခြဲ (Edge) ႏွစ္ခု ရွိပါမယ္ ။ ကပ္လ်က္ အဆစ္ ႏွစ္ခုရဲ႕ ဘယ္ကုိင္းခြဲနဲ႕ ညာကိုင္းခြဲက အဆစ္တစ္ခုထဲမွာ သြားဆံုပါမယ္ ။ အဆစ္တုိင္းမွာ တန္ဖုိးတစ္ခု တြဲလ်က္ရွိပါမယ္ ။ အျမစ္ (Root) ကေနၿပီး အရြက္ (Leaf) တစ္ခုကုိ သြားဖုိ႕ လမ္းတစ္ခုစီ (Path) ရဲ႕ တန္ဖုိးကုိ လမ္းတေလွ်ာက္က အဆစ္ေတြရဲ႕ တန္ဖုိးေတြေပါင္းလဒ္အျဖစ္ အဓိပၸါယ္သတ္မွတ္ပါမယ္ ။ အနက္ - သုိ႕မဟုတ္ အျမင့္ - (Depth) ၂ သုိ႕မဟုတ္ ၂ ထက္ပုိတဲ့ အပင္ေတြမွာ အရြက္ေပါင္းမ်ားစြာ ရွိမွာျဖစ္ၿပီး အရြက္တစ္ရြက္စီကုိ သြားဖုိ႕ လမ္းေၾကာင္းကလဲ ၁ ခု သုိ႕မဟုတ္ ၁ ခုထက္ ပုိမွာျဖစ္ပါတယ္ ။ ပံုကုိ ၾကည့္ပါ ။

ပံုမွာ အေပၚက ေျပာထားတဲ့ အပင္မ်ိဳး တစ္ပင္ကုိ ျပထားပါတယ္ ။ အဆစ္ေတြနဲ႕ အကုိင္းေတြကုိ စက္၀ုိင္းေတြနဲ႕ မ်ဥ္းေၾကာင္းေတြနဲ႕ ျပထားပါတယ္ ။ မ်ဥ္းထူနဲ႕ ျပထားတဲ့ လုိင္းေၾကာင္းက ဒီအပင္ရဲ႕ တန္ဖုိးအျမင့္ဆံုး လမ္းေၾကာင္းပါ ။ ေအာက္က ၂၅ ဆုိတာက အဲဒီ တန္ဖုိးအျမင့္ဆံုး လမ္းေၾကာင္းရဲ႕ တန္ဖုိးပါ။ အဲဒီတန္ဖုိးကုိ တြက္ထုတ္တဲ့ ပုစၧာကုိ စဥ္းစားၾကည့္ရေအာင္။ဒါမ်ိဳးပုစၧာအတြက္ဆုိရင္ လူေတာ္ေတာ္မ်ားမ်ားက ေလာဘႀကီးတဲ့ခ်ဥ္းးကပ္နည္း (Greedy approach) ကုိ စဥ္းစားမိတတ္ၾကပါတယ္ ။ ဒီပုစၧာမွာေတာ့ ေလာဘႀကီးတဲ့နည္းနဲ႕ ခ်ဥ္းကပ္လုိ႕ မရပါဘူး ။ ဘာလုိ႕လဲဆုိေတာ့ တတိယေျမာက္ အဆင့္မွာ ၇ တန္ဖုိးရွိတဲ့ အဆစ္ကေန ၃ နဲ႕ ၄ တန္ဖုိးရွိတဲ့ အဆစ္ေတြကုိ ေရြးရာမွာ ေလာဘႀကီးၿပီး တန္ဖိုး ၄ ရွိတဲ့ အဆစ္ကုိ ေရြးလုိက္ရင္ ေအာက္ဆံုး အဆင့္က တန္ဖုိး ၉ ရွိတဲ့ အဆစ္ကုိ လြတ္သြားမွာ ျဖစ္လုိ႕ပါပဲ ။ (ေလာဘႀကီးတဲ့ ခ်ဥ္းကပ္နည္းနဲ႕ စဥ္းစားလုိ႕ရ ၊ မရကုိ သက္ေသျပတာ ၊ စဥ္းစားလုိ႕ ရေအာင္ ႀကိဳးစားၾကတာဟာလဲ နည္းလမ္းစဥ္ သရုပ္ခြဲပညာရဲ႕ အကုိင္းအခက္ တစ္ခုပဲ ျဖစ္ပါတယ္ ။)စာေရးသူ ၂၀၀၀ ခုႏွစ္တုန္းက ဒီပုစၧာကုိ ရွင္းဖုိ႕ နည္းလမ္းစဥ္ (Algorithm) တစ္ခုကုိ စဥ္းစားဖူးပါတယ္ ။ အပင္ကုိ လွဲ၊ အဆစ္ေတြကို အမွတ္စဥ္တပ္ၿပီး အမွတ္စဥ္ေရတြက္သလုိ လမ္းေၾကာင္းတစ္ခုခ်င္း အျပန္ျပန္၊ အလွန္လွန္ တြက္တဲ့ ပင္ပန္းတဲ့ (Exhaustive) နည္းနဲ႕ပါ ။ ေအာက္ပါပံုမွာ ၾကည့္ပါ ။

တြက္ပံုတြက္နည္းကေတာ့ လက္ရွိေပါင္းၾကည့္မဲ့ လမ္းေၾကာင္းကုိ တေနရာမွာ သိမ္းထားပါတယ္ ။ (၀ ကဘယ္ဘက္ ၁ ကညာဘက္ပါ ။ C/C++ နဲ႕ ဆုိရင္ေတာ့ Integer variable တစ္ခုထဲကုိ ၁ ေပါင္း Shift operation ေတြနဲ႕ ေရႊ႕ယူၿပီး လမ္းေၾကာင္းကို တြက္ထုတ္လုိ႕ရေပမဲ့ Pascal ရဲ႕ ကန္႕သတ္ခ်က္ေတြေၾကာင့္ တစ္ေၾကာင္း ၊ အဲဒီတုန္းက ငယ္ေသးတာက တစ္ေၾကာင္းမုိ႕လုိ႕ ဒီ Permutation with repetition ကုိ ကုိယ့္ဘာသာကုိယ္ ေရးပစ္လုိက္ပါတယ္ ။ )ဒီအပင္ကုိ ႀတိဂံပံု ေမးထရစ္ မွာသိမ္းထားတယ္လုိ႕ ျမင္ရင္ ေပါင္းရမဲ့တန္ဖုိး (အဆစ္) ေတြရဲ႕ တည္ေနရာကုိ current_level တန္း၊ column_of_previous_level + path_value_of_current_level တုိင္ မွာ ရွာေတြ႕ႏုိင္ပါတယ္ ။ အဲဒီအဆစ္ေတြရဲ႕ တန္ဖုိးေတြ ေပါင္းလုိက္ရင္ လက္ရွိလမ္းေၾကာင္းရဲ႕ တန္ဖုိးကုိ ရပါၿပီ ။ ဒီတန္ဖုိးေတြကုိ အႀကီးဆံုးကိန္းရွာတဲ့ နည္းလမ္းစဥ္ထဲ ထည့္လုိက္ရင္ အႀကီးဆံုးလမ္းေၾကာင္းတန္ဖုိးကုိ ရၿပီေပါ့ ။ ဒါေပမဲ့ Borland’s Turbo Pascal 7.0 Compiler နဲ႕ Compile လုပ္ထားတဲ့ ပရုိဂရမ္ကုိ Pentium MMX 166 MHz, 32 MB RAM ပါတဲ့စက္နဲ႕ အနက္ ၃၀ ရွိတဲ့ အပင္ကုိ မနက္ ၁၀ နာရီကေန စတြက္တာ ညေန ၅ နာရီအထိ အေျဖမထြက္ႏုိင္ေသးပဲ တြက္ေကာင္းတုန္း ျဖစ္ေနပါတယ္ ။ (အခု Intel Core 2 Duo E6550 2.33GHz, 2 x 2MB L2 Cache, 1066 MHz FSB, 4 x 1GB DDR2 667MHz RAM နဲ႕ တြက္ခုိင္းၾကည့္တာ ၃၂ စကၠန္႕ၾကာျမင့္ပါတယ္ ။ )ဘာမွားသြားလဲ အေျဖရွာမၾကည့္ခင္မွာ ကၽြန္ေတာ့္ဆရာေပးတဲ့ နည္းလမ္းစဥ္က ၁ မိနစ္အတြင္း တြက္လုိ႕ၿပီးတယ္ဆုိတာကုိ ျဖည့္ေျပာခ်င္ပါတယ္ ။ သူသံုးတဲ့နည္းလမ္းကေတာ့ Recursive with table lookup လုိ႕ေခၚတဲ့ ေပါင္းစပ္ အစီအစဥ္ဆြဲနည္း (Dynamic programming) ျဖစ္ပါတယ္ ။ (ေပါင္းစပ္အစီအစဥ္ဆြဲနည္းဟာလဲ ေလာဘႀကီးတဲ့ ခ်ဥ္းကပ္နည္းလုိပဲ အေရးပါတဲ့ နည္းလမ္းတစ္ခုပါ ။ ) သူက အေျဖကုိ ဒီလုိ ပံုစံထုတ္ပါတယ္ ။ အရြက္မဟုတ္တဲ့ အဆစ္တစ္ခု (အဆစ္ ဆ) ကေန အရြက္ေတြဆီသြားတဲ့ တန္ဖုိးအျမင့္ဆံုး လမ္းေၾကာင္းဟာ အဲဒီအဆစ္ရဲ႕ ဘယ္ဘက္ ညာဘက္ အဆစ္ (ဆ ရဲ႕ ဘယ္ဘက္ အဆစ္ သုိ႕မဟုတ္ ညာဘက္အဆစ္) ေတြကေန အရြက္ေတြဆီသြားတဲ့ တန္ဖုိးအျမင့္ဆံုး လမ္းေၾကာင္း ၂ ခုထဲက ပုိမ်ားတဲ့ လမ္းေၾကာင္းရဲ႕ တန္ဖုိးကုိ အဲဒီ အဆစ္ (ဆ) ရဲ႕ တန္ဖုိး ေပါင္းထည့္ထားတာျဖစ္ၿပီး အရြက္ေတြရဲ႕ အျမင့္ဆံုးလမ္းေၾကာင္း တန္ဖုိးကေတာ့ သူတုိ႕ကုိယ္တုိင္ရဲ႕ တန္ဖုိးပဲ ျဖစ္ပါတယ္ ။ဟုိး … စာဖတ္သူ … ဟုိး … ဒီအတုိင္း Recursive နဲ႕ ေရးလုိက္တဲ့ အစီအစဥ္ (program) ဟာလဲ အေပၚက ပင္ပန္းတဲ့နည္းလုိပဲ နာရီေပါင္းမ်ားစြာ ၾကာျမင့္သြားႏုိင္ပါတယ္ ။ ဘာလုိ႕လဲဆုိေတာ့ အနက္ ၂ မွာရွိတဲ့ အဆစ္ ၀ နဲ႕ အဆစ္ ၁ တုိ႕ရဲ႕ အေျဖဟာ သူတုိ႕ ၂ ခုရဲ႕ ဘံုဆက္ခံသူ အနက္ ၃ ၊ အဆစ္ ၁ ရဲ႕ အေျဖေပၚမူတည္ေနလုိ႕ ျဖစ္ပါတယ္ ။ တကယ္လုိ႕သာ ရုိးရုိး Recursive နဲ႕ ေရးလုိက္မယ္ဆုိရင္ အဲဒီအေျဖကုိ ၂ ခါျပန္တြက္ရမွာ ျဖစ္ပါတယ္ ။ အဲဒါေၾကာင့္မုိ႕လုိ႕ အဲဒီ အပင္နဲ႕ အရြယ္အစားတူ အပင္တစ္ပင္ထပ္စုိက္ … အဲ အဲ တည္ေဆာက္ၿပီး တြက္ၿပီးသား ရလဒ္ေတြကုိ သိမ္းထားပါမယ္ ။ ေနာက္တခါ တြက္ဖုိ႕ လုိအပ္လာတုိင္းမွာ အဲဒီရလဒ္ေတြကုိ ျပန္ၾကည့္ၿပီး တြက္ၿပီးသားဆုိရင္ ဒီတုိင္းယူသံုးလုိက္မွ အဆင္ေျပပါလိမ့္မယ္ ။ေပါင္းစပ္ အစီအစဥ္ဆြဲျခင္း စစ္စစ္ကေတာ့ ေအာက္ဆံုးအဆင့္ကေန အထက္ကုိ ျဖည္းျဖည္းခ်င္း အေျဖတြက္လာတဲ့ နည္းျဖစ္ၿပီး ခုနက နည္းထက္ နည္းနည္းပုိျမန္းပါတယ္ ။ ဘာလုိ႕လဲဆုိေတာ့ မွီခ်က္ေတြကုိ ေခၚတဲ့အခါ (Function calls) ၀န္ပုိ (Overhead) နည္းနည္း ရွိတတ္လုိ႕ ျဖစ္ပါတယ္ ။ (အခု Intel Core 2 Duo E6550 2.33GHz, 2 x 2MB L2 Cache, 1066 MHz FSB, 4 x 1GB DDR2 667MHz RAM နဲ႕ တြက္ၾကည့္တာ ၂ နည္းစလံုး ၁ စကၠန္႕ေအာက္သာၾကာျမင့္ပါတယ္ ။ )နည္းလမ္းစဥ္ သရုပ္ခြဲပညာမွာ အေရးပါတဲ့ အစိတ္အပုိင္း ၃ ခုရွိပါတယ္ ။ ပထမတစ္ခုက နည္းလမ္းစဥ္ရဲ႕ မွန္ကန္မႈ (Correctness of the Algorithm) ျဖစ္ပါတယ္ ။ အေပၚက ဥပမာမွာ နည္းလမ္းစဥ္အားလံုး မွန္ကန္ၾကပါတယ္ ။ ဒုတိယတစ္ခုက အခ်ိန္ၾကာျမင့္မႈ (Time Complexity) ျဖစ္ၿပီး ေနာက္ဆံုးတစ္ခုက သိမ္းဆည္းမႈ လုိအပ္ခ်က္ (Space Complexity) ျဖစ္ပါတယ္ ။ ပင္ပန္းတဲ့နည္းက အခ်ိန္ပုိၾကာေပမဲ့ သိမ္းဆည္းမႈ လုိအပ္ခ်က္ နိမ့္ပါတယ္ ။ အေျဖေတြကုိ ေပါင္းစပ္တဲ့နည္းက အခ်ိန္မၾကာေပမဲ့ သိမ္းဆည္းမႈ လုိအပ္ခ်က္ ျမင့္တယ္လုိ႕ ေကာက္ခ်က္ခ်ႏုိင္ပါတယ္ ။ ပုစၧာတစ္ရပ္အတြက္ နည္းလမ္းစဥ္အမ်ိဳးမ်ိဳး ရွိေနတတ္တာမုိ႕ နည္းလမ္းစဥ္ သရုပ္ခြဲပညာကုိ ဒီလုိေလ့လာမႈမ်ိဳးလုပ္ဖုိ႕အတြက္ အသံုးျပဳႏုိင္ပါတယ္လုိ႕ တင္ျပရင္း မိတ္ဆက္စာတမ္းငယ္ကုိ နိဂံုးခ်ဳပ္အပ္ပါတယ္ ။ ယခုလက္ရွိမွာေတာ့ ကြန္ပ်ဴတာသိပၸံမွ ျပႆနာမ်ား စာတမ္းကုိ ေရႊပြဲလာမ်ား ဖတ္ရႈဖုိ႕ ေရးသားေနပါတယ္ခင္ဗ်ာ ။ေအာက္မွာ ျမင္ရတာကေတာ့ စာေရးသူျပန္ေရးထားတဲ့ C Code ေတြျဖစ္ပါတယ္ခင္ဗ်ာ ။

မွတ္ခ်က္။ မၾကာခင္ ကိုေလာရွည္ဆီမွ ေတာင္းယူထားေသာ VC++8.0 Project source code file ကို upload တင္ေပးပါ႔မယ္ ခန ေစာင္႔စားေပးပါရန္ ေတာင္းပန္ပါတယ္ခင္ဗ်ာ။ ဘလူးဖီးနစ္

ဆက္လက္ဖတ္ရွဳရန္

Monday, May 12, 2008

USB Drive တစ္ခုခုကို ျဖဳတ္တဲ့အခါ Ejecting Problem ျဖစ္ေနရင္ ဘယ္လိုျဖဳတ္မလဲ။

ကြန္ျပဴတာအသံုးျပဳသူအားလံုး ရင္ဆိုင္ရဖူးတဲ့ ျပႆနာေတြထဲက တစ္ခုပါ။ USB Drive ကို Safely Remove Hardware Icon ေလး ႏိွပ္ၿပီး ျဖဳတ္ေပမယ့္ The Device ‘Generic Volume’ cannot be stopped right now. Try stopping the device again later. ဆိုတဲ့ Ejecting Problem message box တက္လာတတ္ပါတယ္။


အဲဒီလိုျဖစ္လာရင္ USB Drive ထဲက Program ေတြ၊ File ေတြ Floder ေတြ ဖြင့္ထားသလား Task Bar နဲ႔ System Tray မွာ စစ္ၾကည့္ပါ။ ဖြင့္ထားရင္ ဖြင့္ထားတာေတြ အားလံုးကို ျပန္ပိတ္ၿပီး USB Drive ကို ျဖဳတ္ၾကည့္ပါ။ မရေသးရင္ USB Drive နဲ႔ ဆက္ႏြယ္ခဲ႔တဲ့ Program ေတြဖြင့္ထားရင္ ပိတ္ၿပီး ျပန္ျဖဳတ္ၾကည္႔ပါ။ ျပႆနာ တက္ေနေသးရင္ ဒီျပႆနာကို ေျဖရွင္းဖို႔ နည္းလမ္းေတြ ရိွပါတယ္။
ပထမနည္းလမ္းကေတာ့ Task Manager ကိုဖြင့္ၿပီး ေျဖရွင္းပါမယ္။ Ctrl+Alt+Delete ကို ႏိွပ္ပါ။ Windows Vista မွာေတာ့ Start Task Manager ကို ႏိွပ္ပါ။ Processes Tab ကို ႏိွပ္ပါ။ Processes List ထဲမွာ USB Drive ကလို႔ထင္ရတဲ့ Process တစ္ခုခုကို ေရြးခ်ယ္ပါ။ End Process Tab ကို ႏိွပ္ပါ။ ၿပီးရင္ Safely Remove Hardware Icon ကို ႏိွပ္ၿပီး ျဖဳတ္ၾကည့္ ပါ။


အဲဒီလုပ္လို႔မွမရရင္ ခုနက Process ကို Right click ႏိွပ္ၿပီး End Process Tree ကို ႏိွပ္ပါ။ USB Drive ကို ျဖဳတ္ၾကည့္ပါ။
ဒုတိယနည္းလမ္းကေတာ့ ကြန္ျပဴတာကို Shut Down လုပ္ၿပီး USB Drive ကို Remove လုပ္တဲ႔နည္းပါပဲ။ ဒါေပမယ့္ ဒီနည္းကေတာ့ Computer ကို Reboot လုပ္ရမွာမို႔ အခ်ိန္ကုန္ပါတယ္။
တကယ္လို႔ အခု ေဖာ္ျပခဲ႔တဲ့ နည္းလမ္းေတြကို အသံုးျပဳလို႔မွ မေအာင္ျမင္ခဲ့ရင္ ေနာက္နည္းလမ္းတစ္ခုကို သံုးပါမယ္။ USB Safely Remove Program ကို Download လုပ္ၿပီး Install လုပ္ပါ။ အဲဒီ Program ဟာ System Tray ထဲက Safely Remove Hardware ေနရာမွာ Icon တစ္ခုေနနဲ႔ ေပၚေနမွာ ျဖစ္ပါတယ္။ ဒီ Program ကို သံုးၿပီး ဘယ္ Process ေတြေၾကာင့္ ဒီ ျပႆနာ ျဖစ္ရသလဲ ဆိုတာ သိႏိုင္သလို၊ ျပႆနာကို ေျဖရွင္းႏိုင္မွာ ျဖစ္ပါတယ္။ အဲဒီ Program မွာ အျခား Feature ေတြလည္း ပါရိွေသးတယ္။ USB Drive ေတြကို နာမည္ ေျပာင္းၿပီး၊ Drive တစ္ခုစီကို ရပ္ဖို႔ Hot-key တစ္ခုစီကို Set လုပ္ၿပီး၊ Auto Run Option ေလးေတြ လုပ္လို႔ရတယ္။ တကယ္လို႔ Program ေတြ Auto loading လုပ္တာ မလိုလားရင္ Run on Windows Startup Option ကို 0ff ထားၿပီး၊ USB Safely Remove Program ကို လိုအပ္တဲ့ အခ်ိန္မွာပဲ ဖြင့္ၿပီး အသံုးျပဳႏိုင္ပါတယ္မယ္။

(This article is dedicated to beginners only)
Ref: http://www.pcworld.com/ Safely Remove Software post in warez-bb

ဆက္လက္ဖတ္ရွဳရန္

Friday, May 9, 2008

How to fix System Restore?

PC မွာ Restore Point ေဟာင္းေတြ မရိွေတာ့ဘူး။ Windows ကလည္း Restore Point ေတြ ေနာက္ထပ္ ဖန္တီးမေပးေတာ့ဘူး။ System Restore ကို ဘယ္လို ျပန္ျပင္မလဲ ???

Windows XP နဲ႔ Vista မွာ System Restore ဟာ Registry နဲ႔ အေရးၾကီးတဲ႔ System file ေတြကို အလိုေလ်ာက္ မၾကာခဏ ထိန္းသိမ္းထားေပးပါတယ္။ ဒါေပမယ့္ System Restore က Back up ေတြ Restore Point ေတြကို ဖန္တီး မေပးႏိုင္ေတာ့တဲ႔ အေျခအေနေတြ ရိွလာတတ္ပါတယ္။
Free Space အလံုအေလာက္ မရိွတဲ့အခါ။ Restore Point တစ္ခုကို create လုပ္ဖို႔ System Partation (သို႔) System Drive မွာ အနည္းဆံုး Free Space 200 MB လိုပါတယ္။ တကယ္လို႔ Free Space လံုလံုေလာက္ေလာက္ မရိွခဲ့ရင္ PC ဟာ Restore Point အသစ္ေတြကို ဆက္လက္ Create လုပ္ေပးေတာ့မွာမဟုတ္ပါဘူး။ ၿပီးေတာ့ ရိွျပီးသား Restore Point ေတြကိုလည္း ဖ်က္ပစ္ႏိုင္ပါတယ္။
Task Scheduler အလုပ္ မလုပ္တဲ့အခါ။ System Restore ဟာ Restore Point ေတြကို ေန႔စဥ္အလိုေလ်ာက္ Create လုပ္ေပးႏိုင္ဖို႔ Windows ရဲ့ Task Scheduler ကို အသံုးျပဳပါတယ္။ Task Scheduler အလုပ္ လုပ္/မလုပ္ စစ္ေဆးဖို႔ Start ကိုႏိွပ္၊ Run မွာ services.msc ကို ရိုက္ျပီး ၀င္ပါ။ Services Dialog Box ေပၚလာရင္ Scroll Bar နဲ႔ ေအာက္ကိုဆင္း၊ Task Scheduler မွာ Right Click ႏိွပ္ၿပီး Properties ကို ေရြးပါ။ Service Status မွာ Start လုပ္မထားေသးရင္ Start ကို ႏိွပ္ပါ။ ၿပီးရင္ Startup Type မွာ Automatic ကို ေရြးၿပီး OK ကို ႏိွပ္ပါ။
Operating System မရပ္မနား အၿမဲအလုပ္လုပ္ေနရတဲ့အခါ။ System Restore ဟာ PC ဖြင့္ထားေပမယ့္ အလုပ္မလုပ္ဘဲ နားေနတဲ့အခ်ိန္ (Idel State)မွာ Restore Point ေတြကို အလိုေလ်ာက္ အၿမဲ ဖန္တီးေပးပါတယ္။ PC ကို အၿမဲ ပိတ္ထားရင္ ဒါမွမဟုတ္ အၿမဲအလုပ္လုပ္ေနရင္ System Restore ဟာ အလုပ္လုပ္မွာ မဟုတ္ပါဘူး။
System Restore ဟာ ပံုမွန္ အလုပ္လုပ္ေနရင္ေတာင္မွ Restore Point တိုင္းကို အသံုးျပဳလုိ႔မရပါဘူး။ Restore Point တိုင္းဟာ ျပည့္စံုတဲ့ Back up ေတြ မဟုတ္ပါဘူး။ Restore Point တစ္ခုစီဟာ ယခင္ Restore Point ေနာက္ပိုင္းမွာ ျဖစ္ခဲ့တဲ့ ေျပာင္းလဲမႈေတြကိုသာ ထိန္းသိမ္းထားပါတယ္။ မူလအေျခေနေကာင္းတစ္ခုခုကို ျပန္လည္ရယူႏိုင္ဖို႔ System Restore ဟာ Restore Point ေတြအားလံုးကို အသံုးျပဳရတဲ့ အေျခေနေတြၾကံဳလာတတ္ပါ တယ္။ အဲဒီလိုၾကံဳလာရတဲ့ အေျခအေနမ်ိဳးမွာ Restore Point တစ္ခုခု ပ်က္စီးသြားခဲ႔မယ္ဆိုရင္ တျခား Restore Point ေတြကိုလည္း သံုးလို႔ရေတာ့မွာမဟုတ္ပါဘူး။
တကယ္လို႔ အလုပ္ဆက္လုပ္ဖို႔ Restore Point တစ္ခုမွ မရႏိုင္ေတာ့ဘူးဆိုရင္ Restore Point အားလံုးကို ဖ်က္ပစ္ပါ။ System Restore ကို Off လုပ္ျပီး ျပန္ On ပါ။ Window XP မွာ Start ကို ႏိွပ္ျပီး Run မွာ sysdm.cpl ကို ေရးၿပီး ၀င္ပါ။ System Restore Properties Dialog Box မွာ System Restore Tab ကို ႏိွပ္ၿပီး Turn off System Restore on all drives ေဘးမွာ အမွန္ျခစ္ကေလး ေပးလုိက္ပါ။ Apply ကို ႏိွပ္ပါ။ ၿပီးရင္ ေစာေစာက အမွန္ျခစ္ထားတာ ေလးကို ျပန္ျဖဳတ္ၿပီး OK ကို ႏိွပ္ပါ။ Window Vista မွာဆိုရင္ Start ကို ႏိွပ္ၿပီး sysdm.cpl ကိုေရးၿပီး Enter ကို ႏိွပ္ပါ။ System Protection tab ကို ႏိွပ္ၿပီး ဒါမွမဟုတ္ open System Protection ကို ေရြးခ်ယ္ၿပီး Local Disk (C:) ေဘးက အမွန္ျခစ္ေလးကို ျဖဳတ္ပါ။ System Restore Pop-up မွာ Turn off System Restore ကို ေရြးခ်ယ္ပါ။ Apply ကို ႏိွပ္ပါ။ ၿပီးရင္ Local Disk (C:) ကို ျပန္စစ္ေဆးၿပီး OK ကို ႏိွပ္ပါ။

(This article is dedicated to beginners only)


Ref: www.pcworld.com

ဆက္လက္ဖတ္ရွဳရန္

Thursday, April 24, 2008

ဟက္ကာ ဘာလဲ၊ ဘယ္လဲ

တစ္ခါက ကၽြန္ေတာ္႔ အျခား ဘေလာက္တစ္ခုမွာ ေရးခဲ႔ဘူးျပီး အဲဒီပို႔စ္ေၾကာင္႔ ပထမဆံုး ဘေလာက္ မွာ အဆဲ ခံရဘူးတဲ႔ ပို႔စ္ေလး တစ္ခုပါ။ ကၽြန္ေတာ္ဟာ ငယ္ငယ္တည္းက စိတ္၀င္စားတဲ႔ အေၾကာင္းအရာ ေတြ အရမ္းကို မ်ားလြန္းခဲ႔ပါတယ္။ လူ႔ဘ၀ တိုတိုေလးအတြင္းမွာ အဲဒီလို ဟိုေယာင္ေယာင္ ဒီေယာင္ေယာင္ေတြ မ်ားခဲ႔လို႔ ထူးခၽြန္သင္႔ သေလာက္ မထူးခၽြန္ခဲ႔ပါဘူး။ ပိုဆိုးတာက အလုပ္တစ္ခုကို မျဖစ္မေန လုပ္ရမယ္႔ အခ်ိန္မ်ိဳးမွာ အျခားတစ္ခုကို အသဲအသန္ စိတ္၀င္စားေနတတ္တာပဲ ျဖစ္ပါတယ္။ အင္ဂ်င္နီယာ ပညာရပ္ေတြ သင္ေနရင္း ကြန္ျပဴတာဘက္ကို စိတ္အရမ္းပါသြားခဲ႔ျပီး တစ္ေန႔ကို နာရီအမ်ားၾကီး ေပးခဲ႔မိပါတယ္။ ေလ႔လာျပီး တစ္နွစ္မျပည္႔မီ ကြန္ျပဴတာဂ်ာနယ္မွာ ေဆာင္းပါးတစ္ေစာင္ ေရးနိုင္ခဲ႔ေပမယ္႔ အင္ဂ်င္နီယာ ပညာရပ္ဘက္မွာ လစ္ဟင္းခဲ႔ရပါတယ္။ ေနာက္ဆံုး Ciphercad2000 ဆိုတဲ႔ cryptography software တစ္ခုေရးျပီး စာတမ္းတင္ကာ ဘီအီးဘြဲ႔ကို ရယူျဖစ္ခဲ႔ တဲ႔ အထိ ရူးသြပ္ခဲ႔ ပါတယ္။ ME ဆက္တက္တဲ႔ ကာလ တစ္ေလ်ာက္လုံုးမွာလဲ technical impact အရ အင္မတန္မွ စိတ္၀င္စားဖို႔ ေကာင္းတဲ႔ အိုင္တီ ပညာရပ္ေတြနဲ႔ ဆက္လက္ လံုးပမ္းေနျဖစ္ခဲ႔ပါတယ္။ အဲဒီ အခ်ိန္အထိ ေက်ာင္းစာမွာ သာမာန္ေလာက္ လုပ္ရံုနဲ႔ လိုက္နိုင္ေနတယ္လို႕ ကိုယ္႔ကိုယ္ကို အထင္ၾကီးခဲ႔ မိတာေၾကာင္႔ ေနာက္ပိုင္းမွာ အခက္အခဲနဲ႔ ၾကံဳခဲ႔ရပါတယ္။ PhD ဆက္တက္ျဖစ္တဲ႕ အခ်ိန္ေတြမွာ မာစတာ တုန္းကနဲ႔ အင္မတန္ ကြဲျပားတဲ႔ အေျခအေနမ်ိဳးကို ၾကံဳေတြ႔ရပါေတာ႔တယ္။ အရင္ က အေပၚယံေလး သိရံုနဲ႔ ဆရာေတြကို ရႊီးလို႔ ရခဲ႔ေပမယ္႔ အခုေတာ႔ ေသေသခ်ာခ်ာသိဖို႔ လိုေနတဲ႔ အျပင္ သီအိုရီ တိုင္းအတြက္ solution မ်ား approach မ်ားကို ေပါင္းစပ္ထားတဲ႔ program မ်ား ေရးသားထားဖို႔ လိုအပ္ေနေၾကာင္း အလန္႔တၾကား သိလာခဲ႔ ရပါတယ္။ (မွတ္ခ်က္။ တစ္ပိုင္းခ်င္းစီက ေတာ႔ မာစတာတုန္းက ေရးခဲ႔ ျပီးပါျပီ)။ အဲလို solution မ်ားကို ခုမွ ျပန္လည္ ေရးသားေနရတဲ႕ အတြက္ PhD ေက်ာင္းသားတစ္ဦး ရဲ႕ အဓိက ျဖစ္တဲ႔ original idea ကို စဥ္းစားဖို႔ အခ်ိန္မ်ားစြာကို ဖဲ႔ျပီး ေပးရပါေတာ႔တယ္။ တစ္ခါတစ္ေလ ဘာမဟုတ္တဲ႔ မသိနားမလည္မႈတစ္ခုဟာ calculation တစ္ခု၊ စာတမ္းတစ္ေစာင္ကို သံုးေလး လ အထိ မျပီးနိုင္ေအာင္ ျဖစ္ေစခဲ႔ပါတယ္။ လုပ္သင္႔တာကို အဓိက မလုပ္ပဲ ဦးစားေပး မွားခဲ႔တဲ႔ ရလာဒ္ ျဖစ္ပါတယ္။ ရည္မွန္းခ်က္ၾကီးတဲ႔ လူငယ္မ်ားကို ကၽြန္ေတာ္႔လို ေရလိုက္မလြဲ ၾကရေလေအာင္ အဆဲခံျပီး ဒီေဆာင္းပါးကို ေရးလိုက္ရပါတယ္ ခင္ဗ်ား။

ဖိုရမ္တစ္ခုကို ဖတ္ရင္း ဘာမွန္း၊ ညာမွန္း မသိဘဲ ဟက္ကာျဖစ္ခ်င္ေနၾကတဲ႔ ျမန္မာလူငယ္မ်ားကို သြားေတြ႔ပါတယ္။ ဟက္ကာ တကယ္ျဖစ္ခ်င္ပါသလား။ ဒါဆိုရင္ ကိုယ္႔ကိုယ္ကို အရင္ဆံုးေမးၾကေစခ်င္ပါတယ္။ ဟက္ကာကို ဘယ္လို အဓိပါယ္ဖြင္႔ဆိုၾကမွာလဲ။ သူမ်ားေတြေျပာတ႔ ဲ ဟက္ကာမ်ိဳးမဟုတ္ပဲ ကိုယ္႔ဘာသာကိုယ္ ဘယ္လို ဟက္ကာ အမ်ိဳးအစား ျဖစ္ခ်င္တယ္ ဆိုတာကို သတ္မွတ္ၾကေစ ခ်င္ပါတယ္။ ဒီလိုေျပာလို႔ ကၽြန္ေတာ္႔ကို ဆရာၾကီးလုပ္တယ္လို႔ ထင္နိုင္ပါတယ္။ ဒါေပမယ္႔ ကၽြန္ေတာ္႔ ေစတနာက ရိုးစင္းပါတယ္။ အမွားေတ၊ြ လမ္းပိတ္ေတြ နဲ႔ ျပည္႔ေနတဲ႔ လမ္းကို အၾကိမ္ၾကိမ္ေလ်ာက္ခဲ႔ ျပီးတဲ႔ လူတစ္ေယာက္အေနနဲ႔ ေနာက္လူေတြကို ကၽြန္ေတာ္႔လို မျဖစ္ေစခ်င္လို႔ပါပဲ။ ဘယ္အရာပဲ လုပ္လုပ္ ရည္မွန္းခ်က္ ရွိရွိ၊ စံနစ္တက်နဲ႔ နည္းမွန္၊ လမ္းမွန္ လုပ္ေစ ခ်င္ပါတယ္။ ဘယ္ပညာရပ္မဆို အခ်ိန္ေပးရပါတယ္။ အနည္းဆံုး ဆယ္နွစ္ေလာက္ေပးတာေတာင္ ပညာရပ္တစ္ခုကို ပိုင္သြားျပီလို႔ မေျပာနိုင္ပါဘူး။ ျဖတ္လမ္းနည္းနဲ႔ ရတဲ႔ ပညာဆိုတာ ဘယ္ေတာ႔မွ မခိုင္ျမဲပါဘူး။
ဟက္ကာ တစ္ေယာက္တစ္ေယာက္ တစ္ကယ္ ပီပီျပင္ျပင္ ျဖစ္ခ်င္တယ္ဆိုရင္ ကြန္ျပဴတာ ပညာရပ္ေတြကို အေျခခံကေန အကုန္စေလ႔လာရပါမယ္။ ဟက္ကာ ဆိုတာ သာမာန္ ယူဇာတစ္ေယာက္မဟုတ္ဘဲ သူျဖစ္ခ်င္တာကို သူၾကံဳေတြ႔ေနရတဲ႔ အေျခအေနေတြ၊ သူ႔မွာရွိတဲ႔ ကန္႔သတ္ခ်က္ေတြၾကားကေန ရေအာင္ လုပ္နိုင္တဲ႔ သူေတြပါ။ ဒီလိုမ်ိဳး ဘယ္လို အေျခအေနမ်ိဳးလာလာ ေျဖရွင္းေပးနိုင္တဲ႔ အရည္အခ်င္းရဖို႔ တစ္ပြဲတိုး နည္းလမ္းေတြကေနျပီး လုပ္မေပးနိုင္တာ အေသအခ်ာပါ။ ပရိုဂရမ္းမင္း နဲ႔ စစ္စတမ္ရဲ႕ အေျခခံ အလုပ္လုပ္ပံုေလးကိုေတာင္မွ ေသခ်ာ မသိေသးတဲ႔ လူတစ္ေယာက္အဖို႔ဆိုရင္ ပုိျပီး မျဖစ္နုိုင္ပါဘူး။ ဥပမာေျပာရရင္ သာမာန္ယူဇာတစ္ေယာက္က စက္တစ္လံုးကို သံုးနိုင္တဲ႔ ေအာ္ပေရတာဆိုရင္ ဟက္ကာ တစ္ေယာက္က အဲဒီလိုစက္မ်ိဳးအေၾကာင္းကို ေကာင္းေကာင္းၾကီး သိျပီး modify လုပ္နိုင္ design အသစ္ လုပ္နိုင္တဲ႔ အင္ဂ်င္နီယာ တစ္ေယာက္နဲ႔ တူပါတယ္။ တစ္ခ်ိဳ႕ က ဆင္ေျခ ေပးေကာင္းေပးပါလိမ္႔မယ္။ ဒါေတြကို အေပ်ာ္ေလ႔လာတာပါဆိုျပီး။ အခ်ိန္ကုန္တာျခင္း အတူတူ၊ ၀ါသနာ ပါတာျခင္း အတူတူဆိုရင္ တကယ္တတ္ျပီး အသက္ေမြး၀မ္းေက်ာင္း ပညာျဖစ္ေအာင္ သင္သင္႔ပါတယ္။ သူမ်ားအထင္ၾကီးရံုေလး လုပ္ျပီး အခ်ိန္ေတြ ကုန္သြားရင္ လက္ေတြ႔မွာ အသံုးမက် ျဖစ္တတ္ပါတယ္။ ကၽြန္ေတာ္႔ ကိုယ္ေတြ႔ပါ။ တစ္ခုေျပာျပခ်င္ပါတယ္။ ျပည္ပက ငယ္ငယ္နဲ႔ ဟက္ကာလုပ္ေနတ႔ဲ ကေလးေတြဟာ က်န္တဲ႔ အေျခခံေတြကို ေသေသခ်ာခ်ာ သိျပီး၊ ေလ႔လာထားျပီသားဆိုတာပါပဲ။ hackers ဆိုတဲ႔ ကားကို ၾကည္႔ဖူးၾကမယ္ဆိုရင္ ဇာတ္၀င္ခန္းတစ္ခုကို ေျပာျပခ်င္ပါတယ္။ အဲဒီမွာ မင္းသားကို က်န္တဲ႔ ဟက္ကာေတြက ပညာစမ္းသလိုမ်ိဳး ကြန္ျပဴတာ စာအုပ္ေတြထုတ္ျပပါတယ္။ သူက အဲဒါေတြကို အရည္က်ိဳ ေသာက္ထားတဲ႔ သူပါ။ ဒီေလာက္ဆို သေဘာေပါက္ေလာက္မယ္လို႔ထင္ပါတယ္။ ေနာက္တစ္ခုက အဲဒီကားထဲမွာ သူတို႔ ဟက္လို႔ ရလာတဲ႔ ဖိုင္အပိုင္းအစေလးကို ဘာလဲဆိုတာ ေလ႔လာတာ ပါပါတယ္။ တကယ္ေတာ႔ အဲဒါ reverse engineering လုပ္တာပါ။ ဒီလို ခက္ခဲ နက္နဲတဲ႔ ပညာရပ္ေတြကို ဘာမွ စံနစ္တက် မသင္ထားပဲ မရဘူးဆိုတာ ေပၚလြင္ေစခ်င္ပါတယ္ခင္ဗ်ာ။
သူမ်ားလုပ္ထားတဲ႔ tools ေလးေတြသံုးျပီး သူမ်ား အင္တာနက္မွာ က်ဴတိုရီယယ္လုပ္တာေလးေတြကို နဲနဲ သိရံုနဲ႔ ဟက္ကာထင္ျပီး လမ္းဆံုးသြားမွာ စိုးလို႔ ေျပာျပမိတာပါ။ အဲဒီ trick ေလးေတြကို ေလ႔လာပါ။ ေကာင္းပါတယ္။ လက္ေတြ႔မွာလဲ အသံုးက်ပါတယ္။ ဒါေပမယ္႔ trick ကို trick လို႔ ျမင္ပါ။ ပညာကို ပညာလို႔ ကြဲကြဲျပားျပား ျမင္ေစခ်င္ပါတယ္။ trick ေတြက system ေတြေျပာင္းသြားရင္ သံုးလို႔ မရေတာ႔ပါဘူး။ ပညာကေတာ႔ system ေျပာင္းလဲ သူက လိုက္ျပီး adapt ျဖစ္လာတဲ႔ သေဘာရွိပါတယ္ခင္ဗ်ာ။
ေနာက္တစ္ခုက မိမိေလ႔လာတဲ႔ ပညာရပ္ကို မိမိေနတဲ႔ အသိုင္းအ၀ိုင္း၊ အဖြဲ႔ အစည္းမွာ အက်ိဳးျပဳဖို႔ ဆိုတဲ႔ စိတ္ထားနဲ႔ ေလ႔လာေစခ်င္ပါတယ္။ မေလ႔လာသင္႔တဲ႔ ပညာ မရွိပါဘူး။ အသံုးမခ်သင္႔တဲ႔ ပညာေတာ႔ ရွိတယ္ဆိုတာ မေမ႔ေစခ်င္ပါဘူး။ အေတြးအေခၚမွားမွာ ကိုလည္း စိုးရိမ္မိပါတယ္။ လက္နက္တစ္ခု၊ စြမ္းအင္တစ္ခုဟာ အင္အားၾကီးမားလာတာနဲ႔ အမွ် သူ႔ကို ထိန္းခ်ဳပ္ဖို႔ကလဲ ပိုမို အေရးၾကီးလာပါတယ္။ အတတ္ပညာေလ႔လာတဲ႔ ေနရာမွာ ဘာေၾကာင္႔ ဒီပညာကို ေလ႔လာတာလဲ၊ ဘယ္လို ေလ႔လာမလဲ၊ ဘယ္လို အသံုးခ်မလဲ ဆိုတဲ႔ အေျမာ္အျမင္နဲ႔ ယွဥ္တဲ႔ သံုးသပ္မႈမ်ိဳး လုပ္သင္႔ပါတယ္လို႔ အၾကံျပဳလိုက္ပါရေစ။
ေနာင္အားရင္ တကယ္႔ ဟက္ကာတစ္ေယာက္ျဖစ္ဖို႔ လိုတဲ႔ အေျခခံ ပညာရပ္တစ္ခ်ိဳ႕ကို ေျပာျပပါ႔မယ္။ ဟက္ကာျဖစ္ေအာင္ေတာ႔ ဘယ္သူမွ မလုပ္ေပးနိုင္ေၾကာင္းပါခင္ဗ်ာ။

ဆက္လက္ဖတ္ရွဳရန္