ကျွန်တော့်မှာ အတော်ဆိုးတဲ့အကျင့် တစ်ခုရှိတယ်။ ခုထိလည်း ရှိနေတုံးပဲ။ နောက်လည်း ရှိဦးမယ်ထင်တယ်။ ကိုယ့်ကိုကိုယ် ခွင့်မလွှတ်နိုင်တဲ့အကျင့်။ နှစ်တွေကြာပေမယ့် တစ်ခါတစ်ခါ ဆောင့်ဆောင့်တက်ရင် suicidal ဖြစ်တဲ့အထိကို ဖြစ်တယ်။ ဒါတွေကို publicly တစ်ခါမှ ထုတ်မပြောခဲ့ဖူးဘူး။ ယုတ်စွအဆုံး သူငယ်ချင်းအရင်းအခြာတွေလည်း သိပ်မသိခဲ့ဖူးဘူး။ ရင်ထဲ မြိုသိပ်ထားတာတွေ တအားများလာတော့ လူက အရာရာမှာ သိသိသာသာ ထိုးကျသွားခဲ့တယ်။ Covid ကြောင့် အခန်းအောင်းတာ ကြာလာတော့ စိတ်ရောဂါက ပိုဆိုးလာတယ်ထင်ပါရဲ့။

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


One gotcha in this strange language of ours is: Everything could be considered as “objects”.

[1, 2, 3] array is considered as an “object”, and it means we could, technically use Object.prototype methods with it. So here’s the result; the output being INDEX as a KEY, VALUE as VALUE.

You could consider an array as key-value pair in this way. However “typeof null” might output “object” as it’s type (it is an unfixed bug in JavaScript engine written from long ago and they didn’t bother fixing it because it’s way too strangled), couldn’t be used with most Object.prototype methods. It will throw a “Reference Error”.

Interesting take. This could also be used to tease a candidate for JS interview questions. However one shouldn’t be very serious of this question as it doesn’t even matter in actual production stages.


Feb 17, 2021. Yangon / Rangoon.

Pro-democracy protests continue in #Myanmar, despite a large military presence, as seen here in these #satellite images from February 13 & 16, 2021, including a large “We Want Democracy” street mural (Source: @Maxar)

Never had I imagined to witness the outcries we had in previous decades of Military Regime controlled country. Everywhere I go, people chant, shout, and express the disgust for the Military Coup in angst. The anger and deep desire for true democratic freedom can be seen on everyone’s face. I was, and still am one of them. The fight doesn’t just go down until the juntas meet their demise. I am sure everyone had the same instinct as well. …


Photo by Diego Jimenez on Unsplash

2020 ကတော့ ပြီးသွားပြီ။ New Year Resolution တို့ ဘာတို့ (နှစ်တိုင်းမဖြစ်ပေမယ့်) ဖြစ်တဲ့ဟာလေးတွေ ရှိတော့ ဒီ article လေးနဲ့ 2021 အကုန်မှာ ကိုယ့်ကိုကိုယ် ပြန်သုံးသပ်ဖို့ ရေးကြည့်လိုက်တယ်။

  1. Weight Gain

တစ်သက်လုံး “နင်ပိန်တယ်နော်” ဆိုတာ အပြောခံရပေါင်းများလှပြီ။ 2020 နှစ်ကုန်လေးမှာ ဘာစိတ်ကူး ထပေါက်မိတယ်မသိ Dumbbell တွေ ဝယ်ပြီး အလေးပြန်မ ဖြစ်တယ်။ 2017 လောက်က ၄-၅ လ လောက် gym သွားဖူးတော့ အဲ့လောက် အချိန်လေး အတွင်းမှာ ပေါင် ၁၀၀ ဝန်းကျင်လေးကနေပြီး ၁၁၀ ကျော်သွားတယ်။ ပုခုံးလေး ဘာလေးထွက်လာတော့ ကိုယ့်ကိုကိုယ် ယုံကြည်မှုလေး ပိုရှိလာတာပေါ့။ အဲ ပြန်မဖြစ်တော့ ဗိုက်တွေဆာကော။ ဗိုက်ဆာတော့ ရှိရှိသမျှသွတ်သလို စျေးက အသားလေးဘာလေး ဝယ်ပြီး ကိုယ်တိုင်လည်း ချက်စားဖြစ်တယ်။ အမဲသားကို တော်တော်လေး နားလည်ပြီး ချက်တတ်ပြုတ်တတ်သွားတယ်။ နောက်ပြီး နွားနို့၊ Almond Milk အစရှိသည်ကို တော်တော်သောက်ဖြစ်တယ်။ အဲ့တော့ နှစ်မကုန်ခင်လေး ဝိတ်ပြန်ချိန်ကြည့်တော့ အံ့သြခြင်းကြီးစွာ ၅ ပေါင်တိတိ တက်လာတာ မြင်ရတယ် (ကျွန်တော်က ဝိတ်အတက် အရမ်းနှေးတယ်)။ အိမ်က လူတွေကလည်း ပြောကြပါတယ် မျက်နှာက ဖောင်းကားလာတာပဲတို့ ဘာတို့၊ ဘော်ဒါတွေလည်း ကြည့်ကောင်းလာတယ် ဘာညာ ပြောကြတာနဲ့ အားတွေတက်ပြီး ဒိုက်တွေထိုး ဘားတွေဆွဲနဲ့ exercise လေးတွေ…


