Thursday, July 02, 2009

Дэмий юм дэмий

Надад нэг Pocket PC байгаа юм. Бараг хэрэглэдэггүй эд л дээ. Үйлдлийн систем нь Window$ Mobile 5. Дээр нь ямар нэг програм суулгахын тулд ихэвчлэн Window$ үйлдлийн системтэй компьютертэй холбох шаардлага гардаг юм. Харин саяхан эхнэртээ хэрэглүүлэх гээд япон үсэг тогтоох програм суулгах гэсэн чинь Window$ хэрэгтэй болов оо. Ингээд зовлон эхлэж байгаам даа.

За тэгээд VirtualBox суулгалаа, VirtualBox дотроо нэг хулхины Windows XP суулгачлаа. XP дээрээ ActiveSync гэж програм бас Micro$oft-оос татаж суулгав. Энэ хүртэл ч жаахан цаг л авснаас биш амархаан болчлоо. Ингээд Pocket PC-гээ USB каблиар нь компьтер луугаа залгачлаа. Холбогддоггүй шүү туучий чинь! USB-гээр холбосон бусад бүх төхөөрөмжүүд харагдаад байгаа мөртлөө...

Нилээн үзлээ..., нэтээс хайгаад л, үзээд байлаа, үзээд байлаа. Бардаггүй ээ. Бууж өглөө. Одоо бодлоо -Дэмий юм дэмий л юм даа. Яагаад дэмий вэ? гэхээр:
1) Виртуал машин дотор хулхины Window$ XP сулгачихаж байгаам
2) Ганц жижиг програм суулгах гэж өчнөөх юм боллоо шдээ, хайран цаг
3) Ер нь энэ Pocket PC дээр яах гэж Window$ Mobile суулгадаг байна аа, програм суулгахад заавал Window$ XP ч юмуу шаарддаг нь үнэн хөшингө шийдэл.

За ингээд болохгүй болохоор нь дээр нь хэдэн кино хуулчихаад хүүхдүүддээ үзүүлж байя гэтэл зөвхөн WMA, ASF форматыг л хүлээн зөвшөөрдөг гэнэ. За тэгээд киногоо ffmpeg -ээр WMA -руу хөрвүүлээд өнөөх дээр чинь үзлээ. Жаахан гарч байгаад ТАГ гацдаг байна шд... Одоо ёстой болъё, дэмий юм дэмий.

Ингэж дэмий юмаар оролдож суухаар эхнэртээ шинэ компьютер авах, эсвэл энэ дээр байгаа хөшингө үйлдлийн системийг солих. Линуксаар сольчих юмсан. Хэзээ нэгэн цагт оролдож үзнээ. Эрх чөлөө мандтугай!

Monday, June 08, 2009

Япон дахь Монголчуудын IT уулзалт

Хагас сайнд болсон уулзалт дээр миний бие RoR сэдвээр илтгэл тавьлаа. Ерөнхийдөө төсөөлж байсныг бодвол програм хангамжийн чиглэлийн хүмүүс олон ирсэн байлаа. Бэлдэх хугацаа богино байсан ч яаж ийгээд бэлдээд очсон. Илтгэлийн төгсгөлд алдарт "Creating a weblog in 15 minutes with Rails" -ийг хийж үзүүлсэн. Ruby болон RoR сурах хүсэлтэй байгаагаа зарим хүмүүс хэлж байсан нь маш их урам өглөө. Цаашид иймэрхүү уулзалтыг зөвхөн IT бус төрөл бүрийн чиглэлээр тогтмол явуулах юм. Уулзалтыг зохион байгуулсан холбооныхон болон хүрэлцэн ирсэн бүгдэд баярлалаа.

Download
View more from ochkoo.

Wednesday, June 03, 2009

Монгол үсгийн кодын асуудал ба Стандартчилал

Монгол үсгийн янз янзын кодчилол хэрэглэдэг байснаас болж үүсдэг асуудал цөөнгүй. Жишээ нь Babylon толиос Stardict толь үүсгэх үед кодын асуудал гарч байсан. Legacy compatibility гэдэг юмыг яах аргагүй дагах болдог учраас одоог хүртэл монгол текстийг хуучин кодчилолоос шинэ рүү хөрвүүлдэг багаж хаа сайгүй л хэрэглэгдэж байна. Өнгөрсөн улиралд Стандартчилалын тухай хичээл үзэх үед энэ ямар чухлыг бас нэг ойлгож билээ. Хичээл дээр хийж байсан илтгэл маань энэ.


