Skip to main content

Posts

Editor Config

Editor Config ကျွန်တော်တို့ Developer တွေတော်တော်များများက၊ ကိုယ်နဲ့ကျွမ်းကျင်ရာ ဒါမှမဟုတ် နှစ်သက်ရာ IDE/Text Editor တွေကို သုံးလေ့ရှိကြပါတယ်။ အဲ့နေရာမှာ ပြသနာတစ်ခုက IDE/Text Editor မတူတာနဲ့ Coding Style, Format တွေမှာ မတူတာ တွေဖြစ်တတ်ကြပါတယ်။ ဥပမာ - Eclipse သုံးတဲ့သူ အချင်းချင်းဆို setting ကို export လုပ်ပြီး အတူတူထားလို့ရပေမယ့်၊​ IntelliJ IDEA သုံးတဲ့သူတွေနဲ့ ဆို အဆင်မပြေဖြစ်ပြန်ရော။ Visual Studio Code, Atom, Sublime Text တွေကအများကြီးကို ကြားထဲ Indentation တွေ၊ Code Style တွေကို Standardize လုပ်ဖို့ ခက်ခဲလာတယ်။ အဲ့ဒါကြောင့် တစ်ချို့  Company/Project တွေဆိုရင် ဘယ် IDE/ Text Editor ပဲသုံးရမယ်ဆိုပြီးသတ်မှတ်ထားလေ့ရှိကြတယ်။ အကျိုးဆက်အနေနဲ့ကတော့ Productivity နဲ့ Developers တွေက သတ်မှတ်ထားတဲ့ tools တွေနဲ့ အကျွမ်းဝင်ဖို့ အချိန်ပေးရပါတယ်။ အဲ့ဒါ တွေကို Editor Config ကအလွယ်တကူဖြေရှင်းပေးနိုင်ပါတယ်။ Editor Config ရဲ့ အားသာချက်ကတော့ အတော်များများ IDE/ Text Editor တွေမှာ built-in ပါပြီးသားဖြစ်ပြီး၊ built-in မပါရင်လဲ Plugin တွေက အတော်များများအတွက်ရှိပါတယ်။  # EditorConfig is awesome: https://Edito

Pigeon Myanmar's free Wireguard VPN

Pigeon Myanmar's free Wireguard VPN  Pigeon Myanmar ရဲ့ Free VPN service ကိုအသုံးပြုရန်အတွက် အောက်ပါ Telegram Chatbot ကို message ပို့ပြီး Config file ဒါမှမဟုတ် QR Code ကိုရယူနိုင်ပါတယ်။ အသုံးမပြုလိုသူများ၊ newvpn request မလုပ်ဖို့မတ္တာရပ်ခံအပ်ပါတယ်၊ client က limit ရှိတာကြောင့် လိုအပ်တဲ့သူတွေမရမှာစိုးလို့ပါ။ Telegram Chat Bot Telegram Chat Bot:  https://t.me/pigeonmyanmarbot Chat Bot မှာ /start ကိုလို့ပို့ပြီး သက်ဆိုင်ရာ Operation ကိုရေးပြီး VPN အသုံးပြုရန်အတွက် QR Code ဒါမှမဟုတ် Config file ရယူနိုင်ပါတယ်။ Telegram Account တစ်ခုကို client တစ်ခုသတ်မှတ်ထားဒါကြောင့် နောက်အကြိမ်တွေ ထပ်မှတ်ရယူပါကလည်း client အဟောင်းကိုသာ ရရှိတော့မှဖြစ်ပါတယ်။ QR Code/Config File ကို ပျောက်ပျက်သွားတဲ့အခါမှာလည်း ထပ်မံတောင်းခံ ကြည့်ရှူနိုင်ပါတယ်။   /newvpnqr - VPN QR Code ရယူရန်။ /newvpn - VPN Config File ရယူရန်။ VPN Installation and Setup သက်ဆိုင်ရာ Application ကိုအောက်ပါ link များမှ install လုပ်ပါ။  Application မှာ  + / Add a tunnel ခလုတ်နှိပ်ပါ။  Create from file or archive ဒါမှမဟုတ် Create from QR

