2010/04/30

Юөтөбөөс ховх сорох

Юөтөб гэж нэг ший янгууны мангас байдгийг бүгд мэднэ дээ. Тэндээс хүссэн дүрс бичлэгээ харан инээж, сурж, бас дахин сурж, мөн дуу хөгжмөөр цалгиж байдаг билээ. Үзсэн аятайхан дүрс бичлэгээ хувьдаа хадгалж авах шунал надаас бусдад нь байдаг байх. Би бол ариухан амьтан юм болохоороо зүгээр л татаад авчихдаг. Мэдээж татаж авсан бичлэгэнд тавуу тал нэг бий: Интернэтгүй үед интернэттэй гэж худлаа хэлж үзүүлэх :). За тэр ч бүтэхгүй л дээ. Гол юмнаасаа холдоод зах уруугаа оръё.

Татаж авах олон л аргыг хүмүүс мэдэх байх. Дээр үед нэг вэб хуудас уруу ороод тэндээс татах дүрснийхээ хаягийг өгөнгүүт хүссэн хэлбэрээрээ татаж авдаг байсныг санаж байна. Эсвэл та галт үнэг хэрэглэдэг бол тэрэн дээр ажилладаг дүрс бичлэг татаж авдаг хэд хэдэн өргөтгөл байдгаас надад заримдаа үүнийг нь хэрэглэх шаардлага гардаг. Би гэхдээ гарнаас өгдөг тушаалаар дүрс бичлэгүүдийг татаж авдаг. Яагаад гэвэл би хулганд гар хүрч чадахаа больсонд байгаа юм. Та бодоод үз л дээ, таны ширээн дээр хулгана байж байна гээд, ийй үс босож байна. Миний хэрэглэдэг тушаал маань энд зохиогдсон юм. Татаж авахдаа үүнийг ашиглав. Тэгээд тэрийг тэгээд, дараа нь түүнийг нь ингээд, болохгүй бол юу яагаад, явахдаа яагаарай. Хэхэ сүүлийн өгүүлбэр нь орчин үеийн ганган монгол хэлээр тайлбарлах гэсэн чинь өөрөө ч ойлгохгүй болчихож. Татаж авсан тушаалаа би бүрхүүлийнхээ(shell) орчны хувьсагч path гуайд оруулж өгч байж сая нээсэн тэрминал болгоноосоо дуудах боломжтой болдогийг уншигч авхай та уншиж байхдаа аль хэдийнээ мэдчихсэн, нүдээ хагас аниастай ахмад хүний догь зангаар толгойгоо хагас дохиостой сууж байгаа биз ээ.

Ингэж татаж авах нь нөгөө галт үнэгээр татаж авснаас юугаараа ялгаатай юм гэж та асууж магадгүй. Бараг ямар ч илгаа байхгүй, би зүгээр л таны алтан цагийг тань хулгайлж авдар саваа дүүргэж байна. Татаж авах хэд хэдэн сонголт бий. Тэрний "-tb" гэсэн сонголтыг би хэрэглэдэг. -t нь татаж авахдаа баазад өгсөн гарчгийг нь хадгалах файлдаа хэрэглэх, -b нь хамгийн сайн чанартай хувилбарыг нь тат гэсэн үг. Ааа харж байна уу? Гүүгл ах өөрсдөө арын амбаарт орж HD чанартай бидоонуудаа үзчихдэг, бид нарт болохоор ердийн муу чанартай бидо үзүүлж нүд муутгаад дараа нь нүдний шил зарж баяжих нь л дээ. Татаж авахыг нь та чадна, тохируулахаа ч та чадна, чамаас ер нь олигтой мэдлэг авахгүй юм байна гэж та бодож байгаа байх аа даа. Тэр ч тийм шүү.

Би уул нь яаж татаж авахыг биш ямар дүрс бичлэг татаж авахыг ярих гэж байлаа. Тэр дүрс бичлэгийг одоо татаж авъя:
> youtube-dl -tb "http://www.youtube.com/watch?v=pULI75iEsXM"
татаж авах хаягаа "" дотор оруулж өгөхгүй бол урт хаяган дунд уянга найруулгатай үсэг орчихоод ууртай тушаалтай уралцаад урагшилж өгдөггүй зовлон бий.

