အထွေထွေ ခေါင်းစဉ်များ (Potpourri)

Table of Contents

Keyboard remapping

Programmer တစ်ယောက်အဖြစ် သင်၏ ကီးဘုတ်သည် အဓိက Input နည်းလမ်း ဖြစ်ပါသည်။ ကွန်ပျူတာရှိ အရာအားလုံးကဲ့သို့ပင် ယင်းကို စိတ်ကြိုက် ပြင်ဆင်ဖန်တီးနိုင်ပါသည် (ပြင်ဆင်ရန်လည်း ထိုက်တန်ပါသည်)။

အခြေခံကျသော အပြောင်းအလဲမှာ ခလုတ်များကို ပြန်လည် သတ်မှတ်ခြင်း (remap) ဖြစ်ပါသည်။ ဤသည်မှာ သီးခြား ခလုတ်တစ်ခုကို နှိပ်လိုက်သည့်အခါ ယင်းကို ဖမ်းယူပြီး အခြား ခလုတ်တစ်ခုဖြင့် အစားထိုးပေးသည့် Software ဖြင့် ပြုလုပ်လေ့ ရှိသည်။ ဥပမာ -

ထို့အပြင် ခလုတ်များကို မိမိ စိတ်ကြိုက် Command များသို့လည်း တွဲဆက်နိုင်ပါသည်။

ပိုမို ရှုပ်ထွေးသော ပြင်ဆင်မှုများလည်း ပြုလုပ်နိုင်ပါသည် -

လေ့လာရန် Software အချို့ -

Daemons

Daemons အယူအဆကို စာလုံးသစ် ဖြစ်နေသည့်တိုင် သတိပြုမိပေမည်။ ကွန်ပျူတာ အများစုတွင် User က စတင် runသည်ကို မစောင့်ဘဲ Background တွင် အမြဲတမ်း runနေသော Process များ ရှိကြပါသည်။ ဤ Process များကို Daemons ဟု ခေါ်ဆိုပြီး runနေသော ပရိုဂရမ် အမည်များသည် အဆုံးတွင် d ဖြင့် ဆုံးလေ့ ရှိကြသည်။ ဥပမာ SSH daemon ဖြစ်သော sshd သည် SSH request များကို နားထောင်ပြီး Remote user တွင် လော့ဂ်အင် ဝင်ရန် Credentials ရှိမရှိ စစ်ဆေးပေးသော ပရိုဂရမ် ဖြစ်ပါသည်။

Linux တွင် systemd (system daemon) သည် Daemon process များကို စီမံရန် အသုံးအများဆုံး ဖြေရှင်းချက် ဖြစ်သည်။ runနေသော Daemon စာရင်းကို ကြည့်ရန် systemctl status ကို runနိုင်ပါသည်။ systemctl command ဖြင့် Service များကို enable, disable, start, stop, restart သို့မဟုတ် status စစ်ဆေးနိုင်ပါသည်။

systemd တွင် Daemon အသစ်များ ပြင်ဆင်သတ်မှတ်ရန် လွယ်ကူသော Interface ရှိပါသည်။ အောက်တွင် Python app အတွက် Daemon နမူနာ ဖြစ်ပါသည် -

# /etc/systemd/system/myapp.service
[Unit]
Description=My Custom App
After=network.target

[Service]
User=foo
Group=foo
WorkingDirectory=/home/foo/projects/mydaemon
ExecStart=/usr/bin/local/python3.7 app.py
Restart=on-failure

[Install]
WantedBy=multi-user.target

သီးခြား ကြိမ်နှုန်းဖြင့် ပရိုဂရမ် runလိုပါက Daemon အသစ် ဖန်တီးစရာ မလိုဘဲ စနစ်တွင် ပါဝင်ပြီးသား ဖြစ်သော cron ကို သုံးနိုင်ပါသည်။

FUSE

ခေတ်မီ Software စနစ်များကို အစိတ်အပိုင်း အသေးများဖြင့် ပေါင်းစပ် ဖွဲ့စည်းထားပါသည်။ သင်၏ Operating system တွင် Filesystem မတူညီသည်များကို သုံးနိုင်ခြင်းမှာ သုံးစွဲနိုင်သော Operation များအတွက် တူညီသော ဘာသာစကား ရှိသောကြောင့် ဖြစ်သည်။

FUSE (Filesystem in User Space) သည် Filesystem များကို User program ဖြင့် အကောင်အထည်ဖော်ခွင့် ပြုပါသည်။ အလက်တွေ့တွင် User သည် စိတ်ကြိုက် လုပ်ဆောင်ချက်များကို Filesystem တွင် ရေးသားနိုင်ပါသည်။

FUSE Filesystem ၏ စိတ်ဝင်စားဖွယ် နမူနာများမှာ -

Backups

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

