Showing posts with label Hacking ဆုိင္ရာ. Show all posts
Showing posts with label Hacking ဆုိင္ရာ. Show all posts

Wednesday, January 7, 2015

Python ေလ့လာၾကမယ္ အပိုင္း​ (၄)

Execution Model ေျပာင္းလဲျခင္းမ်ား
Internal execution flow ေတြဟာ ဒီေန႔ Python ရဲ့ standard implementation ကို သက္ေရာက္ေစၿပီး Python Language ရဲ့လိုအပ္ခ်က္တစ္ခုလည္းမဟုတ္ပါဘူး။ ဒါေၾကာင့္ execution model ဟာအခ်ိန္နဲ႔အမၽွ ေျပာင္းလဲ ေစခဲ့ပါတယ္။

 
Python Implementation Alternatives
Python ရဲ့ အဓိက implementations သုံးခု အေနနဲ႔ CPython, Jython နဲ႔ IronPython ဆိုၿပီး ရွိပါတယ္။ CPython ကေတာ့ standard implementation ပါ။ တျခား implementation ေတြမွာလည္းသူ႔ ရည္ရြယ္ခ်က္ နဲ႔ လုပ္ေဆာင္မွု အလိုက္ရွိပါတယ္။ အားလုံးကေတာ့ Python Language ပါပဲ ဒါေပမယ့္  မတူညီတဲ့ပုံစံေတြနဲ႔ program ကို execute လုပ္တာပါ။
CPython
CPython  ကေတာ့ တျခားႏွစ္ခုနဲ႔ယွဥ္ရင္ေတာ့ မူလ နဲ႔ စံ ျဖစ္တဲ့ implementation တစ္ခုပဲျဖစ္ပါတယ္။ Portable ANSI C language code နဲ႔ေရးထားတဲ့ အတြက္ေၾကာင့္ CPython လို႔ေခၚတာပါ။ http://www.python.org ကေန ActivePython distribution နဲ႔အတူ download လုပ္ထားတဲ့ ဟာဆိုရင္ေတာ့ အဲဒါ CPython ပါ။ Linux အမ်ားစု နဲ႔ Mac OS X မွာဆိုရင္ေတာ့နဂိုပါၿပီးသားပါ။
စက္ထဲမွာနဂို install လုပ္ၿပီးသားရွိေနတယ္ဆိုရင္ အဲဒါ CPython ျဖစ္နိုင္ပါတယ္။ Python ကို Script Java သို႔မဟုတ္ .NET applications ေတြနဲ႔ မသုံးဘူးဆိုရင္ေတာ့ စံျဖစ္တဲ့ CPython ကိုပဲသုံးခ်င္မွာပါ။ ဘာျဖစ္လို႔လဲဆိုေတာ့ သူက reference implementation ျဖစ္ၿပီး .. run တဲ့အခါမွာလည္း တျခား implementation ေတြနဲ႔ ယွဥ္ရင္ အျမန္ဆုံး ၊ အျပည့္စုံဆုံး နဲ႔ အႀကီးမားဆုံးပါ။
Jython
Jython ကို မူလက JPython လို႔သိခဲ့ၾကပါတယ္။ Jython ဟာ Python ရဲ့ alternative implementation ျဖစ္ၿပီး Java နဲ႔ေပါင္းစပ္ဖို႔ ရည္ရြယ္ခဲ့တာပါ။ Jython မွာ Java classes ေတြပါဝင္ၿပီး အဲဒီ classes ေတြက Python source code ေတြကို Java byte code အေနနဲ႔ေျပာင္းလဲၿပီး Java Virtual Machine (JVM) ကိုပို႔ေပးမွာျဖစ္ပါတယ္။ Python statements ေတြကို .py text files အေနနဲ႔ပုံမွန္အတိုင္းပဲ ေရးမွာျဖစ္ၿပီး Jython system ကေန .pyc byte code နဲ႔ PVM (Python Virtual Machine) အစား Java-based equivalents အျဖစ္ အစားထိုးမွာျဖစ္ပါတယ္။ Jython ရဲ့ရည္ရြယ္ခ်က္ကေတာ့ Python code ေတြကို script Java applications အျဖစ္ေျပာင္းဖို႔ပဲျဖစ္ပါတယ္။ Java နဲ႔ေပါင္းစပ္မွုဟာ လုံးဝ သိသာထင္ရွားမွုမရွိဘဲ တကယ့္ Java Program run သလိုပဲထင္ရမွာပါ။ ဘာလို႔လဲဆိုေတာ့ Python code ေတြကို Java byte code အျဖစ္ေျပာင္းလဲလိုက္လို႔ပဲျဖစ္ပါတယ္။ Jython scripts ေတြဟာ web applets နဲ႔ servlets  အျဖစ္ေဆာင္ရြက္နိုင္မွာျဖစ္ၿပီး Java-based GUIs တည္ေဆာက္တဲ့ေနရာမွာနဲ႔ တျခားေသာ ေနရာေတြမွာလည္း သုံးနိုင္မွာပါ။ ထို႔ျပင္ Python နဲ႔ေရးေနေသာ္လည္း Java classes ေတြကိုလည္း သုံးလို႔ရမွာျဖစ္ပါတယ္။ Jython က CPython ထက္စာရင္ ပိုေႏွးၿပီး CPython ေလာက္လည္းမႀကီးပါဘူး။ ဒါေပမယ့္ Java code ရဲ့ frontend အေနနဲ႔ သုံးနိုင္မယ့္ scripting language ကို ရွာေဖြေနတဲ့ Java developer ေတြအတြက္ကေတာ့ အဓိက စိတ္ဝင္စားဖြယ္တစ္ရပ္ပါပဲ။
IronPython
တတိယ Python ရဲ့ implementation ကေတာ့ IronPython ပါ။ IronPython ကိုေတာ့ Microsoft ရဲ့ .NET Framework တို႔ Linux ရဲ့ Mono တို႔နဲ႔ေပါင္းစပ္လို႔ရေအာင္ဒီဇိုင္းလုပ္ထားတာပါ။ IronPython ဟာ Python ကို client ေရာ server components အျဖစ္နဲ႔ တျခား .NET Language ေတြကေနပါ သုံးလို႔ရေအာင္ လုပ္ထားပါတယ္။ IronPython မွာလည္း Jython လိုပဲ အေနာက္ႏွစ္ဆင့္ျဖစ္တဲ့ byte code ေျပာင္းတဲ့ ေနရာနဲ႔ PVM ေနရာမွာ .Net environment အေနနဲ႔ထုတ္ေပးမွာပါ။ ၿပီးေတာ့ Jython လိုပဲ IronPython ကိုလည္း .NET components နဲ႔ python ကိုေပါင္းစပ္ခ်င္တဲ့ developer ေတြ အဓိက စိတ္ဝင္စားၾကပါတယ္။ IronPython ဟာ တခ်ိဳ႕ အေရးႀကီးတဲ့ optimization tools ေတြကို ပိုေကာင္းေအာင္တြန္းပို႔ေပးနိုင္ပါတယ္။
Execution Optimization Tools
CPython, Jython နဲ႔ IronPython အားလုံးက ျပဳလုပ္ပုံျခင္းကအတူတူပါပဲ …. Source code ကို byte code ေျပာင္းတယ္ ၿပီးရင္ byte code ကို သင့္ေလ်ာ္တဲ့ virtual machine မွာ excute လုပ္ေပးတာပါပဲ။ ပုံမွန္ execution model ကိုသုံးမယ့္အစား Psyco just-in-time compiler နဲ႔ Shedskin C++ translator အစရွိတဲ့ တျခား system ေတြလည္းသုံးပါတယ္။ ဒီ system ေတြကို ပုံမွန္အားျဖင့္ python development လုပ္တဲ့ေနရာမွာ သိဖို႔လိုခ်င္မွာလိုပါမယ္။ ဒါေပမယ့္ execution model မွာသူတို႔ရဲ့ အလုပ္လုပ္ပုံကို နည္းနည္း ေလ့လာလိုက္႐ုံနဲ႔ သာမန္ မွာ model ကိုနားလည္လြယ္ေအာင္ကူညီေပးနိုင္မွာပါ။
The Psyco just-in-time compiler
Psyco system က တျခား Python implementation တစ္ခုေတာ့မဟုတ္ပါဘူး byte code execution model ကို တိုးခ်ဲ႕ၿပီး program ကိုျမန္ေအာင္လုပ္ေဆာင္ေပးတဲ့အစိတ္အပိုင္းတစ္ခုသာျဖစ္ပါတယ္။ Psyco က program ရဲ့ byte code အစိတ္အပိုင္း ကို binary machine code အျဖစ္ျပန္ေပး ရာမွာပိုမိုျမန္ဆန္ေအာင္ PVM ကိုတိုးျမႇင့္ေပးတာပဲျဖစ္ပါတယ္။ code အျဖစ္ေျပာင္းစရာမလိုပဲ သို႔မဟုတ္ သီးျခား ေျပာင္းလဲတဲ့ အဆင့္ေတြမလိုပဲ ဘာသာျပန္ျခင္းကိုလုပ္မွာျဖစ္ပါတယ္။
အၾကမ္းအားျဖင့္ program run ေနခ်ိန္မွာ Psyco ဟာ ျဖတ္သန္းသြားတဲ့ objects ေတြရဲ့ information ေတြကို စုစည္းပါတယ္။ အဲဒီ information ေတြကို object types ေတြအတြက္ အံဝင္ခြင္က် စီမံထားတဲ့ machine code ေတြ generate လုပ္ဖို႔သုံးပါတယ္။ ထုတ္လိုက္ၿပီဆိုတာနဲ႔ program ရဲ့ execution speed ကိုျမန္ေအာင္ machine code က မူလ byte code ေတြရဲ့သက္ဆိုင္ရာ အစိတ္အပိုင္းေတြကို အစားထိုးသြားပါတယ္။ Psyco နဲ႔ဆိုရင္ program ဟာ run ေနတဲ့ အခ်ိန္တြင္းမွာ ပိုမိုျမန္ဆန္လာၿပီး တစ္ခ်ိဳ႕ အေျခအေနမ်ိဳးမွာ Python code ေတြက Psyco ေအာက္မွာ ေျပာင္းလဲထားတဲ့ C code ေတြနီးပါးေလာက္ျမန္လာ တတ္ပါတယ္။ ဘာလို႔လဲဆိုေတာ့ byte code ေျပာင္းလဲမွုက program run ေနတုန္းမွာျဖစ္တဲ့ အတြက္ Psyco ကို သာမန္အားျဖင့္ Just-in-time(JIT) compiler လို႔ေခၚပါတယ္။ တကယ္ေတာ့ Psyco က Java language ေတြရဲ့ JIT compiler နဲ႔ အနည္းငယ္ကြာျခားပါတယ္။ Psyco က specialized လုပ္ထားတဲ့ JIT compiler ပါ။ Program က တကယ္သုံးတဲ့ data type နဲ႔အံဝင္ခြင္က်ျဖစ္တဲ့ machine code ကို ထုတ္ေပးပါတယ္။ ဥပမာ – program တစ္ခုရဲ့ အစိတ္အပိုင္းတစ္ခု က မတူညီတဲ့ data type ကို မတူညီတဲ့ အခ်ိန္တြင္းမွာသုံးမယ္ ဆိုရင္ မတူတဲ့ combination တစ္ခုစီအတြက္ Psyco က version မတူတဲ့ machine code ေတြကို ထုတ္ေပးမွာပါ။
Psyco က Python code ေတြကို သိသိသာသာ ျမန္ဆန္လာေစမွာပါ။ Psyco ရဲ့ website မွာ ေရးထားခ်က္အရ Psyco က ၂ဆ က ေန အဆ ၁၀၀ ထိ အရွိန္ျမႇင့္ တင္ေပးမွာပါ။ သာမန္အားျဖင့္ ေျပာင္းလဲထားျခင္းမရွိတဲ့ Python interpreter နဲ႔ source code ေတြနဲ႔ ဆိုရင္ေတာ့ အရွိန္ ၄ဆ ျမႇင့္ ေပးနိုင္ပါတယ္။ အမ်ားဆုံး အရွိန္ျမႇင့္ ေပးနိုင္တာကေတာ့ pure python နဲ႔ေရးထားတဲ့ algorithmic code ေတြပဲျဖစ္ပါတယ္။ Psyco က python မွာ တရားဝင္ေတာ့ ပါမလာေသးပါဘူး။ သူ႔ကို သပ္သပ္ install ထပ္လုပ္ရပါတယ္။ ဒါေပမယ့္ေနာက္ပိုင္းမွာေတာ့ အသစ္တစ္ခုျဖစ္ၿပီး Psyco လိုပဲ ပိုမိုေကာင္းမြန္ေအာင္လုပ္ေပးနိုင္တဲ့ “PyPy” ဘက္ကိုဦးတည္ေနပါတယ္။ Psyco ရဲ့ မေကာင္းတဲ့အခ်က္ကေတာ့ ခုေလာေလာဆယ္မွာ Psyco က Intel x86 architecture chips အတြက္ပဲ machine code ကိုပဲထုတ္ေပးနိုင္ပါတယ္။
The Shedskin C++ translator
Shedskin က ေတာ့ ေပါင္းစပ္တဲ့ system တစ္ခုပဲျဖစ္ပါတယ္။ ပထမဆုံး python code ေတြကို C++ code ကို ေျပာင္းလိုက္ပါတယ္ ၿပီးမွ machine code အျဖစ္ကိုျပန္ေျပာင္းလိုက္တာပါ။ အဲလိုလုပ္ျခင္းအားျဖင့္ python code ေတြကို run တဲ့ အခါမွာ platform-neutral ျဖစ္သြားေစပါတယ္။ Shedskin က စမ္းသပ္တဲ့ အဆင့္ မွာပဲရွိပါေသးတယ္ ဒါေၾကာင့္ Shedskin အေၾကာင္းအေသးစိတ္ကိုေတာ့ ဒီမွာမေျပာေတာ့ပါဘူး။
Frozen Binaries
အစစ္အမွန္ python compiler ကိုေမး ေနၿပီဆို သူတကယ္ရွာေနတာ က သူ႔ရဲ့ Python Program ကို standalone binary အေနနဲ႔ထုတ္ဖို႔ပါပဲ။ ဒီဟာက execution-flow concept ထက္စာရင္ သူ႔ရဲ့ program ကို ေဈးကြက္တင္ဖို႔ idea ကပိုမ်ားပါတယ္။ ဒါေပမယ့္ဘာပဲျဖစ္ျဖစ္အားလုံးကဆက္ႏြယ္ေနပါတယ္။
Python program ကို တကယ့္ executable files ေျပာင္းဖို႔ျဖစ္နိုင္ပါတယ္ Python world မွာေတာ့ Frozen Binaries လို႔ေခၚပါတယ္။
Frozen binaries က program ရဲ့ byte code files ေတြအားလုံးကိုစုေပါင္းၿပီး PVM နဲ႔ ေနာက္ၿပီး program အတြက္လိုအပ္တဲ့ Python အေထာက္အကူျပဳ files ေတြကို တြဲၿပီး package တစ္ခုအေနနဲ႔လုပ္လိုက္တာပါ။ တစ္ခုနဲ႔တစ္ခု လုပ္ေဆာင္ခ်က္ေတြက နည္းနည္းကြဲရင္ကြဲသြားပါလိမ့္မယ္။ ဒါေပမယ့္ ေနာက္ဆုံး ရလဒ္ ကေတာ့ customer အလြယ္တကူေပးလိုက္နိုင္မယ့္ binary executable program တစ္ခုပဲရမွာပါ။ ဥပမာ – windows မွာဆို customer ကိုအလြယ္တကူေပးလိုက္နိုင္မယ့္ .exe file လိုမ်ိဳးေပါ့။ သူက byte code နဲ႔ PVM ကို အစိတ္အပိုင္း တစ္ခုျဖစ္တဲ့ Frozen binary file အေနနဲ႔ပဲေပါင္းေပးလိုက္တာပါ။
Frozen binaries လုပ္လို႔ရမယ့္ system သုံးခုရွိပါတယ္။ ပထမတစ္ခုကေတာ့ py2exe သူကေတာ့ Windows အတြက္ပါ။ ေနာက္တစ္ခုကေတာ့ PyInstaller (Py2exe နဲ႔အတူတူပါပဲ) သူကေတာ့ Linux and Unix အတြက္ပါ။ ေနာက္ဆုံးတစ္ခုကေတာ့ freeze သူကေတာ့ Frozen binary ရဲ့ original ပါ။ ဒီ system ေတြရဲ့ scope ကိုေျပာရမယ္ဆိုရင္ေတာ့ py2exe က Tkinter, Pmw, wxPython နဲ႔ PyGTK GUI libraries ေတြသုံးထားတဲ့ programs ေတြနဲ႔ pygame game programming toolkit သုံးထားတဲ့ program ၊ win32com client programs နဲ႔ တျခားေသာ programs မ်ားကို standalone program အျဖစ္လုပ္ေပးမွာပါ။ Frozen binaries ေတြက တကယ့္ compiler ေတြနဲ႔ေတာ့မတူပါဘူး။ Frozen binaries ေတြက byte code ကို Virtual Machine ကေန တစ္ဆင့္ run တာပါ။ ဒါေၾကာင့္ အစပိုင္းမွာ ျဖစ္နိုင္ေခ်ရွိတဲ့ တိုးတက္မွု က လြဲလို႔ frozen binaries ေတြ ရဲ့ run တဲ့ speed က original file ေတြနဲ႔ တူတူေလာက္ပဲျဖစ္မွာပါ။ Frozen binaries ေတြက ေသး မသြားပါဘူး (PVM ပါပါတယ္) ဒါေပမယ့္ လက္ရွိစံႏွုန္းအရ ပိုၿပီးလည္း ႀကီးမသြားပါဘူး။ ဘာလို႔လဲဆိုေတာ့ Python ကို frozen binaries ထဲမွာေပါင္းထည့္ ထားတာေၾကာင့္ပါ။ program ကို run ဖို႔အတြက္ Python ကိုထပ္ install လုပ္စရာမလိုပါဘူး။ ဒီအျပင္ code ေတြကိုလည္း frozen binaries ထဲမွာေပါင္းထည့္ ထားတဲ့အတြက္ code ေတြကို ထိထိေရာက္ေရာက္ ဝွက္ထားလို႔ရပါတယ္။
Tkinter toolkit ေပၚမွာအေျခခံထား တဲ့ Python နဲ႔ေရးထားတဲ့ program ကို executable file အေနနဲ႔ေျပာင္းၿပီး program ကို CD ေပၚမွာျဖစ္ျဖစ္ Web ေပၚမွာျဖစ္ျဖစ္ တင္လိုက္ၿပီဆိုရင္ end users ေတြအေနနဲ႔ program ကို run ဖို႔ Python ကို install လုပ္စရာလည္းမလိုပါဘူး။ Python ကို နားလည္ဖို႔လည္းမလိုပါဘူး။
ေနာင္ျဖစ္နိုင္ေခ်မ်ား ?
byte code formats အသစ္ နဲ႔ ေျပာင္းလဲသြားတဲ့ implementation ေတြ ျဖစ္လာနိုင္ေခ်ရွိပါတယ္။
ဥပမာ
  1. Programming languages အမ်ိဳးမ်ိဳးအတြက္ တူညီတဲ့ byte code format ၊ virtual machine နဲ႔ optimization နည္းလမ္း တို႔ကို ရည္ရြယ္တဲ့ Parrot Project ထြက္ေပၚလာျခင္း
  2. Stakless Python system ဆိုတာကေတာ့ C language မွာ call stack ေတြကို သိမ္းမထားတာတဲ့ standard CPython implementation variant ျဖစ္ပါတယ္။ ဒါဟာ Python ကို small stack architectures နဲ႔ လြယ္လြယ္ကူကူ ported လုပ္လို႔ရၿပီး coroutines အစရွိတဲ့ novel programming possibilities ေတြနဲ႔ open-up လုပ္လို႔ရမွာျဖစ္ပါတယ္။
  3. PyPy လို႔ေခၚတဲ့ project အသစ္ကေတာ့ PVM ကို Python ထဲမွာပဲ reimplement လုပ္ၿပီး implementation နည္းလမ္းသစ္ေတြကိုလုပ္မွာပါ။