Энэ дууг өчигдөр над уруу шөнийн нэг цаг өнгөрч байхад нэг нөхөр маань явуулсан юм. Нөхрийг шөнөжингөө сууж код бичдэг сүрхий гар гэж бодсон чинь зүүдэндээ босож зүг бүрт дэмийрч тийчээд, завандаа зөөврийн төмрөө асаагаад завсар зайгүй холбоос шиддэг хачин зуршилтай галзуу байсныг нь мэдсэнгүй. За ямар ч байсан татаж аваад үзсэн чинь таалагдаж байна гэж юү гэхэв. Халхад алдартай гэгдэх хотын зарим дуучдын үгнээс нутаг ус, аав ээж гэхээс өөр үг гардаггүй, хамаагүй ш дээ хайртай ш дээ гээд үсчээд байдаг хөнгөн шингэн хүүхдүүдийн үгийг нь гүйцэж чадахгүй надад энэ дуучны сэтгэл, эх хэл хоёр нь содон сайхан санагдсан юм. Дууныхаа дүрсий нь Би чамд ямар вэ гэдэг киноны хоёр дахь хэсгээс супер од хэмээгч нэгэн залуу супер од биш нэгэн залуугийн сүйт бүсгүйн ёслолыг нь хутган үймүүлж байгаа хэсгээс нь авч оруулжээ. Нэгдүгээр анги дээрээ хүний дотоод сэтгэл, журамт ёс, хайр сэтгэл гэдгийг илэрхийлэхийг хичээсэн байдаг бол "хоёрдугаар" анги нь алдар нэр, тавтиргүй зан, мөнгө, мөн супер залуу нусаа хэрхэн татаж залгихыг харуулдаг болсон онцлогтойдоо их содон гоё болсон гэж би боддог. За ямар ч байсан ОЛОН жилийн дараа хоёрдугаар анги хийвэл ОЛОН дахин мууддаг юм шүү дээ гэж хүүхдүүддээ захихаас :).

Өвөрлөгдсөн ахан дүүс маань амьдрахын эрхэнд өөрчлөгдөж өөр болсон ч сэтгэл хэл хоёр нь яг л хуучнаараа байгааг би хараад үүнийг тэрлэв.

2010/04/29

эмакс бөөндөлт

Саяхан баахан замбараагүй бичсэн php файлуудын зай авалт, догол гэх мэтийг кодын стандартын дагуу яаж янзлах билээ гэж хэсэг энэ тэрүүгээр хайлт хийж доншуучлав. Юу хэлэх гээд байгааг ойгоогүй бол хальт тайлбарлах гээд үзье. Жишээ нь ийм код байлаа гэж бодъё.


Харахад замбараагүй, хаана эхлээд хаана хаалт нь яваад аль хэсэг нь аль хэсэгтээ хамаараад байгааг харж ойлгоход тун хэцүүтэй, ёстой л нөгөө холион бантан харагдаж байгаа биз. Жижиг иймэрхүү файл дээр гараар засах амархан боловч, олон тэгээд том файлууд дээр бол ёстой хэдэн жил болж таарна. Тэгэхээр энийг өнөө гайхал эмаксаар бол төвөггүй хийчихэж байгаа юм. Нэг файл үүсгээд функц биччихнэ:


Энд дуудаж байгаа mumamo гээчийг гүүглдэнэ биз. Тэгээд энэ функцийг ашиглаад л асуудлыг шийднэ дээ :) Ганц нэг файлыг бол: emacs -batch test_file.php -l emacs_format -f emacs-format-function гээд л янзалчихна. Янзалсан скрипт ингэж сайхан харагдаж байна:


Мэдээж олон файл янзална гэвэл тэгээд л бөөнддөг багахан бүрхүүлийн скрипт биччихнэ дээ гэж... :)

Прологоос жиргэх

