Server and me

သောကြာနေ့ညက rackspace မှာ cloud server ကို လပေးနဲ့ စမ်းကြည့်တယ်။ အဓိကတော့ MZ နဲ့ Ornagai အတွက် server ပေါ့။ အရင်ဆုံး ကိုယ့် blog ကို ကိုယ်တင်တော့ nginx ကို သုံးမယ်ဆိုပြီး ဆုံးဖြတ်ထားလို့ ngix ကို တင်လိုက်တယ်။ php fpm ကို သွင်းလိုက်တယ်။ ပုံမှန် .php file ကို စမ်းကြည့်တယ်။ ရတယ်။ ဒါနဲ့ wordpress တင်ဖို့ လုပ်တော့ စပြီး တိုင်ပတ်တာပဲ။ .htaccess အလုပ်မလုပ်တော့တဲ့ အတွက်ကြောင့် wordpress configure က စပြီး ဂဂျောင်ပါလေရောပေါ့ဗျာ။ သို့ပေမယ့် wordpress website မှာရေးထားတဲ့အတွက်ကြောင့် အဆင်ပြေသွားတယ်။

ဒါပေမယ့် site က နှေးနေတယ်။ တော်တော်လေးကို နှေးနေတာ။ ဘာဖြစ်လို့ နှေးမှန်းမသိဘူး ဖြစ်နေတယ်။ အခုအချိန်တော့ ထင်သလောက် မနှေးတော့ဘူး။ နှေးရခြင်း အကြောင်းက DNS cache က fully update မဖြစ်သေးတာကြောင့်ပါ။ နောက်ပြီး configure တွေ လွဲနေတာကြောင့်လည်း ပါတယ်။ PHP APC နဲ့ ဆို မြန်တယ်ဆိုတာနဲ့ PHP APC ကို သွင်းပြီး wordpress နဲ့ တွဲသုံးလိုက်တာ အရမ်းကို မှန်သွားတယ်။ W3 Plugin က PHP APC ကို support လုပ်ပေးတယ်ဆိုတော့ ဘာမှ ပြင်စရာ မရှိဘူး။
Continue reading

Nginx with wordpress

သောကြာနေ့ ည က blog ကို rackspace server ပြောင်းလိုက်တယ်။ VPS ကို ပြောင်းလိုက်တယ်ဆိုတာကလည်း Node.js ကို စမ်းချင်တာရယ် နောက်ပြီးတော့ MZ hosting က ရက်ပြည့်တော့မှာ ဆိုတော့ လက်ရှိ hosting ကိုလည်း သဘောမကျတာကြောင့် ပြောင်းဖို့ ဆုံးဖြတ်လိုက်တာ။ ဘယ် host ကို ပြောင်းမလဲစဉ်းစားတော့ Rackspace ကိုပဲ ခေါင်းထဲ ပြေးမြင်တယ်။ တကယ်တန်း ပြောင်းချင်တာကတော့ AWS ပေါ့။ သို့ပေမယ့် ပိုက်ဆံ က အဲလောက် မတတ်နိုင်။ ဒါကြောင့် rackspace ကိုပဲ ပြောင်းဖြစ်တော့တယ်။

ဟိုးအရင်ကတည်းက ကျွန်တော် Nginx အကြောင်းပြောဖူးပါတယ်။ သို့ပေမယ့် အခုလို နဖူးတွေ့ ဒူးတွေ ကြုံရတော့ ဘာလုပ်လို့ ဘာကိုင်ရမှန်းမသိ။ .php ကိုတော့ run ပါပြီတဲ့ wordpress ကတော့ run မရ။ .htaccess အစား config တွေကို သွားပြင်ရတာဆိုတော့ ပြဿနာက ကြုံကော။ wordpress အတွက် အမျိုးမျိုး စမ်းပေမယ့် မရ။ နောက်ဆုံးတော့ http://codex.wordpress.org/Nginx နဲ့ ရသွားတယ်။
Continue reading

Review myself

