Writing jQuery Plugin Tutorial

jQuery မှာ plugin တွေ ဘယ်လောက် အသုံးဝင်သလဲဆိုတာ သိမှာပါ။ ကျွန်တော်တို့ ကိုယ်တိုင်လည်း jquery plugin တွေ ရေးလို့ရပါတယ်။ plugin ဆိုတာကလည်း function လိုပါပဲ။ ကျွန်တော်တို့ ထပ်ခါ ထပ်ခါလုပ်နေရတာကို လွယ်ကူအောင် ဖန်တီးပေးတာပါ။ ဥပမာ။။ အောက်က code လေးကို ကြည့်လိုက်ပါ။

<html>

<head>

<title>jQuery Sample</title>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

<script src = "bgcolor.js"></script>

<script>

$(document).ready(function(){

changecolor($("#sample"),"red");

changecolor($("#sample2"),"#FF00FF");

});

function changecolor(id,value)

{

$(id).css("background-color",value);

}

</script>

</head>

<body>

<div id="sample">This is sample<div>

<div id="sample2">This is sample<div>

</body>

</html>

အဲဒီမှာ changecolor ဆိုတဲ့ function လေး ရေးထားပါတယ်။ အဲဒါကို ကျွန်တော်တို့ plugin ပြောင်းကြည့်ရအောင်။ function ခေါ်ရေးရင် ရပေမယ့် user friendly ဖြစ်သွားအောင် plugin ပြောင်းရေးတာပါ။ plugin ပြောင်းရေးလိုက်ရင် ကျွန်တော်တို့ အောက်ကလို ပြောင်းပြီး ခေါ်လို့ရသွားမှာပါ။

[lang name=”js”]

$(“#sample”).bgcolor();

$(“#sample2″).bgcolor({

value:”#FF00FF”

});

[/xhtml]

ပိုပြီး user friendly ဖြစ်ပြီး code ကြည့်လိုက်တာနဲ့ နားလည် လွယ်တာပေါ့။

အရင်ဆုံး bgcolor.js မှာ အောက်ကလို ရေးလိုက်ပါတယ်။

(function(jQuery){

jQuery.fn.bgcolor = function(options) {

return this.each(function() {

//write code in here

});

};

})( jQuery );

အဲဒါက jquery plugin ရေးဖို့ပေါ့။

jQuery.fn.bgcolor က bgcolor function ကို extend လုပ်လိုက်တာပေါ့။ selector တွေကနေ တဆင့် bgcolor ဆိုတဲ့ function ခေါ်လို့ရအောင်ပါ။ ကျွန်တော် code ကို အောက်ကလို ပြင်ရေးလိုက်ပါမယ်။

(function(jQuery){

jQuery.fn.bgcolor = function(options) {

var defaults = {

value:"red"

};

var options = jQuery.extend(defaults, options);

return this.each(function() {

$(this).css("background-color",options.value);

});

};

})( jQuery );

defaults က red လို့ပေးထားပါတယ်။ အဲဒါက JSON format ပါ။ JSON format ကို merge လုပ်ဖို့အတွက်

var options = jQuery.extend(defaults, options);

options ဆိုတဲ့ JSON parmater က value ပါလာရင် red ကို ဖျက်ပြီး အသစ်ပြောင်းသွားမှာပါ။