Сүүлийн үед хүн болгон жиргэнэ гэж яриад байгаа тул түүнийг нь сонирхож үзэв. Яг ямар учиртайг нь сайн ойлгосонгүй. 140 үсэг дотор багтааж микроблог тэрлэдэг бололтой. Бодвол гар утас уруу message болгож цацах санаатай тэгж хязгаарласан юм болов уу даа. API -г харж суутал гэнэт гар загатнасан тул Prolog-оос жиргэдэг жижигхэн программ бичив. tweet('myusername', 'mypassword', 'my message'). гэж дуудаж ажиллуулна.

Код бичигчдийн үнэнч нөхөр

Дээрх зургийг би нэг жил гаран дэлгэцийнхээ дэвсгэр зураг болгож байлаа.
Босоо тэнхлэгийг нь уг засварлагчийг эзэмшсэн чадвар, хэвтээ тэнхлэгийг нь суралцах хугацаагаар авч үзнэ үү.
Тэр үедээ би ВИМ ийг таньдаг хүн болгондоо сурталчилж байв. Эмакс хэрэглэдэг болсноос минь хойно ч энэ зургийн үнэ цэнэ алдагдаагүй юм. Мэдээж зарим хүмүүс "Хөөрхий энүүнийг хар даа, eclipse, netbeans гэх мэт хамаагүй орчин үеийн засварлагчид байхад даа. Халуун наранд удаан код бичсээр байгаад хачин галзуутай болчихож" гэх байх даа. Нэг нөхрийн тэрлэсэн хуудсыг уншиж байхад нөхөр ингэж бичсэн байсан сан:
"Би ерэн есөн настай байхдаа ч гэсэн эмаксийг нээгээд төвөггүй ажиллачих чалхтай байх болно." (Чалхыг нь би нэмчих шиг боллоо.)
Би одоо тэр хүний үгтэй санал бүрэн дүүрэн нийлж чадна. Монголд дундаж наслалт доогуур юм чинь
"Би далан долоон настай байхдаа ч гэсэн эмакс дээр далдаганаж нэг ирээд давхар давхар товчлуурыг давс хужир цацаж байгаа юм шиг даан ч нэг аагтай цайнаасаа холдоод явчихав уу, энэ дал нуруугаар хатгаад явчихлаа. Хэвтэж нэг амрая даа..."
гэх байх л даа.

2010/04/28

subversion - хэнийг буруутгаж хэнийг магтах вэ

Саяхан хэсэг кодоос хайлт хийж тухайн хайсан кодын хэсгийг хэн svn рүү нийлүүлснийг мэдэх шаардлага гардаг юм байна. Бүдүүлэг рекурсив хайлтаас авахуулаад svn log хүртэл үзэж тарав. Бараг л скрипт бичиж таарах нь болтой юм бодож байтал бэлэн тушаал байдаг байгаа :) svn буруутга (blame) аль эсвэл магт (praise, annotate, ann) гээд л сайн, мууг олчих бололтойдог. За тэгээд гарын авлагын хуудаснаас нь дэлгэрүүлээд тархиныхаа тогтоодог мухарт наачихна бизээ.

Git Problem № 2

Ажил дээрээ хүний бичсэн кодыг засаад git push хийх гэтэл танд бичих эрх байхгүй гэх юм. Тэгсэн мөртлөө шинэ файл үүсгээд push хийж болоод байдаг. Баахан ухаж төнхөж үзтэл Git repo нээсэн нөхөр маань файл бичих болон унших эрхээ буруу тохируулчихаж. Янзлуулъя гэтэл тэр нөхөр хэдэн хоног ажлаар явчихсан байдаг, хийсэн өөрчлөлтөө хүмүүстэй хуваалцъя гэхээр Git зөвхөн SSH дэмждэг тул компьютер дээрээ шинэ хэрэглэгч нээх хэрэгтэй болчих гээд байдаг. За тэгээд нэлээд олон хүмүүст өөрчлөлтөө тараах байсан тул түр зуур SVN луу нүүхээр шийдэв. Аз болоход Git зөвхөн ганцхан .git гэж хавтас үүсгэдэг (SVN бол хавтас дотор болгон .svn гэж хавтас үүсгэнэ) тул тэрийг нь устгаад л SVN руу хуулчихлаа. Та бүхэн шинэ Git repo үүсгэвэл файл унших бичих эрхээ зөв тохируулж байгаарай. Тэгэхгүй бол сүүлд нь хамтран ажилладаг хүмүүстээ нэлээд төвөг удах шинжтэй байна шүү.