Understanding Git Flow - Branching Models

Understanding Git Flow - Branching Models Branching Model Software Development Team တစ်ခုမှာ ဆိုရင် latest released code တွေ၊ latest stable development code တွေ နဲ့  development in progress ဖြစ်နေတဲ့ code တွေ နဲ့ ဘယ် release version မှာ ဘယ် code တွေကို  release လုပ်ခဲ့တယ်ဆိုတာတွေကို စနစ်တကျ manage လုပ်ရပါတယ်။ အဲ့လို Team Collaboration လုပ်ရတဲ့အချိန်မှာဆို သင့်တော်ရာ Branching Models တစ်ခုခုကို ရွေးရပါတယ်။ မဟုတ်ရင်တော့ code conflict တွေနဲ့ unstable၊​ uncompleted  feature တွေကို ထိန်းသိမ်းရခက်ပါတယ်။ Popular of branching models Branching Models တွေထဲမှာမှ လူသုံးများပြီး ပေါ်ပြူလာ အဖြစ်ဆုံး Branching Model နှစ်ခုကတော့ အောက်ပါအတိုင်းနှစ်မျိုးရှိပါတယ်။ Git Flow Trunk Based Git Flow Main Branches Git Flow မှာ main branches အနေနဲ့ master နဲ့ develop ဆိုပြီးနှစ်ခုရှိပါတယ်။  Master(main)   Branch   Master branch ကတော့ latest features တွေထားပါတယ်။ master branch ဟာ နောက်ဆုံး release လုပ်ထားတဲ့ production မှာရှိနေတဲ့ code တွေနဲ့ ထပ်တူကျရပါမယ်။ Production မှာ အကြောင်းအမျိုးမျိုးကြောင့် ပြသနာတစ်ခုခုတ

How to use GIT? GIT ကိုဘယ်လို အသုံးပြုကြမလဲ (Cheat sheet)...

How to use GIT?  Git အသုံးပြုပုံကို နားလည်ကျွမ်းကျင်ဖို့ GIT ဘယ်လိုအလုပ်လုပ်လဲ ဆိုတာ နည်းနည်းတော့ သိထားဖို့လိုလိမ့်မယ်။  File ရဲ့ statuses တွေနဲ့ file transitions တွေကို သေချာ နားလည်ထားဖို့လိုတယ်။ File status မှာဆိုရင် file တစ်ခုကို git ကဘယ်အချိန်မှာ track စလုပ်လဲ၊ ဘယ်အချိန်မှာ modified, unmodified, staged statuses တွေဖြစ်သွားလဲဆိုတာတွေ နဲ့ File transitions မှာဆိုရင် file တစ်ခုက ဘယ် command run ရင် local repository မှာရှိတယ်။ ဘယ် command run ရင်တော့ remote repository (server) ကိုရောက်သွားလဲ ဆိုတာတွေကို အနည်းငယ်နားလည်ထားဖို့တော့လိုမယ်။ Git File Statuses Git မှာ file တွေကို track လုပ်နေတဲ့ statuses တွေရှိတယ်။ အဲ့ဒါတွေကတော့ အောက်ပါအတိုင်းဖြစ်တယ်။ Untracked Unmodified Modified Staged Untracked Status Untracked ဆိုတာက file တစ်ခုက ပထမဆုံး create လုပ်ပြီးတဲအချိန်မှာ git က အဲ့ file ကိုလုံးဝ track မလုပ်ရသေးတဲ့ file တွေက git မှာ untracked အနေနဲ့ရှိနေတယ်။ အဲ့ဒါကို git ကို စပြီး track လုပ်စေချင်တယ်ဆိုင်တော့ git add <file> command နဲ့ git ကို စ track လုပ်ခိုင်းလို့ရတယ်။ အဲ့လို git add လုပ်လို