return this.each(function() {

//ဒီမှာ code ရေးရပါတယ်။

}

အဲဒီမှာက ကိုယ် ဖြစ်ချင်တဲ့ code ရေးရပါတယ်။ ကျွန်တောက်တော့ ရောက်လာတဲ့ selector ကို background color ပြောင်းထားပါတယ်။

HTML မှာ

<script src = "bgcolor.js"></script>

ထည့်ပြီးတော့ bgcolor ဆိုတဲ့ function ကို ခေါ်လိုက်ရင် background ပြောင်းသွားပါလိမ့်မယ်။ ပေါ်ချင်တဲ့ အရောင်ကိုတော့ value ကို ထည့်ပြီး ပြောင်းပေးလို့ရပါတယ်။

$("#sample").bgcolor();

$("#sample2").bgcolor({

value:"#FF00FF"

});

စမ်းကြည့်ချင်ရင်တော့ code ကို download ချပြီး စမ်းနိုင်ပါတယ်။

UITableView Add Tutorial

မနေ့က UITableView Delete ကို ပြောပြီးပါပြီ။ အဲဒီ delete မှာပဲ နည်းနည်း ပြန်ပြင်ပါမယ်။

- (void)viewDidLoad {

ရဲ့ အောက်ဆုံးမှာ အောက်ကလို ဖြည့်လိုက်ပါ။ Add button ကို navigation bar ရဲ့ ညာဘက် ထိပ်ဆုံးမှာ ထည့်လိုက်တာပေါ့။

//Crate Add Button
UIBarButtonItem * addButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self action:@selector(addTable)];
self.navigationItem.rightBarButtonItem=addButton;

Continue reading “UITableView Add Tutorial”

UITableView Delete Tutorial

UITableView Tutorial ဆိုပြီးတော့ ကျွန်တော် ရေးပြီးပါပြီ။ ဆက်ပြီးတော့ ထည့်ထားတဲ့ record ကို ပြန်ဖျက်ဖို့ လုပ်ကြည့်ရအောင်။

ပထမဆုံး tableview နဲ့ ချိတ်ဆက်ဖို့အတွက် IBoutlet တစ်ခုကြေငြာဖို့လိုပါတယ်။ အဲဒီတော့ RootViewController.h မှာ ဒီလိုရေးလိုက်ပါတယ်။

#import

@interface RootViewController : UITableViewController {
NSMutableArray *listItem;
IBOutlet UITableView *tableview;
}
@property(nonatomic,retain) NSMutableArray *listItem;
@property(nonatomic,retain) IBOutlet UITableView *tableview;

@end

ပြီးရင်တော့

@synthesize tableview;

ကို RootViewController.m မှာ ဖြည့်ပေးဖို့နဲ့

[tableview release];

ကို dealloc မှာ ထည့်ပေးဖို့ မမေ့ဖို့လိုပါသေးတယ်။

RootViewController.xib ကို ဖွင့်ကြည့်လိုက်ပါ။ Bottom Bar မှာ Toolbar ရွေးလိုက်ပါ။ UITableView မှာ Toolbar ပေါ်လာပါလိမ့်မယ်။

အဲလို ပြောင်းပြီးရင် IBoutlet ချိတ်ဖို့အတွက် File’s Owner ကို click လုပ်ပါ။ ပြီးရင် ဒုတိယ tab ဖြစ်တဲ့ Connections Inspector ကို သွားပါ။ အဲဒီမှာ tableview ဆိုပြီး ပေါ်နေပါလိမ့်မယ်။ အဲဒီ tableview က ညာဘက် စက်ဝိုင်းလေးကို drag ဆွဲပြီး uitableview နဲ့ ချိတ်ပေးလိုက်ပါ။

ပြီးရင်တော့ coding ကို ပြန်သွားပါမယ်။
Continue reading “UITableView Delete Tutorial”

တတိယခြေလှမ်း အခြေခံ XSL

XMLရဲ့ Tagများသည် အချက်အလက်တွေရဲ့အဓိပ္ပါယ်များနှင့်၊ ထူးခြားချက်များကိုဖော်ပြပေးနိူင်ပါသည်။ ယခင်အခန်းများတွင် ဖော်ပြပြီးခဲ့သလို XMLသည်အချက်အလက်များကို ဖော်ပြရန်အတွက် Tagများကို လွတ်လပ်စွာ အသုံးပြုနိူင်ပေ၏။ ထို့အတွက် HTMLကဲ့သို့ ပိုင်ဆိုင်တဲ့Tagတွေအသီးသီးကို မည်သို့ဖော်ပြမည် ဆိုသည်ကို ကြိုတင်သတ်မှတ်ထားခြင်းမရှိပေ။သို့ရာတွင် XMLအချက်အလက်များကို ပြင်ဆင်ပြီးလှပစွာ ပုံဖော်လိုကြမည် မဟုတ်ပေလော။  Continue reading “တတိယခြေလှမ်း အခြေခံ XSL”

How to learn web development – 2

ကျွန်တော် ပထမပိုင်းမှာ Web Essential ပိုင်းနဲ့ ပတ်သက်ပြီး ရှင်းလင်းခဲ့ပါတယ်။ Web Development ပိုင်းကို မလေ့လာခင်မှာ web essential ပိုင်းက မသိမဖြစ်ဆိုလည်း မမှားပါဘူး။ Web Essential ပိုင်းကို လေ့လာရင်း web developer အစား web designer လိုင်းကို ပြောင်းသွားတဲ့ သူတွေလည်း ရှိပါတယ်။ ဒါကြောင့် develop မလုပ်ခင်မှာ ကိုယ် developer ပိုင်းသွားမလား Designer ပိုင်းသွားမလား ဘယ်ဟာပို စိတ်ဝင်စားလဲဆိုတာကိုလည်း သိရအောင် web essential ပိုင်းကိုတော့ သိသင့်ပါတယ်။
Continue reading “How to learn web development – 2”

How to learn web development

Web Development လုပ်တော့မယ်ဆိုရင် ကျွန်တော် ဒီပုံမှာ ပြခဲ့တာလေးကို တချက်ကြည့်စေချင်ပါတယ်။ ပုံထဲမှာ ကျွန်တော့်အနေနဲ့ Web Programming ကို မလေ့လာခင်မှာ HTML , CSS , Javascript ကို စတင်လေ့လာဖို့ ဆိုထားပါတယ်။ HTML , CSS က programming ပိုင်း မပါဝင်ပါဘူး။ တော်တော်များများဟာ HTML, CSS, Javascript က သေချာ မတတ်ကျွမ်းပဲနဲ့ Web Development ပိုင်းကို ကူးနေကြတာတွေကိုလည်း တွေ့ရပါတယ်။
Continue reading “How to learn web development”

HTML , CSS Myanmar Ebook

Planet Creator ရေးထားတဲ့ စာအုပ်ဖြစ်ပြီး HTML နဲ့ CSS ကို အခြေခံမှ စပြီး သေသေချာချာ ရေးထားတဲ့ စာအုပ်ကောင်းလေး တစ်အုပ်ပါ။ စာမျက်နှာပေါင်း ၁၉၇ မျက်နှာ ပါရှိပြီး နားလည် သဘောပေါက်အောင် ရှင်းလင်းထားတဲ့အတွက် လေ့လာတဲ့သူတွေအတွက် အတော့်ကို အသုံးဝင်မယ့် စာအုပ်တစ်အုပ်ပါ။

http://www.worldwidemyanmar.com/news/headline/423-myanmar-version-html-css-ebook.html

မှာ သွားရောက်ယူနိုင်ပါတယ်။

Learn Objective-C : Day 5

ကဲ… Part 5 ကိုတောင် ရောက်လာပါပြီဗျာ။ ဒီနေ့မှာတော့ memory mangagement အပိုင်းကို လေ့လာရအောင်။ Script Language တော်တော်များများ (PHP ကဲ့သို့ ) ဟာ memory management ပိုင်းကို အလိုအလျောက်ဆောင်ရွက်ပေးပါတယ်။ ဒါပေမယ့် Objective-C မှာကတော့ သတိထားဖို့လိုပါတယ်။ object ကို create လုပ်ပြီးရင် release လုပ်ပေးဖို့လည်းလိုပါတယ်။

Other Articles In This Series

iPhone Development လုပ်ပြီဆိုရင် memory management ပိုင်းက အရေးပါပါတယ်။ ဘာလို့လည်းဆိုတော့ iPhone က memory limit က Desktop နဲ့ ယှဉ်ရင် နည်းပါတယ်။

Two Approaches

Objective-C မှာ memory management အတွက် methods ၂ မျိုးရှိပါတယ်။ ပထမက reference counting နဲ့ ဒုတိယကတော့ garbage collection ပါ။ သင့်အနေနဲ့ စဉ်းစားလို့ရတာကတော့ manual နဲ့ automatic ပေါ့။ reference counting ဆိုတာက programmer က code ထည့်ပေးရပြီး garbage collection ကတော့ system ကို အလိုအလျောက် memory managing လုပ်ခိုင်းတာပေါ့။ Garbage collection က iPhone မှာ အလုပ်မလုပ်ဘူးဆိုတာကို သတိထားဖို့လိုပါတယ်။ အဲဒါက Mac developer တွေအတွက်သာ အသုံးဝင်ပါတယ်။

Reference Counting

ကဲ… ကျွန်တော်တို့app ကို memory manage ဘယ်လိုလုပ်မလဲ။ ပထမဆုံးအနေနဲ့ ဘယ်အချိန်မှာ code က memory ကို အသုံးပြုပါသလဲ။ ကျွန်တော်တို့တွေက class instance (object) ကို ဖန်တီးလုပ်ပြီဆိုတာနဲ့ memory က allocated လုပ်ပါတယ်။ object က သေးသေးလေးပေမယ့် app က တဖြည်းဖြည်း ကြီးလာတာနဲ့အမျှ memory ပြဿနာတွေက ဖြစ်လာနိုင်ပါတယ်။

ကဲ.. ဥပမာ တစ်ခုလောက် ကြည့်ရအောင်။ ကျွန်တော်တို့ Drawing App တစ်ခုဆွဲပါတယ်။ user ဆွဲတဲ့ shape တစ်ခုတိုင်းက separate object တွေပေါ့။ ကျွန်တော်တို့မှာ shpare 100 ဆိုရင် object 100 memory ပေါ်မှာ နေရာယူသွားပါလိမ့်မယ်။ screen ကို clear လုပ်ပြီး နောက်ထပ် shape 100 ထပ်ဆွဲမယ်။ ကျွန်တော်တို့ဟာ memory manage မလုပ်ခဲ့ရင် အသစ် shape 100 လည်းပြီးရော object 200 memory ပေါ်မှာ နေရာယူထားပြီလေ။ အဲလိုမျိုးတွေ လုပ်နေရင် ကြာလာတဲ့အခါမှာ memory တွေ အရမ်းစားပါလိမ့်မယ်။

ကဲ… ကျွန်တော်တို့ reference counting နဲ့ စဉ်းစားကြည့်ရအောင်။ create new object လုပ်လိုက်တိုင်း memory ပေါ်မှာ နေရာယူသွားတယ်။ object က count 1 ဖြစ်သွားပြီ။ နောက်ထပ် object ဆောက်ရင် retain count က 2 ဖြစ်သွားပြီ။ တကယ်လို့ release ပြန်လုပ်လိုက်ရင် retain count က decrease ဖြစ်ပြီး 1 ဖြစ်သွားပါလိမ့်မယ်။ ထပ်ပြီး decrease လုပ်လိုက်ရင် 0 ဖြစ်သွားမယ်။ zero ဆိုရင် ထိန်းမထားတော့ပဲ memory ပေါ်မှာ free ဖြစ်သွားပါပြီ။

Syntax

ကျွန်တော်တို့ ပထမဆုံး object တစ်ခုကို တည်ဆောက်ပါမယ်။ object တစ်ခုကို အောက်ကလို တည်ဆောက်ပါမယ်။

myCarClass *car = [myCarClass alloc];

ကျွန်တော်တို့ object ဆောက်ပြီးသွားရင် manual release သို့မဟုတ် autorelease ကို နောက်ပိုင်းမှာ လုပ်ပါမယ်။ သတိထားဖို့က object ကို manual release လုပ်ပြီးမှ autorelease ကို သွားခိုင်းလိုက်ရင် application က crash ဖြစ်သွားနိုင်ပါတယ်။

ကျွန်တော်တို့ oject ကို alloc နဲ့ တည်ဆောက်ပြီးပါပြီ။ အဲဒါတော့ reatin လုပ်ပါမယ်။ object က ဆောက်လိုက်တော့ object count က 1 ဖြစ်သွားပါပြီ။

[car reatin];

ထပ်ပြီး reatin လုပ်လိုက်တော့ count က 2 ဖြစ်သွားပါတယ်။ ဒါကြောင့် ကျွန်တော်တို့ ၂ ကြိမ် release လုပ်ပေးဖို့လိုပါတယ်။

Autorelease and Autorelease Pool’s

XCode မှာ create project တစ်ခုဆောက်တဲ့အခါမှာ အချို့ code တွေက autorelease အတွက် ရေးထားတာကို သတိပြုမိမှာပါ။ code က အောက်ကလို မျိုး ပုံစံလေးပေါ့

NSAutoreleasePool * pool =[[NSAutoreleasePool alloc] init];
[pool drain];

Note: documentation အဟောင်းတွေမှာတော့ နောက်ဆုံး လိုင်းက drain အစား release ဖြစ်နေမှာပါ။ တကယ်တန်းတော့ အတူတူပါပဲ။ drain ပဲ သုံးသုံး release ပဲ သုံးသုံးအဆင်ပြေပါတယ်။

အပေါ်က code က autorelease အတွက်အလုပ်လုပ်ထားတာပါ။ ကျွန်တော်တို့တွေက object ကို autorelase message ပို့ထားလိုက်ပါတယ်။ drain message ကို sent လိုက်တဲ့အခါမှာတော့ object က release လုပ်သွားပါတယ်။ autorelease က အသုံးဝင်ပါတယ်။ pool စဆောက်တဲ့အချိန်ကနေ drain မလုပ်ခင်ထိ သုံးထားတဲ့ object တွေကို drain လုပ်တဲ့အချိန်မှာ အကုန် release လုပ်လိုက်ပါတယ်။ ကျွန်တော်တို့တွေ object ကို reatin count လုပ်ပေးနေစရာမလိုတော့ပဲ relase လွယ်လွယ်ကူကူ လုပ်ပေးလိုက်လို့ရပါတယ်။

Nested Autorelease Pool’s

nested autorelease pool နဲ့ ပတ်သက်ပြီးတော့ အကြမ်းရှင်းပြပေးလို့ရပါတယ်။ အဲဒါကို ဘာကြောင့်သုံးရတာလဲ။ တစ်ခါတစ်လေ loop ပတ်နေတဲ့အချိန်မှာ tempoary object ကို ဆောက်တဲ့ အခါလေးတွေ ရှိပါတယ်။

ဥပမာ။။ loop လုပ်နေတဲ့အခါမှာ temporary object ၂ ခု ဆောက်လိုက်ပါတယ်။ မလိုချင်တဲ့အခါမှာ အဲဒါကို autorelease ပြန်လုပ်ဖို့လိုပါတယ်။ အောက်က code လေးကို လေ့လာကြည့်လိုက်ပါ။

void main()
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

NSArray *args = [[NSProcessInfo processInfo] arguments];

for (NSString *fileName in args) {

NSAutoreleasePool *loopPool = [[NSAutoreleasePool alloc] init];

NSError *error = nil;
NSString *fileContents = [[[NSString alloc] initWithContentsOfFile:fileName
encoding:NSUTF8StringEncoding error:&amp;error] autorelease];

/* Process the string, creating and autoreleasing more objects. */

[loopPool drain];
}

/* Do whatever cleanup is needed. */
[pool drain];

exit (EXIT_SUCCESS);
}

