Bootstrap

Twitter bootstrap ကို သိတာတော့ တော်တော်လေးကို ကြာလှပါပြီ။ Twitter မှာ bootstrap ကို တစ်ယောက်က tweet လိုက်ကတည်းက သဘောကျခဲ့တာ အမှန်ပဲ။ MMWebFonts ကိုတောင် Bootstrap က 1.1 ပဲ ရှိပါသေးတယ်။ အခု အချိန်မှာတော့ version 2 တောင် ရောက်နေပါပြီ။

Twitter bootstrap ဆိုတာကတော့ သူကတော့ ဒီလို ဆိုထားပါတယ်။

Simple and flexible HTML, CSS, and Javascript for popular user interface components and interactions.

user interface နဲ့ interactions တွေအတွက် လူသုံးများတဲ့ HTML , CSS , Javascript တွေ စုစည်းထားတာလို့ ဆိုလို့ရပါလိမ့်မယ်။ ကျွန်တော် ကတော့ နောက်ပိုင်း UI အပိုင်း စဉ်းစားဖို့ အချိန်မရှိတော့ဘူးဆိုရင် bootsrap ကို ပဲ လွယ်လင့် တကူ အသုံးပြုလိုက်ပါတယ်။

Continue reading

MMWebFonts

MyWebFont က bandwidth ပြည့်လို့ ၁ ရက်လောက် သုံးမရတာ တွေ အခု တလော ခဏခဏ ဖြစ်နေပါတယ်။ ဒါနဲ့ ကျွန်တော့် ဆီ mail ပို့ပြီး သူတို့ရဲ့ server မှာ host တင်ပြီး run မယ်လို့ စာတွေ ပို့ကြတယ်။ သို့သော်လည်းပဲ MyWebFont က Google App Engine အတွက် ရေးထားတာဖြစ်ပြီးတော့ လက်ရှိ Linux server တွေမှာ run လို့မရပါဘူး။

MMWebFonts ဆိုပြီးတော့ mywebfont code အတိုင်းကို PHP နဲ့ ပြန်ပြင်ရေးထားပါတယ်။ hosting ပေါ်မှာ မ run ချင်သူတွေ အနေနဲ့ကတော့ http://mmwebfonts.comquas.com/ ကနေ MyWebFont သုံးသလိုမျိုး external style sheet အနေနဲ့ သုံးလို့ရပါတယ်။ ကိုယ့် hosting မှာ တင်သုံးချင်တယ်ဆိုသူတွေကတော့ source code ကို github မှာ ရယူနိုင်ပါတယ်။

ကျောင်းတွင်း ဒီမိုကရေစီ

Facebook မှာ ခင်မြတ် က ဦးသန့်ရဲ့ ကျောင်းတွင်း ဒီမိုကရေစီ စာအုပ်ကို ပြန်ရိုက်ပြီး တင်ထားပေးပါတယ်။ ပြီးတော့ PDF နဲ့ share ထားတယ်။ message ပို့ပြီးတော့ epub file လုပ်ဖို့အတွက် တောင်းတော့ မူရင်း doc file ကိုပို့ပေးပါတယ်။ ဒါနဲ့ ကိုယ့်ဘာသာကိုယ် online က နေ ပုံတွေ ပြန်ရှာပြီးတော့ cover လုပ်လိုက်တယ်။ epub ပြောင်း ။ mmepub နဲ့ font epub ထည့်။ cover ထည့် လိုက်ပါတယ်။

cover

epub version ကိုတော့ ဒီမှာ download ချနိုင်ပါတယ်။

PDF ကိုတော့ ဒီမှာ ဖတ်ပြီး download original ကို နှိပ်ပြီးတော့ download လည်း ချလို့ရပါတယ်။

Working with git

Git ကို အရင်ရုံး point-star မှာ စသုံးဖူးတာပါ။ git ဆိုတာကို အရင်တုန်းကတော့ opensource တွေကို download ဆွဲချပြီး သုံးဖို့လောက်ပဲ သုံးဖြစ်တယ်။ point-star မှာ github သုံးရမယ်ဆိုတာနဲ့ github ကို လေ့လာဖြစ်တာပဲ။ github နဲ့ git အစတုန်းက လုံးဝ ကို မကွဲတာ။ github သုံးရင်းနဲ့ git နဲ့ github မတူဘူးဆိုတာ သိလာတာ။ git သုံးတတ်ပြီးနောက်ပိုင်းမှာ github မှာ opensource project တွေ တင်ဖြစ်တယ်။ သို့ပေမယ့် တစ်ယောက်တည်းပဲ ဖြစ်တဲ့အတွက် git အကြောင်းကို ကောင်းကောင်း မသိခဲ့ဘူး။ အရင်ရုံးတုန်းကလည်း တစ်ယောက်တည်းလိုလို ဖြစ်နေတဲ့အတွက် မထူးခြားလှဘူး။ backup သာသာ ရှိပါတယ်။