Git - Version Control

Git - Version Control About Version Control Version Control ဆိုတာ System တစ်ခုပဲဖြစ်ပါတယ်။ Computer System ပေါမှာ Files ကို update လုပ်တဲ့အခါမှာ သူတို့ရဲ့ပြောင်းလဲမှုတွေကို အချိန်နဲ့ တစ်ပြေးညီ Versions တွေနဲ့ မှတ်တမ်းတင်ထားပေးခြင်းဖြစ်ပါတယ်။ လိုအပ်တဲ့ အချိန်မှာ သက်ဆိုင်ရာ version တွေမှာ ဘာတွေပြောင်းလဲခဲ့လဲ၊ ဘယ်အချိန်ပြောင်းလဲခဲ့လဲ ဆိုတာတွေကို ပြန်လည် ကြည့်နိုင်တယ်။ ပြီးတော့ ကိုယ်ကြိုက်တဲ့ Version တစ်ခုခု ကိုလဲ အချိန်မရွေး ပြန်ယူနိုင်ပါတယ်။ ဥပမာ - Programming အတွက်ဆိုရင်တော့ Source Code files တွေကို Version Control လုပ်ပြီးအသုံးပြုကြပါတယ်။ Source Code file တွေမှမဟုတ်ပဲ၊ ဘယ် File အမျိုးအစားကို မဆို Version Control နဲ့ အသုံးပြုနိုင်ပါတယ်။ ဥပမာ - ဓာတ်ပုံ၊ ဗွီဒီရို၊ Excel file, Word file and etc.Version Control Systems တွေကတော့ အောက်ပါအတိုင်း သုံးမျိုးရှိပါတယ်။  Local Version Control Systems Centralized Version Control Systems Distributed Version Control System 1. Local Version Control Systems အများစုက Local Version Control Systems အနေနဲ့ File တွေကို copy ကူးပြီး၊ တခြားတစ်နေရာရာ မှာ သိမ်းထာ

Software Package Manager - Windows

Software Package Manager - Windows Package Manager လို့ပြောရင် သာမန် Windows users တွေနဲ့ အနည်းငယ် စိမ်းနေပေမယ့် Software Engineer/ Server Administration ပိုင်းမှာလုပ် လေ့လာဖူးတဲ့သူတွေကတော့ ရင်းနှီးပြီးသားပါ။ Linux user တွေအတွက်တော့ ထွေထွေထူးထူးပြောနေစရာမလိုတော့ပါဘူး။ Linux မှာတော့ Package (App) တစ်ခုခု install လုပ်မယ်ဆိုရင်သင်တော်ရာ package managers တွေဖြစ်တဲ့ yum, wget တွေနဲ့ command line ကနေ install လုပ်ကြတာများပါတယ်။ Mac users တွေဆိုရင်လဲ တော်တော်များများ Homebrew ကို အသုံးပြုကြပါတယ်။ ဒီတစ်ခါအဓိက ပြောချင်တာကတော့ Package Manager ကို တစ်ခါမှ မသုံးဖူးသေးတဲ့ users တွေနဲ့ ၊ Windows အတွက် package manager အကြောင်းပါ။ Package(App) Manager - ဆိုတာကတော့ အလွယ်ပြောရရင် install လုပ်ချင်တဲ့ software ကို download ဆွဲဒါတွေ၊ install လုပ်တာတွေကို automate လုပ်ထားတယ်လို့ပြောလို့ရပါတယ်။ download တွေဆွဲ၊ ပြီးရင် ရလာတဲ့ exe file ကို run ပြီး install လုပ်မယ်ဆို အချိန်ကုန်ပါတယ်၊ အလုပ်ရှုပ်ပါတယ်။ Software တစ်ခု၊ နှစ်ခုလောက် သွင့်တဲ့အချိန် ပြသနာမရှိပေမဲ့ Environment Setup လုပ်တဲ့အခါ တို့ Windows ပြန်တင်ထား