ပထမဦးစွာ Disc တစ်ခုတည်းတွင် Copy ကူးထားခြင်းသည် Backup မဟုတ်ပါ၊ အကြောင်းမှာ Disc ပျက်စီးပါက Data အားလုံး ပျောက်ကွယ်နိုင်သောကြောင့် ဖြစ်သည်။ အလားတူ အပြင်ဘက် Disc ကို အိမ်တွင် ထားခြင်းသည်လည်း မီးလောင်ခြင်း/အခိုးခံရခြင်းတို့ ကြုံနိုင်သဖြင့် အိမ်ပြင်ပ (off-site) တွင် Backup ထားရှိရန် အကြံပြုပါသည်။

Sync လုပ်သော နည်းလမ်းများ (Dropbox/GDrive) သို့မဟုတ် Disc mirroring (RAID) တို့သည် Backup မဟုတ်ပါ။ Data ဖျက်မိပါက သို့မဟုတ် Ransomware ထိပါက Synchronize ဖြစ်သွားမည် ဖြစ်သည်။

ကောင်းမွန်သော Backup ၏ အဓိက အင်္ဂါရပ်များမှာ Versioning, Deduplication နှင့် Security တို့ ဖြစ်ကြသည်။ အသေးစိတ်အတွက် 2019 ခုနှစ်၏ Backups သင်ခန်းစာ ကို ကြည့်ပါ။

APIs

အွန်လိုင်းရှိ ဝဘ်ဆိုက်/Service အများစုတွင် ယင်းတို့၏ Data များကို ပရိုဂရမ် နည်းလမ်းဖြင့် ဝင်ရောက် ကြည့်ရှုနိုင်သော “APIs” များ ရှိကြပါသည်။

API အများစုသည် သပ်ရပ်သော URL ပုံစံ ရှိကြပြီး၊ အများအားဖြင့် api.service.com တွင် တည်ရှိကြပါသည်။ တုံ့ပြန်မှုများကို JSON ဖြင့် Format ပြုလုပ်ထားလေ့ရှိပြီး jq ကဲ့သို့သော Tool ဖြင့် Parse ပြုလုပ်နိုင်ပါသည်။

အချို့သော API များသည် Authentication လိုအပ်ပြီး Secret token ပါဝင်ရသည်။ “OAuth” Protocol ကို အသုံးများပါသည်။

IFTTT သည် API များကို ဗဟိုပြုထားသော ဝဘ်ဆိုက် ဖြစ်ပြီး ဝဘ်ဆိုက်များစွာ၏ ဖြစ်ရပ်များကို ချိတ်ဆက်ပေးသည်။

Common command-line flags/patterns

Command-line tool များတွင် အသုံးများသော Flag များမှာ -

Window managers

“floating” window manager များအပြင် အခြား အမျိုးအစားတစ်ခုမှာ “tiling” window manager ဖြစ်ပါသည်။ Tiling window manager တွင် Window များသည် တစ်ခုပေါ်တစ်ခု ထပ်မနေဘဲ Screen ပေါ်တွင် Tiles များအဖြစ် စီတန်းနေမည် ဖြစ်သည်။

VPNs

VPN သည် သင်၏ ISP အစား VPN Provider ထံသို့ ယုံကြည်မှုကို ပြောင်းလဲလိုက်ခြင်း ဖြစ်ပါသည်။ အကျိုးကျေးဇူး ရှိမရှိ သေချာစွာ စိစစ်ပါ။ အသုံးများသော WireGuard အတွက် WireGuard ကို ကြည့်ပါ၊ MIT ကျောင်းသားများအတွက် MIT VPN ရှိသည်။

Markdown

Markdown သည် ရိုးရှင်းသော စာသားများ ရေးသားရန်အတွက် Lightweight markup language ဖြစ်ပါသည်။

ဤသင်ခန်းစာ Document များ အားလုံးကို Markdown ဖြင့် ရေးသားထားခြင်း ဖြစ်သည်။

Hammerspoon (desktop automation on macOS)

Hammerspoon သည် macOS အတွက် Desktop automation framework ဖြစ်ပါသည်။ Lua script များ ရေးသား၍ စနစ်ကို စီမံနိုင်ပါသည်။

Booting + Live USBs

BIOS/UEFI သည် ကွန်ပျူတာ စတင်ချိန်တွင် စနစ်ကို စတင်ပေးသည်။ Boot Menu မှတဆင့် Alternate device မှ Boot တက်နိုင်သည်။

Live USBs တွင် Operating system ပါရှိပြီး၊ UNetbootin ကဲ့သို့သော Tool ဖြင့် ဖန်တီးနိုင်သည်။

Docker, Vagrant, VMs, Cloud, OpenStack

Virtual machines နှင့် Containers များသည် စနစ်တစ်ခုလုံးကို အတုယူ ဖန်တီးပေးသည်။ Vagrant၊ Docker၊ Cloud Provider များ (AWS, Google Cloud, Azure, DigitalOcean)။

MIT CSAIL ကျောင်းသားများအတွက် CSAIL OpenStack တွင် အခမဲ့ သုံးနိုင်သည်။

Notebook programming

Jupyter (Python) သို့မဟုတ် Wolfram Mathematica တို့သည် Notebook programming အတွက် အသုံးများပါသည်။

GitHub

GitHub တွင် Open-source ပရောဂျက်များစွာ ရှိသည်။


Edit this page.

Licensed under CC BY-NC-SA.