2010/04/27

Угз тайлах

Өмнө бичигдсэн Логик програмчлалын жишээг туршиж үзэж байгаад мэдэхгүй хүнд жаахан амтлуулах, өөртөө жаахан сэргээх зорилгоор үүнийг тэрлэе гэж шийдэв.
Би өөртөө энэ логик програмчлалыг эх хэлээрээ Утга Учрын Уялдаа Холбооны Зангилааг Тайлах гэж нэрийдэв (УУУХЗТайлах). "Угз тайлах" гэж байгаа юм шиг уншигдаж байгаа биз?

Би аль болох тун товч цөөхөн үгээр нэг тайлбарлая. Уг хэл дээр програмчлахдаа:

  • эхлээд хөдлөшгүй баримтуудаар юмсын хоорондох уялдааг бэлдэж өгнө. (facts)
  • бэлдсэн баримтуудаараа хооронд нь холбож дүрэм үүсгэнэ ( rules )
  • өгөгдлийн баазаасаа лавлаж асууна ( query)
эхний хоёрыг нь ерөнхийд нь өгөгдлийн бааз гэж нэрлэдэг. Жижиг анхаарах зүйл бол:
  • хувьсагч нар том үсгээр эхэлж бусад нь жижиг үсгээр бичигддэг.
  • лавласан асуулт болон баримтын бичиглэлт бүгд ЦЭГЭЭР дууссан байх ёстой
  • хоёр үнэн юмны хооронд нь таслал тавьсан бол бөгөөд гэсэн утга илэрхийлдэг.
  • аль нэг нь үнэн байхад болно гэсэн бол ; гэсэн цэг таслалаар илэрхийлдэг.

Жишээ авалгүйгээр юм тайлбарлах шиг хэрэггүй юм гэж үгүй бил ээ. Эхлээд хэдэн хөдлөшгүй баримтууд бэлдэе:


Энд би гурван хөдлөшгүй баримт бэлдэж тавив. Энгийн үгээр үүнийг дараах маягаар тайлан уншиж болох юм:
юндэн нансалмаад хайртай.
нансалмаа юндэнд хайртай.
хоролмаа юндэнд хайртай.
уг нотолгоон дээр тулгуурлаад журамт эрийн дүрэм босгоё:


Энэ бичлэгийг тайлбарлахдаа :- гэснээс нь эхлэе. ХЭРЭВ баруун гар тал нь үнэн бол зүүн гар тал нь үнэн гэж тайлж уншиж болно. Тэгэхээр:
ХЭРЭВ юндэн нансалмаад хайртай БӨГӨӨД хуурдаггүй БОЛ юндэн журамтай эр гэж нийтэд нь тайлж унших хэрэгтэй.
not(хуурдаг) гэсэн бичлэгээс та, not гэсэн англи тушаалаар хуурдаг гэсэн дүрмийн эсрэг утгыг нь хэрэглэнэ гэж ойлгоно уу. Мөн хоёр үнэн гэсэн бичлэгийг дунд нь , гэсэн таслалаар тасалж БӨГӨӨД болж байгааг та ойлгосон буй заа.
Мэдээж л дээ, юндэн нансалмаад хайр зарлаж гүйж байснаа гэнэт хоролмаад хайр зарлаад унавал ямар юмных нь журамт эр байхав дээ. За тэгвэл үүнийгээ энэ хэл дээр илэрхийлэх хэрэгтэй болно.


энэ хуурагчийн дүрмийг та бараг надгүйгээр тайлан уншиж байгаа байлгүй дээ: юндэн Х хүнд хайртай БӨГӨӨД тэр Х нь нансалмаа БИШ бол хууралт юм.
Энд Х гэгч тэр нууц амрагийг нь том үсгээр бичсэнийг нь та анзаарч байгаа биз? Яагаад гэдгийг нь та мэдэж байгаа биз дээ? Мэдээж шүү дээ, ийм бузар булай юмыг олны өмнө илчилж дурайтал харуулах гэж том үсгээр тэмдэглэж байхгүй юу.

