Thursday, May 16, 2013

Thursday, May 2, 2013

Бидний Монгол

Хэн хүнгүй л Чингисийн Монгол гэж хэлдэг болж. Найман зууны тэртээ тэнгэрт хальсан хүнийг дуудаад босгоод ирэх юм шиг телевиз, радиогоор үргэлж хэлдэг болж. Бүр 2 сая Чингис нойрноосоо сэрлээ л гэнэ. Үгүйэ эзэн хаан бурхан болсон. Өнөөдөр бид нар л амьдарч байна бидний үе, Чингис хааных биш. Харин бид түүний бүтээсэн шиг түүхийг бүтээх, хийх учиртай. Нэг зүйлийг дурдахад бид дайн хийх шаардлагагүй битгий омогш, оронд нь ухаантай бай.

Дэлхийг эзэлж байсан өвөг дээдэс маань өдгөө бидэнд нэг ч хот, алт эрдэнэс, байгуулсан хөшөө дурсгал үлдээсэнгүй. Гадаадын жуулчид ирээд юм үзэх гэхэд бидэнд байлдан дагууллын түүхээс юу ч байхгүй. Харин довоо шарлуулаад дотор газраа амьдарсаар суухыг хүссэн хятадууд цагаан хэрэм барьчихаж. Тэр нь дэлхийн гайхамшиг гэнэ. Нэг далайгаас нөгөө далай хүртэл эзэлсэн их гүрнээс бидэнд тэгээд газар нутгаас өөр юу ч үлдсэнгүй юу?

Үгүй. Бидэнд сэргэн мандах, уруудан доройтох гашуун сургамжит түүхийг өвлүүлсэн. Дэлхийг байлдан дагуулах хөвгүүнд ямар зан чанар хэрэгтэй вэ гэдэг нууцыг заасан юм. Шударга зан, үнэнч нөхөрлөл, шийдэмгий байдал, итгэл даах, зовлон бэрхшээлийг туулах чадалтай байж гэмээ нь дараагийн удирдагч төрөх юм. Харин өнөөдөр эдгээр зан чанарыг олон хүн хаяж байна. Загасчин хүнд загас барьж өгдөггүй, загас барих аргыг нь заадаг. Бидэнд арга ухааныг нь сургаалиар дамжуулан хайрласан боловч сургаалыг нь дагах хүн байхгүй болсон. Оронд нь хэл хугалам нэртэй Солонгосын түүхт цуврал кино их үзэж байна. Нөгөө хэд нь өвөр зуураа хэрэлдэхээс хэтрэхгүй яасан ч хөөрхийлөлтэй юм. Тиймээс бид энэхүү өв соёлоо авч өөрсдийгөө өөрсдийн үр хойчоо сургаж явахгүй бол бид ирээдүйд хөгжин мандах сэтгэхүйн төлөвшил байхгүй, өнгөрсөн түүхээ гайхан шагших боловч ухаж ойлгохгүй ард иргэд болох нь.

Monday, April 29, 2013

iOS vs Android

iOS сурч эхлээд хоёр сар гаруй өнгөрлөө. Энэ хугацаанд ямархуу дүгнэлтэнд хүрснээ сонирхуулъя.

Ажиллах зарчмын хувьд хоёр платформ хоорондоо ихээхэн ялгаатай. Хазсан алим нь хийх ажлаа маш сайн хийхийг хичээдэг бол андройд бүгдийг хийхийг хичээдэг. Андройд үйлдлийн систем нь зөвхөн утас биш таблет, зурагт, эмбеддэд системүүд рүү ер нь бүх л төхөөрөмж рүү ажиллахыг чармайдаг. Иймдээ хаана ч ажиллана гэсэн бисексуал жава хэлийг ашигладаг бизээ. Хөгжүүлэлтийн орчин нь болох Eclipse хүртэл линукс, мак, виндовс гурван үйлдлийн систем гурвуулан дээр нь ажилладаг. Гэхдээ ийм универсаль байдал нь эргээд удаан, гацалтын эх үүсвэр болдог гэдгийг дурдах хэрэгтэй. Андройд програмууд нь хоорондоо мессеж шидэх загвараар ажилладаг. Нэг програм нь гүйцэтгэж чадахгүй үйлдэлтэй тулгарвал бусад програмуудаасаа асуудаг. Жишээ нь дуудлага хийх, мессеж бичих, веб үзүүлэх г.м.