Tech လောကထဲမှာ VIM ကို မသိတဲ့သူ အတော်ရှားမှာပါ။ VIM နဲ့ ပတ်သတ်ပြီး ဘယ်လိုထွက်မလဲဆိုတဲ့ joke တွေက တောင်ပုံရာပုံပေါ့။ :q! ဆိုပြီး ဘာကြီးမှန်း မသိတဲ့ command တွေ ရိုက်ပြီးသုံးရတာက အဆင်မပြေလိုက်တာဆိုပြီး ညည်းဖူးခဲ့တယ်။ အဓိက VPS တွေကို သုံးရင် VIM ကို မသုံးချင်လို့ကို Nano default ထားပြီး သုံးခဲ့ဖူးတယ်။ VIM ကို meme ကြီး တစ်ခုလို့ပဲ သတ်မှတ်ခဲ့တာ တော်တော်ကြာကြာပဲ။ အူကြောင်ကြား လက်ကွက်တွေနဲ့ ဘာတွေမှန်းမသိတဲ့ text editor ဟာ veteran programmer တွေရဲ့ လက်စွဲတော်ဆိုပဲ။ အဲ့ဒါကို နားမလည်ခဲ့ဘူး။

နောက်တော့ ကျွန်တော့် စီတီအိုက VIM Binding တွေကို VS Code မှာ သုံးပြီးရေးတာ မြင်ရတော့ စိတ်ဝင်စားမိတယ်။ ဘာကောင်းလို့လည်းဟပေါ့။ စောင်တလွဲ လက်ကွက်တွေ မှတ်နေရတာနဲ့တင် အချိန်ကုန်သေး။ သူကတော့ ပြောပါတယ် VIM ကို သုံးတတ်ချင်ရင် ၂ပတ်လောက် အချိန်ပေးကြည့်တဲ့။ သူမတူတဲ့ perspective ကနေ စဥ်းစားတတ်လာမယ်ပေါ့။ အိုခေဆိုပြီး VIM Binding for VSCode extension သွင်းချလိုက်တယ်။ ဘာလုပ်တယ်မှတ်လည်း INSERT mode မှာပဲ သုံးတယ်။ ကိုယ် အလုပ်လုပ်နေကျ workflow တွေ နှောင့်နှေးသွားသလို ခံစားရတာနဲ့ ပြန်ဖြုတ်လိုက်တယ်။ ဥပမာ…


Rant: Facebook has this nasty habit of cluttered unclear documentation that can riddle developers down the rabbit hole.

Problem: I was trying to hit up Facebook’s Video Publishing API by following their guide.

Their API Documentation

Here is the response code I got even with their official documentation.


တစ်လောက အိမ်မှာ ဂိမ်းဆော့နေကြ ၅နှစ်ကျော် ၆နှစ် သက်တမ်းရှိလာရှာပြီ ဖြစ်တဲ့ Desktop မှာ Windows 7 က bloat တွေကလည်းများ၊ Windows 10 ကြီးကိုလည်း တစ်စက်မှ ကြိုက်ကွက် မရှိတာနဲ့ Linux Distro တစ်ခု ပြောင်းတင်ဖို့ ဆုံးဖြတ်လိုက်တယ်။ ကိုယ့် Daily Machine (Thinkpad X1 Extreme Gen 2) ပေါ်မှာတော့ Pop!_OS တင်ထားပေမယ့် Gnome က အရမ်း limit ဖြစ်လွန်းတယ်ထင်တာရယ်၊ APT ကော flatpak ကော Pop Software Center ဘာတွေညာတွေ ရောထွေးပြီး ပြွတ်ထည့်ထားလို့ system bloat ဖြစ်လာတာနဲ့ distro အသစ်ကို Ubuntu or Debian based မဟုတ်တဲ့ Manjaro ကို သွင်းဖို့ စဥ်းစားဖြစ်တာပဲ။