ဒီရုံးရောက်တော့ repo သုံးမယ် ဆိုတော့ ကျွန်တော်က bitbucket ကို recommend လုပ်ခဲ့တယ်။ သို့ပေမယ့် bitbucket က hg ပဲ support လုပ်တယ်။ ဒါကြောင့် git ထက်စာရင် hg ကို အသုံးပြုဖြစ်ခဲ့တယ်။ အခုနောက်ပိုင်း bitbucket က git support လုပ်တော့ ကျွန်တော်တို့တွေ git ကို ပြောင်းသုံးခဲ့တယ်။ hg နဲ့ git က အတူတူပဲ လို့ ဆိုလို့ရပါတယ်။ သို့ပေမယ့် ကျွန်တော်က git ကို ပိုကြိုက်တယ်။ git က data တွေကို compress လုပ်ပြီး သိမ်းထားတဲ့အတွက်ကြောင့် နေရာ သိပ်မယူဘူးလို့ ဆိုရမလိုပဲ။ Git ကို စသုံးတဲ့အချိန်မှာ ကျွန်တော်တို့ ရုံးက ၂ ယောက်တည်း မဟုတ်တော့တာအတွက်ကြောင့် hg ထက်စာရင် git အကြောင်းကို ပိုသိပါတယ်။

Continue reading

Making Rest API – Part 1

ကျွန်တော် PHP နဲ့ REST API အကြောင်းကို တစ်ခေါက်ရေးဖူးပါတယ်။ အဲဒီမှာ CodeIgniter ပြဿနာကို ရေးခဲ့ဖူးပါတယ်။ Slim Framework အကြောင်းကိုလည်း ပြောခဲ့ပါတယ်။ သို့ပေမယ့် Slim Framework ပြဿနာက ကျွန်တော်တို့ routing ပတ်လမ်းကြောင်းတွေ အများကြီး ရေးနေရမှာပဲ။ file တွေ အများကြီးကို ခေါ်ပြီးတော့ run ရမှာဖြစ်တဲ့အတွက်ကြောင့် သဘောမကျလှဘူး။

ဒါနဲ့ CodeIgniter routing နဲ့ Sinatrarb routing ပေါင်းပြီးတော့ Ava framework မှာ ထည့်သွင်းလိုက်ပါတယ်။ ကျွန်တော်တို့ Rest API တစ်ခုကို ရေးကြည့်ရအောင်။ Example အနေနဲ့ blog API တစ်ခု တည်ဆောက်ပါမယ်။ GET , POST , PUT , DELETE တွေကို ကျွန်တော်တို့ အသုံးပြုပါမယ်။

GET ကတော့ ရဖို့အတွက်ပါ။ POST ကတော့ add လုပ်တဲ့ ကိစ္စတွေမှာ သုံးပါမယ်။ PUT ကိုတော့ edit လုပ်ဖို့မှာ အသုံးပြုပါမယ်။ DELETE ကိုတော့ ဖျက်တဲ့ နေရာမှာ အသုံးပြုပါမယ်။
Continue reading

Infrastructure

ဒီနေ့ ရုံးမှာ လက်ရှိလုပ်နေတဲ့ project တစ်ခုအတွက် server ပိုင်း infrastructure တွေကို လိုက်ဖတ်ဖြစ်တယ်။ အဓိက ဖတ်ဖြစ်တဲ့ infrastructure တွေက facebook, foursquare , instagran , digg စတဲ့ လူသုံးများတဲ့ website တွေပါပဲ။

Facebook