အခုတလော ရုံးအလုပ်တွေနဲ့ တော်တော်ရှုပ်သွားတယ်။ ၁ ပတ်လောက် အိမ်ပြန်နောက်ကျကုန်တယ်။ Dead Line နီးတဲ့ ပြဿနာ အပြင် အရင်က project က error တွေ ပြန်ရှင်းရတာ ၂ ရက် လောက် အချိန်ကုန်သွားသလို ကိုယ့်ကိုယ်ကို လည်း ပြန်သုံးသပ်မိတယ်။ အရင်က ပြဿနာ ဘာလို့ ဖြစ်တာလဲလို့ ပြန်သုံးသပ်ကြည့်လိုက်တော့

၁။ သေချာ ကောင်းမွန်တဲ့ Structure အရင်မချမိခြင်း။
၂။ App Development နဲ့ Web API ကို တပြိုင်တည်း တည်ဆောက်မိခြင်း။
၃။ Class တွေ ခွဲပြီး မတည်ဆောက်မိခြင်း။
၄။ Testing အားနည်းခြင်း။
၅။ ယုံကြည်မှု လွန်ကဲခြင်း။

စတဲ့ အချက်တွေကို တွေ့မိတယ်။

Continue reading

Web Route 1.2

Web Route ကို ဆွဲခဲ့ဖူးတာတော့ ကြာပါပြီ။ ပြီးခဲ့တဲ့ အပတ်လောက်ကတည်းက update လုပ်မယ် ဆိုပြီး ပြင်ထားတာ ဒီနေ့မှပဲ update လုပ်ဖြစ်တယ်။ ဘာတွေ ထပ်ဖြည့်လိုက်လဲဆိုတော့

  • CSS Framework ကို နေရာရွှေ့လိုက်တယ်။
  • Stylesheet Langauge ထပ်ဖြည့်ထားတယ်။
  • RDBMS ထပ်ဖြည့်ထားတယ်။
  • NoSQL ထပ်ဖြည့်ထားတယ်။
  • Framework အချို့ ဖြည့်ထားတယ်။
  • Google App Engine ဖြည့်ထားတယ်။
  • Nginx ထပ်ဖြည့်ထားတယ်။
  • Node.js ထပ်ဖြည့်ထားတယ်။
  • Git , SVN စတာတွေကို စုပြီး version control လို့ ပြောင်းထားတယ်။
  • jQuery Mobile ထပ်ဖြည့်ထားတယ်။

Continue reading

CSS for starter

ဒီစာအုပ်ကို ရေးတာ ဘယ်လောက် ကြာလို့ ကြာသွားမှန်းတောင် မသိတော့ဘူး။ သေချာတာကတော့ ၁ နှစ်ကျော်သွားပြီဆိုတာပဲ။ ၁ နှစ်အတွင်းမှာ အားတဲ့ အချိန်တွေမှာ တဖြည်းဖြည်းခြင်းရေးခဲ့တာ အခုတော့ ပြီးသွားပါပြီ။ ကျွန်တော် ရေးတဲ့အချိန်တုန်းက CSS 3 က ပေါ်ကစဖြစ်ပြီး browser အားလုံး support မလုပ်သေးပါဘူး။ ဒါကြောင့် အခု CSS စာအုပ်မှာ CSS 3 အကြောင်းမပါလာခဲ့ပါဘူး။ စာလုံးပေါင်းမှားနေတာ ရေးထားတာမှားနေတာတွေကို ဝေဖန်ထောက်ပြနိုင်ပါတယ်ဗျာ။

Download

Redis