ဒီ အနာဂတ္ implementation schemes ေတြက python ရဲ့ runtime structure ကို တစ္နည္းနည္းနဲ႔ ေတာ့ေျပာင္းသြားမွာပါ။ ျဖစ္နိုင္ေခ်ရွိတာကေတာ့ byte code complier ေတြကေတာ့ အခ်ိန္အတိုင္းအတာတစ္ခုထိေတာ့  standard ျဖစ္ေနအုံးမွာပါ။ သယ္ေဆာင္ရလြယ္ကူမွုနဲ႔ runtime flexibility ျဖစ္မွုေတြကေတာ့ Python system ေတာ္ေတာ္မ်ားမ်ားရဲ့ အေရးႀကီးတဲ့လကၡဏာေတြပဲျဖစ္ပါတယ္။ ဒါ့ျပင္ static compilation ကို အေထာက္အကူျပဳဖို႔အတြက္ type constraint declarations ေတြေပါင္းထည့္ တာက Python coding ရဲ့ flexibility, conciseness, simplicity နဲ႔ overall spirit ေတြကို ပ်က္စီးေစမွာပါ။ Python ရဲ့ ျမင့္မားတဲ့ dynamic nature ေၾကာင့္ အနာဂတ္ implementation ဟာ ခုလက္ရွိ PVM ရဲ့ artifacts ကို ထိန္းသိမ္းထားနိုင္မွာပါ။
ေရးသားသူ – Li Jia Li (Myanmar Links)