Тэр Х бол хувьсагч. Пролог ажиллахдаа бэлдэж өгөгдсөн өгөгдлийн баазаас хайртай(юндэн, Х)-д таарах бүх баримт нотолгооноос хайгаад Х-д тэр таарсан нотолгоог нь оноож өгдөг. Жишээ нь та баазаас дараах маягаар лавлаж асууж болно. Эхлээд юуны өмнө ямар ямар хөдлөшгүй баримт болон дүрэмнүүд баазад байгааг хардаг тушаалтай танилцана уу.



эндээс жишээ нь хайртай(юндэн, Х) гэсэн асуултад таарах баримт байвал харуул гэсэн асуулт асууя:


харж байна уу? Х-н оронд нансалмаа гэсэн бичлэг олдож байгааг харуулж байна.
Ингээд одоо байгаа баримт нотолгоон дээрээ тулгуурлаад юндэнг хэр журамтай эр вэ гээд асуугаад үзье.


Асуулт маань "Юндэн журамтай юу?" гэсэн чинь өөдөөс "true" гэж авч байна даа харин ч нэг. Сонин юм даа, юндэнгийн талаар энэ гадаад нөхөр юугаа хийгээд мэдчихсэн бас баталчихсан явж байдаг байна вэ? Юндэн гуайг хилийн чанадад цагаачилж юмуу хараар ажиллаж байгааг нь утга учрын нарийн зангилааг тайлдаг уг програм харь улс уруу нь утасдаж лавлаад уг хэлээр нь хариулж байгаа юм болов уу. За бүү мэд. Ямар ч байсан журамтай гэдгийг нь баттай хэлж байх шиг байна.

Одоо хэдүүлээ хөдлөшгүй хүчтэй үндсэн хуулиа хүртэл хувийн шуналд автаж өөрчилдөг "монгол" "хэнэггүй" "уужим" "балиар бүдүүн" зангаараа түрий барин энд байгаа хөдлөшгүй баримтуудыг өөрчилж нэг үзэх үү? Магадгүй юндэн маань хүний газар хар ажил хийж хоол нойргүй ажиллаж байхдаа эх орондоо үлдсэн хайрт нансалмаагаа хоосон ходоодыг нь тэтгэж хоёр мөөмөөрөө даллан дуудсан хоролмаатай сольж, хормойд шургалсан явдлыг уг нутгийн ардууд нь шөнөөр шургалан гүйж, шуухитнан уухилан, угз тайлах чимээгээр нь мэдээд хайртай(юндэн, хоролмаа) гэсэн sms ч явуулсан байж бас болох юм. За ямар ч байсан



гээд мэдээлэл баттай болсон байг гэж үзье. Ингэхээр журамт эрийн асуудал юрамт эрийн асуудал болон хувирах ёстой доо:


Ааа, ха хаха, ичих нүүрээ элгэндээ наасан юндэн ингэж олны өмнө онигоо болж баригдлаа даа. Энэ гадаад нөхөр шууд хэлж байна ш дээ. FALSE гэж. Би бас муу ч гэсэн худлаа гэдгийг нь ойлгоод байгаа юмаа бас.

За галзуурсан биш ингэж гажиж яанам билээ. Эмакс хэрэглэдэг нөхөр байвал бичсэн файл дээрээ M-x prolog-mode гэж горимыг нь солиод C-c C-l гэж уг файлаа пролог дээр дуудаж хөрвүүлэхээр прологийн асуух самбарыг харуулдаг. Тэндээс та юндэнг журамтай эсэхийг нь асуугаад үз л дээ.

2010/04/26

Хүүеэ, чи ямар тэнэг юм бэ?