Нөгөө талд хазсан алим. Хазсан алимны хөгжүүлэлтийн орчин болох Xcode зөвхөн макинтош үйлдлийн систем дээр сууна. Зөвхөн Xcode дээр iOS хөгжүүлэлт явагдана. Бусад Appcelerator, Phonegap гэх мэт орчин ашиглаж болох боловч эцэстээ Xcode-оор л дамжина. Элдвийн платформ орчин руу хөгжүүлэхийг зорьдоггүй энэ байдал нь зөвхөн энэ орчин дээрээ маш сайн ажиллах боломжийг олгосон. Эмулятор нь хүртэл маш хурдан ажилладаг. Ашиглагдах програмчлалын хэл нь Си хэлэнд объект хандалтат нэмэлт боломж нэвтрүүлсэн Объектив-С хэл юм. Энэ хэл нь янз бүрийн макроны тусламжтайгаар хөгжүүлэлтийг илүү хялбарчилж өгсөн сайн талтай.

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

Програм хөгжүүлэх орчны тогтвортой байдлын хувьд iOS харьцангуй тогтвортой. iPhone5-ийг эс тооцвол дэлгэцийн хэмжээ хүртэл нэг хэмжээнд байсан. Харин андройд маш олон төрлийн дэлгэцийн хэмжээ бүхий төхөөрөмж дээр ажилладаг.

Энэ хоёр платформд сайн муу аль аль нь бий. Алийг нь хэрэглэхийг хэрэглэгч өөрөө шийдэх бизээ.

Tuesday, March 12, 2013

Програмчлалын хэлнээс шалтгаалж програм хөгжүүлэлт ямар мэдрэмж төрүүлдэг вэ?

JAVA
Хэрвээ дундаас нь нэг тоосгыг нь авчихвал ажиллагаагүй болно. Байшингийн бүх хэсгүүд нь хоорондоо интерфэйсээр нийцсэн. 

PYTHON
Энгийн, ойлгомжтой. Ийш тийшээ зөөхөд амархан.

PHP
HTML дунд бичээд л бай, хэзээ нэгэн цагт дуусна.

SHELL SCRIPT
Юмхнаар юм хийнээ хө, байгаа хэдээ холиод сууж байхад болох байлгүй.

LISP
Рекурсив байдлаасаа болоод ажиллагаа нь жижигхэн үрнээс мод хүртэл ургана.

Би алдаа гаргаж уу? гаргасан бол сэтгэгдлээр үлдээгээрэй.

Thursday, February 21, 2013

Хэмнэлт