Python ေလ့လာၾကမယ္ အပိုင္း (၃)


Python က Scripting Language လား
python ဟာ ဘက္စုံသုံး programming language တစ္ခုျဖစ္ၿပီးေတာ့ တခါတရံမွာ Scripting အေနနဲ႔လည္း အသုံးျပဳပါတယ္။ python ကိုအမ်ားအားျဖင့္ Object-oriented scripting langauge လို႔ေခၚၾကေလ့ရွိၿပီး OOP ကို အေထာက္အပံေပးတဲ့ scripting langauge တစ္ခုအေနနဲ႔ သတ္မွတ္ၾကပါတယ္။ တခါတရံမွာ script ဆိုတဲ့ စကားလုံးကို program ဆိုတဲ့စကားလုံးအစား အသုံးမ်ားေလ့ ရွိၾကပါတယ္။ script နဲ႔ program ဆိုတဲ့ စကားလုံးေတြကို အျပန္အလွန္ လဲလွယ္ သုံးေနၾကၿပီး script ဆိုတာက ေတာ့ ဖိုင္တစ္ဖိုင္ထဲ အေျချပဳတာျဖစ္ၿပီး program ကေတာ့ ဖိုင္တစ္ဖိုင္နဲ႔တစ္ဖိုင္ ခ်ိတ္ဆက္ထားတဲ့ application မ်ိဳးျဖစ္နိုင္ပါတယ္။ script ဟာ program ျဖစ္ေပမယ့္ program တိုင္းဟာ script မဟုတ္ပါဘူး။