Өчигдөр ижийгээ нисэх онгоцны буудалд (Тэгэл) гаргаж өгч байгаад нэгэн "сонин" үзэгдэлтэй тулгарав. Мэдээж тэрүүгээр ийш тийш хөлхөлдсөн ганган, согтуу, бүдүүн, хөгшин, залуу, хүүхэд, бас бүдүүн, дахин бүдүүн (монгол эрчүүл гахай болчихсон юмуу гэж бодогдохоор) гэх мэт хөдөлгөөнийг ажиглан сууж байтал гуч сүүлдэж яваа байрын хүүхэн бид нартай яриа өдөж ( эсвэл би ч эхэлж ярил уу, мартчихаж ) хоёр гурван өгүүлбэр солилцож байтал тэр хүний ар нуруунаас нь түүний үеийн хүүхэн мөрөнд нь тогшиж "мэндлэв". Энэ тэрлэлийг бичих болсон шалтгаан маань энэ мэндлэл юм.
Хүүхэн: Хүүшээ чи юу? Хүүеэ, чи ямар тэнэг юм бэ?
Нөгөө хүүхэн:Хүүеэ яанаа? чи юу? ямар балай юм бэ?
Хм, ижий маань дэргэд тэр хоёр ингэж тэврэлдэн уулзаж байхад ингэж шивнэж байна: "Ямар бүдүүлэг юм бэ?". Би ч тэнд бас цочирдож гөлийчихсөн байснаа ухаан орж инээлээ. Надад үнэндээ хэлэх үг олдсонгүй. За тэгээд л тэр хоёр удаан уулзаагүйгээ гайхан ярилцаж байснаа яриан дундуур сая болж өнгөрсөн үйл явдлаас хэдхэн секундын өмнө юу гэж бодсоноо ярьж байх юм. "Би тэгээд л чамайг хараад л, хэсэг гайхаад, хүүеэ ямар тэнэг юм бэ? гэж бодоод".... Айййн? Энэ лав миний хувьд монгол хүмүүсийн мэндчилгээ биш ээ. Эмэгтэй хүмүүсийн ааль аягны элдэв гажилтын хэмжээ гэж байлгүй яахав. Гэхдээ энэ бол арай хэтэрнээ. Ачаа өгөх гээд зогсож байтал ардхан талд нэг хорь орчим насны бүсгүй утсаар ярьж байх юм. Яг л таван настай хүүхэд ярьж байгаа юм шиг. Би ар нуруунд болсон тэр яриаг чагнаж байсан болохоор гадаад хүн монголоор бас хальт мульт ярьж байна даа гэж бодсоныг хэлэх үү. Ичмээр гэж... Хариад гэргий хүүхдүүдтэйгээ тэд нарыг дууриаж мэндчилж хэсэг инээлдэв. Гэхдээ л хэсэгтээ гүн бодолд автуулж үүнийг тэрлэхэд хүргэлээ. Уул нь энэ тэрлэлийн үндсэн хаягтай зохихгүй л сэдэвтэй юм бичиж байна. Гэхдээ дан техник гэлтгүй давхар бас бодож тунгаах юм зэрэгцүүлж байхад гэмгүй байх гэж найдан илгээв.

2010/04/23

Эмаксаас тэрлэх