အဲဒီ code လေးက တော်တော်ကောင်းပါတယ်။ အဲဒီမှာ ကျွန်တော်တို့အနေနဲ့ pool တစ်ခုကို စဆောက်လိုက်တယ်။ ပြီးတော့ loop ထဲဝင်တယ်။ Loop ထဲမှာ pool ကို ထပ်ဆောက်တယ်။ အဲဒီ အချိန်မှာပဲ object ၂ ခု ထပ်ဆောက်တယ်။ ပြီးတော့ loopPool ကို drain လုပ်လိုက်တယ်။ ဒါကြောင့် pool စဆောက်တဲ့အချိန်ကနေပြီး drain လုပ်တဲ့ကြားက object တွေကို autorelease လုပ်သွားပေးပါလိမ့်မယ်။ object တွေ create လုပ်ခဲ့တဲ့အတွက် စိုးရိမ်စရာမရှိတော့ဘူးပေါ့။ နောက်ဆုံး program ပြီးသွားတော့ drain ထပ်လုပ်လိုက်တယ်။ ရှိနေတဲ့ object တွေကို အကုန် clear လုပ်သွားပေးတယ်။

loop ထဲမှာ သုံးထားတဲ့အတွက် loop လုပ်တဲ့အချိန်မှာ object တွေများလာပြီး memory တွေစားမှာ စိုးရိမ်စရာမလိုတော့ဘူးပေါ့။ တကယ်လို့သာ release သာ ပြန်မလုပ်ပေးရင် loop တွေများလာလေလေ memory က သုံးတာ များလာလေလေ ဖြစ်မှာပေါ့။