scripting language နဲ႔ပတ္သတ္ၿပီး လူအမ်ိဳးမ်ိဳးအတြက္ အဓိပၸါယ္ သတ္မွတ္ခ်က္ အမ်ိဳးမ်ိဳးရွိပါတယ္။ လူတစ္ခ်ိဳ႕ကေတာ့ python ကို scripting language ဆိုတဲ့ အဆင့္မွာတင္ အေခၚခံေနရတာ မေက်နပ္ၾကပါဘူး။ python ကိုအသုံးျပဳသူေတြ အေပၚမူတည္ၿပီး သုံးမ်ိဳးသုံးစား ေခၚဆိုေလ့ ရွိၾကပါတယ္။
Shell tools
လူတစ္ခ်ိဳ႕ကေတာ့ python ကို scripting language လို႔ေျပာေလ့ရွိၾကပါတယ္။ သူတို႔အျမင္မွာေတာ့ pythong ဟာ Operating System နဲ႔ အဓိက သက္ဆိုင္တဲ့ script ေတြမွာအသုံးျပဳေလ့ရွိၾကတယ္လို႔ ျမင္ၾကပါတယ္။ အဲဒီ program ေတြဟာ command line ေပၚကေနတစ္ဆင့္ ျဖတ္သန္းသြားလာၿပီးမွ အလုပ္လုပ္တာျဖစ္ၿပီး အဓိကအားျဖင့္ text processing နဲ႔ အျခား program တစ္ခုခုကို launch လွမ္းလုပ္တာမ်ိဳးေတြပါ၀င္ပါတယ္။ သူတို႔အျမင္မွာေတာ့ python ဟာဒီအလုပ္ေတြလုပ္နိုင္တယ္။ ဒါေၾကာင့္ Shell tools လို႔ျမင္ၾကျခင္းျဖစ္ပါတယ္။ ဒါေပမယ့္ အျဖစ္မွန္ကေတာ့ python က ဒါေတြကိုလုပ္နိုင္တာမွန္ေပမယ့္ ဒီထက္ပိုၿပီးေတာ့ အမ်ားႀကီးလုပ္နိုင္ပါေသးတယ္။
Control language
ေနာက္လူတစ္စုကေတာ့ scripting ဆိုတာဟာ control လုပ္တာရယ္ ဒါမွမဟုတ္ ညြန္ျပနဲ႔ေနရာမွာ အသုံးျပဳတယ္လို႔ ယူဆပါတယ္။ Python program ေတြဟာ တခါတရံမွာ Application
အႀကီးႀကီးေတြရဲ့ၾကားထဲမွာ အလုပ္လုပ္ပါေသးတယ္။ ဥပမာအားျဖင့္ Hardware device ေတြကို စစ္ေဆးတဲ့ ေနရာမွာဆိုရင္ Python program အေနနဲ component ေတြေခၚၿပီး low level access အေနနဲ႔ အဲဒီ device ကို အသုံးျပဳနိုင္ပါတယ္။ Python program ေတြသုံးျခင္းျဖင့္ end user ေတြအသုံးျပဳတဲ့ product ေတြ ေျပာင္းလဲမွုကို အေထာက္အပံေပးနိုင္ၿပီး အမ်ားႀကီးျပင္စရာ ဒါမွမဟုတ္ compile ျပန္လုပ္စရာ မလိုေတာ့ပါ။ Python ရဲ့ရိုးရွင္းမွုဟာ ေျပာင္းလြယ္ျပင္လြယ္တဲ့ controlling tool တစ္ခုလို ျဖစ္ေနပါတယ္။ တကယ္တမ္းေတာ့ ဒါဟာ Python ရဲ့ ဂုဏ္သတၱိေတြ အမ်ားႀကီးထဲက တစ္ခုျဖစ္ေပမယ့္ Python programmer အေတာ္မ်ားမ်ား ကေတာ့ standalone script ေတြေလာက္ပဲ ေရးေနၿပီးေတာ့ တျခားအတြဲ အဆက္ေတြကိုေတာ့ သိတာ ေတာ္ေတာ္ရွားပါတယ္။ တကယ္တမ္းေတာ့ Control language တစ္ခုအေနနဲ႔သာမကပါဘူး။
Ease of use (သုံးရလြယ္တယ္)
Scripting language လို႔ေခၚရတဲ့ ျဖစ္နိုင္တဲ့ ေနာက္တတစ္ခ်က္ script language ဆိုတာ ျမန္ျမန္ coding ေရးဖို႔ လြယ္တဲ့ ရိုးရွင္းတယ္ဆိုတာပါပဲ။ Python နဲ႔သာ အလုပ္လုပ္မယ္ဆိုရင္ C++ လိုမ်ိဳး Compile Language ေတြနဲ႔အလုပ္လုပ္တာထက္ ပိုျမန္ပါတယ္။ ေနာက္ၿပီး Rapid Development Cycle လိုမ်ိဳးမွာ ျမန္ျမန္ဆန္ဆန္ လုပ္တက္တဲ့ အေလ့အက်င့္ကို ေမြးယူၿပီးသား ျဖစ္သြားပါတယ္။ ဒါေပမယ့္ ဒီေလာက္နဲ႔တင္ မရပ္တန႔္ေနပါနဲ႔။ Python is not just for simple tasks.
Python ဟာရိုးရွင္းတဲ့ ပုံစံရွိေပမယ့္ အဲဒါက သုံးရတာလြယ္ကူၿပီး ေျပာင္းလြယ္ျပင္လြယ္လဲ ရွိပါတယ္။ Python ဟာရိုးရွင္းပါတယ္။ ဒါေပမယ့္ မိမိတို႔ လိုအပ္ခ်က္အေပၚ မူတည္ၿပီးေတာ့ ရွုပ္ေထြးတဲ့ ပုံစံအထိလည္း ေရးသားနိုင္ပါတယ္။ အမ်ားအားျဖင့္ေတာ့ အျမန္လိုအပ္တဲ့ ကိစၥမ်ိဳးေတြမွာေရာ ကာလရွည္ ႏွစ္ရွည္ လိုအပ္တဲ့ development ေတြမွာေရာ အသုံးျပဳပါတယ္။
ဒီေတာ့ Python ဟာ scripting language ဟုတ္သလား မဟုတ္ဘူးလားဆိုတာကေတာ့ ဘယ္သူသြားေမးလည္း ဆိုတဲ့အေပၚမွာ မူတည္ပါတယ္။ ေယဘူယ်အားျဖင့္ေတာ့ scripting ဆိုတဲ့စကားလုံးဟာ ျမန္ျမန္ဆန္ဆန္နဲ႔ ေျပာင္းလြယ္ျပင္လြယ္ျဖစ္တဲ့ Development မ်ိဳးကိုဆိုလိုၿပီးေတာ့ အဲဒီလိုမ်ိဳးပုံစံကိုလည္း python ကအေထာက္အပံေပးပါတယ္။
OK, but What’s the Downside? (ကဲ ဘာေတြဆိုးလဲ)
Python ကို ၁၅ႏွစ္ေလာက္သုံး ၊ ၁၀ႏွစ္ေလာက္သင္လာတဲ့ လူတစ္ေယာက္အေျပာအရေတာ့ python ရဲ့တခုတည္းေသာ အားနည္းခ်ကက္ေတာ့ execution speed က အျမဲတမ္းေတာ့ Complied Language ေတြျဖစ္တဲ့ C နဲ႔ C++ တို႔ေလာက္ မျမန္ပါဘူး။ အတိုခ်ဳံ႕ ေျပာရမယ္ဆိုရင္ေတာ့ python code ေတြဟာ byte code အေနနဲ႔ interpret လုပ္ပါတယ္။ byte code ေတြဟာ cross platform ျဖစ္ၿပီးေတာ့ portability လည္းျဖစ္ပါတယ္။ ဒါေပမယ့္ Python က binary machine code ကိုမထုတ္ေပးပါဘူး (ဥပမာ Intel chip ကို တန္းၿပီးညြန္ၾကားတဲ့ instruction မ်ိဳးထုတ္မေပးပါဘူး)။ ဒါေၾကာင့္ တစ္ခ်ိဳ႕ program ေတြက Compile လုပ္ထားတဲ့ C လို language နဲ႔ႏွိုင္းစာရင္ေတာ့ ေႏွးေနပါလိမ့္မယ္။ ကိုယ္ ဘယ္လို program မ်ိဳးေရးသည္ျဖစ္ေစ execution speed မတူတာကိုေတာ့ သတိထားရပါလိမ့္မယ္။ python ကို အႀကိမ္မ်ားစြာ ပိုမိုေကာင္းမြန္ေအာင္ optimize လုပ္ၾကပါတယ္။ ဒါေၾကာင့္လည္း တစ္ခ်ိဳ႕ application domain ေတြအေနနဲ႔ ျမန္ျမန္ဆန္ဆန္ အလုပ္လုပ္နိုင္တာပါ။ ဒါအျပင္ တကယ္တမ္း Python script နဲ႔အလုပ္လုပ္တဲ့အခါမ်ိဳး file တစ္ခုကို process လုပ္တာျဖစ္ျဖစ္ ၊ GUI ကိုတည္ေဆာက္တာပဲျဖစ္ျဖစ္ ၊ အဲဒီလိုအေျခအေနမ်ိဳးမွာေတာ့ python ဟာသူမလုပ္ေတာ့ပဲ သူတာဝန္ေတြကို Intrepreter ထဲမွာ Compile လုပ္ထားတဲ့ C code ေတြ ေပးပို႔လိုက္ပါတယ္။
ေနာက္အေျခခံၾကတဲ့အခ်က္ကေတာ့ ယေနေခတ္ကြန္ပ်ဳတာေတြရဲ့ speed နဲ႔ ႏွိုင္းစာရင္ python ရဲ့ development speed ကပိုျမန္ေနတာဟာ execution speed ေႏွးေနတာတာထက္ ပိုအေရးပါပါတယ္။ ဒါေပမယ့္ ယေန CPU speed ေတြမွာေတာင္ တစ္ခ်ိဳ႕ application domain ေတြရဲ့ တစ္ခ်ိဳ႕ execution speed ေတြမွာေတာ့ ေႏွးေနတာကို ေတြ႕ေနရတုံးပါတယ္။ အထူးသျဖင့္ ေပါင္းႏွုတ္ေျမာက္စား ကိန္းဂဏန္းေတြနဲ႔ ပတ္သတ္တဲ့ Numeric programming ေတြ Animation ေတြမွာဆိုရင္ သူတို႔ရဲ့ component ေတြပ ေါင္းစပ္တဲ့အခါ C speed နဲ႔ျမန္ေနမွ ေကာင္းတဲ့ အေနအထားမ်ိဳးလည္း ရွိပါတယ္။ ဒါေပမယ့္လည္း သင့္အဲဒီလိုမ်ိဳး application domain မွာ အလုပ္လုပ္ေနတယ္ဆိုရင္ python ကို အသုံးျပဳနိုင္ပါေသးတယ္။ အဲဒီအပိုင္းေတြမွာေတာ့ Compile လုပ္ထားတဲ့ extension ေတြသုံးၿပီးေတာ့ Link ျပန္လုပ္ျခင္းျဖင့္ python script ေတြကို အသုံးျပဳနိုင္ပါတယ္။
ဒီထဲမွာေတာ့ extension ေတြနဲ႔ပတ္သတ္ၿပီးေတာ့ အေသးစိတ္ မေျပာေတာ့ပါဘူး။ ဒါကေတာ့ အေပၚမွာ ေရးထားခဲ့တဲ့ python as a control language အေနနဲ႔ အသုံးျပဳျခင္းပါပဲ။ အဲဒီလို language ႏွစ္ခုသုံးထားတာကို ဥပမာတစ္ခု ျပရမယ္ဆိုရင္ Numpy ဆိုတဲ့ numeric programming extension ဟာ python ရဲ့ extensionတစ္ခုျဖစ္ၿပီးေတာ့ compiled လုပ္ထားေသာ optimize လုပ္ထားေသာ numeric programming extension တစ္ခုပါပဲ။ NumPy ဟာ Python ထဲမွာေတာ့ numeric programming tools တစ္ခုအေနနဲ႔အသုံးျပဳနိုင္ၿပီး ထိေရာက္မွုရွိၿပီး အသုံးလည္းဝင္လွပါတယ္။ သင့္အေနနဲ႔ ဒီ extension ႀကီးတစ္ခုလုံး ထြက္လာေအာင္ ကိုယ္တိုင္ထိုင္ၿပီး ေခါင္းကုတ္ၿပီး ထိုင္ေရးေနစရာ မလိုေတာ့ပါဘူး။ Python က အဓိကအလုပ္လုပ္ၿပီးေတာ့ က်န္တဲ့ extension ေတြကေတာ့ သင္လုပ္နိုင္တာထက္ ပိုမိုျပည့္စုံေကာင္းမြန္တဲ့ optimization mechanism ကိုေပးစြမ္းနိုင္မွာပါ။
နိုင္လင္းေအာင္ (Myanmar Links)
ဆက္ပါဦးမယ္

Python ေလ့လာၾကမယ္ အပိုင္း (၂)


Design အေနနဲ႔ ဆိုရင္ Python ကရည္ရြယ္ခ်က္ ေကာင္းေကာင္းနဲ႔ အရိုးရွင္းဆုံး၊ ဖတ္လို႔ အလြယ္ဆုံး syntax နဲ႔ highly coherent programming model (အဆင့္ျမင့္ျမင့္ အဆင့္ဆင့္ ခ်ိတ္ဆက္ ဆက္စပ္ေနတဲ့ Programing Model) တစ္ခု လို႔ ေျပာလို႔ ရေအာင္ မြမ္းမံ ထားပါတယ္။ ၿပီးခဲ့တဲ့ Python conference မွာ အားလုံး သေဘာတူ ခ်မွတ္လိုက္တဲ့ ေဆာင္ပုဒ္ကေတာ့ “Fit Your Brain” သင္စဥ္းစားတဲ့အတိုင္း ကြက္တိ လုပ္နိုင္တာ Python လို႔ ဆိုပါတယ္။ Core Concept အနည္းငယ္ကို ပုံမွန္အတိုင္းလိုက္နာၿပီး Python ရဲ့ Features ေတြကို သတ္မွတ္လိုက္တဲ့အတြက္ python language ကိုေလ့လာရာမွာ သင္ရလြယ္၊ နားလည္ရလြယ္ ၿပီး မွတ္မိလည္းလြယ္ပါတယ္။ လက္ေတြ႕မွာလည္း Python programmers ေတြဟာ codeေတြကို ေရးတဲ့ဖတ္တဲ့ အခါမွာ ပုံေသ manuals ပုံစံမ်ိဳး မွတ္ထားဖို႔ မလိုတဲ့အျပင္ ပုံမွန္ျမင္ေနၾက Code ေတြကို အံ့ၾသဖြယ္ ေကာင္းေလာက္စြာ ျပန္လည္ထုတ္ေပးနိုင္တဲ့ consistently designed system (အရာအားလုံး ညီညြတ္မၽွတစြာ ပုံစံခ်ထားတဲ့ စနစ္) တစ္ခုလည္း ျဖစ္ပါတယ္။