Би цуйванд дуртай, өчигдөр орой өлсөөд байхаар нь яахын аргагүй гуанз ороод цуйван идсэн юм. Хүн багатай надаас өөр хүнгүй гуайнзанд ороод цуйван аваад идэж байх зуур нэг хөгшин ах орж ирж байна. Нэг цүнхтэй, цүнхээрээ дүүрэн дууны үгтэй жижигхэн ном. Тэрийгээ зардаг бололтой гуанзны худалдагч хүүхэн дээр очоод энэ дууны үгтэй ном байгаа юм "та нар дуу сураач ардын дууны, шинэ дуунууд бүгдээрээ байгаа 200 орчим дууны үгтэй" гэнэ. Худалдагч хүүхэн хэд эргүүлж байгаад худалдаж авахаар болов. Үнэ нь 1500₮. Харин би тэр номыг худалдаж авах байсан болов уу? Үгүй. Яагаад гэвэл би xyyp.mn сайтыг мэддэг. Надад дууны үг хэрэгтэй бол тэр сайт дээрээс хайгаад л үзнэ. Тэгэхээр тэр эгч ном авсан харин би аваагүй. Гэхдээ тэр эгчид би хэдэн мянган дууны үгтэй сайт интернетэд байдаг мөнгөө хэмнэ гэж хэлээгүй. Ах номоо зарж л байг, тэр хүний гэр бүл, өөрт нь ч бас мөнгө хэрэгтэй байх. Интернет, програм хангамжийн хөгжил хэдийгээр урагшилж байгаа ч гэсэн энэ мэт мөнгө олж байгаа хүмүүст садаа болж байна, нөгөө талаар бидний мөнгийг хэмнэж байна. Тэр ном хэвлэлтнээс гарахад хичнээн хүний гар дамжиж хэдэн хүнийг тэжээсэн бол?. Тэгээд миний хийсэн програмууд над шиг хичнээн хүний мөнгийг хэмнэсэн бол гэж бодлоо. Ихэнх нь андройд ухаалаг утасны програм. Саяхан гарсан "Утасны дэвтэр" гэдэг програм хагас сарын дотор 6000 орчим хэрэглэгчтэй боллоо, сайнаар бодоход энэ нь 6000 хүнийг 1950 төлбөртэй утас руу залгуулалгүйгээр хэрэгтэй дугаарыг нь олж өгсөн. 6000*500₮ буюу хагас сарын дотор монголчуудын халааснаас 3 сая төгрөг хэмнэжээ. Ийм жижигхэн програм ганц хувь хүнд сайн мэдэгдэхгүй боловч хэрэглэгчтэй харьцуулсан байдлаар бидний халаасыг үргэлж хэмнэж, тус болж байгааг ойлгоорой. Өөр нэг програмыхаа жишээг авъя. Энэ бол "Зурагтын хөтөлбөр" гэдэг ухаалаг утасны програм. Энэ нь 18 сарын турш интернетэд байршиж 10000 орчим хэрэглэгчтэй болсон. Хэрэглэгчийн өсөлтийг шугаман гэж үзээд хамгийн өндөр ашигтай байдлаар нь тооцъё, харин 1 долоо хоногийн хөтөлбөрийн үнийг 1000₮ гэе. Тэгвэл энэ нь 400 орчим сая төгрөг хэмнэжээ! Энэ тооцоо бол хамгийн ашигтай ажилласан үед л ингэж гарна. Бодит байдал энэнээс нэлээн доогуур байгаа байх гэхдээ тийм ч муу биш. Хэрвээ халаасаа хэмнэе, хөгжие гэвэл хүмүүс минь програм зохио тэр л туслана. 

Thursday, October 18, 2012

ONE Mongolia mөслийн талаарх миний бодол


10н жилд байхаасаа л би санадаг юм. Манай ангийн хичээлдээ сайн охидууд бүгд л маш хүнд цүнх үүрнэ, яагаад ч юм тэд нар бүгдээрээ намхан. Цүнхэндээ бүр тоосго хийж авч яваад хүн зоддог юм болов уу ч гэж бодож байлаа. Харин өнөөдөр манай дүү мөн л адилхан хүнд цүнх үүрээд явж байна. Нэг өдрийн хичээлд чинь ийм их юм үүрч явах ямар хэрэг байнаа? Багш авчир гэсэн юмаа. Заза, би өөрөө бол номын хүрэлцээ муутай сургуульд сурч жил болгон ном засварын мөнгө гэж сургуульдаа хэдэн төгрөг өгдөг байсан. Үнэндээ манай ээж л тэр сургуулиас өгсөн номнуудыг гэрт авчирахад засаж өгөөд юун сургуулийн засвар, дахиад 10 жил хэрэглэхээр сайхан хавтаслаад үдээсээр үдээд өгдөг байсан. Харин одоо энэ байдал бүр хүндэрч 11, 12 жилийн сургалттай болсон биш жил болгон шинэ ном, тэрийг нь сургуулиас тараахгүй. Үйлдвэрээс 3500₮-өөр гарсан боловч шагийнхнаар дамжаад 15000₮-өөс дээш үнээр зарагдаж байна. Тэгээд энэ номыг авахгүй л бол болохгүй. Ном үнэтэй байж болноо, гэвч хүний зовлонгоор мөнгө олоход би хэзээд дургүй байсан. Энэ байдал их сургуульд ороод ч адилхан ШУТИС-ийн физикийн багш нэг нимгэхэн ном худалдаж авбал дүнг нь тодорхой тоогоор өсгөдөг байв. За энэ бүхэн ч яахав өнгөрсөн хорвоо одоо ирээдүй рүү харах цаг нь.