retainCount

အပေါ်မှာတုန်းကတော့ reatin နဲ့ပတ်သက်ပြီးပြောထားပြီးပါပြီ။ reatin ဘယ်နှစ်ခုရှိလဲ သိဖို့အတွက် reatinCount ကို အသုံးပြုနိုင်ပါတယ်။

NSLog(@"retainCount for car: %d", [car retainCount]);

retainCount က integer ဖြစ်တဲ့အတွက်ကြောင့် %d ကို သုံးထားပါတယ်။

Wrapping Up

Memory management က new programmer တွေအတွက် အနည်းငယ် နားလည်ရခက်ခဲနိုင်ပါတယ်။ အထူးသဖြင့် script langauge က လာတဲ့ programmer တွေအတွက်လည်း ခေါင်းရှုပ်စေနိုင်ပါတယ်။ ဒါပေမယ့် Objective-C မှာက memory management ကို ကိုယ်ပိုင် စိတ်ကျ ဖန်တီးနိုင်တဲ့အတွက်ကြောင့် program ပေါ့ပါးမှုက programmer ရဲ့ object တည်ဆောက်မှုနဲ့ release လုပ်မှုပေါ်မှာ မူတည်နေပါတယ်။ နားမလည်တာတွေကို မေးနိုင်ပါတယ်။