အေတြးအေခၚပိုင္း အရဆိုရင္ Python က minimalist approach (လိုအပ္ခ်က္နဲ႔ ကြက္တိ အနည္းဆုံး သုံးတဲ့ ခ်ဥ္းကပ္နည္း) ကို ေမြးစားထားတယ္လို႔ ဆိုနိုင္ပါတယ္။ Coding task တစ္ခုကို ၿပီးေျမာက္ေအာင္လုပ္ဖို႔ နည္းလမ္းေတြ အမ်ားႀကီးရွိေပမယ့္ အသိသာအထင္ရွားဆုံး၊ ကြဲျပားျခားနားမွု အနည္းဆုံးနဲ႔ coherent interactions အစုေတြရွိနိုင္တာက minimalist approach တစ္ခုတည္းပါပဲ။
အဲ့ဒီအျပင္ Python က interactions ေတြရွုပ္ေထြးေနရင္ေတာင္မွ arbitrary decisions (လိုရာဆြဲေတြးလို႔ရတဲ့ ဆုံးျဖတ္ခ်က္) ေတြကို မေပးပါဘူး။ Python ရဲ့ လမ္းအတိုင္း စဥ္းစားမယ္ ဆိုရင္ အထဲမွာ ဝွက္ထားၿပီး ဘာမွန္းမသိ လုပ္သြားတာမ်ိဳး မဟုတ္ပဲ အားလုံး ရွင္းရွင္းလင္းလင္း သိနိုင္ရမယ္။ ရွုပ္ရွုပ္ေထြးေထြးျဖစ္ေနတာထက္ ရွင္းေနတာက ပိုေကာင္းတယ္လို႔ စဥ္းစားရမွာ ျဖစ္ပါတယ္။
ဒီလို design themes ေတြအျပင္ Python မွာ ပုံမွန္အားျဖင့္ code ေတြကို ျပန္လည္အသုံးျပဳနိုင္တဲ့ modules၊ OOP အစရွိတဲ့ tools ေတြလည္းပါ ပါတယ္။ အဲဒီ tools ေတြက code reusability (Code ေတြ ျပန္သုံးလို႔ရေအာင္) ျဖစ္ေအာင္လုပ္ေပးပါတယ္။ Python ဟာ အရည္အေသြး ဦးစားေပး ျဖစ္တဲ့အတြက္ Python programmers ေတြလည္း အလားတူပါဘဲ။
Developer Productivity (Developer မ်ား၏ ဖန္တီးနိုင္စြမ္း)
Internet အလြန္အမင္း အသုံးျပဳလာတဲ့ ၁၉၉ဝခုႏွစ္ အလယ္ေႏွာင္းပိုင္းကာလက Software Projects ေတြကို implement လုပ္ဖို႔အတြက္ programmers ေတြအလုံအေလာက္ မရွိတဲ့ အခက္အခဲေတြ ရွိခဲ့ပါတယ္။ Internet ေျပာင္းလဲေနမွုက ျမန္ဆန္သေလာက္ System ေတြကို Implement လုပ္ဖို႔အတြက္ Developer ေတြက တာဝန္ယူ ေဆာင္ရြက္ရပါတယ္။ ယေန႔ အလုပ္လက္မဲ့ေတြနဲ႔ စီးပြားေရး ႐ုတ္သိမ္းခံရမွုေတြရွိတဲ့ Post-boom (အင္တာနက္ ဆန္းပြင့္မွု ကာလအလြန္ လုပ္ငန္းမ်ား ပ်က္သုန္းၾကသည့္ အခ်ိန္) ေခတ္ႀကီးမွာေတာ့ အဲ့ဒီျဖစ္စဥ္က အသြင္သ႑ာန္ ေျပာင္းလဲ လာခဲ့ပါတယ္။ အဲဒီလို ေျပာင္းလဲလာတဲ့ အေနအထားအရ Programmer ေတြကို နည္းနည္းနဲ႔ က်ဲက်ဲဝိုင္းဖို႔ အေၾကာင္းဖန္လာေစပါတယ္။ ပုံစံတူ အလုပ္ေတြအတြက္ လူနည္းနည္းနဲ႔ မရဘူးလား။ မလုပ္နိုင္ဘူးလားလို႔ ေမးခြန္းထုတ္တာေတြ ခံလာရပါတယ္။
ဒီျဖစ္စဥ္ေတြထဲမွာေတာ့ Python က Programmers ေတြအတြက္ နည္းနည္းနဲ႔ က်ဲက်ဲဝိုင္းဖို႔ Tools တစ္ခုျဖစ္လာပါတယ္။။ ေနာက္ၿပီး သူ႔မွာ development speed အေကာင္းဆုံး ျဖစ္ေအာင္ ရည္ရြယ္ ထားတဲ့ အတြက္ simple syntax , dynamic typing ,lack of compile steps နဲ႔ built-in ပါတဲ့ toolset ေတြက အျခား tools ေတြကို သုံးတာထက္စာရင္ programmers ေတြကို အခ်ိန္ တိုတိုေလး အတြင္းမွာ programs ေတြကို develop လုပ္လို႔ ရေစပါတယ္။ တျခား languages ေတြနဲ႔ ယွဥ္ရင္ေတာ့ Python ကို အသုံးျပဳတာက developer productivity ကို အမ်ားႀကီးျမႇင္တင္နိုင္စြမ္း ရွိတာ ေတြ႕ရပါတယ္။
ဆုႏွင္းေဝ (Myanmar Links)

Python ေလ့လာၾကမယ္ အပိုင္း​ (၁)



အခု ေရးမယ့္ ေဆာင္းပါးေတြကို ကၽြန္ေတာ္အပါအဝင္ Myanmar Links Working Group အဖြဲ႕သားမ်ား အားလုံးစုၿပီး ေရးၾကမွာ ျဖစ္ပါတယ္။ PHP, CodeIgniter စတာေတြကို သင္ေနရင္း Language ကို တစ္ခုတည္း အေသမွတ္သြားမွာစိုးတဲ့အတြက္ ေနာက္ထပ္ Language တစ္ခု အေနနဲ႔ Python ကိုတြဲၿပီး Django Framework ကို သင္ေပးမယ္ဆိုေတာ့ ထုံးစံအတိုင္း Python Language ကို ကိုယ္တိုင္​ေလ့လာၾကရၿပီး ကၽြန္ေတာ္ကေတာ့ Django Framework ကို သင္ေပးျဖစ္ပါတယ္။ အဲဒီလို သင္ေနရင္း အားလုံးလဲ ေလ့လာလို႔ ရေအာင္ စာအုပ္တစ္အုပ္ေပၚ အေျခခံၿပီး ေရးၾကမယ္ဆိုေတာ့ Mark Lutz ေရးတဲ့ Learning Python ဆိုတဲ့ စာအုပ္ကို အေျခခံၿပီး ေရးျဖစ္ၾကပါတယ္။ အားလုံး တစ္ေယာက္ တစ္ပိုင္းစီ တာဝန္ယူၿပီး ေရးလိုက္ေတာ့ ဘယ္ေလာက္မွ မၾကာတဲ့ အခ်ိန္အတြင္းမွာ အားလုံးၿပီးသြားပါတယ္။ ေလ့လာတဲ့သူေတြ​အဆင္ေျပေအာ င္တစ္ပိုင္းျခင္းစီ တင္သြားမွာ ျဖစ္ပါတယ္။ ေနာက္ဆုံး အားလုံးၿပီးသြားတဲ့ အခါမွာ E-Book အျဖစ္ ျပန္တင္ဖို႔ အစီအစဥ္ရွိပါတယ္။ အားလုံးပဲ ရႊင္လန္းခ်မ္းေျမ့ၾကပါေစ။ (အပိုင္းေတြ​​ ဆက္တိုက္တင္သြားဖို႔ ရွိၿပီး ျဖစ္တဲ့အတြက္ အရင္လို မၿပီးမွာ ပူစရာ မလိုေတာ့ပါဘူးခင္ဗ်ာ)
သီဟ (Myanmar Links)
ဘာေၾကာင့္ Python ကိုသုံးၾကရတာလဲ?