SMCUB-гийн анхны цуглаан дээр  ИЗНН-ын дарга Энхбат ирж ярилцлага хийж ONE Mongolia төслийг санаачилж ямар зорилготой байгааг нь бид нарт танилцууллаа (энд дарж үзэж болно). Энэ төсөл зөвхөн надад ч биш, бусад олон хүнд маш зөв нүдээ олсон төсөл санагдлаа. Иймэрхүү зүйл дээр хараад төсөл хэрэгжихийг нь би болон бид нарын зүгээс зүгээр хараад суумааргүй байна. Төслийн талаарх дэлгэрэнгүй мэдээллийг Энхбат гишүүний өөрийнх нь блогоос үзэж болно. Төслийн дэлгэрэнгүй мэдээлэл дээрээс ажвал Хан-Академигийн хичээл дээрээс 200 гаруй видео хичээлийг орчуулж монгол портал сайт гаргаж түүн дээрээ байршуулна гэж байна. Эдгээр санаачилсан төслүүд маш том хүрээтэй санагдлаа.

За энд би ONE Mongolia төсөл яаж үргэлжлэх ёстой вэ гэдгийг арай өөр өнцгөөс өөрийнхөө бодолтой нийцүүлэн тайлбарлая.

1-рт. Олон видео хичээлтэй орчуулгуудыг тусгай веб сайтад байршуулна гэж байна. Тусгай веб сайтад байршуулж хэрэглэж буй хүүхэд залуучуудад тус дэм болох нь зөв авч нөгөө талаас эдгээр видео хичээлүүдийг байршуулах сайт маань уян хатан, зөвхөн өнөө маргаашдаа ашиглагдаад өнгөрөх зүйл биш байх ёстой. Уян хатан гэдэг нь зөвхөн сайт биш, энэ сайт тогтвортой REST API (RESTful) гаргаж өгч бусад хүмүүст ашиглагдах боломжийг олгох ёстой. Яагаад гэдгийг нь сүүлийн хэсэгт тайлбарлая.

2-рт. Тэдгээр видео хичээлүүд доороо “СЭТГЭГДЭЛ” гээч зүйлгүй, форум байх ёстой. Форум байршуулна гэдэг нь тэнд оюунлаг бүтээлч харилцаа холбоо үүснэ. Сэтгэгдэл байршуулбал “гоё болж”, “**нэг болж багш нь таалагдахгүй байна” гэх мэтчилэн зүйлүүд орж ирнэ. Оронд нь форум байрлуулбал “Энэ хэсэгт би энийг ойлгосонгүй, яагаад ингэв?”, “Ингэж ашиглавал ийм тайлбар гаргаж болно” гэх мэтчилэн. Түүнээс гадна хичээлийг үзэж буй хүмүүсийн хооронд харилцан мэдлэг солилцох боломж олдоно.

3-рт. Видео хичээлээс гадна тухайн хичээлийг сонирхож буй хүнд мэдлэгээ цаашдаа яаж гүнзгийрүүлэх вэ? Зөвхөн тухайн видеогоор хязгаарлагдах бус цаашдаа хязгааргүйгээр мэдлэгээ гүнзгийрүүлэн олж авах боломжийг олгох ёстой.

