Zack Notes
SQL Injection Attack
Friday, 28 May 2010 18:46
SQL Injection ဆိုတာ ဘာလဲ မေျပာခင္ ဒီ youtube movie ေလးကို အရင္ၾကည့္လိုက္ၾကရေအာင္။ ကြၽန္ေတာ္
တစ္ခုၾကိဳေျပာခ်င္တာက သူခိုးလမ္းျပလုပ္တာ မဟုတ္ပါဘူး။ ကြၽန္ေတာ္တို႔ ဒီလိုမ်ိဳး attack ကို awareness ရွိျပီး
ၾကိဳတင္ကာကြယ္ႏိုင္ေစဖို႔ ရည္ရြယ္ျပီး ေရးလိုက္ ပါတယ္။
ကြၽန္ေတာ္တို႔ database application ေရးတဲ့ အခါ မပါမျဖစ္ ေရးရတဲ့ SQL Query ေတြကို အနည္းငယ္ ေျပာင္းလဲလိုက္ျပီး attack လုပ္တာ
ျဖစ္ပါတယ္။ SQL injection attack လုပ္ဖို႔ အတြက္ DBA တစ္ေယာက္လိုမ်ိဳး database သေဘာ တရားေတြ နားလည္ေနစရာ မလိုပဲ query
မွာ ရွိေနတဲ့ condition ေတြကို ေျပာင္းသြားဖို႔ ေလာက္ကို ေရးႏိုင္ရင္ အလုပ္ျဖစ္ပါတယ္။ အထက္မွာ ျပခဲ့တဲ့ movie ေလးအတိုင္းေပါ့။ SELECT fieldlist
ဥပမာ ေလးနဲ႔ ၾကည့္ရေအာင္
FROM table
WHERE field = 'zack@gmail.com';
ဒါက ကြၽန္ေတာ္တို႔ စစ္ေနၾက where clause ပုံစံပါ zack@gmail.com နဲ႔ တူမွ အလုပ္လုပ္မွာပါ။ အဲဒါကို ဒါမ်ိဳးေလး ေျပာင္းၾကည့္လိုက္ ၾကရေအာင္
SELECT fieldlist
FROM table
WHERE field = 'anything' OR 'x'='x';
သေဘာက ေနာက္ကေန OR ကိုထည့္ လိုက္ျပီး အျမဲမွန္ ေနတဲ့ condition တခုကို ထည့္ေပးလိုက္တာ ျဖစ္ပါတယ္။ အဲဒီလိုလုပ္လိုက္ေတာ့
ေရွ႕က condition က ျဖစ္ခ်င္တာ ျဖစ္ေပမယ့္ ေနာက္က OR ေၾကာင့္ အလုပ္လုပ္ပါမယ္။ SELECT * FROM user WHERE user_name = 'zack'
SELECT * FROM user WHERE user_name = 'anything' OR '1'='1';
ဒုတိယ query မွာ OR ေၾကာင့္ result ေတြထြက္ လာပါလိမ့္မယ္။
ဒီထက္ပိုျပီး ရက္စက္ခ်င္ တယ္ဆိုရင္ ေနာက္ကေန delete, drop စတဲ့ query ေတြကို ထည့္ေပးလိုက္လို႕ ရပါတယ္။ ဒီ example ကို
ၾကည့္လိုက္ရေအာင္။ SELECT email, passwd, login_id, full_name FROM members
WHERE email = 'x';
DELETE from members;
အဲလို႕ေရးလိုက္ရင္ ေရွ႕က query ကျဖစ္ခ်င္တာ ျဖစ္ေနလဲ ေနာက္က delete query run သြားပါမယ္။ အဲဒါဆိုရင္ေတာ့ data ေတြ ကုန္ျပီသာ
မွတ္ေပေတာ့။ကြၽန္ေတာ္ ကိုယ္တိုင္ အဲလိုမ်ိဳး SQL Injection Attack လုပ္တာကို ခံခဲ့ရဘူးပါတယ္။ ရုံးက application အေဟာင္းေတြက
SQL Injection ေတြကို ေပါက္ေနပါတယ္။ လုပ္တဲ့ ေကာင္ကလဲ delete ကိုခ်သြားတာ ကုန္ေရာပဲဗ်ာ။ကဲ ဒီေတာ့ အနာသိရင္ ေဆးရွိပါတယ္။
How to prevent SQL Injection?
PHP မွာ SQL Injection ကိုကာဖို႔ mysql_real_escape_string ဆိုတဲ့ function ေလးရွိတယ္။ အဲဒီ function ကေန \ ေလးေတြ auto ေပါင္းထည့္ ေပးသြားပါမယ္။ ဒီလိုေလးေတြ ေျပာင္းသြားပါမယ္။ SELECT * FROM customers WHERE username = '\' OR 1\''
SELECT * FROM customers WHERE username = '\'; DELETE FROM customers WHERE 1 or username = \''
mysql_real_escape_string ကိုသုံးျပီး SQL Injection Attack ကိုကာကြယ္ႏိုင္ဖို႔ ဒီ Post ေလးကို ေရးလိုက္ပါတယ္။ အသုံးမ်ားေသာ SQL Injection character မ်ား
| Input character | Meaning in Transact-SQL |
|---|---|
| ; | Query delimiter. |
|
' |
Character data string delimiter. |
| -- | Comment delimiter. |
| /* ... */ | Comment delimiters. Text between /* and */ is not evaluated by the server. |
How to create SEF URLs?
Friday, 28 May 2010 02:03
ကြၽန္ေတာ္တို႔ web site တစ္ခုကို create လုပ္တဲ့ အခါ ကိုယ္ site ကိုလာမယ့္ users ေတြအဆင္ေျပေစဖို႔၊ တနည္း 
အားျဖင့္ user friendly ျဖစ္ဖို႔ ဆိုတာ အေရးၾကီးတဲ့ အခ်က္တစ္ခုပဲ ျဖစ္ပါတယ္။ Web Site မွာ feature ေတြဘယ္
ေလာက္ စုံေအာင္ ရွိေနပါေစ user အေနနဲ႔ အသုံးျပဴရ ခက္ေနမယ္ဆိုရင္ ေအာင္ျမင္သင့္သေလာက္ ေအာင္ျမင္မည္
မဟုတ္ပါ။ user friendly ဆိုတဲ့ အခ်က္ေတြထဲမွာ ကိုယ့္ Web Site မွာရွိ ေနတဲ့ URLs ေတြကို user အလြယ္တကူ မွတ္မိေစဖို႔ရာ အလြန္
အေရးပါလွပါတယ္။ အဲဒီ အတြက္ ခုေနာက္ပိုင္းေတြမွာ SEF URLs (Search Engine Friendly URLs) ေတြျဖစ္ေအာင္ လုပ္လာၾကပါတယ္။
ကြၽန္ေတာ္ ဒီ post မွာ .htaccess + PHP ကိုသုံးျပီး SEF URLs ေတြ အလုပ္လုပ္ပုံကို share မွာျဖစ္ပါတယ္။
Apache's Mod Rewrite
SEF URLs လုပ္ဖို႔ မျဖစ္မေနသိရမွာက Apache's Mod Rewrite ပဲျဖစ္ပါတယ္။ Apache ကို install လုပ္တုန္းက အဲဒီ module ကပါျပီးသား
ျဖစ္ပါတယ္။ ၾကည့္ခ်င္တယ္ဆိုရင္ေတာ့ your apache folder\modules\mod_rewrite.so ဆိုျပီး ရွိပါတယ္။ အေရးၾကီးတာက RewriteRule
ကိုေရးတတ္ဖို႔ပဲ ျဖစ္ပါတယ္။ <?php phpinfo(); ?> ကိုေရးျပီး mod_rewrite ကို enable ျဖစ္မျဖစ္ စစ္ၾကည့္ႏိုင္ပါတယ္။
Simple ဥပမာ ေလးနဲ႔ စရရင္
alice.html နဲ႔ bob.html ႏွစ္ခုကို အရင္ create လုပ္လိုက္ပါ။ very simple html code ေလးေတြမို႔ မေရးေတာ့ဘူးဗ်ာ။
ခုေရးမယ့္ code ၂ ေၾကာင္းကို .htaccess file ထဲမွာ ထည့္ျပီး အေပၚက html ၂ခုနဲ႔ အတူ ကိုယ့္စမ္းမယ့္ project folder ေအာက္ကို
ထည့္လိုက္ပါ။
RewriteEngine on
RewriteRule ^alice.html$ bob.html
ကိုယ္က Browser မွာ alice.html ကို run လိုက္ရင္ bob.html ကို redirect လုပ္သြားမွာ ျဖစ္ပါတယ္။ အလြယ္မွတ္ခ်င္တယ္ ဆိုရင္ေတာ့
RewriteRule ^alice.html(Browser က Current URL ျဖစ္ျပီး) $ bob.html (destination URL လို႔ ဆိုႏိုင္ပါတယ္)
နဲနဲေလးပို ႐ႈပ္တဲ့ ေနာက္ ဥပမာ တစ္ခုကို ၾကည့္ရေအာင္
URL က ဒီလိုမ်ိဳးျဖစ္ေနတာကို http://www.example.com/news.php?news_id=63
ဒီလိုမ်ိဳး http://www.example.com/news/63.html user friendly url ျဖစ္ေအာင္ RewriteRule ကိုေရးၾကည့္ ပါမယ္။
Okay, ရွင္းေအာင္ ၾကည့္မယ္ဆိုရင္ structure ကဒီလိုရွိတယ္ဗ်ာ။
RewriteRule Pattern Substitution [OptionalFlags]
RewriteRule - Command ျဖစ္ပါတယ္။
Pattern - Browser ကေန ျဖစ္လာႏိုင္မယ့္ URL ပုံစံေတြပါ။
Substitution - Pattern ကိုၾကည့္ျပီး redirect လုပ္မွာ ျဖစ္ပါတယ္။ တနည္းအားျဖင့္ေတာ့ destination page ေတြလဲျဖစ္ပါတယ္။
OptionalFlags - F, L, R[=code] ဆိုျပီး flag သုံးခုကို တစ္ခု ( သို႔ ) တစ္ခုထတ္ပိုျပီး ထည့္ႏိုင္ပါတယ္။
F - Forbidden. 403 error ကိုဆိုလိုပါတယ္။
L - သေဘာကေတာ့ ခုေရးထားတဲ့ rule ကို ေအာင္ျမင္သြားရင္ ဒါဟာ ေနာက္ဆုံး rule ပဲဆိုတဲ့ သေဘာပါ။
R[=code] - ဒီေကာင္ကို သုံးမယ္ဆိုရင္ domain name တခုခုထည့္ေပးျပီး HTTP code တခုခုနဲ႔ redirect လုပ္မယ္ ဆိုတဲ့သေဘာပါ။ RewriteEngine on
RewriteRule ^news/([^/\.]+).html/?$ news.php?news_id= [L]
.htaccess ထဲမွာ ဒီ code ကိုေရးျပီး project ရဲ႕ root folder ထဲမွာ အရင္ ထည့္လိုက္ပါ။ ဒီ example မွာ optional ကိုထည့္ မသုံးထားဘူး။
ဒီ rule ကိုၾကည့္မယ္ဆိုရင္
^/news - news နဲ႔ စမယ္လို႕ ေျပာတာ
([0-9]+)\.html - regular expression ျဖစ္တဲ့ ([0-9]+) ဒီဟာေလးက number ေတြထဲက ျဖစ္ခ်င္တာျဖစ္မယ္ ျပီးေတာ့ html နဲ႔ ဆုံးမယ္။
/?$ - regular expression နဲ႔ match ျဖစ္တာေတြကိုပဲ Substitution လုပ္ဖို႔ စဥ္းစားမယ္ ဆိုတဲ့ သေဘာပါ။
news.php?news_id=$1 - ေရွ႕က regular expression ထဲကပါလာတဲ့ variable ကိုအစားထိုးျပီး actual page ကို load လုပ္မွာ
ျဖစ္ပါတယ္။
ကြၽန္ေတာ္သိသေလာက္ share ထားတာပါ။ RewirteRule ကိုခုမွ စမ္းၾကည့္ေနလို႕ မွားေနရင္ comment ေပး ေထာက္ျပေပးေစလိုပါတယ္။
Joomla 1.5 YouTube Plugin
Monday, 24 May 2010 16:22
Joomla မွာ Youtbue Movie တစ္ခုကို ထည့္ခ်င္တဲ့ အခါ plugin တစ္ခုခုကို install လုပ္ျပီး သုံးႏိုင္ပါတယ္။
ကြၽန္ေတာ္ Joomla Extension မွာ ရွာၾကည့္တဲ့ အခါ ဒီ plugin ေလးကိုသြားေတြ႔တယ္။ plugin က easiertube
လို႕ေခၚပါတယ္။ ဒီေနရာ မွာ download လုပ္ႏိုင္ပါတယ္။ ဒီ plugin ရဲ႔ ေကာင္းတာကေတာ့ ဟိုးအရင္ကလိုမ်ိဳး
{youtube}...{/youtube} tag ေတြထည့္ ေပးစရာ မလိုပဲ youtube link ကို browser ကကူးျပီး ထည့္ေပးလိုက္ရုံ
ပါပဲ။ ပိုျပီး သုံးရတာ လြယ္ကူသြားပါတယ္။ ကြၽန္ေတာ္ Site မွာသုံးထားတာ easiertube ပဲျဖစ္ပါတယ္။
World Cup 2010 and IT
Sunday, 23 May 2010 00:18
ေနာက္လ June 11 ဆိုရင္ 2010 World Cup စတင္ေတာ့မွာ ျဖစ္ပါတယ္။ ကြၽန္ေတာ္ အႏွစ္သက္ဆုံး
ဆိုတဲ့ အရာေတြထဲက တစ္ခုဆိုရင္လည္း ဟုတ္ပါတယ္။ ေျပာမယ္ဆိုရင္ ေဘာလုံးအျပင္ မ်ိဳးခ်စ္စိတ္၊
ႏိုင္ငံခ်စ္စိတ္၊ လူမ်ိဳးခ်စ္စိတ္ စတာေတြ ျပိဳင္ဆိုင္မႈေတြကိုပါ ေတြ႕ရတက္လို႕ က်န္တဲ့ ေဘာလုံးျပိဳင္ပြဲ
ေတြထက္ ၾကိဳက္ပါတယ္။ ခုလာမယ့္ World Cup မွာ IT နဲ႔ ပတ္သက္ျပီး ဘာေတြမ်ားလုပ္ထားေသးလဲ
လိုက္ၾကည့္ရင္း computerweekly က ဒီ post ေလးကိုဖတ္လိုက္မိတယ္။
Event Management System (EMS) ကိုသုံးျပီး World Cup ကိုထိန္းခ်ဳပ္ပါလိမ့္မယ္။ ဒီ system ကို developer
လုပ္ခဲ့တာကေတာ့ India Company တစ္ခုျဖစ္တဲ့ Mahindrasatyam ကျဖစ္ျပီး Microsoft .Net ကိုသုံးထားတယ္လို႕
သိရပါတယ္။ ဒီ EMS ကိုလြန္ခဲ့ေသာ သုံးႏွစ္ထဲက developer 120 နဲ႔ ေရးေနတာ ျဖစ္ျပီး 20 modules ပါဝင္ျပီး ပါဝင္ပါမယ္။
တျခား third-party system မ်ားျဖစ္ေသာ Hospitality Management ေတြနဲ႔လည္း ေပါင္းစပ္ျပီး သုံးႏိုင္ေအာင္ design
ခ်ထားတာလဲ ျဖစ္ပါတယ္။ ဒီ system ဟာ Web Based Application တစ္ခုျဖစ္ေသာ္လည္း ေဘာပြဲလာၾကည့္မယ္သူေတြရဲ႕
Ticker ေတြကို ATM လိုစက္မ်ိဳးေတြမွာ ထုတ္ယူႏိုင္တဲ့ အထိပါသုံးထားပါတယ္။ ဆိုလိုတာကဗ်ာ ခုေဘာပြဲကို လာမယ့္သူေတြက
ႏိုင္ငံေပါင္း 208 ႏိုင္ငံက ျပီးေတာ့ ေရာင္းထားတဲ့ လက္မွတ္ေပါင္းက အေစာင္ေရ 3 သန္းဆိုေတာ့ တစ္ေယာက္ခ်င္းဆီရဲ႕ လက္မွတ္
ေတြကို မပို႔ေတာ့ပဲ Barcode လိုမ်ိဳး code တခုခုကို ထုတ္ေပးထားပါတယ္။ ၾကည့္မယ္သူက Johannesburg ေလဆိပ္ကို ေရာက္ရင္
အဲဒီ barcode လိုဟာမ်ိဳးေလးနဲ႔ ATM လိုစက္မ်ိဳးမွာ သြားျပီး ကိုယ္ၾကည့္မယ့္ ပြဲလက္မွတ္ကို ထုတ္ယူႏိုင္ပါတယ္။
တျခားပါေသးတဲ့ module ေတြကေတာ့ ...
1) Accreditation system
World Cup မွာ ပါဝင္ပတ္သတ္မယ့္ FIFA ကသူေတြ၊ Players ေတြ၊ Medical Staff ေတြ၊ Volunteers ေတြကို control
လုပ္မယ့္ system ျဖစ္ပါတယ္။
2) Volunteer management system
ျပိဳင္ပြဲမွာ Volunteer ေပါင္း 130,000 ရွိမွာျဖစ္ျပီ သူတို႕ေတြရဲ႕ Recruitment and Training Function, Time Sheet Function,
Matches skills စတာေတြအျပင္ payroll function ကိုလည္း ေပါင္းထည့္ထားပါတယ္။
3) Ground transport system
ျပိဳင္ပြဲကိုလာေရာက္သူေတြရဲ႕ သြားလာေရးလြယ္ကူးေစဖို႔ လမ္းေၾကာင္းေတြ၊ အသုံးျပဳရမယ့္ ေမာ္ေတာ္ယဥ္ေတြကို manage
လုပ္ေပးမယ့္ system လည္းျဖစ္ပါတယ္။
4) Material management
က်င္းပရာေနရာမွာ အလုပ္လုပ္ေနတဲ့ staff တြဲရဲ႕ electronic assets ကို management လုပ္ႏိုင္မွာ ျဖစ္ပါတယ္။
5) Ticketing system
ကြၽန္ေတာ္ အေပၚမွာ ေျပာခဲ့ သလိုပါပဲ ခင္ဗ်ာ။ ပြဲၾကည့္လာ ပရိတ္သတ္ေတြရဲ႕ Ticket ေတြကို management လုပ္ေပးဖို႔ ျဖစ္ပါတယ္။
ဒီ EMS ကို World Cup မွာ သုံးမယ့္ တကယ္ event ေတြ၊ multiple users ေတြနဲ testing ကို ျပီးခဲ့တဲ့ April ထဲက စျပီး လုပ္ခဲ့တယ္လို႕
သိရပါတယ္။ အင္း software ဆိုတာမ်ိဳးကလည္း ဘယ္ေလာက္ပဲ ေသေအာင္စမ္းစမ္း real time ၾကမွ ထေဖာက္တက္တာမ်ိဳးရွိေတာ့
စိတ္ဝင္စားမိပါရဲ႔ ... ကြၽန္ေတာ္ အဖို႔ကေတာ့ World Cup မွာကစားမယ့္ ေဘာလုံးအသင္း သတင္းေတြအျပင္ ဒီ EMS ရဲ႕
update news ေတြကိုပါ စိတ္ဝင္စားမိတာ အမွန္ပါပဲ။
SHAKIRA ဆိုထားတဲ့ World Cup သီခ်င္းေလး တပုဒ္ပဲျဖစ္ပါတယ္။ နားေထာင္ျပီးေတာ့ waka waka ဆိုျပီးပါးစပ္ထဲစြဲသြားပါလိမ့္မယ္။
Joomla 1.6 coming soon
Sunday, 16 May 2010 21:30
Joomla ဆိိုတာကေတာ့ Content Management System ေတြထဲမွာ popular ျဖစ္တဲ့ cms တစ္ခုပဲျဖစ္ပါတယ္။ မၾကာခင္မွာ
Next Generation of Joomla လို႕ေျပာနိုင္မယ့္ Joomla 1.6 ထြက္ပါေတာ့မယ္။ ဘယ္ Feature အသစ္ေတြပါလာမယ္
ဆိုတာကို ၾကည့္ရင္ေတာ့
Implement an expanded access control system
Joomla မွာအရင္ 1.0, 1.5 version ေတြမွာထဲက user access level ေတြရွိျပီးသားျဖစ္ပါတယ္။ Community Site ေတြလုပ္တဲ့
အခါအဲ့ဒီ user access level ေတြဟာအရမ္းကိုအသံုး၀င္လွပါတယ္။ ခုဟာေျပာမယ္ဆိုရင္ေတာ့ ဒီ user တစ္ေယာက္ကို community
admin level ေပးမယ္။ ဒီ community admin access level ကဘာေတြလုပ္နိုင္တယ္ဆိုတာမ်ဳိးေတြေပါ့။ ဒီလို access level control
လုပ္တဲ့အခါမ်ိဳးေတြမွာ default Joomla user management ကမလံုေလာက္ပါဘူး။ အဲဒီအခါမ်ိဳးေတြမွာ customize လုပ္ရတာမ်ားပါတယ္။
အခု 1.6 မွာအဲဒီေနရာေတြကို Build-in အေနနဲ႕ expand လုပ္လာမယ့္ပံုရွိပါတယ္။
Implement a nested categories solution
ဒီ Feature ကပါသင့္တာၾကာပါျပီ။ category create လုပ္တဲ့အခါ nested သေဘာ parent/child စတာေတြပါလာပါေတာ့မယ္။
Add a commenting system
အခုလက္ရွိက comment အတြက္ component တစ္ခုကို install လုပ္ေပးေနရပါတယ္။ Default အေနနဲ႕ comment system
ကိုထည့္ေပးမယ္ဆို ေတာ့ပိုေကာင္းသြားတာေပါ့။
Add standardize the way extensions are built using the MVC Framework
Extension ေတြဟာ MVC standard ကိုလိုက္နာရမယ့္ပံုေပၚပါတယ္။ 1.5 extension ေတာ္ေတာ္မ်ားမ်ားဟာ MVC ျဖစ္ျပီးသားပါ။
အထက္မွာေျပာခဲ့တဲ့အခ်က္ေတြထဲမွာ new access control system နဲ႕ nested category system ေတြက complete ျဖစ္ေနျပီလို႕
ေျပာပါတယ္။ comment system ကေတာ့ core feature အေနနဲ႕မထည့္ရေသးဘူးလို႕ေျပာပါတယ္။ ဒါေပမယ့္ကြ်န္ေတာ္ 1.6 ကို install
လုပ္ျပီးစမ္းၾကည့္တာ Back End/ Administrator Site မွာ error တက္ေနပါတယ္။ complete ျဖစ္တယ္ဆိုတာေတြေတာင္ၾကည့္လို႕မရပါဘူး။
ကြ်န္ေတာ္စမ္းၾကည့္တာကေတာ့ Alpha 2 မွာျဖစ္ပါတယ္။
Joomla 1.6 မွာပါလာမယ့္ Feature list ကေတာ့
- Articles manager
-
Banners manager
-
Configuration manager (used for Global Configuration and Component options)
-
Modules manager
-
Messages (private) manager
-
Newsfeeds manager
-
Plugins manager
-
Redirect manager (a new component to redirect old page links to new ones)
-
Search manager
-
Template manager (including new "styles")
-
User manager (includes ability to add new user groups and content access levels)
-
Weblinks manager
Joomla .16 ကို 2010 June မွာ Beta Version နဲ႕ July မွာေတာ့ first stable version ကို လုပ္မယ္လို႕ေတာ့ေျပာထားပါတယ္။
ဘာေတြပိုေကာင္းလာျပီး ဘာေတြျဖစ္လာမယ္။ တကယ္ပဲ ျဖစ္လာမလားဆိုတာေတြကိုေတာ့ေစာင့္ၾ့ကည့္ေပါ့ဗ်ာ။
Programming is Art of Thinking
Written by Zack Friday, 14 May 2010 12:41
ကြၽန္ေတာ္ တေလာက Myanmar Tutorials မွာ IT နဲ႔ lateral thinking ဆက္ဆက္ပုံ အေၾကာင္းကို
ဖတ္လိုက္ရပါတယ္။ ဖတ္ျပီးေတာ့ ကြၽန္ေတာ္ ဆက္စဥ္းစားမိတာက programmer တစ္ေယာက္႐ႉေထာင့္ကေန
ၾကည့္ရင္ programming မွာေရာ တျခား ဘယ္လို thinking ေတြရွိေသးလဲ ဆိုတာပဲ ျဖစ္ပါတယ္။
Programming မွာ တျခားေသာ thinking ေတြလည္း ရွိေနေသာေၾကာင့္ ဒီ post ကို
Programming is Art of Thinking လို႕ အမည္တပ္လိုက္ပါတယ္။ ဘာ Thinking ေတြလဲ ဆိုတာ ဆက္သြားလိုက္ရေအာင္
1) Breakthrough Thinking ( ေဖာက္ထြက္ေတြးနည္း )
Programmer တစ္ေယာက္အေနနဲ႔ သမ႐ိုးက်ေတြကေန ေဖာက္ထြက္ေတြးေတာတက္ဖို႔ လိုပါတယ္။ ကြၽန္ေတာ္တို႔ ဟိုးအရင္တုံးက
javascript ကိုသာ form validation ေတြမွာ သုံးက်ေပမယ့္ ခုေနာက္ပိုင္းမွာ AJAX, jQuery စတာေတြက အစားထိုး ေနရာယူလာတာကို
ေတြ႔ရပါတယ္။ ဒါကို ၾကည့္မယ္ဆိုရင္ Breakthrough Thinking ကို အေျခခံျပီး ပိုေကာင္းမြန္တဲ့ result ေတြရလာေအာင္ လုပ္ခဲ့တဲ့ ဥပမာ
တစ္ခုပဲ ျဖစ္ပါတယ္။ Forum ေတြကေန QA based site ေျပာင္းလာတာလဲ ဒီသေဘာပဲ ျဖစ္ပါတယ္။
2) Productive Thinking ( အသစ္ေမွ်ာ္ စဥ္းစားနည္း )
ေရွ႕ဘာေျပာင္းလဲမႈေတြ ျဖစ္လာႏိုင္မလဲ ဘာေတြကို ျပင္ဆင္ထားမလဲ ဆိုတာလဲ Programmer တစ္ေယာက္ရဲ႕ Thinking ထဲမွာ ပါပါတယ္။
ဘာလို႕လဲ ဆိုရင္ ငါဟာ VB 4.0, VB 6.0 ဆရာၾကီးပဲကြဆိုျပီး အသစ္ေတြကို မျပင္ဆင္ပဲ ေနခဲ့မယ္ဆိုရင္ market demand အရ သူဟာ
ေနာက္က် က်န္ေနခဲ့ပါလိမ့္မယ္။ ဒီေနရာမွာ Cross Question တစ္ခု ရွိတာက ဒီေလာက္ လ်င္လ်င္ျမန္ျမန္ေျပာင္းလဲေနတဲ့ ေခတ္မွာ
အသစ္တိုင္းကို ဘယ္လိုလိုက္ႏိုင္မလဲ ဆိုတာ ျဖစ္ပါတယ္။ ဒီအတြတ္ 3Ps ကို based လုပ္ျပီး ဆုံးျဖတ္ ရပါမယ္။ အဲဒါေတြကေတာ့
- Possible ( ျဖစ္ႏိုင္စရာ ရွိေသာ )
- Probable ( ျဖစ္တန္ရာေသာ )
- Preferable ( ျဖစ္သင့္ျဖစ္ ထိုက္သည္ဟု ယူဆရေသာ )
3) Lateral Thinking ( ျဖန္႔ထြက္ေတြးနည္း )
Programming ေရးရာတြင္ ျဖစ္ေစ၊ error တစ္ခုခုကို ရွင္းရာမွာ ျဖစ္ေစ Lateral Thinking မရွိရင္ အခ်ိန္ကုန္၊ လူပန္း အက်ိဳးမရွိ ျဖစ္တတ္
ပါတယ္။ ကြၽန္ေတာ္တို႔ က ျပသနာ တခုနဲ႔ေတြရင္ ေဘာင္အတြင္းကေနျပီး လုံးခ်ာလည္ စဥ္းစားတက္က်လိုပါပဲ။ တကယ္ေတာ့ ျပသနာ
အျပင္ကေနထြက္ျပီး စဥ္းစားမယ္ဆိုရင္ solution ကရွိေနျပီးသားပါ။ Lateral Thinking အတြက္ ႐ိုးရွင္းျပီး အေကာင္းဆုံး ဥပမာကေတာ့
အစက္ ကိုးခုကို မ်ဥ္း ေလးေၾကာင္းနဲ႔ ထိေအာင္ဆြဲရမွာ ျဖစ္ပါတယ္။ ဆြဲတဲ့ အခါမွာလည္း ေဘာပင္ကို မႂကြပဲ တစ္ခ်က္ထဲနဲ႔ ဆြဲရမွာ ျဖစ္ပါတယ္။
Myanmar Tutorials post မွာလည္း ဒီ ဥပမာကို ပဲေပးထားပါတယ္။ စိတ္ဝင္စားရင္ ဒီမွာ စဥ္းစားၾကည့္ႏိုင္ပါတယ္။
4) Innovative (or) Creative Thinking ( ထြင္ေတြးနည္း )
21 ရာစု နည္းပညာေခတ္ကို ျဖတ္သန္းေနရာမွာ Idea Alternative ေတြမၾကာ ခဏဆိုသလို ျဖစ္ပါတယ္။ အဲဒါေတြဟာ Innovative (or)
Creative Thinking ေတြေပၚမူတည္ျပီး Technology, Products အသစ္ေတြ ျဖစ္ေပၚလာျခင္းပဲ ျဖစ္ပါတယ္။ ၾကည့္မယ္ဆိုရင္ သာမန္ mobile
ေတြကေန Smart phone, PDA Phone, iPhone ေတြရဲ႕ အဆင့္ဆင့္ ေျပာင္းလဲလာပုံကို ျမင္ႏိုင္ပါတယ္။ ဒါေၾကာင့္လည္း Programmer
တစ္ေယာက္ အတြက္ Creative Thinking ေကာင္းဖို႔လည္း လိုပါတယ္။
အဲဒါေတြကေတာ့ Programming မွာ ကြၽန္ေတာ္ သိထားသေလာက္ Thinking ေတြပဲျဖစ္ပါတယ္။ How to Think, What to Think,
Why to Think ေတြနဲ႔ Art of Thinking ရဲ႕ အလွအပကို ျမင္ႏိုင္က်ပါေစ။ သူငယ္ခ်င္းတို႔ အျမင္မွာ တျခား Thinking ေတြ ရွိေနအံုးမယ္
ဆိုရင္လည္း Comment ေပးျပီး ေဆြးေႏြးဖို႔ ဖိတ္ေခၚပါတယ္။
ဒီ post ကို ဖတ္တ့ဲ အခါ comment ေလးေတြကိုပါ ဆက္ဖတ္ေစလိုပါတယ္။ တျခား thinking ေတြကိုလည္း comment ေပးေဆြးေႏြး
ထားၾကလို႕ သူတို႔ေတြရဲ႕ မူရင္းေလး အတိုင္း ဖတ္ၾကည့္ႏိုင္ပါတယ္။
More Articles...
Page 7 of 30
«StartPrev12345678910NextEnd»Latest Post
Login Form
Categories Table View
- Reader's Conner (103)
- PHP (45)
- Joomla CMS (36)
- Codeigniter (10)
- jQuery (6)
- PHP & AJAX (4)
- Apache (3)
- For Mac (3)
- mySQL (2)