လက်ရှိ facebook ကို XHP နဲ့ ရေးပြီးတော့ Hip Hop PHP နဲ့ run ထားပါတယ်။ website ကိုတော့ javascript တွေပဲ သုံးထားတယ်။ C , C++ , Java တွေကို back end မှာ သုံးထားတယ်။ နောက်ပြီးတော့ boost ကိုလည်း သုံးထားပါတယ်။ နောက်ပြီးတော့ အချို့ internal tool တွေကိုတော့ python ကိုသုံးထားပါတယ်။ Chat ပိုင်းကိုတော့ Erlang နဲ့ ရေးထားပါတယ်။ backend service နဲ့ front end web server ကိုတော့ Apache Thrift ကို အသုံးပြုထားပါတယ်။1

Facebook က 690 billion page views each month ရှိပါတယ်။ လက်ရှိ Internet Traffic 9.5 percent က facebook ကို အသုံးပြုနေတာပါ။ 100 million photo upload နေ့စဉ် ရှိနေပြီးတော့ လစဉ် 30 billion pieces of content ရှိပါတယ်။ 1 million web sites and 550,000 applications က facebook connect ကို အသုံးပြုထားပါတယ်။ လက်ရှိ facebook data center ကိုတော့ Prineville, Oregon မှာ ထားရှိပါတယ်။2 North Carolina data center ကို တည်ဆောက်ဖို့အတွက် facebook က ပြင်ဆင်နေပါတယ်။3

လက်ရှိ data center မှာ အနည်းဆုံး 60,000 servers အသုံးပြုလျက်ရှိပါတယ်။ နောက်ပြီးတော့ MySQL , Memcached, Haystack for photo retrieval, Cassandra, Hadoop and Hive , Scribe for high-speed distributed logging4 , Apache HBase for Messaging5 တို့ကို အသုံးပြုထားပါတယ်။

Facebook ရဲ့ infrastructure အတိအကျကိုတော့ မသိရပေမယ့် server နဲ့ traffic ကို ကြည့်လိုက်တာနဲ့ အခုတော့ အဲလောက်ထိတော့ မလိုသေးပါဘူး။

Continue reading

  1. http://www.quora.com/What-programming-languages-are-used-at-Facebook?q=programming+language+in+facebook []
  2. http://www.datacenterknowledge.com/the-facebook-data-center-faq/ []
  3. https://www.facebook.com/rutherfordDataCenter []
  4. http://royal.pingdom.com/2010/06/18/the-software-behind-facebook/ []
  5. https://www.facebook.com/notes/facebook-engineering/the-underlying-technology-of-messages/454991608919 []

Test Flight SDK

Testflight ကိုတော့ iOS developer တော်တော်များများ သိကြပါလိမ့်မယ်။ iOS app development လုပ်တဲ့ အခါမှာ daily build တွေကို testing လုပ်ဖို့အတွက် testflight က အရေးပါလှပါတယ်။ အရင်တုန်းကတော့ SDK မထုတ်သေးပေမယ့် လွန်ခဲ့တဲ့ လအနည်းက SDK ထုတ်ပေးခဲ့ပါတယ်။ SDK က ဘာတွေ လုပ်လို့ရသလဲဆိုရင်တော့

၁။ Application ကို ဘယ်လောက်ကြာကြာသုံးသလဲဆိုတာကို သိနိုင်တယ်။်
၂။ NSLog နဲ့ ရေးထားတာတွေကို ပြန်ကြည့်လို့ရတယ်။ တနည်းပြောရင် ဘယ် line တွေက အလုပ်လုပ်သွားသလဲ မလုပ်သွားဘူးလဲဆိုတာကို သိနိုင်တယ်။
၃။ App က Crash ဖြစ်သွားခဲ့ရင် crash report ကို သူ့အလိုလို testflight ပေါ် တင်ထားပေးတယ်။ ဒါကြောင့် ဘယ်နေရာမှာ ဘာကြောင့် crash ဖြစ်သွားသလဲဆိုတာကို လွယ်လင့်တကူ သိနိုင်တယ်။
၄။ Check Point တွေထားခဲ့လို့ရတယ်။ ဥပမာ။။ Add friend လုပ်မလုပ် သိရအောင် check point ထားခဲ့တာမျိုးပေါ့။
၅။ In App Update လုပ်နိုင်တယ်။ version အသစ်ကို တင်လိုက်တာနဲ့ tester တွေက update မလုပ်ရသေးပဲ အဟောင်းကို ဖွင့်လိုက်တာနဲ့ update လုပ်လို့ရတယ်ဆိုပြီး notification တက်လာတယ်။
၆။ In-App Question ထည့်လို့ရတယ်။
Continue reading