အခုအခ်ိန္မွာ Programming Language ေပါင္းမ်ားစြာရွိေနၿပီျဖစ္တဲ့အတြက္ေၾကာင့္ မ်က္ႏွာသစ္ေတြအတြက္ ကေတာ့ ပထမဆုံးအေနနဲ႔ ေမးခြန္းေတြ ျဖစ္ေနက်ပါပဲ။ စဥ္းစားၾကည့္မယ္ဆိုရင္ 1 million ပမာဏရွိတဲ့ Python User ေတြဟာ တိုေတာင္းတဲ့ ကာလအတြင္းမွာပဲ အေျမာက္အမ်ား ထြက္ေပၚလာခဲ့ေပမဲ့ အဲ့ဒီေမးခြန္းအတြက္ တိက်မွန္ကန္တဲ့ အေျဖကေတာ့ ရွိမလာခဲ့ပါဘူး။ Development Tools ေတြကိုေရြးခ်ယ္ေတာ့မယ္ဆိုရင္ တစ္ခါတစ္ရံမွာေတာ့ တိက်တဲ့ကန႔္သတ္မွုေပၚမွာပဲျဖစ္ျဖစ္ ကိုယ္ႏွစ္သက္တဲ့ အေပၚမွာပဲျဖစ္ျဖစ္ အေျခခံ ေရြးခ်ယ္တာေကာင္းပါတယ္။
ဒါေပမယ့္လည္း ၁၀ႏွစ္ေက်ာ္ကာလအတြင္း အဖြဲ႕ေပါင္း ၂၀၀ နဲ႔ ေက်ာင္းသားစုစုေပါင္း အေယာက္ ၃၀၀၀ ကို Python သင္ၾကားေပးၿပီးတဲ့ေနာက္မွာေတာ့ အဓိကက်တဲ့ ဆိုလိုရင္းအခ်ိဳ႕ ထြက္ေပၚလာခဲ့ပါတယ္။ Python user အမ်ားစု ရည္ညႊန္းတဲ့ အေျခခံအေၾကာင္းရင္းကေတာ့ -
Software quality (ေဆာ့(ပ္)ဝဲ အရည္အေသြး)
အမ်ားစုအတြက္ Python ရဲ့အေလးသာမွုက readability (ဖတ္ရွုနားလည္ နိုင္ရန္ လြယ္ကူမွု) ျဖစ္ပါတယ္။ အဆက္အစပ္ရွိၿပီးေတာ့ အေထြေထြ အစိတ္အပိုင္းေတြမွာပါတဲ့ software quality ကေတာ့ scripting world ထဲမွာရွိတဲ့ တျခား tools ေတြနဲ႔ တသီးတသန႔္ ပုံစံမ်ိဳးျဖစ္ေနတာပါပဲ။ တျခား ပုံမွန္ scripting language ေတြနဲ႔ယွဥ္ရင္ Python code ေတြဟာ ဖတ္လြယ္ေအာင္ ပုံစံျပဳလုပ္ထားတဲ့ အတြက္ေၾကာင့္ ေနာက္တစ္ေခါက္ ျပန္သုံးဖို႔ အဆင္ေျပသလို ထိန္းသိမ္းရတာလဲ လြယ္ကူပါတယ္။ Python code ေတြရဲ့ တူညီေနမွုက အကယ္၍ သင္ဟာ Python ကို မေရးတတ္ဘူး ဆိုရင္ေတာင္မွ လြယ္လြယ္ေလးနဲ႔ နားလည္လြယ္ေအာင္ ျပဳလုပ္ေပးပါတယ္။ ထပ္ၿပီးေတာ့ Python က object-oriented programming (OOP) လိုမ်ိဳး Advanced software reuse mechanisms ေတြအတြက္ အရမ္း အေထာက္အကူ ျပဳပါတယ္။
Developer productivity (Developer ေတြအတြက္ ထုတ္လုပ္ဖန္တီးနိုင္စြမ္း)
Python ကိုအသုံးျပဳျခင္းကေန C, C++, နဲ႔ Java လိုမ်ိဳး statically typed languages  ေတြထက္ Developer Productivity ျမင့္တက္ လာနိုင္ပါတယ္။ Python code က C++, Java code ေတြရဲ့ သုံးပုံတစ္ပုံ ငါးပုံတစ္ပုံ ပမာဏပဲရွိပါတယ္။ အဲ့ဒါေၾကာင့္ စာရိုက္ရတာ နည္းလာမယ္၊ Debug (အမွားစစ္ ျပဳျပင္) လုပ္ရတာ နည္းလာသလို maintain (ထိန္းသိမ္း) လုပ္ရတာလည္း နည္းလာပါမယ္။ Python programs ေတြက ခ်က္ခ်င္းေကာက္ run နိုင္သလို compile လုပ္တဲ့အခ်ိန္ နဲ႔ တျခား tools ေတြအသုံးျပဳတဲ့အဆင့္ ေတြမပါတဲ့အတြက္ programmer speed (Program ေရးသားရာမွာ အျမန္ႏွုန္း) ကိုျမႇင့္တင္ေပးနိုင္ပါတယ္။
Program portability (ေရြ႕ရေျပာင္းရ လြယ္ကူမွု)
Python programs အမ်ားစုဟာ အဓိကက်တဲ့ computer platforms အမ်ားစုမွာေတာ့ မေျပာင္းလဲပဲ run ပါတယ္။ ဥပမာေျပာရရင္ – Linux နဲ႔ Windows ၾကား Python code ကူးခ်င္ရင္ ဒီတိုင္း script code ေလးကို စက္တစ္လုံးနဲ႔ တစ္လုံးၾကား ကူးလိုက္႐ုံပါပဲ။ ထပ္ၿပီးေတာ့ Python ကေနၿပီးေတာ့ coding portable graphical user interfaces, database access programs, web-based systems အျပင္ တျခား အရာေတြအတြက္ ေရြးခ်ယ္စရာမ်ားစြာ ျပဳလုပ္ေပးထားပါတယ္။ Program launches နဲ႔ directory processing ေတြပါတဲ့ operating system interfaces အထိေတာင္ Python မွာလြယ္လြယ္ပင္ ကူးေျပာင္းနိုင္ပါတယ္။
Support libraries (အေထာက္အပံ့ေပးနိုင္ေသာ Library မ်ား)
Python မွာ လာကတည္းက standard library လို႔ေခၚတဲ့ အလြန္ႀကီးမားတဲ့ တည္ေဆာက္ၿပီးသား ကူးေျပာင္းလြယ္တဲ့ functionality ေတြပါဝင္ပါတယ္။ အဲ့ဒီ Library က text pattern matching ေတြကေန network scripting ေတြအထိ application-level programming tasks ေတြကို array အေနနဲ႔ ေထာက္ပံ့ေပးပါတယ္။ ထပ္ၿပီးေတာ့ Python ကို homegrown libraries နဲ႔ third-party application support software ေတြနဲ႔လည္း ထပ္ခ်ဲ႕လို႔ရပါေသးတယ္။ Python ရဲ့ third-party domain ေတြဟာ web site construction, numeric programming, serial port access, game development အျပင္ တျခားအရာေတြအတြက္ tools ေတြကိုလည္း ကမ္းလွမ္း ေပးထားပါတယ္။ NumPy extension ကို Free ရၿပီး Matlab numeric programming system ေလာက္ကို စြမ္းေဆာင္နိုင္တယ္လို႔ ထုတ္ေဖာ္ေျပာဆိုထားပါတယ္။
Component integration (အစိတ္အပိုင္းမ်ား ေပါင္းစပ္ ထည့္သြင္းျခင္း)
Python scripts ဟာ integration mechanisms ေတြကိုကိုအသုံးျပဳၿပီးေတာ့ application တစ္ခုရဲ့ တျခား အစိတ္အပိုင္းေတြနဲ႔ လြယ္လြယ္ကူကူ ပင္ခ်ိတ္ဆက္နိုင္ပါတယ္။ အဲ့ဒီလို ေပါင္းစပ္ျခင္းက Python ကို product customization နဲ႔ extension tool အျဖစ္အသုံးျပဳေစနိုင္ပါတယ္။ ယေန႔မွာေတာ့ Python code ကို C နဲ႔ C++ programs ေတြကေခၚယူသုံးတဲ့ C နဲ႔ C++ libraries ေတြ၊ Java components ေတြနဲ႔ ေပါင္းစပ္နိုင္သလို၊ COM နဲ႔ .NET လိုမ်ိဳး frameworks ေတြနဲ႔လည္း ဆက္သြယ္လို႔ရပါေသးတယ္။ ေနာက္ SOAP, XML-RPC နဲ႔ COBRA လိုမ်ိဳး interfaces ေတြပါတဲ့ networks ေတြမွာလည္း တုံ႔ျပန္နိုင္ပါတယ္။ Python ဟာ သီးျခားတည္ရွိေနတဲ့ tool တစ္ခုမဟုတ္ပါဘူး။
Enjoyment (စိတ္ခ်မ္းသာေပ်ာ္ရႊင္မွု)
အသုံးျပဳရတာလြယ္ကူတဲ့အျပင္ built-in toolset ေတြေၾကာင့္ Python က programming ကို ၿငီးေငြ႕ဖြယ္ေကာင္းတဲ့ အလုပ္ဆိုတာထက္ ပိုၿပီး ေပ်ာ္ရႊင္ဖို႔ေကာင္းတဲ့ အသြင္ျပဳလုပ္နိုင္ပါတယ္။ အဲ့ဒါလို အေျခအေနက ထိေတြ႕ကိုင္တြယ္လို႔မရတဲ့ အက်ိဳးအျမတ္ေၾကာင့္ သူ႔ရဲ့ productivity အေပၚသက္ေရာက္မွုက အေရးႀကီးတဲ့ အရာတစ္ခုပါပဲ။
အဲ့ဒီလိုမ်ိဳးအခ်က္ေတြရွိေနေပမယ့္ ပထမဆုံးႏွစ္ခ်က္ျဖစ္တဲ့ quality နဲ႔ productivity ကေတာ့ Python users အမ်ားစုကို အက်ိဳးအျမတ္အျဖစ္နိုင္ဆုံးပါပဲ။
ဆက္ပါဦးမယ္ … (မရွင္းလင္းသည္မ်ား ရွိရင္ ကြန္မင့္ေပးၿပီး ေမးနိုင္ပါတယ္ခင္ဗ်ာ)
K (Myanmar Links)