Урьд нь дурлаж баруун гартаа байлгадаг байсан засварлагчаа зүүн гарандаа шилжүүлэн өгч, оронд нь эмакс хэмээх засварлагчийг баруун гартаа барих болсноос хойш хэдэн жил өнгөрчээ. Энэ хооронд бараг бүх зүйлийг эмакс дээр хийхийг зорьж, мөн хийсээр, харин энэ тэрлэлийг эхлүүлэх хүртэл эмаксаас тэрлэж үзээгүй байж. Эхнийхээ хуудсыг тэрлэв. Болж байх юм. Болгох гэж мэдээж хэсэг мангуутлаа л даа.
Ер нь бол хоёр арга ихэвчлэн хэрэглэгддэг бололтой weblogger.el болон e-blog. Би яагаад ч юм эхнийхээр нь оролдож хэсэг хугацаа алдав (гүүгл гуай эхнийхийг нь их олж харуулах юм). Гэтэл нөхрийн илгээсэн нэг хаягийг нээж үзтэл тэр нь миний урдаа барьдаг томчуулын нэг байх нь тэр. Мундаг гуай бас л над шиг ухантаж уур нь хүрээд бичсэн байх юм. Мундаг юм болохоороо мань хүн юу боллоо гэж над шиг уйлаад л сууж байхав дээ, илүү арга олчихож, тэр нь хоёр дахь арга нь юм. Товчхондоо бол энэ хоёр дахь арга нь гүүглийн өөрсдийнх нь гаргасан API-г ашигладаг болохоор алдаа бараг гардаггүй юм байна. Тавигдах ганцхан шаардлага нь ажиллаж байгаа компотитор дээр нь curl суусан байх шаардлагатай. Ингээд e-blog.el файлыг татаж авч нэг газар байрлуулаад .emacs файлдаа дараах оруулгыг нэмсэн бол суулаа гэсэн үг.
;; эмаксаас тэрлэхэд хэрэглэгдэнэ
(load-file "~/elisp/e-blog.el")
Мэдээж ;; тэмдгийн араас бичигдсэн тайлбарыг заавал бичих шаардлагаггүй. Мөн e-blog.el файлын байрлах газрыг зөв зааж өгөх хэрэгтэй (би өөрийнхөө ~/elisp санд хадгалсан). Ингээд эмакс эхэлсний дараа M-x e-blog-new-post тушаал өгөнгүүт тэрлэж эхлэх нь тэр дээ. Танаас хэрэглэгчийн нэр болон нууц үг асууж холбогдсоны дараа таны тэрлэлийн үндсэн гарчгуудыг тань жагсааж харуулах болно. Нэрийн урд нь байгаа нэмэх тэмдэг дээр нь дарснаар тэнд хэдэн тэрлэл байгааг харуулна. Засварлахаар бол мэдээж дээр нь дарахад хангалттай. Харин шинээр тэрлэхээр бол үндсэн гарчиг дээрээ дарна. Ингээд л Гарчиг, Шошго хоёроо оруулаад л дараа нь үндсэн хэсэгт нь санаанд орсноо бичиж дуусгаад C-c C-c дараад л болох нь тэр. Үгүй мөн амар юм даа.

2010/04/22

Git Problem № 1

2004 онд CVS ашиглахаа болиод оронд нь SVN ашиглаж эхлэхэд санаа минь нэг сайхан амарсансан. Тухайн үед CVS-ын чухам юу нь болдоггүй байсныг одоо сайн санадаггүй юм. Ямарч байсан SVN руу шилжсэнээс хойш хараал хэлэх минь нэлээд багассан билээ. Энэ хавраас хамт ажилдаг нэг нөхөр намайг ятгаад бид хэд SVN ашиглахаа болиод оронд нь Git ашиглаж эхлэв. Тэгсэн нэг л сайн дасаж өгөхгүй юм. Git д олон сайн давуу талууд байгаа боловч надад таалагдахгүй хэд хэдэн асуудал байна аа хөөрхий. Жишээ нь олон хүн нэг төсөл дээр бүгд нэгэн зэрэг ажиллахад нэлээд төвөгтэй юм. Би өөрчлөлтөө бусдадаа тараахын тулд эхлээд git pull дараа нь git commit төгсгөлд нь git push гэж 3 удаа git үйлдэх хийх хэрэгтэй болдог. 10 минут тутамд ингэхээр сүүлдээ нэлээд залхаж эхлэх шинжтэй. Мөн ихэнх IDE (XCode гэх мэт) Git-ийг дэмждэггүй, дэмжлээ ч гэсэн тэр нь нэлээд дутуу дулимаг (Eclipse-ийн EGit) хийгдсэн байна. Ингээд тоочоод байвал нэлээд хэдэн асуудал байна aa. За тэр ч яахав бичих гэсэн юмнаасаа хадуураад явчихлаа. Өнөөдөр саяхан үүсгэсэн Git төслөө бага зэрэг ч сайжруулах санаатай Eclipse дээр устгах нэгийг нь устгаад, өөрчлөх нэгийг нь өөрчлөөд явж байтал доорх проблем гараад хийсэн юм аа бусдадаа тарааж чадахаа больчихов.


