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-ууд:

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