Redis ဆိုတာကတော့ NoSQL Database နောက်တစ်ခုပါပဲ။ သူက Key Value storage ကို အသုံးပြုပါတယ်။ ကျွန်တော် How did I learn ? မှာ ရေးခဲ့သလို NoSQL နဲ့ PHP မဟုတ်တဲ့ အခြား language တစ်ခုကို လေ့လာချင်တာကြောင့် project တစ်ခု ဖန်တီးထားလိုက်တယ်။ Language ကိုတော့ Node နဲ့ သုံးမယ်။ Database ကို ဘာသုံးမလဲ စဉ်းစားတဲ့ အခါမှာ Mogodb နဲ့ Redis ကို သွား တွေ့တယ်။ Mongodb အကြောင်းကိုတော့ ကျွန်တော် ဒီမှာ ရေးဘူးပါတယ်။ နောက်ပြီးတော့ Cassandra ကို လည်း သုံးဖူးတယ်။ သူက setup လုပ်ရတာ နည်းနည်း ခက်တယ်။ နောက်ပြီး java သုံးထားတာကို သဘောမကျတဲ့ အတွက်ကြောင့် cassandra ကို ထပ် မသုံးပါဘူး။ ( java ကို အလိုလို နေရင်း ဘာကြောင့် မကြိုက်မှန်းကို မသိပါဘူး ) ဒါကြောင့် Redis ကို စမ်းကြည့်မယ်ဆိုပြီး ဆုံးဖြတ်လိုက်တာ။ မစမ်းခင် ဘာ အရင် ရှာလဲဆိုတော့ Node.js driver ရှိမရှိပဲ။ မရှိရင်တော့ မလေ့လာဘူးလို့ စဉ်းစားထားပေမယ့် Node.js driver အသင့် ရှိနေတာကို တွေ့ပါတယ်။ အခုနောက်ပိုင်းမှာ Node.js driver က တော်တော် များများ ရှိလာကြတယ်။ Node.js က c နဲ့ module တွေ ရေးလို့ ရတဲ့အတွက် လက်ရှိရှိနေတဲ့ driver ကနေ Node.js ကို ပြောင်းဖို့ လွယ်တာကြောင့်လည်း ပါမှာပါ။
Continue reading

How did I learn ?

လွန်ခဲ့တဲ့ ၂ ပတ်လောက်က Django အကြောင်းရေးဖြစ်ခဲ့သလို စာအုပ်လည်း ဖတ်ဖြစ်ခဲ့တယ်။ စာအုပ် ဖတ်တာကတော့ ထွေထွေထူးထူးရယ်တော့ မဟုတ်ပါဘူး။ iPad ထဲထည့် ရုံးသွားရုံးပြန်ဖတ်။ သောကြာနေ့ည ရောက်ရင် ပြန်စမ်းကြည့်။ တစ်ခါတစ်လေ ရုံးက စောရောက်ရင်တော့ ​လမ်းမှာ ဖတ်ထားတာ ပြန်စမ်းကြည့်ပေါ့။ စာအုပ် တစ်အုပ်လုံး ဖတ်တာက ၁ ပတ် လောက်ပဲ ကြာတယ်။ Django ကို မတတ်ပေမယ့် သိသွားတယ်။ Django ကို သိသွားပေမယ့် သဘောမကျဘူး။ ဘာလို့ သဘောမကျလည်းဆိုတော့ ကောင်းလွန်းလို့ပဲ။ အရမ်းပြည့်စုံလွန်းတယ်။ အဲဒီတော့ ကျွန်တော်တို့ အနေနဲ့ သူ့ rule တွေကို လိုက်ရတော့တယ်။ သူ့မှာ ပါတဲ့ Ready Made တွေကို သိချင်လာတယ်။ စာပိုဖတ်ရလာတယ်။ ကျွန်တော်က အဲဒါကို သဘောမကျဘူး။ ဒါကြောင့် symfony ထက် CodeIgniter ကို ရွေးခဲ့တာပဲ။ Django ကို သိသွားပေမယ့် ​ရေးမယ့် project မှာ မသုံးချင်တော့ဘူး။

ဒါနဲ့ Light Weight Python framework နောက်တစ်ခုဖြစ်တဲ့ Pyramid ကို လေ့လာဖြစ်တယ်။ Pyramid ကိုတော့ သဘောကျတယ်။ လွယ်သလို လွတ်လပ်တယ်။ သူက MVC pattern ကို အဓိက ထားပြီးတော့ ကြိုက်တဲ့ python library နဲ့ တွဲသုံးလို့ရတယ်။ ကြိုက်တဲ့ template engine ​ကို သုံးလို့ရလာတယ်။ အဲဒါကို သဘောကျတယ်။ နောက်ပြီး epub , pdf စာအုပ် free ပေးထားတယ်။ နောက်ပြီးတော့ sample tutorial တွေလည်း ပေးထားတဲ့အတွက် Django ထက်စာရင် လေ့လာလို့ လွယ်တယ်။ Pyramid ကို ၁ ပတ်လောက် ဖတ်ပြီး သကာလမှာတော့ Pyramid ပဲ သုံးတော့မယ်လို့ ဆုံးဖြတ်မိလိုက်တယ်။ Django ထက်ယှဉ်ရင် အများကြီးလွတ်လပ်တယ်။ ready made တွေ သိပ်မပါပေမယ့် ကျွန်တော့် အတွက် အဆင်ပြေတယ်။ Django ထက်စာရင် လေ့လာရလွယ်တယ်။