Дээхнэ үед гарны драйвэр програмыг бараг програм бичдэг болгон л хийх гэж үздэг байж. Одоо бол Юникод. Стандарт гэдэг асуудлыг ингэж л шийдэж байгаа юм даа. Гэхдээ стандартыг яаж нийтэд push хийх, юуг стандарчилах, аль хэсгийг нь стандартчилах хийгээд аль хэсгийг нь стандартчилахгүй орхих гээд нарийн ширийн юм байдаг л бололтой.

Saturday, May 23, 2009

Emacs-д зориулж гарны тохиргоог өөрчлөв

1. CapsLock болон Control товчнуудын үүргийг солив. Эндээс уншсан юм.
Доорхи кодыг ~/.Xmodmap файлд хадгалаад xmodmap ~/.Xmodmap гэсэн командыг ~/.bashrc эсвэл ~/.xsession дотор оруулж өгөх хэрэгтэй(xmodmap-ийн man дээр бий).

!
! Swap Caps_Lock and Control_L
!
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L
Ингэж солихын давуу тал нь Control товчлуурыг чигчий хуруунд ойртуулж өгч байгаа юм. Маш эвтэйхэн болно доо. Уул нь дээр үеийн оригинал юникс гарнууд дээр ийм байсан гэсэн. Ер нь Capslock-ийг бараг хэрэглэдэггүй болохоор би лав Хуучин Control товчоо хэвээр нь үлдээгээд харин Capslock-ийг Control болгочихсон. Ингэхийн тулд дээрх .Xmodmap файлын 3 дахь мөрийг хүчингүй болгох хэрэгтэй(залхуурчихсан).

2. Scim-ийн тохиргоог солив.
Би яагаад ч юм Control+space дарахаар Scim дуудахаар тохируулчихсан байхын(emacs хэрэглэдэггүй байхдаа). Тэр нь Emacs дээр Mark set хийдэг командтай давхцаад байсан учраас би Control+Shift+space дарж байж Mark set хийгээд байсан. Энэ команд маш их хэрэглэгддэг учраас одоо би Control+space товчийг scim дуудахад хэрэглэхгүй байхаар болгосон. Alt+grave дарахад scim гарч ирдэг болголоо.

Ингээд зүүн гар минь бичээд байж дээ, Control товчыг чинь ойртуулаад өглөө бас Mark set хийхэд хялбар боллоо.

Thursday, May 14, 2009

Why twitter is down?

Өчигдөр шөнө твиттердэх гэтэл холбогдохгүй байхаар нь шалгатал төлөвлөсөн ажил байж. Ер нь твиттер байн байн төлөвлөсөн болон төлөвлөөгүй зогсолт хийгээд байдгийг анзаарсан байх. Тухайлбал энд твиттерийн зогссон байгаа агшинуудыг цуглуулчихсан харагдсан. Сүүлийн үед зогсолт цөөрөөд байгаа боловч хангалтгүй гэж хэлэхээр байна. Зөвхөн rails дээр ч биш, ер нь вэб апликэшний хувьд өсөх боломж(scalability) гэдэг чухал.

Яагаад чухам байн байн зогсоод байдгийг тайлбарлахыг оролдсон байдаг. Минийхээр бол нэг сая дагагчтай хэрэглэгчид хүртэл байдаг гэхээр твиттер ер нь асар хүнд ачаалалтай сэрвис. Ингээд бодохоор хааяа хааяа зогсох нь аргагүй ч юм уу :). Ямар ч байсан твиттер зогссон үед юугаар орлуулж болох тухай энд бичсэн байна. Бас явцгүй ч гэмээр ийм санаа гаргасан байх юм.