Next Time

နောက်တစ်ပိုင်းမှာတော့ Objectiv-C နဲ့ ပတ်သက်ပြီး ရိုးရှင်းတဲ့ code တွေအကြောင်းရေးသားသွားပါအုံးမယ်။

reference: http://mobile.tutsplus.com/tutorials/iphone/learn-objective-c-day-5/

ဘယ် programming language စ လေ့လာမလဲ ( Part 2 )

အပိုင်း ၁ မှာ Programming ဆိုတာဘာ။ Programming Langauge ဆိုတာ ဘာလဲဆိုတာကို ရှင်းလင်းခဲ့ပါတယ်။ Programming Lanaguage Generation တွေကိုလည်း ရှင်းပြပြီးပါပြီ။ ဒီ အပိုင်း ၂ မှာတော့ ဘယ် langauge ကို လေ့လာသင့်သလဲဆိုတာကို ဆွေးနွေးပါမယ်။

အရင်ဆုံး ကျွန်တော် ဆွဲထားတဲ့ route map လေးကို ကြည့်လိုက်ပါ။

အဲဒါကတော့ သာမာန် သမာရိုးကျ သွားဖို့ လမ်းကြောင်းလေးပါ။

လုပ်ငန်းခွင် မဝင်သေးသူများ

လုပ်ငန်းခွင် မဝင်သေးသူများ အနေနဲ့ အရင်ဆုံး route map လေးကို ကြည့်လိုက်ပါ။ အဲဒီမှာ ပထမဆုံး အဆင့်အနေနဲ့ C++ , Pseudo , Flowchart တွေနဲ့ စထားပါတယ်။ အခုနောက်ပိုင်း UCSY မှာ Flowchart နဲ့ Pseudo ကို သင်မသင်တော့ မသိတော့ပါ။ C++ မတိုင်ခင်မှာ Pseudo နဲ့ Flowchart ကို လေ့လာခြင်းအားဖြင့် programming flow နားလည်သွားဖို့ပါ။ Programming langauge တစ်ခုကို မသင်ခင်မှာ program flow ကို နားလည်ဖို့ analyst လုပ်တတ်ဖို့ လိုပါတယ်။ Programming က thinking က အရေးပါပါတယ်။ Program တစ်ခုကို စရေးတဲ့အခါမှာ thinking ပိုင်းကို အဓိကျပါတယ်။

တော်တော်များများဟာ C++ နဲ့ စတင်ပြီး ရေးရတာကို သဘောကျပြီးတော့ Pseudo နဲ့ Flowchart ကို လေ့လာရမှာကို သဘောမကျဘူး။ Pseudo နဲ့ Flow chart ကို သင်တဲ့အခါမှာ ပြန်စစ်ပေးဖို့ လူလိုပါတယ်။ C++ ကတော့ အခုရေး အခု run အခု အဖြေထွက်ပါပဲ။ ဒါကြောင့် လူအရမ်းများတဲ့ သင်တန်းတွေ UCSY တွေမှာ Pseudo နဲ့ Flow chart ကို စိတ်ဝင်စားမှု နည်းနိုင်ပါတယ်။

ပထမဆုံး လေ့လာသင့်တာကတော့ C ကို နည်းနည်းနဲ့ နောက်ပိုင်း C++ ကို ထပ်မံလေ့လာသင့်ပါတယ်။ C++ မှာ Object Oriented ပိုင်းကို နားလည်အောင် လေ့လာခဲ့ဖို့လိုပါတယ်။ ဒါမှသာ နောက်ပိုင်း အခြား Langauge ကို ကူးတဲ့အခါမှာ လွယ်ကူအောင်ပါ။

လုပ်ငန်းခွင် ဝင်နေသူများအတွက်

လက်ရှိ အလုပ်လုပ်နေပြီး programming ကို စိတ်ဝင်စားလို့ လေ့လာနေသူများအတွက်ကတော့ python က အသင့်တော်ဆုံးပဲ။ C++ ကတော့ အခြေခံကနေ စပြီး လေ့လာတာကောင်းပေမယ့် အချိန်မရှိတဲ့ သူများအတွက်ကတော့ python က လွယ်ကူမြန်ဆန်စွာ ရေးသားနိုင်တဲ့အတွက် အချိန်လည်း သိပ်မကုန်တော့ပါဘူး။ python ကိုလေ့လာပြီးသွားရင်တော့ အခြား language တွေကို လေ့လာလိုစိတ် အားနည်းသွားမှာတော့ အမှန်ပါပဲ။ python က အခြား language တွေထက် စာရင် လေ့လာရတာ လွယ်ကူပြီးတော့ ရေးသားရတာလည်း လွယ်ကူပါတယ်။