Sunday, September 21, 2014

WiFi Hack ခ်င္သူမ်ားအတြက္ WiFi Hacker (BEST VERSION) v2.2.14667

မဂၤလာပါခင္ဗ်ာ.... Android ေပၚကေန WiFi Hack ခ်င္သူမ်ားအတြက္ WiFi Hacker (BEST VERSION) v2.2.14667 ကို မွ်ေ၀ေပးလုိက္ပါတယ္... ပံုမွာျပထားတဲ့အတိုင္းပါပဲ Best Version ျဖစ္တဲ့အျပင္ WEP, WPA, and WPA2 ထိရတယ္လို႔ ဆိုထားပါတယ္... ဖိုင္ဆိုက္က 1.13Mb ပဲရွိၿပီး Android Version 2.2 ႏွင့္အထက္အသံုးျပဳႏိုင္ပါတယ္...စမ္းသပ္ခ်င္တဲ့ သူငယ္ခ်င္းမ်ား အဆင္ေျပၾကပါေစဗ်ာ...



Overview:Simply the BEST Wifi Hacker for Android! this app, you can crack the password of almost any WiFi network near you! It is especially useful if you need to find the password of your own Wifi Router that you lost!
Many encryption methods are supported, such as WEP, WPA, and WPA2.
Requirements: Android 2.2 or higher




WiFi Hacker (BEST VERSION) v2.2.14667

>>>  Download  <<<

Wifi Password Hacker 2014



Did you forget your wireless password again?At a friends house and they have no idea what their login information is?Wish you didn't have to sit at the library waiting for a wifi key?Now you wont have to wait, with Wifi Hacker 2013, the premier application for hacking and decoding protected wireless signals!Wifi Password Hacker 2014 scans your local area for available wireless signals and displays information about each oneIncluding the security abilities of each router. Then if you tap on one of the wifi routers in range, the hacking dialog appears!Have you ever dreamed that you can hack a password of any WiFi network? Now you can.Our new app can hack a password of almost all networks.You wanted always to be a hacker, specifically a network wifi password hacker to impress your friends or whatever your purpose is.You searched for so many wifi hacker software or pretically some wifi hacker real app for android.Get the password of the wifi hotspot next to your house.How to use it:1. Search and analyze the Security, signal strength for available WiFi networks around you.2. Select an WiFi network you want to "hack".3. Wait for a short time and Hack WiFi Password will get its password.4. Show and trick your friends that you have crack WiFi network and that you have password!This application is created to fool your friends and does not really hack anything. Have fun.Wifi Password Hacker 2014 is made for entertainment purposes only, and does not actually hack into any wireless routers or networks. What it does do is return funny and potentially embarrassing passwords for the routers that it finds. Bring it to your friends house and make him or her look like a fool in front of the group! Or just use the app to trick your friends into thinking you are a pro hacker. What they don't know wont hurt them.Wifi Hacker is perfect for playing jokes on friends, pranking your enemies

DOWNLOAD

Friday, September 5, 2014

Winrar ႏွင့္ HJ Split ျဖင့္ဖုိင္ေျဖနည္း



အသုံးမ်ားတဲ့ ၂ မ်ိဳးကုိ ေျပာျပပါ့မယ္။ Winrar ႏွင့္ HJ split ပါ။ Win zip ကုိေတာ့ Win Rar ႏွင့္လည္း ေျဖ လုိ႔ရပါတယ္။ အဲ့အတြက္ေၾကာင့္ အသုံးမ်ားတဲ့ ဒီႏွစ္နည္းကုိပဲ ေျပာျပမွာပါ။

Hjsplit and Winrar ျဖင့္ ဖုိင္ေျဖနည္း Video Download

 Solidfiles | Ziddu | Zippyshare |

~~~~~~~~~~~~~
Winrar ျဖင့္ဖုိင္ေျဖနည္း
~~~~~~~~~~~~~ 

အဲ့လုိ . Part1.rar, Part2.rar ဆုိၿပီးေတြ႕လွ်င္ Winrar ျဖင့္ ဖုိင္ေျဖရမည္ျဖစ္ပါတယ္။
အဲ့အတြက္ေၾကာင့္ အေပၚဆုံးက Part1.rar  ကုိ Rightclick ႏွိပ္ၿပီး Extract to ဆုိတာကုိ ႏွိပ္လုိက္ပါ။
အဲ့လုိေျဖလုိက္တာနဲ႔ ဖုိင္ေျဖေနပါလိမ့္မယ္။ Folder အ၀ါေရာင္ေလး တစ္ခုထြက္လာပါလိမ့္မယ္။
အဲ့ဒီ့လုိ Folder တစ္ခုပိုထြက္လာမွာပါ။

အဲ့ဒီ့ Folder ေလးကုိ ဖြင့္လုိက္တာနဲ႔  က်ေနာ္တုိ႔ လုိခ်င္ေနတဲ့
Software ေလးျဖစ္တဲ့ kaspersky 2013 ကုိ ျမင္ေတြ႔ရမွာပါ။ အဆင္ေျပပါေစဗ်ာ။
~~~~~~~~~~~~~~~~~~~~~~~~~~~
=============
HJ - Split ျဖင့္ ဖုိင္ေျဖနည္း
=============

 အဆင္ေျပၾကပါေစ

Sunday, August 31, 2014

Windows Registry Hacking မ်ား


Owner ေျပာင္းလဲျခင္း

သင့္ရဲ႕ PC ကို Windows install လုပ္တဲ႔အခါ သင့္ရဲ႕ နာမည္ကိုေမးျပီး registered owner အျဖစ္နဲ႔ သိမ္းထား လိုက္ပါတယ္။ အကယ္၍မ်ား registered owner nameကို ေျပာင္းခ်င္တယ္ဆိုရင္ ေအာက္ပါ အတိုင္းလုပ္ရ ပါတယ္....

အဆင့္ ၁ : HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion ကိုသြားပါ။

အဆင့္ ၂ : ညာဘက္မွာ RegisteredOwner နဲ႔ RegisteredOrganization ဆိုတာကိုလုိက္ရွာပါျပီး double-click နဲ႔ဖြင့္ျပီး ကိုယ္ေျပာင္းခ်င္တဲ႔ name ေတြကို ေျပာင္းလိုက္ရင္ ရပါတယ္။

ဖိုင္စီျခင္း

Explorer ထဲမွာ filename မ်ားကို အစီအစဥ္တက်ျပဳလုပ္ျခင္းမွာ ျပႆနာတစ္စံုတရာရွိေနႏိုင္ပါတယ္။ ဥပမာ- default နဲ႔ဆိုရင္ 'File_v2.txt' ျပီးမွ 'File_v15.txt' ေဖာ္ျပပါလိမ့္မယ္။ ဒါဟာ ASCII ordering ေတာ့မဟုတ္ပါဘူး။ ဒါေပမယ့္ သင့္ေလ်ာ္မႈရွိတယ္လို႔ေတာ့ ထင္ေစပါတယ္။ ဒါေပမယ့္လည္း "V" ဆိုတာ version number ကို ရည္ညႊန္းပါတယ္...။ ဒါေၾကာင့္ 'File_v15.txt က အရင္ျဖစ္သင့္တယ္လို႔ ထင္ပါတယ္။ ဒါေပမယ့္ Explorer ရဲ႕ default system က အလုပ္အားလံုးမလုပ္နိုင္ပါဘူး... အကယ္၍ ပံုမွန္ ASCII file ordering ကို restore လုပ္မယ္ဆိုရင္ေတာ့....

အဆင့္ ၁ : HKLM\Software\Microsoft\Windows\Currentversion\Policies\Explorer ကိုသြားပါ။

အဆင့္ ၂ : DWORD အသစ္တစ္ခုဖန္တီးလိုက္ျပီး NoStrCmpLogical လို႔ နာမည္ေပးပါ။ value ကို 1 လို႔ထည့္လိုက္ပါ။

standard explorer ကို restore လုပ္ခ်င္တယ္ဆိုရင္ေတာ့ key ကို delete လိုက္ရံုပါပဲ။

 




Startup လုပ္တဲ႔အခါ အခ်ိန္ၾကာေနရင္

Windows ကို start up ( သို႔) shut down လုပ္တဲ႔အခါမွာ အခ်ိန္ၾကာေနရင္ ေစာင့္ရတာအခ်ိန္ကုန္ျပီး စိတ္ညစ္စရာေကာင္းတယ္ဆိုတာကို ၾကံဳဖူးၾကမွာပါ။ အဲဒီျပႆနာကိုေျဖရွင္းဖို႔....

အဆင့္ ၁ : HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System ကိုသြားပါ။

အဆင့္ ၂ : verbosestatus လို႔နာမည္ေပးထားတဲ႔ DWORD တစ္ခုဖန္တီးလိုက္ပါ။ ျပီးရင္ value ကို 1 ထည့္ျပီး PC ကို restart ေပးလိုက္ပါ။


Folder types မ်ားကို စီမံျခင္း