Мэргэжлийн талаас харахад твиттер бол мессеж дээр тулгуурласан сервис, тэгэхээр ар талаа тэр чиглэл рүү оптимизаци хийх хэрэгтэй юм болов уу. Жишээ нь мессеж боловсруулахдаа Erlang ашиглах, эсвэл өгөгдлийн сангаа тархсан байдлаар ажиллах чадвартай CouchDB гэх мэт систем рүү шилжүүлж болмоор санагддаг. Гэхдээ хэн мэдэх вэ, мэдээж мундаг хүмүүс л хийж байгаа шүү дээ твиттерийг.

Thursday, May 07, 2009

BDD on Rails: Cucumber, Webrat & Factory girl

Сүүлийн үед BDD(Behavior Driven Development) их таалагдаж байна аа. Урьд нь TDD(Test Driven Development)-ийг хэрэглэх гээд нэг л болж өгдөггүй байлаа. TDD бол урьдаар тестээ зохиочихоод кодоо бичдэг. Тест бичихийн тулд систем яаж ажиллах ёстойг дотроо ч юмуу, өөр нэг газар хийсэн/бичсэн байх болдог. Ингэхээр тест бичихийн өмнө баахан дизайн хийх/бодох шаардлага гарчихаад байдаг л даа. Харин BDD болохоор систем гаднаасаа хэрэглэгчид яаж харагдах, яаж аашлаж авирлахыг(behave) эхлэж бичээд, түүн дээрээ үндэслээд л TDD хийгээд улаан ногоон гэрэл анивчуулаад явчихна гэсэн үг. Иймд BDD нь TDD-р гол ажлаа амжуулж байгаа юм. Гэхдээ захиалагчид ч, хөгжүүлэгчид ч амар байдлаар.

Rails дээр Cucumber, Webrat, Factory girl -эднүүсийг ашиглаад үнэхээр баяр баясгалантайгаар BDD хийж болж байна. Cucumber бол энгийн өгүүлбэрээр биччихсэн feature/behavior-ийг тестийн код болгодог гайхамшигт туслах. Webrat нь вэб тестийг browser хэрэглэлгүй хийчдэг. Тест хийхэд өгөгдөл хэрэгтэй, тэгвэл Factory girl чамд туслана.

Мянга сонсохоор нэг үз гэдэг, цаашихийг эдгээр screencast-ууд болон presentation-ээс үзээрэй. Happy Coding!

Railscast screencast-ууд:

Бусад линкүүд:

Saturday, April 25, 2009

Coder.mn -ийг нээлттэй эх болголоо

Кодер.мн програмчлалын тэмцээний вэб сайтын эх кодыг нээлттэй болголоо. Кодер дээр жинхэнэ кодерууд цугладаг учраас дуртай сайтынхаа хөгжүүлэлтэнд оролцоно байх аа гэдэг бүрэн итгэж байна. Ер нь анхнаас нь л сайтынхаа эх кодыг нээлттэй болгох санаа төрөөд явсан боловч боломж нөхцөл бүрдэхгүй байсаар өдийг хүрчлээ. Кодыг github дээр тавьсан. Оролцох хүсэлтэй хүмүүс fork хийж аваад хөгжүүлэлтэд оролцохыг уриалж байна.

Хөгжүүлэлтэд оролцоход шаардлагатай зүйл гэвэл rails, git. Бас github дээр хөгжүүлэлт хэрхэн явагддаг тухай мэддэг байх хэрэгтэй. Github бол програмчдын social network билээ. Үнэхээр л дараагийн SourceForge юм. Саяхан issue tracking нэмэгдсэн нь бүр их таалагдсан. Одоо юу хийх шаардлагатай байгаад issue list -ээс нь хараарай.

За ингээд кодерууд аа, Happy Social Coding!

git - Distributed Revision Control

Би CVS ашиглаж байлаа, SVN ашиглаж байлаа. git -ийг зохиосон Линус хэлэхдээ, хэрэв та CVS -ийг хэрэглээд сэтгэл хангалуун байдаг бол толгойдоо "юмтай", харин SVN бол түүхэн дэх хамгийн утгагүй төсөл байсан гэжээ. Бодвол CVS-ээс ялгаагүй гэж байгаа бололтой. git -ийн давуу тал нь төвлөрсөн бус жинхэнэ тархсан систем юм. Хүн болгон өөрийн хувилбар дээр ажиллах бөгөөд commit хийхэд хэнээс ч асуух шаардлагагүй, дараа нь кодоо хаа нэгтээ push хийчихнэ, эсвэл хэн нэг нь чамаас pull хийгээд авчихна, энд ямар нэг permission энэ тэр хэрэггүй, ардчилсан шинжтэй. Төвлөрсөн сэрвэр гэж байхгүй. Жишээ нь өөрийн компьютер дээр ажилаж байхад офлайн ажиллаад commit хийгээд байж болно гэсэн үг. Олон үг ярьхаар хэдэн жишээ үзье дээ.