ဘယ်လိုင်းကို သွားမလို့ လေ့လာတာလဲ

programming ကို လေ့လာတော့မယ်ဆိုရင် ဘယ်လိုင်းကို သွားမလို့ လေ့လာတာလဲဆိုတော့ မေးခွန်းကိုလည်း မေးသင့်ပါတယ်။ အဲဒီ မေးခွန်းပေါ်မှာ အခြေခံပြီးတော့ ဘယ် language ကို လေ့လာသင့်သလဲဆိုတာကိုလည်း ဆုံးဖြတ်သင့်ပါတယ်။ ဘယ် programming ကိုပဲ သွားသည် ဖြစ်စေ OOP ကိုတော့ ကျေညက်အောင် လေ့လာထားဖို့လိုပါတယ်။

Windows Platform ကိုသွားမယ်ဆိုရင်တော့ C++ နဲ့ပဲ စစ python နဲ့ ပဲ စစ အဆင်ပြေပါတယ်။ C++ ကို လေ့လာတဲ့သူတွေကတော့ C# သို့မဟုတ် Java ကို ကူးပြောင်းပြီး ရေးဆွဲတာက ပိုအဆင်ပြေမယ် ထင်ပါတယ်။ python အတွက်ကတော့ နည်းနည်း ထပ်ဖြည့်ပြီး လေ့လာရုံပါပဲ။

Mac and Linux ကိုသွားမယ်ဆိုရင်တော့ python နဲ့လည်း ရေးလို့ရသလို C++ နဲ့လည်း ရေးလို့ရပါတယ်။ Mac အတွက်ကတော့ C ကို အခြေခံထားတဲ့ objective-c ကို ထပ်ပြီး လေ့လာသင့်ပါတယ်။ C++ သမားတွေအတွက် လွယ်လွယ်ကူကူ objecive-c ကို လေ့လာနိုင်ပါတယ်။