အဲဒါကို သုံးမယ်လို့ ဆုံးဖြတ်ပြီးကာမှ အောင်စည်သူကျော် က facebook မှာ nodejs နဲ့ ပတ်သက်ပြီး link မှာ tag လုပ်ပြီး ရေးလာတယ်။ မလုပ်တာ ကြာပြီ ဖြစ်တဲ့ node ကို ပြန်လှည့်ကြည့်ချင်စိတ်ပေါက်လာတယ်။ ဒါနဲ့ မထူးပါဘူး။ တစ်ရက်လောက်ပဲ အပျင်း​ေ​ပြ ဖတ်လိုက်ပါမယ်လို့ လုပ်ပြီး လေ့လာလိုက်တာ ရပ်မရအောင်ပဲ ဆွဲဆောင်မှုရှိတယ်။ Node က python ထက် မြန်သလားမေးရင်တော့ ဟင်အင်း လို့ပဲ ဖြေရမှာပဲ။

for (i=0;i<1000;i++){
for(j=0;j<1000;j++) {
}
}

ဆိုတဲ့ loop ကို python မှာ 1 second မကြာခင်ပြီးနိုင်ပေမယ့် node မှာတော့ ၁ စက္ကန့်ကျော်ကြာတယ်။

Node က python ထက်စာရင် သိသိသာသာ မြန်ပါတယ်။

var sys = require('sys')
var s = process.uptime();

var z = 0;
for (x=0; x < 10000; x++) {
for (y=0; y < 10000; y++) {
z += x * y
}
}

sys.puts(process.uptime() - s)
sys.puts(z)

က node မှာ 3 စက္ကန့်သာ ကြာပေမယ့် python မှာတော့ 24 စက္ကန့် ကြာပါတယ်။ ( credit to Thant Thet )

node js မှ​ာ ရှိတဲ့ module တွေနဲ့ impact တွေကတော့ ကြောက်စရာကောင်းလောက်အောင် တိုးတက်မြန်ဆန်လှတယ်။ Nodejs ဟာ Unix-like platform တွေပေါ်မှာ Google V8 JavaScript engine အတွက် event-driven I/O framework တစ်ခုပါ။ နောက်ပြီး javascript ကို သုံးပြီး server side တွေရေးလို့ရတယ်။ Database access တွေ လုပ်လို့ရတယ်။ တနည်းပြောရင် server side web app တစ်ခု ကောင်းကောင်းရေးလို့ရတယ်။ နောက်ပြီး Real Time app တွေ ရေးလို့ရတယ်။ javascript ဆိုတာက web developer တိုင်း သိတဲ့ language ပါ။ တော်တော်များများသိခဲ့တာက javascript ဆိုတာ client side အတွက် လို့ ဆိုတာပဲ သိကြတယ်။ အခုတော့ Nodejs နဲ့ server side ပါ ရေးလို့ရပြီ။ javascript သင်တဲ့အခါမှာ client side script ဆိုပြီး သင်လို့ မရတော့ဘူး။ Server Side မှာ Nodejs ကို အသုံးပြုပြီး ရေးလို့ရတယ်ဆိုပြီး ပြောင်းပြီး သင်ရတော့မယ်။ Nodejs က ကျွန်တော့် လေ့လာမှုကို ရပ်တန့် မရခဲ့ဘူး။ Nodejs ကနေ ဆက်ပြီးတော့ Redis , Mongod တွေပါ ဆက်ကာ လေ့လာဖြစ်သွားတယ်။ Redis , Mongod တွေ အကြောင်း ပြောရင် ပြီးတော့မှာ မဟုတ်တဲ့အတွက် Django, Pyramid , Nodejs တွေကို ဘယ်လို တွေ လေ့လာဖြစ်ခဲ့သလိုဆိုတာလေး ​အရင် ပြောပြရစေ။
Continue reading