Нэг директор байгаад тэр дотор байгаа файлуудыг git рүү оруулья.

# cd pjdir
# git init

Файлыг git удирдлага дор оруулья.

# git add myfile.c
эсвэл директорыг тэр чигээр нь...
# git add mydir

Файлыг commit хийж хадгалья

# git commit -m "firt import" myfile.c

Файлуудын төлөвийг харах

# git status

За энэ хүртэл бол ерөнхийдөө SVN эдэртэй төстэй байгааг өмнө нь ямар нэг revision control систем дээр ажиллаж байсан бол ажигласан байх. Гэхдээ энд хийгээд байгаа коммит эд нар бүгд зөвхөн чиний компьютер дээр болж өрнөөд байгаа гэдгийг санаарай. Одоо жинхэнэ ид шидийг үзье гэвэл тархсан байдлаар яаж ажиллахыг хар даа.

Найз Доржийн кодыг холбоё.

# git remote add dorj ssh://computer_of_dorj/path/to/app.git

Одоо Доржийн master мөчрийн кодыг өөрийнх рүүгээ нийлүүллээ.

# git pull dorj master

Тэгээд баахан код бичлээ, тэрийгээ commit хийчлээ. Гэхдээ өөрчлөлтүүд маань миний л компьютер дээр байгаа. Сүүлийн хувилбараа рилийзэд бэлдэж мөчир үүсгээд хадгалчихья.

# git branch beta_branch HEAD^

Рилийз хийх хүнд миний код бэлэн болчлоо гэдгийг мэдэгдлээ. Рилийз хийгч миний кодыг өөрийн компьютер дээрээс ингэж авах нь.

# git remote add ochiro ssh://computer_of_ochiro/path/to/pjdir/pjdir.git
# git pull ochiro beta_branch

Өөр компьютер дээр байгаа git рүү ssh протоколоор хандах хамгийн нууцлал сайтай. Дээрхи жишээнүүдэд дандаа ssh гэсэн байгаа. Бас git://server/path/projectname.git гэж хандаж болно. Гэхдээ энд ч гэсэн цаанаа бол git: гэдэг нь ssh: юм л даа. Энэ бичлэгээ git-ийн танилцуулга төдийгөөр өндөрлөөд цааш лавлаж харах бол хэрэгтэй хэдэн линк үлдээлээ. Нэмж хэлэхэд git-ийн хувьд би үнэхээр сэтгэл хангалуун байгаа шүү, туршаад үзээрэй. Happy Coding!

Tuesday, April 21, 2009

Он-толийн Англи-Монгол толийг Stardict рүү хөрвүүлэв

Өмнө babylon-толийг stardict рүү хөрвүүлж 2 толийг гаргасан. Сая он-толийн Англи-Монгол толийг хөрвүүллээ. Татаж аваад хэрэглээд үзээрэй. Он-толийнхондоо баярлалаа.

Хэрхэн хөрвүүлэх(Үбүнтү дээр):

# sudo apt-get install dictconv stardict-tools
# dictconv -o on-toli.dic on-toli.com.bgl
# convert_to_unicode.sh on-toli.dic
# /usr/lib/stardict-tools/tabfile on-toli.dic.unicode

Тайлбар:
convert_to_unicode.sh -гэдэг нь текст файл доторхи крил үсгүүдийг юникод руу сольдог скрипт байгаа юм. Хэрэв та *mon фонтууд(юникод биш) хэрэглэдэг бол юникод руу хөрвүүлэхгүй байсан ч болно. Юникод фонтууд хэрэглэдэг бол ямар нэг аргаар *.dic файлыг юникод болгочихож чадна биз ээ.