Git зөвхөн SSH ашиглаж мэдээллээ тараадаг тул хэрэглэгчийн эрх нь хүрэхгүй байгаа юм болов уу гээд тэр талын алдаа хайж мунгинав. Алдааг нь олохгүй болохоор учир мэддэг хүнээс асуутал refactoring хийсэн үед Git-д заримдаа ийм алдаа үүсдэг, git fsck гэж дуудаад янзалчих гэлээ. Хэлснийх нь дагуу хийтэл нөгөө алдаа маань алга болчихлоо, мэдүүштэй л эд байна.

2010/04/20

Нөгөө нь & Логик програмчлал

Өнөөдөр ажил дээр сууж байтал мессенжерээр доорх масс мессеж цацагдаж байх юм:
Нэг гүүрээр аав, ээж охин, өвөө 4 гарах болжээ. Тэд 17 минутад амжих ёстой байв. Гүүрээр дээд тал нь 2 хүн гарна, дундаа 1 гар чийдэнтэй, гар чийдэнгээ шидэж болохгүй, нэг нэгнээ үүрч явахгүй. Аав 1 минут, ээж нь 2 минут, охин 5 минут, өвөө нь 10 минут тур гүүрийг явж туулна гэвэл 17 минутад яаж бүгдээрээ амжиж гарах вэ?
Сүүлийн гурав дөрвөн хоног Пролог хэмээх логик програмчлалын хэлтэй ноцолдоод сууж байсныг хэлэх үү, дээрх бодлогыг Пролог дээр програмчилж үзэхээр санагдав. Доорх бодолт маань нэлээд болхи бөгөөд гүүрээр гарч болох бүх боломжийг шалгаж үзэх тул олон хүн гол гарах тохиолдолд удаан ажиллах болно. Жишээ нь аав нь гүүрээр нааш цааш 17 удаа гүйж гарах нөхцөлийг хүртэл шалгана. Доорх программыг Пролог дотроос гүүрээр_гарах_боломж([өвөө, аав, ээж, охин, гар_чийдэн], [], 17, Хариу). гэж дуудаарай. Олдсон хариунууд нь Хариу гэсэн хувьсагч дотор хадгалагдана. Цаашаа тайлбарламаар байсан боловч гэрийн зүг гэлдрэх цаг болсон тул ингээд орхиё.


Үүнээс хойш түүнээс цааш би (нөгөө нь) логик болон функционал програмчлал гэх мэт хэнд ч хэрэггүй зүйлсээр та бүхнийг залхааж байх болно оо.

2010/04/19

Нэг нь

Олон хүний (одоогоор гурав ч яваандаа нэмэгдэж магадгүй) тэрлэлүүдийг нэг газраас харуулбал хийж байгаа хүмүүсдээ ч сонирхолтой уншиж байгаа хүндээ ч сонин байх болов уу гэж ярилцсаны үндсэн дээр уг тэрлэлийг нээж гэнэ. Гэвч уулын мод урттай богинотой, учралт хүний зан сайтай муутайн үлгэрээр (нэг үг л зөрчих шиг боллоо) уг тэрлэл нь нэг хүнээс эрхэлсэн юм шиг харагдавч өөр өөр бодол санаагаар солигдож байх нь уншиж байгаа хүндээ хаврын цаг агаар шиг солигдмол хагас галзуу хүн шиг өөр өөр юм тэрлэсэн сэтгэгдэл төрүүлээд байх вий гэсэн ярианы үндсэн дээр уг гарчиг нь буужээ. Үнэхээр "эргүүлж мөлжихөд хүзүү сайхан, эргээд уулзахад ижий сайхан" гэж үнэн юм байна. Учир нь, уржигдар мөлжсөн хүзүүний шулсан махнаас одоо ч гэсэн үлдэгдэл хэсэг хусаг мах хөргөгчинд байж л байна. ... Сүүлийн хоёр өгүүлбэр лав минийх биш. За ямар ч байсан эхлүүлж нэг нь бичих ёстой юм чинь гэж бодоод энүүгээр нэг нь би боллоо. Аа төгсгөлд нь шахуу юм даа, гэхдээ гол нь: юун талаар тэрлэхээ товч дурдая.

- Санаанд орсоноо

Энүүнээс илүү товч гэж юу байхав дээ.