Тэгэхээр “Яагаад?” гэдгийг энд тайлбарлая. Өнөөдөр Монгол улс маань дэлхийд хөгжлөөрөө хойгуур орж байгаа гэдэгтэй маргах хүн цөөхөн байх. Бид нар одоог хүртэл эндээс гарах зөв гарцаа тодорхойлж чадаагүй байгааг хөдөө орон нутгийхантай холбож ойлгох хүмүүс нэлээд байж магадгүй.  Монгол улсын хүн амын тэн хагас нь хөдөө орон нутагт ажиллаж амьдарч байгаа хөдөлмөрчид байна. Тэдний бэлтгэсэн мах, гурилыг бид идэж байна. Боловсролыг зөвхөн аймгийн төв, хотоос олж авдаг биш, малынхаа бэлчээр дээрээс авдаг болмоор байна.

Ингэх боломж нөхцөл бүрдсэн үү?

Миний бодлоор энэ 100% бүрдсэн. Дэлхийн банкны төслөөр хөдөөгийн иргэдэд нарны гэрлийг тогны эх үүсвэрээ болгож ашиглаад тэдгээр хүмүүс телевизор, утастай болж. Бас Дэлхийн банкнаас санаачилсан RDL (RuralDistance Learning) гээч төсөл нь хөдөөгийн иргэдэд хүрэх боломжгүй байна гэсэн дүгнэлт гараад буцсан байна лээ. Харин одоо ONE Mongolia төсөл амжилттай хэрэгжвэл RDL амжилт олох магадлал тун өндөр байна.

Харин одоо дээрх веб сайт хийхэд зүгээр нэг портал сайт биш яагаад REST API гаргаж өгөх ёстойг тайлбарлая. Видео хичээлүүдийг сервис хэлбэрээр түгээх нь хүлээж авч байгаа хэрэглэгч талдаа маш уян хатан байдлыг олгодог. Тэдгээр орон нутгийн хэрэглэгчдийн хувьд өдөржингөө цэнэглэсэн аккумлятороор компьютерээ асаагаад жи-мобайлын интернет ашиглаад хэдэн минут интернетэд орж чадахыг би хэлж мэдэхгүй байна. Өөрөөр хэлбэл интернетэд ордог персонал компьютер тэнд хэрэггүй. Харин оронд нь таблет буюу тог бага хэрэглэдэг хөдөлгөөнт төхөөрөмж хэрэгтэй. Тэрэн дээрээ видео хичээл, унших материал, форумтай болмоор байна. Иймд зүгээр нэг портал сайт биш, RESTful API-тай сайт хэрэгтэй байна.

Бид яагаад хөдөөг чухалчилж үзэх хэрэгтэй вэ?

Бид хэдэн мянган жилийн турш нүүдэлчин амьдралаар амьдарч ирсэн хүмүүс. Нүүдэлчин амьдрал нэгэнтээ дэлхийд өөрсдийн тамгаа дарсан түүх ч бий.  Ийм хүчирхэг соёл өнөөдөр бусад суурин иргэншилтэй улсуудыг дууриаж тэдний дүрмээр хөгжиж өрсөлдөж байна. Хөдөөнөөс хот руу шилжиж байгаа шалтгаан нь бараг л хүүхдийнхээ боловсролд санаа зовсон эцэг эхчүүд л байна. Хөдөө нутаг сайхаан, тэнд хэрвээ хязгааргүй суралцах боломж байдагсан бол надад хэн ч саад болохгүй, хотын дуу шуугианаас хол эрдэм номоо бясалгаад суух боломж их бий. Энд магадгүй дараагийн ерөнхийлөгч ч сууж байхыг хэн ч үгүйсгэхгүй. Хотын иргэд хоорондоо харилцаа холбоо өндөртэй байхад зөвхөн тэдэнд зориулсан ONE Mongolia төсөл хэдий тус болох авч масст нөлөөлөх нөлөө бага юм. Аа, харин тэдгээр хөдөөний иргэдэд хүрч чадвал үр ашиг нь илүү өндөр байх юм. Боловсрол олохын тулд дэлхийд хамгийн НОГООН гэж хэлэгдэж болохуйц соёл иргэншил гол усаа бохирдуулдаг, байгаль эхийнхээ хэвлийнхээ ухдаг СУУРИН иргэншил рүү шилжих хэрэгтэй гэж үү? Үүгээрээ би суурин иргэншлийг буруу гэж хэлэх гэсэнгүй ашигтай зүйл их бий, гэхдээ энэ тухай бодож үзээрэй дэлхий дээрх бүх хүмүүс АНУ шиг амьдарна гэвэл 5 дэлхий хэрэгтэй.

