ssh to FreeBSD within local network
February 3, 2010
က်ေနာ့္ FreeBSD စက္ထဲကို local network အတြင္းမွာရွိတဲ့ အျခားစက္ကေန ဥပမာ ubuntu ကေန ssh နဲ့ login ဝင္တာေလးပါ။ certificate authentication နည္းနဲ့ ဝင္တာပါ။ ဒီေနရာမွာ FreeBSD က Server သေဘာမ်ုိးသက္ေရာက္ျပီး Client Ubuntu စက္ကေန ဝင္မွာပါ။ FreeBSD က Server သေဘာမ်ုိးဆိုတာ့ ssh daemon run ေနဖို့လိုအပ္ပါတယ္။ အဲဒီအတြက္ က်ေနာ္တို့ /etc/rc.conf ဖိုင္မွာ enable လုပ္ေပးျပီး daemon ကို run ရေအာင္ ..
Enable sshd
# echo 'sshd_enable="YES"' >> /etc/rc.conf
# /etc/rc.d/sshd start
ျပီးရင္ rsa keys မထုတ္ရေသးရင္ generate လုပ္ေပးရေအာင္ ေအာက္က command ကို run ပါမယ္။ က်ေနာ္တို့ normal user အေနနဲ့ ထုတ္မွာျဖစ္လို့ root user ကေန exit လုပ္ေပးပါ။
$ ssh-keygen -t rsa
အဲဒါဆိုရင္ က်ေနာ္တို့ .ssh/id_rsa နဲ့ .ssh/id_rsa.pub ဖိုင္ေတြကို ကိုယ့္ရဲ့ home directory ထဲမွာေတြ့မွာပါ။ ျပီးရင္ က်ေနာ္တို့ certificate authentication နည္းသံုးမွာျဖစ္တဲ့အတြက္ id_rsa.pub ဖိုင္ကို authentication keys အေနနဲ့ ေျပာင္းရေအာင္ ေအာက္က command ကို run ေပးပါမယ္။
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ျပီးရင္ က်န္တဲ့ ~/.ssh/id_rsa ဆိုတဲ့ private key ကို ကိုယ့္ usb disk ထဲပဲျဖစ္ျဖစ္ internet ေပာ္ လံုျခံုတဲ့ ကိုယ္ပဲ access လုို့ရနိုင္မယ့္ေနရာထဲ ကူးထည့္ ဒါမွမဟုတ္ upload လုပ္ျပီး အျခား Client အေနနဲ့သံုးမယ့္ စက္ထဲကို copy ကူးထည့္ေပးပါ။ ဥပမာ က်ေနာ္က အဲဒီ private key ကို က်ေနာ့္ ubuntu စက္ထဲကို ကူးထည့္ေပးလိုက္မယ္။ ဘယ္ေနရာမွာကူးထည့္ေပးရမလဲဆိုေတာ့ ~/.ssh directory ေအာက္ကိုပါ။ အဲလိုကူးထည့္ျပီးဆိုရင္ေတာ့ ~/.ssh/id_rsa အေနနဲ့ေတြ့မွာပါ။ အဲဒါေတြလုပ္ေပးျပီးရင္ေတာ့ က်ေေနာ္တို့ FreeBSD Server ထဲကို Client Ubuntu ကေန ဝင္နိုင္ပါျပီး။ ေအာက္ကနမူနာ command ေလးနဲ့ ဝင္လို့ရပါတယ္။
$ ssh user@freebsd
ေအာက္ကနမူနာ Screenshots ေလးေတြကို ျကည့္ပါ။
ဘယ္ေလာက္လြယ္ကူသလဲ!
References:
OpenSSH
Enjoy!
Mount external usb hdd with rw on FreeBSD
January 30, 2010
FreeBSD-8 ေပာ္မွာ ကိုယ့္ရဲ့ external usb hdd ကို read/write access ရေအာင္ mount တာေလးပါ။ Linux မွာ usb hdd ကို plug လုပ္လိုက္တာနဲ့ auto mount ေပးေပမယ့္ FreeBSD မွာ ပံုမွန္အားျဖင့္ default အေနနဲ့ manually mount ေပးရပါတယ္။ ဆိုင္ကေန external usb hdd ကိုဝယ္လာရင္ ကိုယ့္ရဲ့ Windows Machine မွာဆိုရင္ properties နဲ့ စစ္ျကည့္ပါ fat32 filesystem ျဖင့္မ်ားေသာအားျဖင့္လာတက္ပါတယ္။ Linux မွာဆိုရင္ fdisk -l နဲ့ စစ္ျကည့္ပါ။ တခ်ုိ့ external usb hdd က်ျပန္ေတာ့ ntfs file system နဲ့လာတက္ပါတယ္။ ကိုယ့္အေန့နဲ့ ျကိုက္နွစ္သက္ရာ file system ကိုျပန္ေျပာင္းနိုင္ပါတယ္။ ခုက်ေနာ္ mount မွာက fat32 နဲ့ ntfs file system နွစ္မ်ုိးကိုပါ။ က်န္တဲ့ဖိုင္စနစ္ကိုလဲ ဒီက နမူနာယူျပီးလိုအပ္တဲ့ options ေပးျပီး mount နိုင္ပါတယ္။
က်ေနာ္တို့ fat32 ကို အရင္ mount ျကည့္ရေအာင္ ..
For 1, 2, 4, 8, 16 GB usb flash disks
# mount -a -t msdosfs /dev/da0s1 /mnt
/dev/da0s1 ဆိုတာက ကိုယ့္ရဲ့ usb stick device ပါ။
/mnt ဆိုတာက mount point ပါ။ mount point ကို ျကုိက္တဲ့ folder ထားနိုင္ပါတယ္။ ဥပမာ က်ေနာ့္မွာ Gnome ကိုသံုးတယ္ဆိုေတာ့ mount point ကို /media/ ေအာက္မွာလုပ္ထားတယ္။ ဥပမာ
# mkdir -p /media/usb
# chmod 777 /media/usb
# mount -a -t msdosfs /devda0s1 /media/usb
အဲဒါဆို Gnome Desktop ေပာ္မွာ nautilus file manager က အဲဒီ usb ကို auto ဖြင့္ေပးမွာပါ။ ကိုယ့္ mount point က /media/ ေအာက္မွာ မရွိဘူးဆိုရင္ တျခားေနရာမွာရွိမယ္ဆိုရင္ ဥပမာ /mnt/usb လိုေအာက္မွာရွိမယ္ဆိုရင္ အဲဒီ folder ကို manually ဖြင့္ျပီးေတာ့ access လုပ္နိုင္ပါတယ္။ အကယ္လို့ ကိုယ့္ usb hdd က GB ပမာဏ ျကီးေနမယ္ဆိုရင္ mount options ေလးထည့္ေပးပါ။ ဥပမာ 80 GB နဲ့ အထက္ ( 120, 160, 320, 500, etc .. ) usb hdd ေတြအတြက္ …
# mount -o large -t msdosfs /dev/da0s1 /media/usb
အကယ္၍ ကိုယ့္ external usb hdd က ntfs file system ျဖစ္ခဲ့မယ္ဆိုရင္ ntfs-3g နဲ့ mount ေပးရပါမယ္။ ntfs-3g သံုးနိုင္ေအာင္ လိုအပ္တဲ့ဟာေလးေတြ လုပ္ေပးရေအာင္ ေအာက္ကလို conf ဖိုင္ေတြထဲမွာ configuration ေတြလုပ္ေပးပါ။
Add fuse_load=”YES” to /boot/loader.conf
# echo 'fuse_load="YES"' >> /boot/loader.conf
Add fusefs_enable=”YES” to /etc/rc.conf
# echo 'fusefs_enable="YES"' >> /etc/rc.conf
Install sysutils/fusefs-ntfs port
# cd /usr/ports/sysutils/fusefs-ntfs
# make install clean
ဒါဆိုရင္ installation နဲ့ configuration ျပီးေလာက္ျပီး၊ စက္ကို reboot လုပ္ရေအာင္ …
# shutdown -r now
ဒါမွမဟုတ္
# reboot
စက္ျပန္တက္လာျပီးရင္ က်ေနာ္တို့ ntfs file system ကို mount ျကည့္လို့ရပါျပီ။
# ntfs-3g /dev/da0s1 /media/usb
ဒါဆိုရင္ က်ေနာ္တို့ရဲ့ usb hdd ေတြကို ပံုမွန္ user တစ္ေယာက္အေနနဲ့ read/write အသံုးျပုလို့ရပါျပီ။
အကယ္၍ unmount လုပ္ခ်င္တဲ့အခါ ..
# umount /media/usb
References:
Disk Organization
Mounting and Unmounting File Systems
Enjoy!
Install flashplugin for Firefox on FreeBSD
January 30, 2010
FreeBSD-8 မွာ Firefox-3.5 အတြက္ flashplugin-10 ကို linux_base-f10 emulator ခံျပီး install လုပ္တာပါ။ FreeBSD 8 ကို install လုပ္ျပီးခ်ိန္မွာ Linux layer က default အေနနဲ့ enable မျဖစ္ေနပါဘူး။ အဲဒါေျကာင့္မို့ linux emulator ကို install လုပ္ျပီး enable အရင္လုပ္ေပးရမယ္။ ဘာလို့ linux emulator layer လိုအပ္လဲဆိုေတာ့ ခုက်ေနာ္ install လုပ္ခ်င္တဲ့ flash plugin က linux flashplugin ျဖစ္လို့ပါ။ linux_base-f10 ကို install မလုပ္ခင္ လိုအပ္တာေလးေတြ အရင္လုပ္ေပးရမယ္။ ေအာက္က command lines ေတြနဲ့ conf ဖိုင္ အသီးသီးမွာ လိုအပ္တဲ့ configuration ေတြကို ထည့္ေပးပါ။
Add linux_enable=”YES” to /etc/rc.conf
# echo 'linux_enable="YES"' >> /etc/rc.conf
Add compat.linux.osrelease=2.6.16 to /etc/sysctl.conf
# echo 'compat.linux.osrelease=2.6.16' >> /etc/sysctl.conf
Add OVERRIDE_LINUX_BASE_PORT=f10 to /etc/make.conf
# echo 'OVERRIDE_LINUX_BASE_PORT=f10' >> /etc/make.conf
ျပီးရင္ linux process file system ကို fstab ဖိုင္ ေအာက္ကအတိုင္း ထည့္ေပးရေအာင္ ..
Make a directory for linux proc
# mkdir -p /usr/compat/linux/proc
Add this line to /etc/fstab:
linproc /usr/compat/linux/proc linprocfs rw 0 0
ျပီးရင္ က်ေနာ္တို့ linux kernel module ရွိလား မရွိလား ျကည့္ရေအာင္ ..
Check Linux kernel modules
# cd /boot/kernel
# ls lin*
linker.hints linsysfs.ko linux.ko.symbols
linprocfs.ko linsysfs.ko.symbols
linprocfs.ko.symbols linux.ko
အဲဒီမွာ linux*.ko ကို မေတြရင္ ေအာက္ကအတိုင္း linux module ကိုေအာက္ကအတိုင္း install လုပ္ေပးရမယ္။
Install linux module
# cd /usr/src/sys/modules/linux
# make install clean
တကယ္ေတာ့ FreeBSD-8 မွာ linux module က ပါလာျပီးသားပါ။ ဒီအေပါ္က linux module build တဲ့အဆင့္ကို က်ေနာ္မလုပ္ေပးခဲ့ရဘူး။
အဲဒါေတြ လုပ္ေဆာင္ျပီးရင္ေတာ့ စက္ကို reboot လုပ္ေပးဖို့လိုအပ္ပါတယ္။ reboot ျပန္တက္လာတဲ့အခါ linux module လဲ load လုပ္ျပီးသားျဖစ္ေနပါျပီး linprocfs လဲ run ေနပါျပီး။ အဲလိုဆိုရင္ က်ေနာ္တို့လိုအပ္တဲ့ linux_base-f10 emulator နဲ့ flashplugin ကို install လုပ္နိုင္ပါျပီ။ ျကားျဖတ္ေျပာရမယ္ဆိုရင္ linux_base emulator install လုပ္ျပီးရင္ linux မွာ run လို့ရတဲ့ applications ေတြ packages ေတြကို install လုပ္ျပီး run လို့ရပါတယ္။ linux applications ေတြဟာ တခ်ုိ့ဆိုရင္ FreeBSD ေပါ္မွာ run ရတာ Linux မွာထက္ ပိုျပီးေတာင္ ျမန္ေနပါတယ္။ တခ်ုိ့ဟာေတြကေတာ့ Linux မွာလို ျမန္ပါတယ္။ ဒီ emulator သံုးလို့ Performance နဲ့ Speed က်သြားတယ္ဆိုတာမ်ုိး လံုးဝ မရွိပါဘူး။ တကယ့္ native အတိုင္း run ပါတယ္။ ကဲ က်ေနာ္တို့ လိုအပ္တာေတြ ရွိေသးေတာ့ ဆက္ျပီး install လုပ္ရေအာင္ ..
Install linux_base-f10 emulator
# cd /usr/ports/emulators/linux_base-f10
# make install clean
ျပီးရင္ အကယ္၍ firefox ကို install မလုပ္ရေသးဘူးဆိုရင္ လုပ္ရေအာင္ .. က်ေနာ္ကေတာ့ firefox35 port ကေန install လုပ္ပါတယ္။ firefox-devel port က firefox3.6rc2 က development အဆင့္မွာရွိေနတာမို့ recommended မလုပ္ခ်င္ပါဘူး။
Install firefox35 port
# cd /usr/ports/www/firefox35
# make install clean
firefox port ကို install လုပ္ရတာ စက္ရဲ့ speed ေပာ္မူတည္ျပီး နည္းနည္းျကာတက္ပါတယ္။ ျပီးရင္ linux-f10-flashplugin10 နဲ့ nspluginwrapper ကို install လုပ္ပါမယ္။
Install linux-f10-flashplugin10 port
# cd /usr/ports/www/linux-f10-flashplugin10 && make install clean
Install nspluginwrapper port
# cd /usr/ports/www/nspluginwrapper && make install clean
ျပီးရင္ libflashplayer.so ကို ရွာျကည့္မယ္။
# find / -name libflashplayer.so
/usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so
output လုပ္ေပးတဲ့အထဲက lines ေတြထဲမွာ အေပာ္ကလို line ကိုေတြ့လိမ့္မယ္။ အဲဒီအခါက်ရင္ super user (root) ကေန exit လုပ္ေပးျပီး ေအာက္က comand line ကို run ေပးလိုက္ရင္ error ေတြမျပေတာ့တဲ့အခါ Youtube video ကို ျကည့္နိုင္ပါျပီ။ အကယ္လို့ ဒီေအာက္က command line ကို run ေနစဥ္မွာ firefox ဖြင့္ထားမယ္ဆိုရင္ ျပန္ restart လုပ္ေပးျပီး youtube site ကို ျပန္သြားပါ။
$ nspluginwrapper -v -i /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so
References:
Linux Binary Compatibility
Mozilla Firefox and the Adobe Flash Player
Enjoy!
Install java on FreeBSD
January 28, 2010
FreeBSD-8 မွာ Java ကို install လုပ္တာေလးပါ။ က်ေနာ္က java/openjdk6 port ကေန install လုပ္ပါတယ္။ ports ေတြကေန install မလုပ္ခင္အရင္ဆံုး port tree ကို update လုပ္ေပးဖို့လုိအပ္လိမ့္မယ္။ က်ေနာ္ကေတာ့ ports tree update လုပ္တဲ့အခါမွာ portsnap ကိုသံုးတယ္။ ports tree update လုပ္ေပးျပီးျပီဆိုရင္ ဆက္ရေအာင္ …
# cd /usr/ports/java/openjdk6
# make install clean
အဲလို စျပီး install လုပ္တာနဲ့ port install error ေတြျပပါမယ္။ Terminal ကျပတဲ့ error messages ေတြကို ဂရုတစိုက္ဖတ္ျပီး လုိအပ္တာေတြကို download ခ်သင့္ကခ်ရပါမယ္။ က်ေနာ္ install လုပ္စဥ္တုန္းက ေအာက္ကဟာေတြကို internet မွာရွာျပီး download လုပ္တယ္၊ ျပီးရင္ /usr/ports/distfiles ေအာက္မွာ ထားေပး လိုက္တယ္။
diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2
tzupdater-1_3_21-2009p.zip
jce_policy-6.zip
dejavu-fonts-ttf-2.30.tar.bz2
က်ေနာ့္တုန္းက အေပာ္ကဟာေတြလိုေပမယ့္ ကိုယ့္ရဲ့ port version အလိုက္ေျပာင္း ခ်င္ေျပာင္းနိုင္တာမို့ error messages တို့ suggestion messages တို့က ျကည့္ျပီး လုပ္ေပးပါ။ ဒီ java/openjdk6 port ကို install လုပ္ျပီးသြားျပီးဆိုရင္ေတာ့ က်ေနာ္တဲ့ eclipse တို့ virtualbox တို့ စတဲ့ java နဲ့ သက္ဆိုင္တာေတြ ဆက္သြင္းလို့ရပါျပီး။
Firefox java plugin အတြက္ကေတာ့ ေအာက္က command line ေလးကို run လုိက္ရင္ အဆင္ေျပတယ္။
% ln -s /usr/local/diablo-jdk1.6.0/jre/plugin/i386/ns7/libjavaplugin_oji.so \
$HOME/.mozilla/plugins/
အဲဒါဆိုရင္ Firefox java plugin ရပါျပီး။ က်ေနာ့္ firefox35 port version က firefox-3.5.7,1.
References:
FreeBSD Handbook
http://www.freebsd.org/doc/en/books/handbook/desktop-browsers.html
Enjoy!
Fun boys
January 26, 2010
ခုတေလာ forums ေတြမွာေရာ blogs ေတြမွာေရာ ေနရာတိုင္းမွာ ဘယ္ OS ကေကာင္းတယ္ ငါ့ OS က မင္း OS ထက္ပိုေကာင္းတယ္ ဆိုျပီး အျငင္းအခံုေတြမ်ားပိုမ်ားလာတယ္။ M$ လို corp ေတြကိုမုန္းလို့ anti-corporation anti-Microsoft ideology နဲ့ Linux camps မွာလဲ Linux fun boys ေတြက က်ယ္ေလာင္က်ယ္ .. Mac camps က Mac fun boys ေတြကလဲ က်ယ္ေလာင္က်ယ္ေလာင္။ က်ယ္ေလာင္က်ယ္ေလာင္ လုပ္တဲ့ေနရာမွာ Linux camps က Mac camps က fun boys ေတြထက္ ပိုဆိုးမယ္ ထင္တယ္။ BSD-ish ေတြကလဲ GPL-ish ေတြကို မျကိုက္ျကဘူး။ Linux နဲ့ FreeBSD fun boys ျကားမွာလဲ အဲဒီ war ကတစ္မ်ိုး။ အဆိုးဆံုးက [OSS]-religion အစြန္းေရာက္ေတြပဲ။ ငါ့ဘုရားမွ အေကာင္းဆံုး အသာဆံုးဆိုတာမ်ိုးက ေရာဂါပိုျကီးတယ္။
က်ေနာှ့အေနနဲ့ကေတာ့ Linux ေရာ FreeBSD ေရာသံုးပါတယ္။ ေလ့လာပါတယ္။ ဒါေပမယ့္ Linux fun boy တစ္ေယာက္အေနနဲ့ က်ယ္ေလာင္က်ယ္ေလာင္မလုပ္ခ်င္ဘူး။ အရင္ကတည္းက religion ကိုမျကိုက္ခဲ့တာ။ အဲေတာ့ က်ေနာှ့အတြက္ အသင့္ေတာှဆံုးျဖစ္မယ့္ FreeBSD camp မွာ FreeBSD fun boy အေနနဲ့ တိတ္တိတ္ဆိတ္ဆိတ္ပဲ သံုးခ်င္ေတာ့တယ္။
VIM IDE for C, Python and Go
January 22, 2010
VIM (Vi IMproved) ကို C, Python and Go IDE အျဖစ္အသံုးျပုခ်င္သူမ်ားအတြက္ config နဲ့ plugins ေတြကို ဒီ vim-config repo မွာ ရယူနိုင္ပါတယ္။
အသံုးျပုပံုနဲ့ screenshots အခ်ို့ကို ေအာက္ကလင့္မွာျကည့္နိုင္ပါတယ္။
C IDE Screenshots
Python IDE Screenshots
Project with VIM
NERD_tree demo -> click on Picture
NERD_tree.vim နဲ့ Project.vim plugins ေတြကိုနွစ္သက္ရာသံုးနိုင္ပါတယ္။
Enjoy!
keyboard layout switching in Fluxbox on FreeBSD
January 17, 2010
Fluxbox wm (window manager) မွာ Gnome Desktop မွာလို keyboard indicator program မပါတဲ့အတြက္ xorg.conf ဖိုင္ကို နည္းနည္း modify လုပ္ေပးဖို့လုိအပ္ျပီး Fluxbox menu file မွာပါ edit လုပ္ေပးဖို့လိုအပ္ပါတယ္။ ေအာက္ကဟာေတြဘာမွလုပ္ခင္ျဖစ္ျဖစ္လုပ္ျပီးရင္ပဲျဖစ္ျဖစ္ ျမန္မာစာရိုက္လို့ရေအာင္ နွစ္သက္ရာ zawgyi-keyboard ဒါမွမဟုတ္ mm3-keyboard ကို download လုပ္ျပီး install လုပ္ေပးဖို့လိုအပ္ပါမယ္။ က်ေနာ့္ xorg.conf မွာ ေအာက္ကလို edit လုပ္ထားပါတယ္။
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbLayout" "us,mm"
EndSection
ျပီးရင္ ကီးဘုတ္ေျပာင္းဖို့အတြက္ Fluxbox menu file မွာ ေအာက္က အတိုင္း sub menu ျဖည့္ထည့္ေပးပါ။ Fluxbox menu file က /home/username/.fluxbox/menu ပါ။
$ vi ~/.fluxbox/menu
[submenu] (Keyboards)
[exec] (us) {setxkbmap us}
[exec] (mm) {setxkbmap mm}
[end]
အဲလိုျဖည့္ေပးျပီးလို့ save လိုက္ရင္ Fluxbox Menu မွာတန္းျမင္ရေပမယ့္ keyboard option က xorg.conf မွာ apply ျဖစ္ေအာင္ reboot လုပ္ေပးဖို့ လိုအပ္ေကာင္းလိုအပ္လိမ့္မယ္။ ေအာက္က ပံုမွာ နမူနာေလးျကည့္ပါ။
References:
1. XKB configuration
2. Fluxbox on Ubuntu
3. Switching keyboard layout
P.S.: က်ေနာ္က FreeBSD မွာလုပ္တာမို့ ေခါင္းစဥ္မွာ on FreeBSD လို့ေရးလိုက္တာပါ။ ဘယ္ *nix distributions မွာ ျဖစ္ျဖစ္ ဒီဟာ အက်ုံးဝင္မွာပါ။
Enjoy!
mm3-keyboard v0.1.1 release
December 2, 2009
mm3-keyboard v0.1.1 ကို distribute လုပ္လိုက္ပါတယ္။ TESTING version နဲ့ ဘာမွေတာ့အမ်ားျကီးေျပာင္းလဲမွုမရွိပါဘူး။ အမွန္ေတာ့ ဒီ package ဟာ သာမာန္ရိုးရွင္းတဲ့ xkb keyboard နဲ့ font package မွ်သာျဖစ္ပါတယ္။ ဘာမွ big deal ေတြမပါပါဘူး။ က်ေနာ့္လို သာမာန္ users မ်ားအတြက္ အလြယ္တကူရနိုင္ရန္ အလြယ္တကူအင္စေတာလုပ္နိုင္ရန္သာ ရည္ရြယ္ပါတယ္။
for user download
mm3-keyboard-0.1.1.tar.gz
Howto
Install guide
for source code viewer
mm3-keyboard git repo
Hope it’s useful.
Enjoy!
mm3-keyboard TESTING release
November 30, 2009
က်ေနာ္တို့ zawgyi-keyboard package လဲလုပ္ျပီးပါျပီး။ ကိုေစတန္လဲ zawgyi နဲ့ mm3 ကိုတြဲသံုးဖို့အတြက္လဲ deb package ကို build ခဲ့ျပီးပါျပီ။ လုပ္နည္းလုပ္ဟန္အတြက္ကို ကို trh ကလဲ post ေရးခဲ့ျပီးပါျပီ။ ခု က်ေနာ့္ zawgyi_keyboard.py script ကို modified လုပ္ျပီး mm3-keyboard.py ကို mm3 ဖြန့္သံုးခ်င္သူမ်ားအတြက္ re-distributed လုပ္လိုက္ပါတယ္။
download
mm3-keyboard-TESTING.tar.gz
howto
install guide
changelog
v0.1.0 (TESTING)
* Initial release
* mm3-keyboard.py re-distributed and modified from zawgyi_keyboard.py
* mm3.ttf font from http://www.myanmarnlp.net.mm
— box02 $date Sun Nov 29 22:21:17 CET 2009
ေလးစားစြာျဖင့္
ေဘာက္တူး
How to setup environment for Go
November 15, 2009
Go Programming Language ဟာ ဒီဆယ္စုနွစ္အတြင္းမွာ အသစ္ထြက္ေပာ္လာတဲ့ New Programming Language တစ္ခုပါ။ Developer ကေတာ့ Google ပါ။ Authors ေတြကေတာ့ Plan9 OS project က Rob Pike, Ken Thompson အပါအဝင္ Robert Griesemer နွင့္ အျခားပုဂဿဿဂုိလ္မ်ားျဖစ္ျကျပီး BSD-style License နဲ့ Open Source Distribution ျဖစ္ပါတယ္။
Go က C/C++ တို့လို Compiled Language ျဖစ္ျပီး gc (8g,6g) နဲ့ gccgo တို့က Go အတြက္ compilers ေတြျဖစ္ျကပါတယ္။ ေလာေလာဆယ္ေတာ့ Linux နဲ့ Mac OS မွာပဲ ဒီ compilers ေတြကိုအသံုးျပုနိုင္ပါေသးတယ္။
Go ကို ေလ့လာနိုင္ဖို့အတြက္ အဓိကေနနဲ့ Go compiler နဲ့ အျခားလိုအပ္တဲ့ programming environment programs ေတြပါ။ ဒါေတြကို go source ကေန့ Build လုပ္ဖို့အတြက္ ျပင္ဆင္ရေအာင္။ က်ေနာ္ကေတာ့ Debian GNU/Linux user ဆိုေတာ့ က်ေနာ့္ Linux x86 (386) မွာ ဘယ္လို setup လုပ္လဲဆိုတာ နမူနာအေနနဲ့ေရးမွာပါ။
ပထမဦးဆံုးအေနနဲ့ က်ေနာ္တို့ ~/.bashrc ဖိုင္မွာ Environment variables ေတြကို ေရးရေအာင္ ~/.bashrc ဖိုင္ကို gedit နဲ့ပဲျဖစ္ျဖစ္ ျကိုက္နွစ္သက္ရာ editor တစ္ခုခုနဲ့ပဲျဖစ္ျဖစ္ဖြင့္ျပီး ေအာက္က Environmnet variables ေတြကို ထည့္ျဖည့္ေရးေပးျပီး .bashrc ဖိုင္ကို သိမ္းျပီး ပိတ္လိုက္ပါ။
$ gedit ~/.bashrc
## Go Environment variables ##
export GOROOT=~/hg
export GOOS=linux
export GOARCH=386
export GOBIN=~/bin
ျပီးရင္ ~/.bashrc ဖိုင္ကို save ျပီး ပိတ္လိုက္ပါ။ ျပီးရင္ ေအာက္က command ကို Terminal ထဲမွာပဲ run ေပးပါ။
$ source ~/.bashrc
ျပီးရင္ Environment Variables ေတြက memory ထဲေရာက္ျပီးလား Test လုပ္ျကည့္ပါ။
$ env | grep '^GO'
GOBIN=/home/username/bin
GOARCH=386
GOROOT=/home/username/hg
GOOS=linux
အဲလိုအေပာ္က results ကိုေတြ့မွာပါ။ ဒါေပမယ့္က်ေနာ္တို့ ~/bin folder မရွိေသးရင္ mkdir နဲ့ folder လုပ္ေပးရပါမယ္။
## making ‘bin’ folder under your home directory ##
$ mkdir -p ~/bin
ျပီးရင္ mercurial ကိုသံုးျပီး go source files ေတြကို fetch မွာျဖစ္ပါတယ္။ က်ေနာ့္ Linux က Debian ျဖစ္သမို့ က်ေနာ္ apt ဒါမွမဟုတ္ aptitude ကိုသံုးျပီး mercurial ကို ေအာက္ကအတိုင္း install လုပ္ပါမယ္။ ခင္ဗ်ားမွာ mercurial ရွိျပီးသားဆိုရင္ေတာ့ install လုပ္စရာမလိုတဲ့အတြက္ ဒီအဆင့္ install လုပ္တဲ့အဆင့္ကိုေက်ာ္ျပီး go source files ကို fetch လုပ္နိုင္ပါျပီ။
## installing mercurial ##
$ sudo apt-get install mercurial
mercurial ကို install လုပ္ျပီးတဲ့အခါ က်ေနာ္တို့ go source files ေတြကိုရယူဖို့အတြက္ ေအာက္က command line ကို run ေပးပါမယ္။
## fetching go source files ##
$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT
source files ေတြရျပီးရင္ အဲဒါေတြကို build လုပ္ဖို့အတြက္ လိုအပ္တာေလးေတြကို install လုပ္ေပးပါမယ္။
## installing gcc and others to build go source ##
$ sudo apt-get install bison gcc libc6-dev ed make
ျပီးရင္ Go Distributions ကို က်ေနာ္တို့ build ရေအာင္ ..
## building go distribution ##
$ cd $GOROOT/src
$ ./all.bash
တေအာက္ေလာက္ေစာင့္ေပးျပီးရင္ ေအာက္က results ကိုေတြ့မွာပါ။ အဲဒါဆိုရင္ building process က အဆင္ေျပျပီး go compiler ကိုသံုးလို့ရပါျပီး ..
--- cd ../test
0 known bugs; 0 unexpected bugs
အေသးစိတ္သိခ်င္ရင္ေတာ့ ဒီလင့္ခ္ ေလးကို သြားျပီးဖတ္ပါ။
vim မွာ go syntax highlight အတြက္ ကိုစိုးမင္းရဲ့ post ကိုသြားဖတ္နိုင္ပါတယ္။
ဒီမွာပဲတဆက္တည္းျကည့္လိုက္ရေအာင္ က်ေနာ္ေရးေပးလိုက္ပါတယ္။
## adding go syntax for vim editor ##
$ mkdir ~/.vim/
$ mkdir ~/.vim/syntax/
$ cp $GOROOT/misc/vim/go.vim ~/.vim/syntax/
## making and opening ~/.vimrc file ##
$ gedit ~/.vimrc
gedit နဲ့ ~/.vimrc ဖိုင္ပြင့္လာျပီးဆိုရင္ ေအာက္ကဟာေတြကို ကူးျပီးေရးျဖည့္ေပးလိုက္ျပီး သိမ္းျပီး ပိတ္ေပးလိုက္ပါ။
autocmd BufNewFile,BufRead *.go set filetype=go
:syntax on
ခုဆိုရင္ vim editor နဲ့ go programming language ကို syntax highlight ေတြနဲ့ေလ့လာနိုင္ပါျပီ။
Enjoy learning Go!