Manjaro က ဒီနောက်ပိုင်း လူပြောလည်း များလာတယ်၊ အဓိက AUR (Arch User Repository) က package စုံတာတွေ၊ Rolling Release (တရစပ် update) တွေကြောင့် ပြောင်းချင်လာတယ်။ အသိထဲမှာလည်း Manjaro power user တွေ ရှိနေတာကြောင့် သူတို့ ကောင်းမှုနဲ့ နားယဥ်လာတယ်ပေါ့ဗျာ။ Ubuntu based ဖြစ်တဲ့ Pop!_OS …


VPS အသစ်စက်စက်လေးပေါ်မှာ node-canvas သုံးပြီး server side ဘက်မှာ ပုံထုတ်ဖို့ ကြိုးစားကြည့်ပါတယ်။ အဲ့သည်အခါ လေးထောင့်တုံးတွေ ထွက်လာပါတယ်။

Server generated image with Node Canvas (no Unicode compatible font)

အကြောင်းရင်းကတော့ Node Canvas မှာ ctx.font အတွက် UTF-8 compatible Myanmar Font မရှိလို့ဖြစ်ပါတယ်။

ရှင်းလို့ရတဲ့နည်းက Pyidaungsu font ကို MCF ကနေ wget နဲ့ဒေါင်းပြီး server ပေါ် သွင်းလိုက်ပါ။ $HOME directory မှာဖြစ်နေပါစေ။

> wget http://www.unicodetoday.org/downloads/Pyidaungsu-2.5.3_Regular.ttf
> mkdir .fonts && mv Pyidaungsu-2.5.3_Regular.ttf ./.fonts/Pyidaungsu.ttf

ပြီးရင်တော့ server side canvas generation code ကို execute လုပ်ကြည့်ပါ။ ပေါ်လာပါလိမ့်မယ်။


Photo by Jamie Street on Unsplash

Recently I was coding file upload using expressand multer to handle file uploads on the server side. This time the requirement for the app I’ve been working on won’t use AWS S3. The tasks I had to do in the following list are,

  • Direct file storage on the server directory.
  • File uploads from Frontend will definitely bemultipart/form-data.
  • Use multer as it is a popular library in ExpressJS community to handle file uploads as well as Form Data.
  • Our app will be divided with independent Express Router Files to handle each endpoints.
  • The files uploaded will be stored on different file…


Reddit မှာ Hover Intent UX အကြောင်း /r/webdev မှာ ပြောတာလေး စိတ်ဝင်စားသွားတယ်။ Amazon က Frontend Engineer တွေ စဥ်းစားထားတဲ့ technique လုံးဝ မိုက်တယ်။ It literally blew my mind.

များသောအားဖြင့် ကျွန်တော်တို့ Hover Event တွေကို ဖမ်းပြီး dropdown တွေ sub menu တွေ လုပ်တယ် (အများစုပေါ့ ကိုယ်တွေ အပါအဝင်)။ သူတို့ လုပ်တဲ့ပုံက Hover Event ကို ချက်ချင်း မဖမ်းပဲ mouse cursor interaction ကို ဖမ်းတယ်။ Mouse cursor speed က element ပေါ်ဖြတ်တဲ့အချိန်မှာ မြန်နေသေးရင် (they calculate the acceleration delta imo) အဲ့ဒီ dropdown ကို မဖွင့်ဘူး။ User ရဲ့ mouse cursor က သူတကယ် အဲ့အပေါ် hover လုပ်ချင်တာလားဆိုတာကို element ပေါ်ရောက်သွားမှ slow down သွားတာကို ကြည့်ပြီးမှ အပိတ်အဖွင့် လုပ်ပေးတယ်။

ဘာကောင်းလည်းဆိုတော့ unneeded animation တွေ မလုပ်တော့ဘူး၊ React async component တွေ ရေးထားရင် မလိုအပ်တဲ့ network call တွေ လျှော့လိုက်တယ်။ အောက်မှာ demo video ကြည့်ကြည့်။

လက်တွေ့ စမ်းချင်ရင် -> https://briancherne.github.io/jquery-hoverIntent/

Kaung Myat Lwin

https://www.kaungmyatlwin.dev :: Software Developer @ EXPA.AI

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store