PHP ကို အခုမှ စလေ့လာမယ့်သူများအတွက် မိုးမြင့်ရှိန်ရေးထားတဲ့ စာအုပ်လေး မျှဝေလိုက်ပါတယ်။ PHP ရဲ့ အခြေခံနဲ့ ပတ်သက်ပြီးတော့ ပြည့်ပြည့်စုံစုံလေး မြန်မာလိုရေးပေးထားတဲ့အတွက် မြန်မာစာအုပ်မှ ဖတ်ချင်တယ်ဆိုတဲ့ သူများအတွက် အဆင်ပြေမယ့် စာအုပ်တစ်အုပ်ပါ။
Learn Objective C : Day 1
Objective C series ထဲမှာ အခြား အပိုင်းများ
- Day 1: Introduction to C Programming
- Day 2: Introduction to Objective C
- Day 3: Working With Class
- Day 4: More Work With Class
- Day 5: Memory Management
Objective C ဆိုတာ ဘာလဲ။
Objective C ဆိုတာကတော့ Objective Oriented Language တစ်ခုဖြစ်ပြီး C Language ပေါ်မှာ အခြေခံထားခြင်းဖြစ်ပါတယ်။ သူဟာလက်ရှိ Mac OS X နဲ့ iOS အတွက် အဓိက programming language တစ်ခုပါပဲ။ အရင်တုန်းကတော့ NeXTSTEP OS ရဲ့ အဓိက language တစ်ခုပါ။ အဲဒီ OS ကို apple က ဝယ်ပြီး OS X ကို ထုတ်လုပ်ခဲ့ပါတယ်။
Objective C ဟာ C ကို အခြေခံထားပြီး C ကိုလည်း run နိုင်ပါတယ်။ Objective C ဟာ C ပါ run နိုင်တာကြောင့် C လုပ်နိုင်သမျှ အကုန်လုံးကို Objective C က လုပ်နိုင်ပါတယ်။
ဘာတွေ လိုအပ်သလဲ။
အခု ကျွန်တော်တို့ iPhone Development မလုပ်သေးခင် Objective C အကြောင်းကို သိထားဖို့လိုပါတယ်။ Objective C ကို စမ်းဖို့အတွက် XCode ကို သွင်းတဲ့အခါမှာ Mac OSX SDK ကိုပါသွင်းခဲ့ဖို့ လိုပါလိမ့်မယ်။ iPhone SDK ကို သွင်းတဲ့အခါမှာ XCode , Interface Builder အပြင် အခြား Application တွေပါပါဝင်ပါတယ်။ ထို့အတူ gcc ကိုလည်း အလိုအလျောက်သွင်းသွားပါလိမ့်မယ်။
Objective C ကို လေ့လာတဲ့ အခါမှာ C ကို အခြေခံသိထားတဲ့ သူတွေဆိုရင် ပိုကောင်းပါလိမ့်မယ်။ C programming language က programmer တော်တော်များများရဲ့ ပထမဆုံး အခြေခံ language ဆိုလည်း မများပါဘူး။ တကယ်လို့ C ကို မလေ့လခဲ့လည်း ကိစ္စတော့ သိပ်မရှိပါဘူး။ Programming ကို တတ်ကျွမ်းထားရင် လေ့လာနိုင်ပါလိမ့်မယ်။
iPhone Development လုပ်ဖို့အတွက် Mac OSX လိုအပ်ပါတယ်။ Intel CPU Mac တွေ လိုအပ်ပါတယ်။ ဒါကြောင့် Mac user မဟုတ်တဲ့သူတွေအတွက် Objetive C ကို လေ့လာလို့ ရမှာမဟုတ်ပါဘူး။ နောက်ပြီးတော့ Objective C ကို အဓိက ထားမှာ ဖြစ်တဲ့အတွက်ကြောင့် iPhone Development ကို ချက်ခြင်း ကူးမှာ မဟုတ်ပါဘူး။ Objective C အခြေခံမရှိပဲ iPhone Development ပိုင်းကို ကူးတဲ့အခါမှာ ပြဿနာတွေ ကြံုတတ်ပါတယ်။
Compile လုပ်ခြင်း
GCC က ကျွန်တော်တို့ စက်တွေထဲမှာ ရှိနေပြီးသား ဖြစ်တဲ့အတွက် သီးသန့် သွင်းနေစရာ မလိုတော့ပါဘူး။ တစ်ခါတည်း code တွေကို compile လုပ်လို့ရပါတယ်။ အခု အပိုင်းမှာတော့ C ကိုပဲ Mac မှာ ဘယ်လို compile လုပ်သလဲဆိုတာလေးကို အခြေခံအနေနဲ့ ရေးသားမှာပါ။ Application -> Terminal ကို ဖွင့်ပြီး Terminal ကနေ ကျွန်တော်တို့ gcc ကို compile လုပ်ရပါတယ်။
[lang name=shell]$gcc inputfile.m -o outputfile[/c]
အဲလို မျိုး compile လုပ်ပြီးသား program ကို run ဖို့အတွက်ကတော့
[lang name=shell]$./outputfile[/c]
ဆိုပြီး run လိုက်လို့ရပါတယ်။
The Basics
ကဲ … ကျွန်တော်တို့တွေ ဥပမာလေး တစ်ခုလောက် စမ်းရအောင်။ Desktop ပေါ်မှာ Test ဆိုတဲ့ Folder လေး ဆောက်လိုက်ပါ။ Texteditor မှာ C code ကို အောက်ပါ အတိုင်း ရိုက်နိုင်ပါတယ်။
#include <stdio.h> int main(){ printf("Hello World\n"); return 0; }
ပြီးတဲ့ အခါမှာ Test ဆိုတဲ့ Folder ထဲမှာ program1.m နာမည်နဲ့ သိမ်းလိုက်ပါ။ Terminal ကို ဖွင့်ပြီး
$cd ~/Desktop/Test
$gcc program1.m -o program1
$./program1
အဲဒါဆို compile လုပ်ပြီးသား program ကို run လိုက်တဲ့အခါမှာတော့ Hello World ဆိုတဲ့ စာလေးထွက်လာပါလိမ့်မယ်။ code လေးကတော့ ရှင်းရှင်းလေးပါပဲ။ computer တက္ကသိုလ် first year ပြီးထားတဲ့သူတိုင်း သိတဲ့ code လေးပါ။ printf နဲ့ ထုတ်ပြီး \n ကတော့ တစ်ကြောင်းဆင်းထားလိုက်တာပါ။
Variable
Variable ကတော့ data တွေကို memory ပေါ်မှာ သိမ်းဖို့အတွက်ပါ။ Variable တွေမှာ variable type တွေ ရှိပါတယ်။ ဒါတွေကတော့ programming အခြေခံတတ်ထားပြီးသားသူတွေအတွက် သိပြီးသားလို့ ထင်ပါတယ်။ variable type တွေကတော့
- int – integer နံပတ်တွေကို သိမ်းဖို့အတွက်ပါ။
- char – character တွေကို သိမ်းဖို့အတွက်ပေါ့။
- float – ဒဿမ ကိန်းတွေအတွက်ပါ။
- double – ဒဿမ ကိန်းတွေအတွက်ပါပဲ။ ဒါပေမယ့် သူက float ထက် ပိုပြီး အရေအတွက်များပါတယ်။
variable ကို ဘာလို့ အသုံးပြုရသလဲဆိုတော့
1+10 = 11
ဖြစ်ပါမယ်။ အမြဲ ပုံသေ မဟုတ်ချင်တဲ့အခါမှာတော့ variable ကို အသုံးပြုပါတယ်။
1+i= ?
အဲဒါဆိုရင် နံပတ်တွေက အမျိုးမျိုး ဖြစ်နိုင်တယ်ပေါ့။ variable ထဲမှာ ထည့်ထားတဲ့ နံပတ်ပေါ်မှာ အခြေခံပြီးတော့ အဖြေလည်း ပြောင်းသွားပါလိမ့်မယ်။ ဟုတ်ပြီ။ အပေါ်က c code လေး ကို အောက်ကလို နည်းနည်းထပ်ပြောင်းပါမယ်။
#include <stdio.h> int main(){ int someNumber = 123; printf("My number is %i \n", someNumber); return 0; }
အဲဒါကို run လိုက်ရင် 123 ဆိုပြီး ဖြစ်သွားပါလိမ့်မယ်။ printf ကို သုံးတဲ့အခါမှာ variable ပေါ်မယ့် နေရာတွေကို ဘာ variable ဆိုပြီး data type ပေါ်မူတည်ပြီး text လေးထည့်ပေးရပါတယ်။ အခု ဥပမာမှာ %i ကို ထည့်ထားတာ တွေ့ပါလိမ့်မယ်။ အဲဒါက someNumber က int ဖြစ်နေလို့ပါ။ အခြားဟာတွေအတွက် အောက်မှာ ကြည့်နိုင်ပါတယ်။
- %i – integer အတွက်
- %f – float အတွက်
- %e – double အတွက်
- %c – char အတွက်
ဒါတွေက အရေးကြီးပါတယ်။ C မှာ သာမဟုတ် နောက်ပိုင်း Objective C ကို ရေးသားရာမှာလည်း အသုံးများလာပါလိမ့်မယ်။ အဲဒီအထဲမှာ character က string အတွက် အသုံးပြုမယ်ဆိုရင် အခန်းတွေ အများကြီးနဲ့ တွဲပြီး အသုံးပြုရပါတယ်။ ဥပမာ။။ Hello World ဆိုတဲ့ စာလုံး ၁၁ လုံး မှာဆိုရင် chr[0] က H ပေါ့။ အဲလိုမျိုး 0 ကနေ စပြီး 10 အထိ အခန်းပုံစံတွေနဲ့ အသုံးပြုရပါတယ်။
Conditionals
လောကမှာ အရာအားလုံးက တဆင့်ပြီး တဆင့်ဖြစ်နေတာ ရှိနေသလို အချို့နေရာတွေမှာကတော့ ဒါဖြစ်ရင်ဒါလုပ် မဖြစ်ခဲ့ရင် ဒါလုပ် ဆိုတဲ့ Conditional တွေ ရှိပါတယ်။ Programming မှာလည်း ရှိပါတယ်။ အဲဒီအခါမှာ programming မှာ if နဲ့ အသုံးပြုပါတယ်။ code ကတော့ အောက်မှာ ဥပမာ ပေးထားပါတယ်။
#include <stdio.h> int main() { if(1 == 1) { // This is always true // Do some stuff here } return 0; }
1 နဲ့ 1 သာ တူခဲ့ရင် true ဖြစ်ပြီး အောက်က { နဲ့ စပြီး } ပိတ်ထားတဲ့ ကြားက code တွေကို အလုပ်လုပ်မှာပါ။ မဖြစ်ခဲ့ရင် condition အတွက်တော့ else ဆိုတာကို အသုံးပြုနိုင်ပါတယ်။ // နဲ့ ရေးထားတာတွေက comment ပါ။
int main(){ if(1==1){ // Do some stuff here. } else{ // The universe is broken! } return 0; }
ကျွန်တော်တို့တွေ အဲဒီ 1==1 ဆိုတဲ့ နေရာတွေမှာ variable တွေထားပြီး စစ်နိုင်ပါတယ်။ i==1 ဖြစ်လားဆိုသလိုမျိုးပေါ့
Loop
ကြိမ်ဖန်များစွာ ထပ်ခါ ထပ်ခါ လုပ်နေရင် Loop လုပ်တယ်လို့ ခေါ်ပါတယ်။ Looping အတွက် ကျွန်တော်တို့တွေ for , while , do တွေကို အသုံးပြုကြပါတယ်။
// if loop int main () { int i = 9; int x = 0; for (x = 0; x &lt; i; x++){ printf("Count is: %i\n", x); } return 0; }
အဲဒါလေးကတော့ for loop ပေါ့။ x က 0 ကနေ စပြီးတော့ i ထက် ငယ်တဲ့အထိပေါ့။ i က 9 ဖြစ်တဲ့အတွက်ကြောင့် 0 ကနေ 8 အထိ အလုပ်လုပ်ပါမယ်။ အဲဒီတော့ Count is 0 ကနေ Count is 8 ထိကို ဖော်ပြပေးပါလိမ့်မယ်။
// while loop int main () { int x = 0; while (x < 10){ printf("Count is: %i\n", x); //Watch OUT! Something is missing. } return 0; }
ဒါကတော့ while loop ပေါ့။ သူကတော့ variable တစ်ခုထဲပါပဲ။ x ကို 0 လို့ သတ်မှတ်ထားတယ်။ 10 ထက် ငယ်နေသ၍ အလုပ်လုပ်မယ်လို့ ဆိုထားတာပါ။ ဒါပေမယ့် အဲဒီ code ကို run ရင် ပြီးတော့မှာ မဟုတ်ပါဘူး။ ဘာကြောင့်လဲဆိုတော့ x တန်ဖိုး မပြောင်းလဲသွားတဲ့အတွက်ကြောင့်ပါ။ for loop မှာတုန်းက x++ ဆိုပြီး x တန်ဖိုးကို ၁ တိုးတိုး သွားပါတယ်။ while loop မှာလည်း အဲလို တန်ဖိုး တိုးပေးဖို့လိုပါတယ်။ အဲဒါကြောင့် အောက်ကလို နည်းနည်းပြင်လိုက်ပါတယ်။
// while loop int main () { int x = 0; while (x < 10){ x++; printf("Count is: %i\n", x); } return 0; }
အဲဒီအခါ x ကို ၁ တိုးတိုးသွားတဲ့အတွက် ၁၀ ရောက်တာနဲ့ ၁၀ ထက် မငယ်တော့တာကြောင့် loop က ထွက်သွားပါလိမ့်မယ်။ do loop က လည်း while loop နဲ့ အတူတူပါပဲ။ မတူတာကတော့ condition ကို အောက်မှာ စစ်တာပါပဲ။ while loop က process မစခင် စစ်ပေမယ့် do loop က process ကို အနည်းဆုံး ၁ ခေါက်လုပ်ပြီးမှ condition ကို စစ်ပါတယ်။
// do loop int main () { int x = 0; do { x++; printf("Count is: %i\n", x); } while(x < 10); return 0; }
Pointer
pointer က memory ပေါ်က address နံပတ်ကို မှတ်ထားတာပါ။ variable က value ကို မှတ်ပေမယ့် pointer က memory address ကို မှတ်ထားပြီး အဲဒီ memory address ကို value ကို လှမ်းယူတာပေါ့။ ဥပမာ။။ variable value က အမြဲ ပေါင်းနေပေမယ့် variable ရဲ့ address က တစ်ခုတည်းမှာပဲ value တွေ ပြောင်းပြောင်းသွားနေတာပါ။ ဒါကြောင့် address နံပတ်ကို လှမ်းခေါ်လိုက်ရင် variable မှာ ပြောင်းထားတဲ့ value ကို ရနိုင်ပါတယ်။
int foo = 123; // This is an integer variable int *ptr = &foo; // This is a pointer to an integer variable
ရှုပ်သွားလောက်ပြီထင်တယ်။ နောက်ပိုင်းမှာ Objective-C လေ့လာရင်း pointer အသုံးပြုပုံတွေ တွေ့လာမှာပါ။ အဲဒီ အခါ ထပ်ရှင်းပြတာပေါ့။
အဆုံးသတ်ခြင်း
ဒီနေ့မှာတော့ Objective-C မစခင် C ကို ပြန်နွှေပေးတာပါ။ လွယ်လွယ်လေးနဲ့ ပြန်မှတ်မိအောင်ပေါ့။ အချို့တွေကလည်း C ကို အသုံးမပြုတာကြာပြီဆိုတော့ မေ့သွားလောက်ပြီ။ ဒါကြောင့် Objective-C မစခင် ပြန်ပြီး နွှေးပေးတဲ့ သဘောပါ။ နောက်နေ့မှာ Objective-C အကြောင်း Intro လေး စပါမယ်။
Reference : http://mobile.tutsplus.com/tutorials/iphone/learn-objective-c-day-1/
MVC Post Collection
MVC နဲ့ သက်ဆိုင်တဲ့ Post လေးတွေ ကို စုစည်း တင်ပြထားပါတယ်။
PHP MVC Framework ဘယ်လို ဖန်တီးရသလဲဆိုတာကို အောက်က link တွေကနေ လေ့လာလို့ရပါတယ်။
HTML5
HTML 5 ဆိုတာကတော့ အခုနောက်ပိုင်း ခေတ်စားလာပါတယ်။ အခုနောက်ပိုင်း Browser တွေဟာ HTML5 ကို support လုပ်လာပါပြီ။ နောက်ပိုင်းမှာ website တွေဟာ HTML5 ကို အဓိက အသုံးပြုတော့မှာပါ။ HTML5 ဆိုတာဘာလဲ။ HTML5 က ဘာတွေ ထူးလဲ။ HTML5 ကို ဘယ်မှာလေ့လာလို့ရမလဲ။
HTML 5 ~= HTML 5 + jsAPI + CSS3
လို့ ဆိုလို့ရပါတယ်။ HTML ဆိုတာက tag တွေပါပဲ။ ထူးထူးခြားခြားရယ်လို့ မရှိလာပေမယ့် HTML5 နဲ့ အတူ တွဲပါလာတဲ့ javascript API အသစ်တွေနဲ့ CSS3 က ထူးခြားမှုတွေ ဖြစ်စေပါတယ်။
CSS – Part 3 : Text Formating
Text formatting ဆိုတာကတော့ စာလုံးတွေကို အရောင်ထည့်တာတွေ နောက်ပြီး font တွေပြောင်းတာ alignment လုပ်တာ စတာတွေကို css ကို ဆောင်ရွက်လို့ရပါတယ်။
Text Color
text color ကိုတော့ CSS မှာ color လို့သုံးပါတယ်။ အောက်မှာ ဥပမာ ကြည့်ပါ။
body { color:#FF0000; }
လို့ဆိုရင် body စာလုံးတွေက အနီရောင်နဲ့ ပြပေးမှာပါ။
Text alignment
text alignment ကတော့ left, right , center,justify ဆိုပြီး သတ်မှတ်ပေးတာပါ။ ကျွန်တော်တို့ html မှာက align နဲ့ လုပ်ခဲ့တာ မှတ်မိအုံးမယ်ထင်ပါတယ်။ CSS မှာကတော့
p { text-align: center; } h1 { text-align: right; } h2 { text-align : justify }
left ကတော့ default ပါ။ ဒါလေးတွေက လွယ်သေးတော့ ကိုယ့်ဘာသာ ကိုယ်စမ်းကြည့်လိုက်ပါ။
Text Transformation
ကျွန်တော်တို့တွေ HTML မှာ upper case တွေ lower case တွေပြောင်းချင်ရင် စာတွေ ပြန်ပြင်ရိုက်ရပါတယ်။ CSS သုံးရင် အဲလို ပြန်ပြင်ရိုက်တဲ့ ပြဿနာ ရှင်းသွားပါတယ်။ အောက်က example လေး ကို ကြည့်ကြည့်ပါ။
<html> <head> <title>Sample</title> <style type="text/css"> p.uppercase {text-transform:uppercase;} p.lowercase {text-transform:lowercase;} p.capitalize {text-transform:capitalize;} </style> <body> <p class="uppercase">uppder case</p> <p class="lowercase">LOWER CASE</p> <p class="capitalize">capitalize</p> </body> </head> </html>
Text Indentation
စာလုံးတွေကိုရွှေ့ချင်တယ်ဆိုရင် indentation ကို သုံးလို့ရပါတယ်။ အောက်က ဥပမာလေး ကိုကြည့်ကြည့်ပါ။
<html> <head> <title>Sample</title> <style type="text/css"> p {text-indent:50px;} </style> <body> <p> Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing </p> </body> </head> </html>
Space between characters
Characters တစ်ခုနဲ့ တစ်ခုကြား space တွေကို ခြားချင်ရင်တော့ letter-spacing ဆိုတာကို သုံးလို့ရပါတယ်။
<html> <head> <style type="text/css"> h1 {letter-spacing:2px;} h2 {letter-spacing:-3px;} </style> </head> <body> <h1>This is heading 1</h1> <h2>This is heading 2</h2> </body> </html>
Space Between Lines
Characters တစ်ခုနဲ့ တစ်ခုကြား space အကွာအဝေး ချိန်ညှိလို့ရသလို line တစ်ခုနဲ့ တစ်ခုကြားလည်း line-height နဲ့ ချိန်ညှိလို့ရပါတယ်။ အောက်က example လေးကို လေ့လာကြည့်ပါ။
<html> <head> <style type="text/css"> p.small {line-height:90%;} p.big {line-height:200%;} </style> </head> <body> <p> This is a paragraph with a standard line-height. The default line height in most browsers is about 110% to 120%. This is a paragraph with a standard line-height. </p> <p class="small"> This is a paragraph with a smaller line-height. This is a paragraph with a smaller line-height. This is a paragraph with a smaller line-height. </p> <p class="big"> This is a paragraph with a bigger line-height. This is a paragraph with a bigger line-height. This is a paragraph with a bigger line-height. </p> </body> </html>
Right To Left Text
ဒါကတော့ ကျွန်တော်တို့တွေ သုံးခဲတယ်။ left to right ရေးရတဲ့ ဘာသာစကားတွေအတွက် သုံးတာပါ။ ဥပမာ တော့ မပြတော့ဘူး။ ဘယ်လိုပေါ်လဲ သိချင်ရင် စမ်းကြည့်နိုင်ပါတယ်။
p{direction:rtl;}
Word Spacing
Character spacing , line spacing တွေပြီးတော့ word spacing ပေါ့။
<html> <head> <style type="text/css"> p { word-spacing:30px; } </style> </head> <body> <p> This is some text. This is some text. </p> </body> </html>
Nowrap
စာလုံးတွေကို wrap မဖြစ်ချင်ဘူး။ စာလုံးက တစ်တန်းပြည့်သွားပေမယ့် အောက်တစ်လိုင်း မဆင်းသွား စေချင်ဘူးဆိုရင် white-space ကို nowrap ပေးရပါတယ်။
p { white-space:nowrap; }
ကိုယ့်ဘာသာ ကိုယ်စမ်းကြည့်လိုက်ပေါ့။
Vertical Align
image တွေမှာ ကျွန်တော်တို့တွေ HTML တုန်းက align တွေလိုက်ထည့်ရတယ်။ text align ညှိတာပေါ့။ အဲလိုမျိုးပဲ CSS မှာလည်း သုံးလို့ရပါတယ်။
<html> <head> <style type="text/css"> img.top {vertical-align:text-top;} img.bottom {vertical-align:text-bottom;} </style> </head> <body> <p>An <img src="w3schools_logo.gif" alt="W3Schools" width="270" height="50" /> image with a default alignment.</p> <p>An <img class="top" src="w3schools_logo.gif" alt="W3Schools" width="270" height="50" /> image with a text-top alignment.</p> <p>An <img class="bottom" src="w3schools_logo.gif" alt="W3Schools" width="270" height="50" /> image with a text-bottom alignment.</p> </body> </html>
Text-shadow
စာလုံးတွေနောက်မှာ shadow ထည့်ချင်တဲ့အခါမှာတော့ text-shadow ကို သုံးနိုင်ပါတယ်။
<html> <head> <style> p.test { text-shadow: #6374AB 20px 25px 2px; } </style> </head> <body> <p class="test">This is txt shadow</p> </body> </html>
text-shadow: #အရောင် , X , Y, bluer ဆိုပြီး ထည့်ပေးရတာပါ။
CSS Text Properties
Property |
Description |
Values |
color |
text color |
color |
direction |
text direction |
ltr rtl |
line-height |
line တစ်ခုနဲ့ တစ်ခုကြား အမြင့် |
normal number length % |
letter-spacing |
characters တစ်ခုနဲ့ တစ်ခုကြား အကွာအဝေး |
normal length |
text-align |
text align ညှိခြင်း |
left right center justify |
text-decoration |
add decoration to text |
none underline overline line-through blink |
text-indent |
indent ရွှေ့ခြင်း |
length % |
text-shadow |
အရိပ်ထည့်ခြင်း |
none color length |
text-transform |
uppercase , lowercase ပြောင်းခြင်း |
none capitalize uppercase lowercase |
vertical-align |
vertical align |
baseline sub super top text-top middle bottom text-btoom length % |
white-space |
wrap text လုပ်မလုပ် |
normal pre nowrap |
word-spacing |
word တစ်ခုနဲ့တစ်ခုကြား spacing |
normal length |
Cheat Sheet For Web Essential
Cheat Sheet ဆိုတာကတော့ ကျွန်တော်တို့တွေ ပုံမှန် များပြားလှတဲ့ reference တွေကို လိုအပ်ပြီး အသုံးဝင်တာတွေ စုစည်းထားတာကို ဆိုတာပါ။ တနည်းပြောရင် quick reference လို့ ဆိုလို့ရပါတယ်။ ကျွန်တော် HTML, CSS , jQuery အကြောင်း MZ Edu မှာ ရေးခဲ့ဘူးပါတယ်။ အခု Web Development လုပ်မယ့်သူတွေအနေနဲ့ HTML, CSS , jQuery တို့ကို သိထားဖို့လိုအပ်ပါတယ်။ ရေးသားရာမှာလည်း လွယ်လွယ်ကူကူ reference လုပ်လို့ရအောင် cheat sheet လေးတွေ ဆောင်ထားဖို့လည်း လိုအပ်ပါတယ်။
Continue reading “Cheat Sheet For Web Essential”
HTML5 Form
HTML အကြောင်းကို ကျွန်တော် ရေးခဲ့ပြီးပါပြီ။ ရေးထားခဲ့တဲ့ စာအုပ်က HTML4 အကြောင်းပါ။ အခု HTML5 မှာ ပါဝင်လာတဲ့ feature တွေထဲက form အကြောင်း ထပ်မံဖြည့်စွက်ထားပါတယ်။
Placeholder
textbox မှာ စာမဖြည့်ခင် textbox information ပြထားချင်တဲ့အခါမှာ အရင်တုန်းက jquery ကို သုံးပြီးရေးရတယ်။ အဲဒီလို ရေးမယ့် အစား HTML5 မှာ placeholder ဆိုတဲ့ attribute ကို သုံးလို့ရပါတယ်။ code ကိုတော့ ဒီလိုရေးတယ်။
<input type="text" placeholder="Enter Your Name" />
အဲဒီ code လေးက လက်ရှိ webkit borwser တွေမှာ အလုပ်လုပ်ပါတယ်။ Firefox 3.6 မှာတော့ အလုပ်မလုပ်သေးပါဘူး။ နောက်ပိုင်း version တွေမှာတော့ အလုပ်လုပ်မယ်ထင်တယ်။
Required
require validation စစ်ဗျို့အတွက် ကျွန်တော်တို့တွေ jquery ဖြစ်ဖြစ် javascript ဖြစ်ဖြစ် ရေးပြီး စစ်ခဲ့ရပါတယ်။ အခု HTML5 မှာ require ဆိုတဲ့ attribute နဲ့ တင်ရပါတယ်။ Safari မှာကတော့ error message မပြပေမယ့် form တစ်ခုကို မကူးသွားပါဘူး။ လိုအပ်တဲ့ field မှာ focus ဖြစ်သွားပါတယ်။ Opera မှာကတော့ message ကိုဖော်ပြပေးပါတယ်။ သူ့ကိုတော့ ဒီလိုလေးရေးတယ်။
<input type="text" placeholder="Enter Your Name" required />
Autofocus
HTML5 မှာ javascript နဲ့ textbox ကို focus လုပ်ဖြစ်အောင် ရေးစရာမလိုတော့ပါဘူး။ ဥပမာ။။ Google လိုမျိုး တက်တက်ချင်းမှာ textbox ကို focus ဖြစ်ချင်ရင် autofocus attribute ကို သုံးလိုက်ရုံပါပဲ။ jquery , javascript တွေနဲ့ သီးသန့် ထပ်ရေးနေဖို့မလိုတော့ဘူးပေါ့။ သို့ပေမယ့်လည်း browser တွေ အားလုံးမှာ မရသေးပါဘူး။ လက်ရှိ firefox 3.6 မှာတော့ အဲဒီ attribute အလုပ်မလုပ်သေးပါဘူး။
<input type="text" placeholder="Enter Your Name" required autofocus />
Type=email
HTML4 တုန်းက javascript နဲ့ email validation တွေ စစ်ခဲ့ကြပါတယ်။ အခုတော့ javascript မလိုအပ်ပဲ html5 မှာ စစ်လို့ရပါပြီ။
<input type="email" placeholder="yourmail@mail.com" required />
iPhone, iPodTouch တို့မှာဆိုရင်တော့ email keyboard ပြောင်းသွားပါလိမ့်မယ်။ Opera မှာဆိုရင်တော့ form submit လုပ်တဲ့အခါမှာ email format မှားနေတယ်ဆိုပြီး error message ပြပါလိမ့်မယ်။ Safari တို့ chrome တို့မှာတော့ submit လုပ်လို့မရပဲ focus ဖြစ်သွားပါလိမ့်မယ်။
type=tel
သူကတော့ HTML5 မှာ အသစ်ပါဝင်လာတာပေါ့။ Telephone number အတွက်ပါ။ iPhone , iPodTouch တို့မှာဆိုရင်တော့ phone number keyboard ပေါ်လာပါတယ်။ အခြား browser တွေမှာတော့ ထူးထူးခြားခြားရယ် မရှိပါဘူး။
<input id=phone name=phone type=tel placeholder="Eg. +447500000000" required>
type=number
HTML5 မှာ number တွေ သီးသန့် ထပ်ပါလာပါတယ်။ number field ကို HTML5 မှာ ထပ်ပါလာပါပြီ။ number field ဖြစ်တဲ့အတွက် increase , decrease button လေး ဘေးမှာ ထပ်ပါလာပါတယ်။
<input id=cardnumber name=cardnumber type=number required>
type=date
ကျွန်တော်တို့တွေ date အတွက် javascriptနဲ့ဖြစ်ဖြစ် jqueyr ui နဲ့ ဖြစ်ဖြစ် အသုံးပြုခဲ့ကြပါတယ်။ HTML5 မှာ date field ပါလာပေမယ့် အခုလောလောဆယ်တော့ Opera တစ်ခုတည်းမှာပဲ ရပါသေးတယ်။
<input id=dob name=dob type=date required>
HTML5 ဆိုင်ရာလေ့လာစရာများ
XML Part – 2
ဒုတိယခြေလှမ်း အခြေခံ DTD
XMLဟာ Tagတွေကိုလွတ်လပ်စွာ သတ်မှတ်ပြီးအသုံးပြုနိူင်သည့်အတွက် အချက်အလက်အမျိုးမျိုးကို ဖော်ပြပေးနိူင်၏။ သို့ပေမယ့် လွတ်လပ်စွာရေးသားနိူင်ခြင်းကြောင့်လည်း အဆင်မပြေမှု့များလည်း တွေ့ရှိနိူင်ပါသည်။ ဥပမာအားဖြင့် XMLနဲ့ရေးသားထားတဲ့ အချက်အလက်တွေကို တခြားကုမ္ပဏီတစ်ခုနဲ့ အဆက်အသွယ်လုပ်မည်ဆိုတဲ့ နမှုနာကိုစဉ်းစားကြည့်ကြပါ။ ကုမ္ပဏီအသီးသီးက နှစ်သက်သလို Tagတွေကို အသုံးပြုနေခဲ့မည်ဆိုလျှင် အဲ့ဒီXMLစာတွေကိုဘာသာပြန်ဖို့အတွက်လည်း Programတွေ လိုအပ်လာပါလိမ့်မည်။ သည်လိုဆိုရင်ဖြင့် အဆင်မပြေနိူင်ပါ။ Continue reading “XML Part – 2”
XML – Part 1
1.ပထမခြေလှမ်း အခြေခံ XML
XML ဆိုသည်မှာ TAGတွေကိုအသုံးပြုပြီး၊ စာပိုဒ်တစ်ခုရဲ့ဖွဲ့စည်းပုံကို စနစ်ချရာမှာအသုံးပြုသော စနစ်တစ်ခု ဖြစ်၏။ XML သည်မရေရာသော ရေးသားပုံစနစ်ကလိုက်မခံပဲ၊ တင်းကျပ်တဲ့စည်းမျဉ်းတွေနဲ့ စာရေးသားပုံစနစ်ကို သတ်မှတ်ထားသည့်အတွက် Program များမှ အသုံးပြုရလွယ်ကူစေသော ထူးခြားမှု့ကိုပိုင်ဆိုင်၏။ ထိုကြောင့်ရုံးသုံးစာများတွင်၊ Business Data အချက်အလက်တွေကို ရေးသားရာမှာ XML ကိုအသုံးပြုနေကြ သည်မှာမရေတွက်နိုင်ပေ။ Continue reading “XML – Part 1”
iPhone Development Intro – 2
အပိုင်း ၁ မှာ တုန်းက iPhone Development တွေ လိုအပ်တာတွေပြင်ဆင်ဖို့ ဘယ်လို လေ့လာရမလဲဆိုတာတွေ ပြောပြီးပါပြီ။ အခု အပိုင်းမှာတော့ iPhone Developer Account နဲ့ Distrubtion အကြောင်းလေး ရေးပါမယ်။
Why you need Developer Account
ကျွန်တော်တို့မှာ Simulator ရှိပါတယ်။ သို့ပေမယ့်လည်း Simulator Account နဲ့ အကုန်လုပ်လို့မရဘူး။ camera, phone, accelerometer, magnetometer or gyroscope စတာတွေကို Simulator နဲ့ စမ်းလို့မရပါဘူး။ Developer Account ရှိမှ အဲဒီ API တွေကို Device ပေါ်မှာ တင်ပြီး စမ်းလို့ရမှာပါ။ နောက်ပြီး App store မှာ တင်ပြီးတော့ ရောင်းချင်တယ်ဆိုရင်လည်း Developer Account လိုအပ်ပါတယ်။ ဝယ်မယ်ဆိုရင်တော့ အရင်ဆုံး Apple Store or iTune store Account ရှိဖို့ လိုပါတယ်။ အဲဒီ Account ရှိမှ Developer Account ကို ဝယ်လို့ရမှာပါ။
Testing Your Project
Project ကို စမ်းမယ်ဆိုရင် Device ပေါ်မှာ စမ်းသပ်တာက အကောင်းဆုံးပါပဲ။ iPodTouch Simulator မှာသုံးတဲ့ Speed နဲ့ iPhone Device မှာ ရတဲ့ Speed က မတူပါဘူး။ နောက်ပြီး အချို့ API တွေ ဖြစ်တဲ့ camera, accelerometer စတာတွေက Simulator နဲ့ စမ်းလို့မရဘူး။ Device ပေါ်မှာ စမ်းဖို့အတွက် Developer Account ရဲ့ Provisioning Portal ကနေ Development Provisioning Profiles တစ်ခုကို Download ချပြီး ဖန်တီးဖို့ လိုပါတယ်။ နောက်ပြီး သင့် Application အတွက် App ID တစ်ခုလည်း တည်ဆောက်ဖို့လိုတယ်။ အဲဒီအဆင့်တွေက Developer Account ဝယ်ပြီးသွားရင် Provisioning Portal မှာ အဆင့်ဆင့်တွေ ပြထားပါတယ်။ iPhone Development လုပ်နေပြီဆိုကတည်းက English စာ အသင့်သင့် ရှိနေတဲ့ သူတစ်ယောက်ဖြစ်တဲ့အတွက် English စာဖတ်ရတာ ခက်ခဲမယ် မထင်ပါဘူး။ အဆင့်ဆင့်တွေ ဖြစ်တဲ့ အတွက် Provision Portal မှာ စာတွေ အသေးစိတ် ဖတ်ဖို့ လိုအပ်ပါတယ်။
Simulator က iPhone Device ထက်မြန်တယ်လို့ ကျွန်တော် ပြောပြီးပါပြီ။ အဲဒါကြောင့် Device မှာသာ သုံးလို့ရတဲ့ API မသုံးပဲ ရေးမယ်ဆိုရင် Simulator ကို အဓိက ထားသုံးသင့်ပါတယ်။ Device ကို နောက်ဆုံး Testing အဆင့်အတွက် အဓိက ထားသုံးသင့်ပါတယ်။ Device မှာ မဟမ်းသွားဖို့လိုပါတယ်။
Distrbution
Distrubtion လုပ်မယ်ဆိုရင် ၂ နည်းရှိပါတယ်။ Ad Hoc နဲ့ App Store ပိုင်းပါ။ Ad Hoc ဆိုတာကတော့ App Store မှာ မတင်ပဲသီးသန့် ခွင့်ပြုထားတဲ့ device တွေမှာ အသုံးပြုဖို့အတွက်ပါ။ Ad Hoc က ကြိုက်သလောက် ဖန်တီးခွင့် မရှိပါဘူး။ စုစုပေါင်း Device ID 99 ခုပဲရပါတယ်။ နောက်တနည်းကတော့ App Store ပါ။
App Store
iPhone Project တွေ မတင်ခင် developer account မဝယ်ခင် App store နဲ့ ပတ်သက်ပြီး သိသင့်တာလေးတွေ ရှိပါတယ်။ App Store မှာ ရောင်းမယ်ဆိုရင် ရောင်းစျေးထက် 70% ပဲရပါလိမ့်မယ်။ ဥပမာ ။။ $0.99 နဲ့ ရောင်းတဲ့ app အတွက် ၁ ခု ရောင်းရလျှင် 0.70 ပဲ ကိုယ်က ရမှာပါ။ App Store ကို အသုံးပြုမယ်ဆိုရင် Online Bank Account ရှိဖို့လိုပါတယ်။ Bank Account က Swift Account ရှိဖို့လိုပါတယ်။ စကာင်္ပူမှာတော့ POSB, DBS , Ctibank တို့က Swift ရှိပါတယ်။ Address ကို သတိထားရပါမယ်။ Address ပြောင်းချင်ရင် Bank မှ လာထားတဲ့ Phone Bill နဲ့ ကိုယ်နေထိုင်တဲ့ နိုင်ငံရဲ့ ID card ပြနိုင်ဖို့ လိုပါတယ်။ Address ပြောင်းခြင်းကလည်း ၁ ပတ်လောက် ကြာမြင့်နိုင်ပါတယ်။ အကုန်လုံး သေချာသွားပြီဆိုရင် Contract စတင် ချုပ်လို့ရပါပြီ။ Contract ချုပ်ပြီးတာနဲ့ ကိုယ့် Bank Account ကို စတင်ဖြည့်လို့ရပါပြီ။ လိုအပ်တဲ့ Information တွေ ဖြည့်ပေးဖို့လိုပါတယ်။ Free version အတွက် bank account တွေ မလိုအပ်ပါဘူး။
Sale on App Store
App store ပေါ်တင်မယ်ဆိုရင် ကိုယ့် App ကို ပုံမှန်အားဖြင့် ရ ရက် စောင့်ရပါတယ်။ ရ ရက်အတွင်းမှာ 95% Application တွေက Approve ဖြစ်ပါတယ်။ ဘာလို့ 5% က Approve မဖြစ်သလဲဆိုတော့
- မပြည့်စုံခြင်း။ ( လိုအပ်ချက်တွေ မပြည့်စုံလို့ပါ။ Description မပြည့်စုံခြင်း။ Application က ဘာမှ မရှိပဲ နည်းနည်းလေး ပါးပါး စမ်းသပ်ထားသလို ဖြစ်နေခြင်း စတာတွေ ကြောင့်ပါ )
- Custom API သုံးထားခြင်း။ ( App ထဲမှာ Custom API တွေ ထည့်သွင်းသုံးထားတာကို Apple က ခွင့်မပြုပါဘူး )
- Crash ဖြစ်ခြင်း။ ( App က crash ဖြစ်တာကိုတွေ့ရင် လက်မခံပါဘူး )
တကယ်လို့ ကိုယ့် App က approve မဖြစ်လို့ ပြန်ပြင်ပြီး resubmit လုပ်လို့ရပါတယ်။ App တစ်ခုကို တင်ရင် လိုအပ်တာတွေက
ရောင်းဖို့အတွက် စျေးနှုန်းတွေကို Tier နဲ့ သတ်မှတ်ပါတယ်။ ပုံမှန်အားဖြင့် အနိမ့်ဆုံး Tier 1 ဖြစ်တဲ့ $0.99 ကနေ စရောင်းလို့ရပြီးတော့ အမြင့်ဆုံး ဖြစ်တဲ့ Tier 85 ဖြစ်တဲ့ $999.99 ထိ ရောင်းလို့ရပါတယ်။ စာရင်းကိုတော့ ဒီမှာ ကြည့်လို့ရပါတယ်။ နောက်တချက် သိဖို့က ရောင်းတဲ့အခါမှာ $150 ပြန်မရမခြင်း သင့် ပိုက်ဆံ ပြန်ထုတ်လို့မရပါဘူး။ iAds လည်း ထိုနည်းတူပါပဲ။ ဒါကြောင့် သင့် Appliation ကို ရောင်းကောင်းအောင် Marketing တွေ လုပ်ဖို့လိုပါတယ်။
Marketing Your Application
App store မှာ တင်ပြီးသွားရင် ကိုယ့် Application Marketing အတွက် ဘယ်လောက်ရောင်းရတယ် ဘယ်လောက် Update လုပ်လဲ စတဲ့ report တွေကို ကြည့်လို့ရပါတယ်။ နောက်ပြီး Finance Reports ကို ၁ လ ၁ ကြိမ် ကြည့်လို့ရပါတယ်။ ဒါပေမယ့် real time report ကတော့ ကြည့်လို့မရပါဘူး။ ဒီနေ့ တနေ့လုံး ဘယ်လောက် ရောင်းရလဲဆိုတာကိုပဲ ကြည့်ုလို့ရပါတယ်။ ဒီနေ့ ၁ နေ့လုံးဆိုတာကလည်း ပုံမှန်အားဖြင့် ည singapore ည ရ နာရီ မှ တစ်ခါ update ဖြစ်ပါတယ်။ weekly report အတွက် ရ ရက်စောင့်ရပါမယ်။ နောက်ပြီးတော့ Discount Period တွေ သတ်မှတ်လို့ရပါတယ်။ ဘယ်အချိန်မှာ ဘယ်စျေးပြောင်းဆိုပြီး သတ်မှတ်လို့ရပါတယ်။ Available on App Store ဆိုတဲ့ Image ကို အသုံးပြုချင်တယ်ဆိုရင်တော့ US ကို mail ပို့ပြီး ကိုယ် သုံးမယ့် app နဲ့ website address အတွက် ခွင့်ပြုချက်ရယူဖို့ လိုပါတယ်။
ကဲ… ဒီလောက်ဆိုရင် iPhone Application Development အကြောင်းကို ခြံုငုံပြီး သိသွားပြီလို့ထင်ပါတယ်။
လူငယ်နှင့် ပညာရေး
ဒီကာလအတောအတွင်းမှာ လူငယ်တော်တော်များများနဲ့ တွေ့ခွင့်ရပါတယ်။ လူငယ်ဆိုတာ ကျွှန်တော့်ထက်ငယ်တဲ့သူပေါ့ ၂၅အောက်တွေနဲ့ ၁၉၊၁၈၊၁၇၊၁၆ နဲ့၁၅နစ်ရှိတဲ့ လူငယ်တွေလဲပါပါတယ်။ အဲတော်တော်များများကို တော်တော်လေး စိတ်မကောင်းစရာ လမ်းမှားနေတာကို မြင်ရပါတယ်။ အဲကျွှန်တော်ကိုယ်တိုင်လဲ လမ်းမှန်ရောက်အောင်လုပ်နေစဲပါ။ ကိုယ့်ထက်ပိုဆိုးတဲ့သူတွေပေါ့။ ပညာရေးနဲ့ ပတ်သက်ပြီးဆိုလိုတာပါ။
iPhone Development Intro – 1
iPhone application တစ်ခု ရေးသားဖို့ရာ နည်းလမ်း ၂ ခု ရှိပါတယ်။ HTML5 Web Application နဲ့ iPhone Application တို့ပါပဲ။ HTML5 Web application ဆိုတာက သမာရိုးကျ website ကို iPhone Safari နဲ့ အဆင်ပြေအောင် ပြောင်းလဲရေးသားရတာပါ။ HTML5 ဖြစ်တဲ့အတွက်ကြောင့် Video တွေ Sound တွေ ထည့်သွင်းလာနိုင်ပါတယ်။ အဲဒီလိုမျိုး HTML5 တွေကို စမ်းသပ်ချင်တယ်ဆိုရင်တော့ http://www.apple.com/html5 မှာ လေ့လာနိုင်ပါတယ်။ ပုံမှန် Web Development နဲ့ အတူတူပါပဲ။ ဘာမှ ကွာခြားမှုမရှိပါဘူး။ ထူးခြားတာကတော့ safari webkit css တွေ ခေါ်ယူသုံးစွဲလို့ရတာပါပဲ။
Continue reading “iPhone Development Intro – 1”
CSS – Chapter 2
Chapter 2: CSS Styling
CSS မှာ property က အများကြီးရှိပါတယ်။ အရင် chapter တုန်းကတော့ color property နဲ့ပဲ ဥပမာ ပြသွားပါတယ်။
CSS Background
Background ကို မပြောခင် background နဲ့ လုပ်ထားတဲ့ CSS လေးကို ပြပါတယ်။
MVC
MVC ဆိုတာကတော့ Model View Controller ဆိုတာ သိပြီးသားပြီးသားပါ။ ဒါပေမယ့် MVC ကို programming နဲ့ ရောထွေးနေကြတယ်။ MVC ဆိုတာ pattern တစ်ခုပါ။ Software Engineering မှာ အသုံးပြုတဲ့ architectural pattern လို့ဆိုရလိမ့်မယ်။ ဒါကြောင့် သူ့ကို Language တစ်ခုနဲ့ တစ်ခု အသုံးပြုပုံမတူဘူး။ နောက်ပြီး framework တစ်ခုနဲ့ တစ်ခု အသုံးပြုပုံမတူဘူး။ ဒါပေမယ့် သဘောတရားနဲ့ အနှစ်သာရကတော့ အတူတူပဲ။ CodeIgniter ရေးတတ်တာနဲ့ MVC ဆိုတာ ဒီလို ရေးရပါလားလို့ ထင်ရင်တော့ မဟုတ်ပါ။ CodeIgniter မှာ MVC ကို ရေးပုံနဲ့ Symfony မှာ ရေးပုံက မတူဘူး။ နောက်ပြီး iPhone SDK ကလည်း MVC ပဲ။ ဒါပေမယ့် တည်ဆောက်ပုံတွေ မတူဘူး။
Continue reading “MVC”
Python Day 11 – Day 20
Day-11
အားလုံးပဲ မင်္ဂလာပါ Day-11တောင်ဘာလိုလိုနဲ့ရောက်လာပြီ။ ကျွှန်တော်တို့ Python ကိုတော်တော်များများက Request လုပ်ကြတာ မြင်ရတော့ ဝမ်းသာမိပါတယ်။
English လိုရေးရင် ပိုမြန်ပြီးပိုကောင်းမှာပါ။ ဒါပေမယ့် language အခက်အခဲရှိတဲ့ ညီ၊ ညီမ များအဆင်ပြေအောင် တမင်မြန်မာလို အပင်ပန်:ခံပြီး တင်ပေးရတာပါ။ အမှန်အတိုင်းဝင်ခံရရင် ကျွှန်တော်မြန်မာလို မရိုက်တက်ပါဘူး။Ko Seth Hetu လုပ်ပေးထားတဲ့ ဝိဇ္ဇာနဲ့ရိုက်ရတာပါ။ ဝိဇ္ဇာကအားလုံးကို အဆင်ပြေအောင် မရိုက်နိူင်သေးပါဘူး။အတတ်နိူင်ဆုံးကြိုးစားပြီး အပင်ပန်းခံရိုက်ပေးထားတာပါ။