Logging and Monitoring

  Application Logging and Monitoring Application တစ်ခုက server ဒါမှမဟုတ် cloud မှာ run ရုံပဲဆိုရင်တော့ လွယ်ပါလိမ့်မယ်။ personal အမြင် အရဆိုရင်တော့ proper monotorings and alerts တွေ မရှိရင် application ကိုရပ်ထားတာ အကောင်းဆုံးပါပဲ။ ဘာလို့လဲဆိုတော့ ကိုယ့် application/service က ဘာတွေဖြစ်နေတယ်၊ ဘာ error တက်နေတယ်၊ users တွေက တကယ်ရောသုံးလို့ရရဲ့လား အစရှိတာတွေ သိဖို့လိုပါတယ်။ Application မှာ error တစ်ခုခု တက်တာနဲ့ ကိုယ်က သိဖို့လိုပါတယ်၊ user ကပြောမှသိတာမျိုးဆိုရင်တော့ အတော်ကိုအဆင်မပြေပါဘူး။ Bad VOC(Voice of Customers) တွေပဲရပြီး ဘယ်သူမှသုံးချင်တော့မှာမဟုတ်ပါဘူး။ ဒါတွေထဲက တစ်စိတ်တစ်ပိုင်းဖြေရှင်းဖို့အတွက် Logging and Alerts tools တွေအများကြီးရှိပါတယ်။ Splunk ELK Graylog Etc... ဒီထဲကမှ Splunk အကြောင်းကိုနည်းနည်း ပြောချင်ပါတယ်။ Splunk က log management and centralized logging tool တစ်ခုဖြစ်တယ်။ ဘာလို့ ဒီ log management ကိုသုံးရလဲ ဆိုတော့ ကိုယ့် Application/Service က very high performance နဲ့ very high QPS တွေနဲ့ run တယ်ဆိုရင် log တွေကို အလွယ်တကူကြည့်ဖို့ ရှာဖို့ဆိုတာ မလွယ််ပါဘူး။ Instances တွေအမျာ

DevOps Engineer

DevOps Engineer Developer တော်တော်များများက Code တွေကို အပြန်စားရေးနိုင်ဖို့ Design Patterns တွေဘယ်လိုသုံးတယ်ဆိုတာတွေ Programming Languages တွေကို အာရုံစိုက်ပီးလေ့လာ လေ့ရှိကြတယ်။ Outsource ရေးတဲ့ အလုပ် လုပ်တာများတဲ့သူတွေက Coding ပိုင်းမှာ ကျွမ်းကျင်လေ့ရှိကြတယ် ပီးတော့ Waterfall Model နဲ့ ရင်းနီးကြတယ်။ Outsource ရေးတာများတဲ့သူက ဘာဖြစ်လာလဲဆိုတော့ Infrastructure ပိုင်းတွေ Cloud Computing ပိုင်းတွေ Operation ပိုင်းတွေ မှာ အတွေ့အကြုံသိပ်မရှိကြဘူး။ အဲ့ဒီပိုင်းတွေအတွေ့အကြုံနည်းတော့ ပြည်ပထွက်အလုပ်လုပ်တဲ့ခါ မှာ အခက်အခဲအနည်းငယ်ရှိကြတယ် ဘာလို့လဲဆိုတော့ ကိုယ်လုပ်နေကြက ကိုယ့် Local Machine မှာ Run မယ် Unit Test, Integration Test Run မယ် အဲ့လောက်ပဲလုပ်ကြတာများတယ်။ DevOps Engineer ကျတော့ အဲ့လိုမဟုတ်တော့ပဲ Coding တွေပဲ အာရုံစိုက်နေလို့မရတော့ဘူး။ CI/CD, Test Automation, Deployment Architecture, Docker, Kubernetes, Security, Linux, Shell Script, Messaging, Logging, Application Monitoring & Alerts, Resources Monitoring & Alerts, Release Management, Version Management တွေအများကြီးကို စဥ်းစားရတယ်။