Windows Vista ရဲ႕ Explorer မွာ ၄င္းရဲ႕ content မ်ားေပၚမူတည္ျပီး သင့္ရဲ႕ folder type မ်ားကို လိမ္မာပါးနပ္စြာေရြးခ်ယ္ပါတယ္။ ဆိုလိုတာကေတာ့ ဥပမာ MP3 မ်ားကို Download ဆိုတဲ႔ folder ထဲကို ထည့္လိုက္မိမယ္ဆိုရင္ Music folder အျဖစ္ေျပာင္းလဲသြားပါလိမ့္မယ္...အဲလိုေျပာင္းလဲမသြားေအာင္...

အဆင့္ ၁: HCU\Software\Classes\LocalSetting\Software\Microsoft\Windows\Shell ကိုသြားပါ။ Bags subkey ကို delete လုပ္ပါ။

အဆင့္ ၂ : Bags ရဲ႕ ေအာက္တြင္ AllFolders လို႔နာမည္ေပးျပီး key တစ္ခုဖန္တီးပါ အဲဒီေအာက္မွာ Shell ဆိုတဲ႔ key ကိုဖန္တီးပါ။

အဆင့္ ၃: အဲဒီေနာက္ HCU\Software\Classes\LocalSettings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell ကိုဖြင့္လိုက္ပါ။ ျပီးရင္ ညာဘက္က pane မွာ right-click လုပ္ျပီး String Value အသစ္တစ္ခုလုပ္ျပီး FolderType လို႔နာမည္ေပးပါ။ ျပီးရင္ value ကို NotSpecified လို႔ျဖည့္ေပးလိုက္ပါ။

အခ်ိန္မေပးခ်င္သူမ်ားအတြက္ ေအာက္မွာ Folder view အလိုအေလွ်ာက္ Reset လုပ္ေပးတဲ႔ .reg file ကိုေပးထားပါတယ္... အဲဒါကို download လုပ္ျပီး run လိုက္ရင္လည္း ရပါတယ္။

 

DOWNLOAD


Folder ေတြကို ျမန္ျမန္ access လုပ္ေအာင္

Start menu ထဲမွာ ထားျခင္းအားျဖင့္ folder တိုင္းကို ျမန္ျမန္ access လုပ္ႏိုင္ေအာင္လို႔....

အဆင့္ ၁ : HKCR\Folder\shellex\ContextMenuHandlers ကိုသြားပါ။

အဆင့္ ၂ : ျပီးရင္ ContextMenuHandlers ကို right-click လုပ္ျပီး key(quotation mark မ်ားမပါ၀င္ေစပဲ) အသစ္တခုျပဳလုပ္ပါ။ ျပီးရင္ Shift key ကို ဖိထားျပီး folder ကို right-click လုပ္၊ျပီးရင္ 'Pin to Start Menu' ကို select လုပ္ပါ။

copy time ကိုျမန္ဆန္လာေအာင္

Vista ဟာ သင့္ရဲ႕ soundcard ကို ဦးစားေပးပါတယ္။ ဒါေၾကာင့္ glitch-free audio ေတြကို သင္ရရွိႏိုင္ပါတယ္။ အဲဒါေတြဟာ network copy speeds ကို ေႏွးေကြးေစပါတယ္။ ဒါေၾကာင့္...

အဆင့္ ၁ : HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Multimedia\SystemProfile ကိုသြားပါ။

အဆင့္ ၂ : NetworkThrottingIndex ရဲ႕ setting ကို 10-50 (သို႔) 60 သို႔ေျပာင္းသင့္ပါတယ္။ အဲဒါျပီးရင္ေတာ့ reboot လုပ္ပါ။

drive listing ကိုျပဳျပင္ျခင္း

တကယ္၍ Explorer က သင့္ရဲ႕ DVD drive ကို ၾကာၾကာ lists မလုပ္ရင္ (သို႔) DVD-ROM တစ္ခုျဖစ္ျပီး discs ေတြကို burn လို႔မရႏိုင္ဘူးထင္ရင္ .......

အဆင့္ ၁ : HKLM\System\CurrentControlSet\Control\Class\ ကိုသြားပါ။

အဆင့္ ၂ : UpperFilters (သို႔) LowerFilters setting မ်ားကို delete လုပ္ပါ။

ဒီလိုလုပ္တာဟာ အမ်ားအားျဖင့္ အလုပ္လုပ္ပါတယ္။ ဒါေပမယ့္ အလားတူ application မ်ားပ်က္စီးသြားႏိုင္ပါတယ္။အကယ္၍ program တစ္ခုဟာ အလုပ္မလုပ္ေတာ့ဘူးဆိုရင္ စစ္ေဆးၾကည့္ပါ အကယ္၍ update တစ္ခုရွိေနတယ္ဆိုရင္ေတာ့ ၄င္းကို reinstall လုပ္ပါ။

Menu မ်ားကို ရွင္းလင္းျခင္း

သင္ဟာ application တစ္ခုကို uninstall လုပ္ျပီးတဲ႔အခါမွာ giFT မ်ားက်န္ေနတာေတြရွိတတ္ပါတယ္။ right-click context menu entries ကလည္း အသံုးမက်ေတာ့ပါဘူး...အဲဒီျပႆနာကိုေျဖရွင္းဖို႔....

အဆင့္ ၁ : HKCR\* နဲ႔ HKCR\Directory ကိုသြားပါ။ ျပီးရင္ Shell ကိုျဖန္႔ခ်လိုက္ျပီး shellex\ContextMenuHandlers key ကိုသြားပါ။

အဆင့္ ၂ : သင္မလိုခ်င္တဲ႔ command မ်ားကို keys ေတြရဲ႕ ေအာက္မွာလိုက္ရွာပါ။ ျပီးရင္ delete လုပ္ပါ။ (ဥပမာ - က်ေနာ့္ PC မွာဆိုရင္ HKCR\*\shellex\ContextMenuHandlers\7-Zip ဆိုတဲ႔ links ဟာ 7-Zip context menu အတြက္ျဖစ္ပါတယ္။ ဒါေၾကာင့္ ဘယ္ဘက္ pane မွာ 7-Zip အပိုင္းကို Delete လုပ္ရမွာျဖစ္ပါတယ္။ ဒါေပမယ့္ သတိထားရမွာက key တစ္ခုကိုသာ delete လုပ္ရမွာျဖစ္ျပီး ေသခ်ာဖို႔လည္း လိုပါတယ္။)

AutoRun ကို Disable လုပ္ျခင္း

Windows ရဲ႕ AutoRun feature ဟာ security ကို က်ိဳးေပါက္ဖို႔အတြက္ အလာအလာရွိတဲ႔ feature တစ္ခုပါ။ ဘာေ႕ၾကာင့္လဲဆိုေတာ့ သင္က သင့္ရဲ႕ PC သို႔ removable device ေတြကို တပ္လိုက္တဲ႔အခါ ၄င္းက code ေတြကို အလိုအေလွ်ာက္ run ပါတယ္ ။ ဒါေၾကာင့္ ၄င္းကို disable လုပ္ခ်င္တယ္ဆိုရင္...

အဆင့္ ၁ : HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\IniFileMapping ကိုသြားပါ။

အဆင့္ ၂ : Autorun.inf လို႔ေခၚတဲ႔ key တစ္ခုကို ဖန္တီးလိုက္ပါ။အဲဒီေနာက္ key အသစ္ကို double-click လုပ္ျပီး ၄င္း ရဲ႕ (default ) value မွာ @SYS:DoesNotExist ကိုထည့္လိုက္ပါ။ ျပီးရင္ HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2 ကို delete လုပ္ပါ။

ဒါေတြလုပ္ျပီးသြားျပီဆိုရင္ေတာ့ Windows က CD မ်ား၊ DVD မ်ား (သို႔) removable drive မ်ားရဲ႕ ဘယ္ code ကိုမဆို အလိုအေလွ်ာက္ မ run ေတာ့ပါဘူး။

Welcome Screen ကို ဖယ္ရွားျခင္း / ေပါင္းထည့္ျခင္း

အဆင့္ ၁ : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon ကိုသြားပါ။

အဆင့္ ၂ : ညာဘက္က pane မွာ LogonType ဆိုတဲ႔ DWORD ကိုလိုက္ရွာျပီး value ကို 00000001 ကိုေျပာင္းလိုက္ပါ။resoter ျပန္လုပ္ခ်င္ရင္ေတာ့ မူလ value ကိုျပန္ထည့္ေပးလိုက္ပါ။

အသံုးမျပဳေသာ DLL file မ်ားကို Unload ျပဳလုပ္ျခင္း

application မ်ားကို ပိတ္လိုက္တဲ႔အခါမွာ Windows XP မွာဆိုရင္ DLL file မ်ားကို memory မ်ားကို ခ်န္ခဲ႔ပါတယ္။ ဒါေတြဟာ resource ကိုမ်ား ေလလြင့္ဆံုးရႈံးေစမႈကို ဦးတည္ေနပါတယ္။ DLL file မ်ားကို unload ျဖစ္ေအာင္....

အဆင့္ ၁ : HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer ကိုသြားပါ။

အဆင့္ ၂ : ျပီးရင္ AlwaysUnloadDLL ဆိုတဲ႔ DWORD တစ္ခုကို ဖန္တီးလိုက္ျပီး value data ကို 1 လို႔ထည့္လိုက္ပါ။

Havij1.14


ဒီsoftwareကိုသိမွာပါ ေတာ္ေတာ္စြမ္းတယ္ဗ်...website ဘယ္လိုဟက္ရလဲဆိုတာ video  file ေလးပါ တင္ေပးလိုက္တယ္.........ေအာက္ကအဆင္ေျပမယ့္ လင့္ေတြကေနယူပါဗ်ာ...


 DOWNLOAD

DOWNLOAD