Web Development ကို သွားမယ်ဆိုရင်တော့ C++ ကနေ PHP သို့မဟုတ် ASP.NET (C#) , Ruby on Rail စတာတွေ ကို ပြောင်းလဲ လေ့လာဖို့လာပါပြီ။ Python ကတော့ Django လိုမျိုး python framework တွေကို အသုံးပြုနိုင်ပါတယ်။ Web Development အတွက် ထွေထွေ ထူးထူး မပြောတော့ပါဘူး။ Route Map ကို လေ့လာလိုက်ရင် ရပါမယ်။ Web Development သွားဖို့အတွက် web essential ကို ကျေညက်နေဖို့လည်း အဓိကျပါတယ်။

Mobile Development မှာကတော့ C++ အခြေခံရှိထားတဲ့ သူတွေအနေနဲ့ အတော့်ကို အဆင်ပြေပါတယ်။ Java , Objective-C , Android SDK စတာတွေကို လွယ်လွယ်ကူကူ လေ့လာနိုင်ပေမယ့် python အတွက်တော့ mobile development က ထဲထဲဝင်ဝင် မရှိသေးပါဘူး။ ဒါကြောင့် python သမားတွေအနေနဲ့လည်း ကိုယ် develop လုပ်မယ့် mobile platform ပေါ်မူတည်ပြီး language ကို ထပ်မံလေ့ဖို့လိုပါတယ်။

Summary

ဘယ် language ကို စလေ့လာသင့်သလဲဆိုတဲ့ အထဲမှာ C နဲ့ python ၂ ခု ထဲက တစ်ခုပါ။ အခြေခံ ကောင်းလိုချင်ရင်တော့ C ကို စလေ့လာသင့်ပါတယ်။ C က python နဲ့ ယှဉ်ရင် အများကြီး လေ့လာရခက်ပြီးတော့ နောက်ပြီး အခြား language တွေကို ကူးပြောင်းလေ့လာတဲ့ အခါမှာ အဆင်ပြေပါလိမ့်မယ်။ လိုအပ်တဲ့ langauge ကို C အခြေခံရှိထားတဲ့သူတွေ အနေနဲ့ လွယ်လွယ်ကူကူ ပြောင်းလဲ လေ့လာနိုင်ပါတယ်။ Python သမားတွေအနေနဲ့ကတော့ အခြား langauge ကို ကူးပြောင်းပြီး လေ့လာဖို့ သိပ်မလိုဘူးလို့ ဆိုရမှာပေါ့။ mobile development က လွဲရင် အခြား platform တော်တော်များများမှာ python ကို အလုပ်လုပ်နိုင်ပါတယ်။ သတိထားစရာ တစ်ခုက python အတွက် web server setup က php ထက်စာရင် အနည်းငယ် ရှုပ်ထွေးပါတယ်။ ဒါတွေက နောက်ပိုင်း သူ့အလိုလို သင်သွားမှာဆိုတော့ မလိုအပ်ပါဘူး။

၁၀ တန်းပြီးခါစ လူတွေ သို့မဟုတ် လုပ်ငန်းခွင်ထဲက မဟုတ်တဲ့သူတွေအနေနဲ့ C++ ကို စတင်လေ့လာသင့်တယ်လို့ အကြံပေးပါရစေ။ ဘာလို့လည်းဆိုတော့ အခြား language တွေကို လွယ်လင့် တကူကူးပြောင်း လေလ့ာနိုင်အောင်ပါ။ လုပ်ငန်းခွင် ဝင်ရောက်နေတဲ့သူတွေအတွက်ကတော့ အချိန်မရှိတဲ့ ကြားကလေ့လာနေရတာ ဖြစ်လို့ python ကို စတင်လေ့လာသင့်ပါတယ်။

လိုအပ်တာတွေ ကျန်ခဲ့တာတွေကို comment ပေးပြီး ဆွေးနွေးနိုင်ပါတယ်ဗျာ။ 

ဘယ် programming language စ လေ့လာမလဲ

programming တစ်ခုကို စသင်ဖို့ ရည်ရွယ်လိုက်တာနဲ့ ဘယ်ကနေ စသင်ရမလဲ။ ဘယ် language ကို စလေ့လာရမလဲဆိုတာက ပြဿနာ တစ်ရပ်ပါ။ သမာရိုးကျ computer တက္ကသိုလ် တက်ရောက်နေတဲ့သူတွေ အတွက်ကတော့ C , C++ နဲ့ စတင် ရင်းနှီး ကျွမ်းဝင်ရမှာပါ။ အဲဒါတွေ မစခင် သင် programming ဆိုတာကို ဘယ်လောက် သိထားပြီးပြီလဲ။

Programming Language ဆိုတာ ဘာလဲ။

Programming ကိုလေ့လာတော့မယ့် ဆိုသူတွေအတွက် အကြီးမားဆုံး စတင် စိန်ခေါ်မှုက programming language ဆိုတာ ဘာလဲဆိုတာပဲ။ အဲဒီတော့ ကျွန်တော်တို့ ပထမဆုံး စဉ်းစားသင့်တာက Programming language ဆိုတာဘာလဲ ဆိုတာပဲ။

Programming ဆိုတာကို theory အရပြောရရင်တော့ computer တွေကို ခိုင်းစေဖို့ ဘာသာစကားလို့ ဆိုရမှာပေါ့။ အဲဒီလို ခိုင်းစေဖို့အတွက် ဘာသာစကားလိုအပ်လာပါတယ်။ ဂျပန်ကို ပြောဖို့ မြန်မာစကားမတတ်တဲ့ ဂျပန်ကို မြန်မာလို သွားပြောနေရင် ဟိုက နားလည်မှာ မဟုတ်ပါဘူး။ ကြားကနေ ဘာသာပြန်တစ်ယောက်လိုအပ်ပါတယ်။ ဒါမှမဟုတ် သူရော ကိုယ်ရော နားလည်မယ့် ဘာသာစကားတစ်ခုခုဖြစ်တဲ့ English စာလိုမျိုး ကြားခံ သုံးရပါလိမ့်မယ်။ ပိုပြီး ထိထိ ရောက်ရောက် ဖြစ်စေချင်ရင်တော့ သူ နားလည်ဆုံး ဘာသာစကားဖြစ်တဲ့ သူ့မိခင် ဘာသာစကား ဂျပန်လို ပြောခြင်းပါပဲ။

Programming Language ဆိုတာ ဒီလိုပါပဲ။ Computer က နားလည်တဲ့ ဘာသာစကား တစ်ခုခုကို ကြားခံပြီး computer ကို ခိုင်းစေရတာပါ။ Computer ကတော့ ပုံမှန်အားဖြင့် 0 နဲ့ 1 သာ အလုပ်လုပ်ပါတယ်။ သို့ပေမယ့် ကျွန်တော်တို့တွေက သူ့ကို ခိုင်းစေဖို့အတွက် 0 နဲ့ 1 တွေ ရေးပြီး command ပေးဖို့ ဆိုတာ အလွန်တရာမှ ခက်ခဲလှပါတယ်။ မဖြစ်နိုင်ဘူးတော့ မဟုတ်ပါ။ အဲဒီတော့ ကိုယ် နားလည်လွယ်ပြီး computer ကို တဆင့် ပြန်ခိုင်းရတဲ့ langauge တစ်ခုခုကို ကြားခံပြီး ဆောင်ရွက်ပေးဖို့ လိုအပ်လာပါပြီ။

Language Generation

programming language generation နဲ့ ပတ်သက်ပြီးတော့ programming ကို စတင် သင်တဲ့ သူတွေ တော်တော်များများ သိထားသင့်ပါတယ်။ မသိလို့ ဘာဖြစ်လည်း ဆိုတော့ ဘာမှတော့ မဖြစ်ပါဘူး။ သိထားတော့ လက်ရှိ ကိုယ် သုံးနေတာ ဘယ် generation ရောက်နေပြီလဲ။ ဒီ generation မတိုင်ခင်က ဘယ် language တွေ ရှိခဲ့လဲ။ အခု ကိုယ်လေ့လာနေတာက ဘယ် generation လဲ။ စတာတွေကို သိရှိနိုင်ပါတယ်။

First Generation Language ( 1GL )

1950 မတိုင်ခင်က UNIVAC I နဲ့ IBM 701 တို့ဟာ ပထမဆုံး machine language program လို့ ဆိုလို့ရပါတယ်။ သို့ပေမယ့် 1GL ဟာ လျင်မြန်စွာ ကုန်ဆုံးသွားပြီး 2GL ကို ကူးပြောင်းလာခဲ့ပါတယ်။

Second Generation Language ( 2GL )

2GL ကတော့ လူသိများတဲ့ assembly language သို့မဟုတ် assembler ပေါ့။ assembler ကတော့ အခုထက်ထိတော့ အချို့နေရာတွေမှာ အသုံးချနေဆဲပါပဲ။

Third Generation Language ( 3GL )

အဲဒီနောက်ပိုင်းမှာတော့ 3GL တွေ ဖြစ်တဲ့ FORTRAN , LISP, COBOL တွေ ထွက်ခဲ့ပါတယ်။ 3GL ဟာ ပိုမို ရေးသားရမှာ လွယ်ကူလာပြီး အရင်တုန်းက machine code တွေနဲ့ မတူညီတော့ပါဘူး။ 3GL ဟာ gerneral use အနေနဲ့ အသုံးချလာနိုင်ခဲ့ပါတယ်။ 3GL နဲ့ အတူတူ general purpos language တွေကိုလည်း ပေါ်ထွက်လာခဲ့ပါတယ်။

C language ကို 1969 နဲ့ 1973 ကြားမှာ developed လုပ်ခဲ့ပြီးတော့ အခုအချိန်ထိ popular ဖြစ်နေသေးတဲ့ langauge တစ်ခုပါ။ C ကို ထပ်ပြီးတော့ version အသစ်တိုးကာ 1980 မှာ C++ ကို ထုတ်ခဲ့ပါတယ်။ C++ က object-oriented နဲ့system programming တွေ ပါဝင်လာပါတယ်။

Third Generation နဲ့ အတူ လက်ရှိ အသုံးပြုနေတဲ့ general purpose programming language တွေကတော့  C, C++, C#, Java, Delphi, and Python တို့ ဖြစ်ပြီး သူတို့ဟာလည်း Third generation Language တွေပါပဲ။

Fourth Generation Language ( 4GL )

Fourth generation language ကိုတော့ စီးပွားရေးဆိုင်ရာ business software တွေအတွက် ရည်ရွယ်ပြီး ဖန်တီးခဲ့ကြပါတယ်။ 3GL တွေက 4GL တွေနဲ့ ပူးပေါင်းဆောင်ရွက်ပြီး develop လုပ်နေရဆဲပါပဲ။ 4GL ထဲမှာ

  • General Use
  • Database
  • Report generators
  • Data manipulation, analysis, and reporting languages
  • Data-stream languages
  • Database-driven GUI application development
  • Screen painters and generators
  • GUI creators
  • Mathematical optimization
  • Web development languages

ဥပမာ အနေနဲ့ ဆိုရရင် Database ထဲမှာ SQL ဖြစ်ပြီးတော့ Web Development မှာတော့ ColdFusion ပေါ့။

Fifth Generation Language ( 5GL )

5GL ကတော့ အဓိကအားဖြင့် programmer မလိုပဲနဲ့ program တွေကို တည်ဆောက်ဖို့အတွက် ရည်ရွယ်ထားတာပါ။ 5GL တွေကို အဓိကအားဖြင့် Artificial Intelligence research တွေ မှာ အဓိက အသုံးပြုပါတယ်။ Prolog , OPS5, Mercury တို့က 5GL example တွေပေါ့။

Summary

အခုအချိန်မှာတော့ 5GL ထိ ရောက်နေပေမယ့် ကျွန်တော်တို့တွေ စပြီး လေ့လာသင့်တာကတော့ 3GL ပါပဲ။ လက်ရှိ တော်တော်များများ အသုံးပြုနေကြတာတွေဟာ 3GL တွေပါပဲ။ 4GL တွေနဲ့ အချို့နေရာတွေမှာ ပေါင်းသုံးကောင်း သုံးပါလိမ့်မယ်။ စလေ့လာမယ့်သူတွေကတော့ Database တွေ ဘာတွေကို လေ့လာဖို့ မလိုသေးပါဘူး။ ပထမဆုံး လေ့လာရမှာက 3GL Programming Langauge ပါ။

What Next

နောက် အပိုင်းမှာ လက်ရှိ အသုံးပြုနေတဲ့ Programming language တွေနဲ့ ဘယ်ဟာကို လေ့လာသင့်သလဲဆိုတာကို ဆွေးနွေးရေးသားသွားမှာပါ။ ဒီ post နဲ့ ပတ်သက်ပြီး မရှင်းတာတွေကို comment ပေးခဲ့လို့ရပါတယ်။

PHP Myanmar Ebook

PHP ကို အခုမှ စလေ့လာမယ့်သူများအတွက် မိုးမြင့်ရှိန်ရေးထားတဲ့ စာအုပ်လေး မျှဝေလိုက်ပါတယ်။ PHP ရဲ့ အခြေခံနဲ့ ပတ်သက်ပြီးတော့ ပြည့်ပြည့်စုံစုံလေး မြန်မာလိုရေးပေးထားတဲ့အတွက် မြန်မာစာအုပ်မှ ဖတ်ချင်တယ်ဆိုတဲ့ သူများအတွက် အဆင်ပြေမယ့် စာအုပ်တစ်အုပ်ပါ။

http://www.mediafire.com/?bika34i9w48f93a

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 က ထူးခြားမှုတွေ ဖြစ်စေပါတယ်။

Continue reading “HTML5”