Иймд “ONE Mongolia” төсөл дээрх санааг тусгаж нэвтрүүлэхгүй бол бид соёлоо авч үлдэж, дэлхийд бараг гайхагдахаар хөгжлийн гарцыг бүтээж чадахгүй гэж бодож байна. Миний буруу зөвийг сэтгэгдлээрээ үлдээнэ үү?

Monday, July 23, 2012

Андройд скрипт


Хөдөө явж байхдаа үнэхээр гоё байгальд ирчихлээ, тэгээд тэр газрыг нь тэмдэглэж авмаар санагдвал та юу хийх вэ? Андройд гар утас танд байгаа. Байршлийг нь тэмдэглэж авахын тулд дахиад ямар нэг аппликэшн татаж авах уу? Харамсалтай нь хөдөө интернет байхгүй.

Скрипт “үйлдлүүд” болон “өгөгдөл”-өөс бүрдэнэ. Үйлдэл нь оролт, гаралттай. Зарим тохиолдолд оролтгүй байж болно. Үйлдлийн гаралт нь өөр нэг үйлдлийн оролт байна. Доорх схемээр зураглая:


Дүрэм. Үйлдэл нь оролт авч болно. Оролт дээрээ үйлдэл хийгээд хэрвээ гаралт гаргадаггүй бол оролтоо гаргана.

Энэ дүрмийг ашиглаад өгөгдөл дээр ямар нэг хувиргалт хийдэггүй үйлдлүүдийг дунд нь хавсаргаж болно. Жишээ нь хадгалах, сервер лүү дамжуулах гэх мэт.

Тэгвэл одоо байршил дамжуулах скриптийн санаагаа дүрслэе. Үүний тулд утаснаас байршил авдаг үйлдэл хэрэгтэй. Байршлаа авсан бол түүнийг хадгалах эсвэл дамжуулах хэрэгтэй. Бид нар байршлаа хадгалаад дамжуулах шаардлагатай болсон гэе. Тэгвэл график маань:



Файлд хадгалах үйлдэл нь өгөгдөл дээр ямар нэгэн хувиргалт хийхгүй. Тиймээс оролтоо шууд гаралт руу хийнэ. Гэхдээ SMS-ээр дамжуулах үед бидэнд хэн рүү дамжуулах вэ? Гэдэг асуулт гарч ирнэ.

Дүрэм. Үйлдэл нь хэд хэдэн оролттой ба өмнөх үйлдлээс орж ирсэн оролтоос бусад үйлдлийг хэрэглэгч зааж өгнө.

Энэ дүрмээр бол өмнөх үйлдлийн гаралтыг дараагийн үйлдэл рүү газарчилж аль параметрээр нь дамжуулах вэ гэдгээ хэлж өгнө. Дээрх үйлдлүүдийг функц хэлбэрээр нь бичвэл:

файлд_хадгалах(байршил, файлын_нэр): буцаах утга байршил

мессеж_дамжуулах(байршил, хүлээн авагч): буцаах утга байршил

Дахиад алгоритмын схемээ зурвал:


Энд илүү сайжруулах боломжууд гэвэл: эхний үйлдэл нь нөхцөлт байдлаар асах. Тусгай дугаараас мессеж ирэх эсвэл өглөөний 08:00 цагт ажиллах гэх мэт. Жишээ нь ээж чинь чам руу мессеж бичихэд автоматаар байршлыг чинь буцаагаад илгээдэг байж болно.

Гар утсан дээрээ програм бичих боломжийг олгодог өөр, өөр аппууд байдаг л даа. Гэхдээ хэн нэг нэг үсгээр жижигхэн дэлгэцэн дээр дараад бичихийг хүсэх вэ дээ.