Thursday, December 17, 2009

Америк vs Хятад

Америк багш Синдереллагийн тухай үлгэрийг зааж байна

Хонх дуугарлаа, оюутнууд гүйлдсээр өрөөнд орж ирэв.
Энэ ангид Синдереллагийн үлгэрийн тухай ярилцах болно. Багш нь нэг оюутныг самбарын өмнө гараад үлгэрийн тухай дүгнэснээ хэл гэв. Оюутан гялс самбарын урд гарч ирэхэд багш түүнд талархаж асуултуудаа тавьж эхэллээ.

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

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

Багш: Энэ бодомжийг авч үзье. Синдереллаг түүний хойд эх үдэшлэгт явахыг зөвшөөрөөгүй учраас яваагүй бол ханхүүгийн сүйт бүсгүй болж чадах байсан уу?
Оюутан: Үгүй, энэ тохиолдолд Синдерелла үдэшлэгт очихгүй. Тийм болохоор ханхүү түүнтэй уулзаж чадахгүй бас мэдэх ч үгүй, тэгээд нэг нэгнийгээ хайрлаж чадахгүй.
Багш: Сайн байна. Хэрвээ Синдерелла өөрөө үдэшлэгт яваагүй бөгөөд хойд эх нь түүнийг хориогүй бүр дэмжсэн байлаа ч энэ нь байдлыг өөрчлөхгүй юм. Тэгэхээр хэн түүнийг үдэшлэгт явуулахыг шийдсэн бэ?
Оюутан: Өөрөө
Багш: Тийм болохоор хүүхдүүдээ, Синдереллад өөрийг нь хайрлах ээж байгаагүй, мөн хойд эх нь түүнийг хайрладаггүй байлаа ч тэр өөрийгөө хайрласан байна. Хэрвээ чамд хэн ч боломж олгохгүй байгаа бол өөртөө тэрхүү боломжийг олж нээж өгөх хэрэгтэй. Хэрвээ чи үнэхээр өөрийгөө хайрладаг бол чамд юу хэрэгтэй байгаад олох болно. Тэгэхээр хэн ч Синдереллаг үдэшлэгт оролцохоос нь зогсоож чадаагүй, бас гүнж болохыг нь хориглож чадаагүй тийм үү?
Оюутан: Тийм!!
Багш: Сүүлчийн асуулт. Үлгэрт юу нь логикийн хувьд алдаатай байсан бэ?
(Нэлээн хугацаа өнгөрсний дараа)Оюутан: Шөнө дунд өнгөрөөд бүх зүйл буцаж байсан хэвэндээ хувирч байхад Синдереллагийн шилэн гутал л тэгээгүй.
Багш: Wow, та нар маш ухаалаг байна! Агуу зохиолч хүртэл алдаа гаргадаг юм байна. Тийм болохоор алдаа гаргана гэдгээс айх хэрэггүй. Та нарын хэн нэг нь ирээдүйд зохиолч болбол үүнээс илүү үлгэр бичнэ гэдэгт би итгэлтэй байна.

Хятад багш Синдереллагийн үлгэрийг зааж байна.

Хонх дуугарлаа оюутнууд, багш нар өрөөнд алхсаар орж ирэв
Багш: Сайн байцгаана уу?
Оюутан: Сааааййййн. Тааааа сааааййййн бааааййййнаа ууууууу?(дуудлагаар нь сунгав)
Багш: Өнөөдөр бид Синдереллагийн үлгэрийн тухай ярилцах болно. Бүгдээрээ үргэлжлүүлж уншсан уу?
Оюутан: Үргэлжлүүлнээ? Хэн энэ үлгэрийг мэддэггүй юм.
Багш: Синдереллагийн үлгэрийг Гримм Бродерс бичсэн үү? эсвэл Ханс Андерсен уу? Зохиолч нь хэн бэ? Зохиолч нь хэзээ төрсөн бэ? Зохиолчийн амьдралд ямар ямар чухал зүйлүүд болсон бэ?
Оюутан: ...(шивнэлдэж байна) Энэ бүгдээрээ л номонд байх ёстой доо. Чи энийг уншсан уу?
Багш: Үлгэрийн үндсэн санаа нь юу байсан бэ?
Оюутан: Энэ яг шалгалтанд орж ирнэ.
Багш: За тэгвэл хэдүүлээ эхэлцгээе. Хэн үлгэрийг үйл явдлаар нь хувааж чадах вэ? Яагаад тэгж хувааснаа тайлбарлаад өгөхгүй юу?
Оюутан: Эхлэл тэгээд төгсгөл, дунд нь өрнөл тэгээд болж байгаа байхаа
Багш: Хуваасан хэсгүүд нь маш хурц үйл явдал, үгээр бүтсэн байгаа. Бүгд гэрийн даалгаварт үлгэрийг 5 удаа хуулж бич. Тэгээд цээжээр уншиж өгөөрэй. Дараагийн хичээл дээр шалгана.
Оюутан: Дахиад л цээжлэх юмуу!?
Багш: Бүгдийг нь бишээ хуваасан хэсгээсээ
Оюутан: Бусад хичээлүүд ч гэсэн цээжлэх даалгавар өгсөн...

Багш: За текстэд шинжилгээ хийе, бүгдээрээ анхааралтай байгаарай. Хэн эхний параграфийг унших уу? Бусад нь анхааралтай байж байгаад дүгнэлт хийн параграфт сэдэв бодож байгаарай.
Оюутан: (Уншиж байна)
Багш: Энд бүгдээрээ энэ өгүүлбэр дээр анхаарлаа хандуулаарай. Энэ шууд зүйрлэл үү эсвэл тойруулсан зүйрлэл үү? Яагаад зохиогч үүнийг хэрэглэв?
Оюутан: (N тооны оюутнууд унтаж эхэллээ)
Багш: Бүгдээрээ энэ үгийг ажиглаарай. Хэрвээ бид нар энийг өөр үгээр соливол өмнөх шигээ утга гаргаж чадах уу?
Оюутан: (Өшөө хэдэн оюутнууд унтаж эхлэв)
Багш: Бүгдээрээ анхааралтай. Хэрвээ би энэ хэлцийн байрлалыг үүгээр соливол зүгээр үү? Яагаад болно эсвэл болохгүй гэж?
Оюутан: Би та биш ш дээ, би яаж анзаарах юм бэ? (Өшөө хэд нь унтаж эхлэв)
Багш: Яагаад та нар унтаад байгаан? Та нар мэдэх хэрэгтэй, хэрвээ хичээлдээ анхааралтай байхгүй бол та нар сайн дүн авахгүй. Хэрвээ сайн дүн авахгүй бол их сургуульд орохгүй. ...Та нар амьдралын хуулийг сайн ойлгох хэрэгтэй !!!

http://www.chinasmack.com/stories/teaching-cinderella-fairytale-china-vs-america-differences/, ёоо хятад нь яг монгол. translated by Melug.

Wednesday, December 16, 2009

Бүтэн веб шинэчилсэн нь

За би зуныхаа амралтаар нэг газар ажиллаж байснаа бичээгүй байх. Тэнд ажиллаж байхад нэг ийм явдал тохиолдсон юм. Нэг өдөр манай ах над дээр ирвээ, төрийн байгууллагад IT-ийн офицер хийдэг. Тэгээд надаас манай энэ веб нэг л бишээ чи яг ийм болгоод өг гээд фотошоп дээр хийсэн зураг өгдөг, би ч яахав дөнгөж php сурч байсан хийгээд үзэхэд гэмгүй гэж бодов. Гэхдээ javascript, html, css-д хичнээн дургүй байсныг яана. Тэгээд л ахад хэд хоногоос ОК болчихно гэж хэлээд ажилдаа орлоо. Тэгсэн аймшигтай CMS, javascript framework миний санаж байгаагаар Zapotec билүү дээ тийм нэртэй байсын. Сайт руу нь оронгуут л өөдөөс нэг л их ажакс юун дээр л дарна ажакс. Өөрийгөө хийж чадахгүй байх гэж зөндөө айж байсан шүү, гэхдээ чадсаан, харин яаж? кк. Эхний 1 хоног өнгөрлөө, ажил дээрээ хонож өнжөөд л жаваскриптийг нь ойлгох гэж үзлээ, CMS-ийг нь ч судлах гэж оролдлоо чадсангүй. Урд ганцхан index.php хамаг ажлыг нь хийгээд байдаг ард сайтан дээр бол 11 директорт хуваагдсан нүсэр эд байдаг. Бас дахиад нэг хоног өнгөрлөө хийж чадсангүй аргаа бараад л сууж байлаа. Тэгсэн толгойнд гэрэл асдаг юм байна. "index.html бичээд бүх жаваскрипт линкүүд, зарим html-ийн id-нуудыг нь холбоод тавьчихвал ажиллана" гэж. Тэгээд л Aptana гэдэг IDE-гээ гаргаж ирээд л сервертэй нь ftp-ээр холбож байгаад index.html-ээ хийгээд тавьчихав. Ажиллаж байнаа, сайхан байна. Тэгээд ахад болчихлоо гээд өгсөн. Тухайн үед css, javascript,html-дээ тааруухан байсан болохоор фотошоп дээрх шиг болж чадаагүй л дээ. Тэгээд миний хийсэн юмыг удахгүй устгасан гэсэн(ганцхан html kk). Гэхдээ л бүрэн динамик, нүсэр вебийг ганцхан index.html бүрэн шинэчилж чаддаг юм байна лээ шүү.

Sunday, November 8, 2009

gogo

Нэлээн дээхнэ үед би гөгө-ийн шэйрээс баахан юм татдаг байхдаа нэг скрипт бичиж байсан юм. Одоо тэрийгээ шэйрлэе. Юуны өмнө эхлээд гөгө-ийн url өгөхөд түүнээс линкийг нь гаргаж авах хэрэгтэй. Энэ скриптийг guyo.sh гэдэг файлд хийгээд хадгалаарай. chmod 711 guyo.sh гэхээ мартваа.
#!/bin/bash
#use at your own risk
function print_usage() {
echo "guyo.sh {number of ports} {url}"
}
if [ $# -ne 2 ]; then
print_usage
exit 1
fi
if [ "`which axel`" != '' ]; then
echo "downloading from gogo ${2}"
axel -an ${1} `curl ${2} | grep "/main/download.aspx" | sed -re 's/^.*(\/main\/download\.aspx.*)\\.*$/share.gogo.mn\1/g'`
exit 0
fi
wget ${2}
Ингээд линукс дээр чинь axel суусан бол акселаар байхгүй бол wget-ээр татна. Одоо харин олон линк өгөхөд олноор нь татъя. Үүний тулд юниксийн гол санаа болох жижиг жижиг скриптүүдийг нийлүүлснээр зорилгоо гүйцээх санааг авъя.Тийм болохоор өмнөх guyo.sh-ийг ашиглана.
#!/bin/bash
if [ $# -eq 0 ]; then
echo "please specify at least one url"
exit 1
fi
for url in $@; do
guyo.sh 8 "$url"
done
Энэ скриптээ multi_guyo.sh гээд хадгалчих. Тэгээд ажиллуулахдаа араас нь url-уудыг нь залгаад бичихэд ажиллана. Терминал дээр "- кавычканы завсар линкээ хийгээрэй. Ингээд олон файл татахад хялбар боллоо.
Хэрвээ олон линкнүүдийг татаж дуусахыг нь хүлээх ядаргаатай байгаа бол:
sudo multi_guyo.sh ${urls} && poweroff
гэхэд болно байх.

Wednesday, November 4, 2009

Youtube-ээс видео хурдан татъяаа(Linux)

Энэ видео сайтаас маш хурдан бичлэг татах 2 программ байнаа.
youtube-dl
axel энэ хоёр программыг линукс дээрээ суулгах хэрэгтэй.
Суулгасныхаа дараа
yuyo.sh шелл скриптэд дараах текстийг хуулж өгнө. Тэгээд терминал дээрээ chmod 711 yuyo.sh
axel -an 8 "`youtube-dl --get-url "$1" `"
ингээд л видеог хурдан татдаг скрипт бэлэн боллоо.
Ажиллуулахын тулд: yuyo.sh "youtube_url"

Tuesday, September 8, 2009

OOP бол сайжруулсан Copy/Paste

Ийм сонирхолтой дүгнэлтэнд хүрлээ, тэгэхээр яагаад ийм дүгнэлт хийснээ тайлбарлая. Объект хандалтат програмчлалын үндсэн ойлголт болох удамшлын тусламжтайгаар үүсгэгдсэн классуудын диаграмм нь уруугаа харсан мод хэлбэртэйгээр үүсгэгддэг. Модны аль нэг зангилаан дээр өөрчлөлт орвол түүнээс доошхи мөчирнүүд бүгдээрээ тэрхүү өөрчлөлтийг авдаг. Хэрвээ тэр өөрчлөлтийг авахыг хүсэхгүй бол override хийдэг. Нөгөө талаас удамшил ашиглавал ямар нэгэн ижил зорилготой хувьсагч эсвэл функцийн давхцал маш бага гарна. Ингэснээр хамгийн оновчтойгоор өөр өөр хэсгүүдээс copy хийж авсан ашигтай класс үүсэх юм.

Saturday, August 29, 2009

Programming IQ test: Round 1, 2


Фүү сая infoworld.com сайтнаас тест өгсөн чинь 20-иос дөнгөж 9 авлаа даа. Зарим үгийг нь орчуулж чадахгүй юм гэхдээ л оролдоод үзлээ. Харин хоёрдугаар раундад 12 авлаа. Хэр программист болохоо сонирхоорой!
http://www.infoworld.com/d/developer-world/programming-iq-test-round-1-166

Saturday, August 22, 2009

Friday, August 21, 2009

Хонхыг жингэнүүлмээр байвал зүгээр л жингэнүүлэх хэрэгтэй

Он гарснаас хойш програмчлалын нэгэн хэсгийн их нухацтайгаар бодох болсон юм. Энэ нь ямар нэгэн зүйл програмчилж байхад ямар нэгэн тохиолдолд хэзээ ч ажиллахгүй гэдгийг нь мэдсээр байж түүнийг заавал шалгах хэрэгтэй болдог(if,switch бичих хэрэгтэй). Үүнийг зохицуулахын тулд runtime явцдаа өөрийнхөө кодыг RAM-н дээр өөрчилдөг зарим жижигхэн кодуудыг ажиглаж үзэв. Энэ тухайгаа GURU багшдаа хэлэхэд "Наадах чинь боломжтой, гэхдээ үүнийг сонирхвол чи хэзээ ч амжилтанд хүрэхгүй" гэж байсан юм. Намайг буруу ойлгосон байж болох ч би өөрийнхөө хариултыг долоо хоногийн өмнө л оллоо. Сонирхуулъя:
За мессенжерийн нэг программ бичиж байлаа гэж бодъё. Тэгсэн хэн нэг нь мессенжерт орж ирээд buzz хийх үед нь 2 төрлийн notification тохиргооноос хамаарч хийдэг байг.
1. Дуут дохио өгөх
2. Панел дээр жижигхэн мессеж болгож харуулах, нөхцөл ийм байна.
За би хариултаа олоогүй байсан бол яаж шийдэх байснаа харуулъя:

void onBuzz() {
switch(settings.buzzType) {
case makeSound: {
Device.makeSound();
break;
}
case showMessage: {
Panel.showMessage();
break;
}
default: {
throw new SomeException();
}
}
}
Аа харин хариултаа олсныхоо дараа:
abstract class Buzzer {
abstract void buzz();
}
class SoundBuzzer extends Buzzer {
void buzz() {
Device.makeSound();
}
}
class MessageBuzzer extends Buzzer {
void buzz() {
Panel.showMessage();
}
}
тэгээд программ эхлэх үед нь:
Buzzer buzzMaster=new SoundBuzzer();
buzz хийх үед ажиллах функц маань ийм болж хувирна.
void onBuzz() {
buzzMaster.buzz();
}
За ингээд бичиглэл хэмнээгүй ч ажиллах процессийн хувьд нэг switch-г авч хаяад шууд элдэв нэмэлтгүйгээр ажиллуулдаг болгочихлоо. Гоё биш гэж үү?,
Тэгвэл одоо яаж Settings-ээ сольж MessageBuzz болгох уу?
it's easy:
buzzMaster=new MessageBuzzer();

Monday, July 27, 2009

Saturday, July 25, 2009

Жаваскриптийн гүйцэтгэх үүрэг

Жаваскрипт одоо бол нэгэнт жижигхэн браузер дотор ажилладаг хэл гэж хэлэгдэхээ больжээ. Гүүгл корпораци энэ хэлийг маань улам хүчтэй болгохоор шаргуу ажиллаж байна. Саяхан мэдээ мэдээллийг ухаад сууж байхад энэ хэл дээр маань 3D объектуудыг импортолж оруулж ирээд анимэйшн хийх жишээтэй. Бас цаашлаад XML дээр бичигддэг SVG зурагтай нягт хамтарч ажилласнаар галзуу галзуу анимэйшн хийж байна. Интернетэд зориулагдсан netbook-үүдийн ихэнх программууд javascript-ийн тусламжтайгаар жинхэнэ "stunning" эффекттэй болж байна.
Ирэх жил гүүгл корпорацийн нийтэд дэлгэх гэж байгаа нээлттэй эхийн Chrome үйлдлийн систем нь браузерт суурилж интернет рүү түлхүү чиглэсэн, линуксын /*Энэ чинь л линукс байхгүй юу :), Google ч линуксын цөмийг их хэрэглэж байна даа*/ цөмтэй болно. Тэгэхээр тэрний аппликэйшн нь жаваскрипттэй нягт холбоотой л байж таараа.
За одоо яагаад жаваскриптийг сурах хэрэгтэй болж байгаа хэд хэдэн давуу талуудыг дурдах гээд хичээе.
  1. HTML-ийг амь оруулдаг. (өөрөөр хэлбэл html элементүүдийг удирдаж интерактив орчныг бүрдүүлдэг)
  2. Зурган орчинтой ажиллах чадвартай болсон. (svg)
  3. Анимэйшн хийх боломжтой. (Анимэйшнийг янз бүрийн сан/*jQuery, Dojo г.м*/ эсвэл гараа бичих боломжтой)
  4. Сервер лүү хүсэлт илгээж ирсэн мэдээллийг боловсруулах боломжтой. (Бүр сүлжээгээр объект дамжуулдаг гэж байгаа)
За миний толгойд бууж байгаа давуу талууд гэвэл энэ хэд байх шиг байна. Шинэ үе маань Cloud Computing гээч зүйлийг ихээр сонирхох болж экспертүүд аль хэдийн түүнд аппликэйшнээ бичээд эхэлчихжээ. Энэ computing-ийн нэг төрөл болох SaaS /*Software as a Service*/-ийг хэрэгжүүлэхэд жаваскриптийн гүйцэтгэх үүрэг маш их болох юм.
SaaS:
This type of cloud computing delivers a single application through the browser to thousands of customers using a multitenant architecture. On the customer side, it means no upfront investment in servers or software licensing; on the provider side, with just one app to maintain, costs are low compared to conventional hosting (http://www.infoworld.com/d/cloud-computing/what-cloud-computing-really-means-031 хаяг дээрээс авав)
За одоо яагаад Google корпораци adobe-ийн төрлийн бүтээгдэхүүнд тулгуурлаж биш javascript дээр тулгуурлаад байна вэ гэхлээр /*Уучлаарай зөвхөн миний бодол шүү*/ хэрвээ өөр third-party программ хангамжийг энэ том ирээдүйд хэрвээ дэмжих юм бол суурь технологи нь adobe-ийнх болж бүх зүйлийг ганцхан корпорацийн нуруун дээр аваачаад хаячихна. Adobe ч гэсэн энэ талаар судалгаа хийж клиент компьютерууд дээр тусгай орчин үүсгээд веб аппликэйшнийг десктоп болгох runtime environment гаргасныг зарим хүмүүс мэдэх байх Adobe_AIR гээд ajax, html эд нар дээр бичигддэг, мөн зарим нэмэлтийг бий болгож клиентийн файлын сан гэх мэт зүйл рүү хандах боломжоор хангасан байдаг.
Дээрээс нь нэмж хэлэхэд Google корпорацийн гаргасан Chrome браузерийн хэтдээ гаргах хувилбарууд нь компьютерийн суурь луу хандаж тэндээсээ дэмжлэг авах арга замыг эрэлхийлж байна. Өөрөөр хэлбэл браузер дотор ажиллаж байгаа ямар нэгэн видео тоглоом зэрэг нь таны GeForce-оос дэмжлэг авч заримдаа DirectX шаардчихаж магадгүй шүү/*Зүгээр л Joke :)*/ Энэ тал дээр мэдээж бусад зарим газрууд судалгаагаа юу гэж хийлгүй хаячихав. Би зарим нэг эртнээс судалгаа хийж байсан программ хангамжуудыг харж үзлээ. EyeOS гэж браузер дотор байдаг үйлдлийн систем байдаг юм байна. Ажиллагаа нь бол дажгүйэ сонирхож байгаа бол google-дээд үзээрэй линкийг нь мартчихаж. Бас google-н зарим нэгэн үйлчилгээнүүд болох вебд суурилсан документтэй ажилладаг үйлчилгээ, календар, видео гээд л би десктоп аппликэйшнээс илүү болно шүү гэсэн шиг л хэхэ.
Эцэст нь: Жаваскриптийн тухай бичиж байгаад хадуураад google рүү ороод явчихлаа, уучлаарай. Гэхдээ л энэ бол ирээдүй юм шиг санагдаж байна. Миний ажиллуулж байгаа процесс миний компьютер дээр ажиллахгүй өөр нэг өндөр хүчин чадалтай серверийн нөөцийг идэж, ашиглаж байгаа документууд, файлууд маань ямар нэгэн Cloud серверийн хард дискэн дээр байрлах болно. Тэр үед миний компьютерийн үүрэг болж зүгээр л Display-ийн үүргийг гүйцэтгэх байхдаа. Энэ линк дээр веб vs десктоп тухай их гоё бичсэн байна.

Thursday, July 9, 2009

Unified Communication

Манай улсад Мобиком, Юнител эд нар гээд л манайд гар утасны шугамаар үйл ажиллагаа явуулдаг компаниуд нэлээн хэд байдаг. Сүүлд ажиглаж байхад тэдгээрт нэгэн зүйл хүч түрэн орж байгаа нь интернет юм. Магадгүй та өнөөдөр мессеж бичиж байгаа бол удахгүй мобайл мессенжер нь илүү хямдхан илүү хүмүүстэй холбоо барихад хялбар юм байна хэмээн ойлгож магадгүй. Энэ нь ч үнэн юм мессенжерт байхад зарим нэг хүмүүс ихэвчлэн I'm mobile гэх мэт статустай, өдөрт үсрээд л 200 нэгж унаж байна гэдэг. Эндээс юу асуугдах гээд байна вэ гэвэл гар утас хэрэглүүлж байгаа компаниуд маань интернетэд шахагдах бол уу? сонин ч юмуу инээдтэй сонсогдож байж магадгүй гэхдээ үргэлжлүүлээд уншаарай. Мэдээлэл орж ирж байгаа дамжуулж сувгууд маань юугаар орж ирж байна вэ?
1. Сонин
2. Телевиз
3. Интернет
4. Гэрийн утас
5. Гар утасны үйлчилгээ
6. Захидал шуудан ... гээд хөврөх байлгүй.
Сүүлийн үед веб сайтууд болон сонингуудын хооронд чи миний мэдээллийг хулгайллаа би чинийхийг хулгайлсан энэ тэр хэрүүл гарсаар л байна. Бас зарим сонингууд өөрсдийн веб сайттай болж өгүүллэг эд нараа электроноор хүргэхийг сонирхож байна.
Телевизийн хувьд мэдээлэл нь антеннаар биш UTP кабелиар монгол доторх өндөр хурдны интернетээр гэр лүү чинь дижитал хэлбэрээр орж ирдэг бол ямар байна. Галзуу биз!
Гэрийн утасны хувьд утас чинь цахилгаан холбоо компаний дотоод IP хаягтай VoIP технологийг дэмждэг, видео дүрс дамжуулдаг айн хайнга. Тэгэхлээр гадаад руу хүртэл жирийн интернетийн төлбөрөөр ярьдаг болно. Бас бусад ISP-нуудаас интернет авч байгаа айл руу хүртэл маш бага зардлаар ярьж чадна.
Гар утасны хувьд 3G гээд өөрсдийгөө их хурдтай интернетэд холбогдоод байна гээд рекламдаад байдаг. Тэгвэл заавал тэдний ярианы минутын төлбөрийг төлж байснаас Yahoo Messenger-ийн ярьдагтай төстэй программ суулгаад л яриад эхлэвэл лав даг гар утасны компаниуд дампуурах биз.
Захидал шууданг жижигхэн утаснаас мессеж бичиж байгаа юм шиг дараад л yahoo, hotmail эд нар луу биччихдэг. Дараа нь утас нь дуугараад л мессеж ирлээ, энэ IP-гаас хүн залгаж байна гэвэл амьдрал сайхан л байна. Одоо харин монголд маань IPv6 эсвэл бүх эдгээр мэдээлэл дамжуулах сувгуудийг монгол доторх дотоод IP хаяг бас өндөр хурдны сүлжээгээр хангаад өгвөл эдгээр бүх зүйлүүд маань нийлээд л сарын интернетийн төлбөр болох 20.000₮ болох боломжтой юм.

Saturday, June 27, 2009

Wednesday, June 17, 2009

Линукс дээр сүлжээгээ тохируулах

Саяхан би сүлжээгээ статикаар тохируулах гээд харин болж өгдөггүй. Нэтээс баахан юм хайж тохирууллаа. Тэгээд над шиг асуудал хүмүүст гарч магадгүй гэж бодоод орууллаа.
ifconfig командаар сүлжээг тохируулж болно. Тэгэхдээ ifconfig {interface} address netmask {mask}, гэж бичээд энтер дарна. Судо командаар эхлүүлэхээ мартав аа. interface гэдэг нь сүлжээний картны нэр(eth0 ч юмуу) харин address нь компьютерийн чинь хаяг, mask нь сүлжээний маск хаяг болно. Одоо компьютерийнхээ хаяг, маскийг тохируулчихлаа. Gateway үлдсэн байна. Энийг хийхдээ route add default gw {address} {interface}. Ингээд л статик хаягтай болчихлоо. Аа тийм хэрвээ динамикаар хаягаа авдаг бол dhclient, харин ситинетийн хэрэглэгч бол pppoeconf гэсэн коммандуудыг ашиглана. pppoeconf-ийг ашиглахын тулд эхлээд pppd гэсэн процесс ажиллаж байгаа эсэхийг нь үзээд байгаа бол kill хийх хэрэгтэй. Тэгэхгүй бол давхардаад орохгүй байсан.

Sunday, June 7, 2009

Шууд бус хандалт(Indirection)

Миний мэдэхээр шууд бус хандалтын арга бол их ашигтай аргачлалын нэг. Өгөгдлийг өөр өөр өнцгөөс хараад түүн рүү хандах өөр өөр аргыг нээж өгдөг гайхалтай зүйл. Жишээ нь массивт a=[7,3,5,2,88] гэсэн өгөгдөл байхад а массив дээр өөрчлөлт хийхгүйгээр санах ойн void заагчдын массив үүсгээд түүнийгээ эрэмбэлж болно(b=[&a[4], &a[2], &a[3], &a[1], &a[5]]). Бас бүх төрлийн өгөгдлийн сангууд өгөгдлөө индекслэнэ гэж шинээр шууд бус хандалтанд зориулсан файл үүсгэдгийг гадарлана байх. Тэгээд миний хэлэх гэсэн зүйл бол хүмүүс өөрийнхөө блогт бичлэг нэмж байгаа бол иймэрхүү шууд бус холболт бага хийгээсэй л гэж хүсч байна. Нэг жоохон юм бичсэнээ л энэ хаяг руу орж үзээрэй гээд герман англи линк тавьчихна. Олон хайлтын системүүд хүссэн хүсээгүй олж чадна шдээ. Хэрвээ хэлмээр байгаа бол монголоороо л биччихгүй.

Wednesday, June 3, 2009

2-р дэд бүлэг

Ойрд хичээл амраад зав гараад тэгээд номоо жаахан орчууллаа сайхан байнаа. Тэгээд юутай ч орчуулсан хэсгээ оруулахаар шийдлээ. Энд өгүүлбэр зүй, үгийн сонголт, орчуулгын зарим нэгэн алдаа гарсан байж болзошгүй, бас зургуудийг нь огт оруулаагүй байгаа,сүүлд нь оруулнаа. Тийм болохоор нөхөд уншиж байгаад надад санаа оноогоо sw06d103[at]gmail[dot]com хаягаар хэлээрэй. Бас надтай адил сурч байгаа оюутнуудад ойр болгох үүднээс хөгжүүлэлтэнд өргөн хэрэглэгддэг түлхүүр үг(keywords)-нүүдийг хоёр хаалт(parenthesis), тайлбар(comment /*...*/) хэлбэрээр бичиж энд тэнд нь эмбед хийж орууллаа.
Татах холбоос: http://share.gogo.mn/3437361244129974

Saturday, April 25, 2009

Компьютерээ арай чүү гэж аварлаа

Хэд хоногийн өмнө компьютер асах болгондоо л BOOT FAILED гэдэг айдас төрүүлсэн бичиг гарч ирээд л заримдаа болохоор зүгээр асчихаад байв. Энэ нь дискнээс болж байгаа гэдгийг гадарлаж байсан боловч яг мэдээлэл дамжуулах залгууртаа асуудал үүссэн байх гэж бодож байлаа. Тэгээд нэг өдөр задалж үзээд мэддэг хүн шиг хаана нь ямар залгуур нь маслаад байгаа юм байх гэж бодоод үзээд байж байтал яахын аргагүй нэг тэжээлийн утасны порт нь хавтгай хэлбэртэй байх ёстой байтал бөөрөнхий болсон байв. Ингээд асуудал тодорхой боллоо тэр бөөрөнхий болоод бөмбөгөр болсон хэсэгт нь цаас хавчуулж байгаад хард дискээ тэжээлийн блоктой нь холбочихсон чинь зүв зүгээр болоод явчихлаа :) Тэгээд цааш нь эхлүүлээд л ажиллуулаад байж байсан чинь линукс маань эхэлж ажилладаггүй диск асуудалтай байна гэсэн бичиг гаргаад байдаг. fsck гэдэг коммандыг ажиллуулаад дискээ шалга гээд байв. Тэгэхээр нь тэр командаар нь шалгуултал өөрөө эвдрэл дискний блокуудыг олоод засахыг нь засаад блоклосоор байгаад зүгээр болгочихлоо. Одоо бүх зүйл гайхалтай сайхан байнаа гэж.

9.04 таалагдаж байна шүү


Өмнө нь саак гэдэг сайт руу ороход аймшигтай гацдаг байсан firefox гацахаа больжээ. Render нь сайжирч.

Thursday, March 5, 2009

Үүсэл гарвал

Уучлаарай удсанд. Харин виндовсын оффисын программ дээр хийсэн материалыг шууд copy paste хийж болдоггүй юм байна. Хоёр дамжуулж хуулж байж орууллаа.
Линукс нь Юниксийн холбоонд анх хөгжүүлэгджээ. Юникс үйлдлийн системийн судалгааны материал нь анх 1973 онд [Ritchie and Thompson 1973] олон нийтэд гарч танигджээ. Ингэснээр үйлдлийн системийн хөгжлийн 2 шинэ хандлагыг бий болгосон юм. Өмнөх үйлдлийн системүүд нь бүх зүйлийг агуулсан нэг том пакеж хэлбэртэйгээр тухайн нэг компьютерийн архитектурт зориулан хийгддэг байв. Үүний эсрэгээр Юникс үйлдлийн систем нь Жижигхэн хэмжээтэй байхыг илүүд үзэж бүхий л компьютерийн архитектур дээр ажиллахыг гол зорилгоо болгов. Аль болох цөөн чухал функцээр хэрэглэгч программыг хангаж, харин нэмэлт функцүүдийг хэрэглэгч өөрийнхөө шаардлагаас хамааран нэмэх боломжтой болсон. Энэхүү философийн улмаас Юникс үйлдлийн систем нь тухайн үедээ хувьсгал дэгдээж хэдхэн жилийн дотор программист, хэрэглэгчдийн дуртай үйлдлийн систем болон хувирсан юм. Хэдийгээр Юниксийн цөм нь аль ч шинэ платформ луу дахин хөгжүүлэх шаардлагагүйгээр хөрвөдөг байсан хэдий ч эх код нь AT&T Bell лабораторийн өмч юм. Бусад байгууллагууд эх кодыг хуулан авч ашиглаж болох байсан боловч энэ тохиолдолд лицензийг нь худалдан авах шаардлагатай. 1980 оны үед маш олон их дээд сургуулиуд, судалгааны лабораториуд Юниксийн цөмийг худалдан авч өөрсдийнхөө судалгаанд ашиглан эх кодуудыг нь өөрчилсөн. Тэдгээрээс хамгийн амжилттай ажиллаж байсан нь Калифорнигийн Берклигийн их сургууль байв. Мөн компьютерийн үйлдвэрлэгч нар ч гэсэн Юниксийн шинэ хувилбарыг гаргахын тулд ажиллацгааж байжээ.
1985 оны үед Юниксийн үндсэн хоёр хувилбар болох AT&T лабораториос гаргасан System V Unix, Берклигийн их сургуулиас гаргасан BSD Unix байв. BSD Юникс нь голлон DECVAX платформ зориулагдаж гаргасан учраас дөрөвдэх хувилбарын Юникс эсвэл version 4.X BSD Юникс хэмээн нэрлэгджээ. Энэхүү хоёр хувилбар нь Юниксийн өөрийнх нь үндсэн интерфэйсээр хэрэглээний программ хангамжуудыг хангадаг байсан боловч зарим нарийн ширийн зүйлүүд нь өөр байв. Эдгээр хоёр хувилбарын хоорондох өрсөлдөөн их идэвхтэй байсан учраас программистууд аль нэгийг нь л сонгож байлаа. 1988 онд Sun корпораци энэхүү хоёр үйлдлийн системтэй амжилттай гэрээ хийж чадсан учраас тэр хоёрыг нэгтгэн өөрсдийн шинэ үйлдлийн систем болох “Solaris OS”-ийг гаргажээ. Тухайн үед бусад компьютерийн үйлдвэрлэгчид ч гэсэн өөрсдийн Юниксийн хувилбар гаргаж байсан нь хэрэглэгчдийг хүндрүүлж байсан учир нэгдсэн тохиролцоонд хүрч 1989 онд POSIX-1 хэмээх өөрсдийн үйлдлийн системийнхээ API /стандартчилагдсан функцүүд/-г гаргасан байна. POSIX стандартыг гаргаснаар дуртай хүн болгон энэхүү стандартыг хангасан үйлдлийн систем хийх эрхтэй болсон байна. Жишээ нь: Carnegie Mellon их сургуулийн судлаач болох Richard Rashid-аар удирдуулсан баг уг интерфэйсийг хэрэгжүүлснээр одоогийн алдарт Макинтош үйлдлийг системийг гаргажээ. Анхандаа Макинтош нь Юниксийн аль ч хувилбараас цөмийнхөө ажиллагаагаар ялгардаг байсан боловч дараа дараагийн хувилбарууд нь POSIX стандартад нийцэхийн тулд BSD Unix-ээс нэлээн хэмжээний кодыг өөртөө авчээ.
Өөр нэгэн гайхамшигтай зүйл гарсан нь 1987 онд Andrew Tanenbaum /Ph.D/ Unix үйлдлийн системийг дахин шинэчилж MINIX хэмээх үйлдлийн системийг гаргажээ. MINIX гэдэг нь Mini-Unix гэсэн үг бөгөөд маш жижигхэн хэмжээтэй энгийн Гуру /GURU – Агуйд олон жил бясалгал хийж төгс гэгээрсэн лам. Бид нарынхаар бол төгс гэгээрсэн хакер/ биш нөхдүүд ч энийг яаж ажилладгийг ойлгох боломжтой [Tanenbaum, 1987]. MINIX нь AT&T Белл лаборатороос гаргасан долоодох хувилбарын Юниксийн интерфэйсийг хэрэгжүүлжээ. Энэхүү долоодох хувилбар гэдэг нь BSD ба System V үйлдлийн системүүдийн API-г нэгтгэсэн байдаг /2 API функцүүдийн олонлогийн огтлолцол аль аль олонлогоос бага байна/. Tanenbaum үйлдлийн системийн талаар бичсэн номныхоо нэмэлт материал болгож MINIX-ийг зохиосон бөгөөд үүнийхээ ажиллагааны тухай номондоо дэлгэрэнгүй бичжээ /Operating System Design and Implementation by Andrew Tanenbaum, одоогоор гурав хүртэлх хувилбар нь гарсан/. Тэрээр MINIX-ийн тухай тэмдэглэхдээ “... Юникс анх гарснаас арваад жилийн дараа илүү модульчлагдсан байдлаар бичигдлээ” гэжээ. MINIX нь суралцаж байгаа хүмүүст их амжилттай байсан боловч түүнийг энгийн байлгах зорилготой холбоотойгоор хэсэг хугацааны дараа зарим нэмэлт онцлогуудыг нь хассан юм.
1991 онд Линус Торвалдс Linux үйлдлийн системийнхээ анхны хувилбарыг гаргахаар ажиллаж байлаа. MINIX хэдийгээр амжилт олж байсан хэдий ч Торвалдс үйлдлийн системээ бүр хүчирхэг, минигээс ч илүү хэрэглээтэй байлгахыг зорьсон юм. Торвалдс өөрийн бичсэн үйлдлийн системийнхээ эх кодыг бусдад үнэ төлбөргүй тарааснаар тун удахгүй POSIX стандартыг хангасан юм. Өөрөөр хэлбэл Линукс нь Юниксийн нээлттэй эх кодтой хувилбар нь болж хөгжсөн юм. Тун удалгүй дэлхийн өнцөг булан бүрээс хөгжүүлэгч нар Торвалдсд хэрхэн улам бүр сайжруулах талаар зөвлөгөө өгч эхэлсэн. Орчин үед Линукс нь зөвхөн үйлдлийн систем бус түүнийхээ зэрэгцээ маш олон багаж хөгжүүлэлтийн хэрэгслийг дагуулж иржээ. Мөн Линукс нь зөвхөн 386 буюу х86 процессоруудад бус бусад платформууд болох Digital Alpha, Sun Sparc, Motorola 68K, MIPS, PowerPC-нд ч хүртэл зориулагдсан. Мөн бидний өдөр тутмын хэрэглэдэг утаснуудын ихэнх нь Линуксын кэрнелийг ашигладаг ба сүүлийн үед Windows үйлдлийн систем мобайл хувилбарууд руу хүч түрэн орж ирж байгаа билээ.
Тухайн үеийн Юниксийн философийг дагаж Линукс нь гарч ирсэн. Тиймдээ ч Линукс бол гүйцэд үйлдлийн систем бус зөвхөн цөм /кернел – kernel – Алтангэрэлийн орчуулганд самрын чөмөг гэсэн байдаг/ юм. Юниксийн философи нь эхэндээ “жижиг хэмжээтэй байх нь гайхамшиг” гэдэг байсан бол цаг хугацаа өнгөрөх тусам түүнд шинээр функцүүд нэмэгдэн орж ирснээр өнөөдөр анхны философоосоо хазайж жижгээ гэж дуудуулахааргүй болжээ. Хэдийгээр Линукс нь 1991 онд өөрийн жижиг байдал, POSIX стандартыг хангаснаараа оновчтой байсан ч, хэн ч түүний цөмийг аваад шинэ боломж чадваруудыг нэмэх боломжтой учраас түүний цөмийнх нь хэмжээ улам бүр нэмэгдсээр байна.
POSIX = Portal Operating System Interface Exchange – Платформоос хамаарал багатай үйлдлийн системийн нэгдсэн интерфэйс.
API = Application Programming Interface – Тухайн хэл эсвэл платформоос онцлогоос хамааран бэлтгэгдсэн системийн сангийн функцүүд

Monday, February 23, 2009

Аймшиггүйгээр ажилдаа орлоо

Хүний номыг орчуулаад өөрийнхөө блог дээр бичээд байх нь зохиогчийн эрхийг хөндөж байгаа ч гэсэн Линукс нь өөрөө GNU юм болохоор бичнээ. Номоо уншаад тэмдэглэлээ блог дээрээ бичээд байя даа. хэхэ. Book Is "Kernel Projects For Linux" by Gary Nutt.

Саналаа хэлээрэй

Би ойрдоо линуксын кэрнел шимтэн суралцаж байгаа л даа. Харин тэрнийхээ талаараа бичье гэхлээр ганцаараа бичээд хэнд ч хүртээлгүй байгаа юм шиг хоосон оргиж магадгүй гээд эмээгээд байна. Та бүхэн саналаа хэлээрэй

Friday, February 13, 2009

Линукс Философи

Линукс үйлдлийн системийн зорилго бол төгс үйлдлийн системийн зохион бүтээх гэсэн зорилготой байдаг гэж би хаа нэгтээгээс уншиж байсан санагдаж байна. Зарим хүмүүсийн тодорхойлсноор бол LINUX=Linux Is Not Unix гэсэн байдаг. Магадгүй энэ нь Юникс үнэ төлбөртэй түгээгддэгтэй холбоотой байж болох юм. Хэрвээ таны урд нэг нь үнэтэй нэг нь үнэгүй үйлдлийн систем байвал мэдээж үнэгүйг нь л та сонгох байх. Линукс нь анх үүсэхдээ бүх зүйлийг өөрчлөхөд боломжтой, эх кодыг тараасан бас үнэ төлбөргүй байдаг нь зарим нэг шуналтай нөхдүүдийн хүсэлд нийцдэггүй байх нь ойлгомжтой. Ялангуяа Микрософтод бол энэ нь тааламжгүй юм. Миний бодлоор Билл Гейтс анх үйлдлийн системээ зохиохдоо маркетинг сайтай учраас л амжилт олсон байх. Энгийн хүмүүст ер нь хялбархан, хэцүү ойлгомжгүй зүйлүүдээс тэднийг холхон шиг байлгаж байвал хүн болгон хэрэглээд надад мөнгө өгөх юм байна гэдэг дүгнэлт нь хүрсэн гэж бодож байна. Цаашлаад Микрософтын дотор бодол нь зүгээр программ хангамжийн хүрээнд ч бус бид нарын хэрэглэдэг веб камер, гар, хулгана, принтерт хүртэл нөлөөлсөн байдаг шүү дээ (Төхөөрөмжүүдийн ард талд нь Supported by Windows 98/NT/XP/VISTA гээд биччихсэн байдаг). Зоос 2 талтай байдагтай адилхан энэ нь ч тухайн үедээ зөв байсан байх. Линукс эх кодыг үнэгүй тарааж нээлттэй байх зарчмыг баримталдаг нь энгийн хэрэглэгчдийг программист шиг ажиллуулахад хүргэдэг. Жишээ нь файл хайх find коммандын хайлт нь текстийн хэв буюу regex (regular expression), предикат, логикийн элементүүд цаашлаад олсон файл дээрээ хийх үйлдлийг нь бичиж өгөх боломжтой гэдэг нь энгийн хэрэглэгчээс бараг муухан программистийн мэдлэг шаардахад хүргэнэ. Хэдийгээр асар их боломжийг олгож байгаа ч гэсэн түүний хажуугаар мөн хэмжээний мэдлэг шаардана. Тэгэхээр бидний урд асар их боломжийг олгож байгаа үнэгүй OS, биднээс программынхаа үйл ажиллагааг чадах чинээгээрээ нууж монополдохыг хүсч байгаа Виндовс OS байна.

Wednesday, January 28, 2009

Butsaad irlee.

Blog-oo butsaagaad sergeehed ch saihan baina shuu. Unuruugiin blog-iig unshsan chin goe sanagdaad yawchihlaa. Blogoo butsaagaad neechihlee. Ergej irehdee minii durtai computeriin holbogdoltoi zuiluud iheehen uurchlugdsuun.
1. Microsoft-d durgvi bolow.
2. Linux, kernel ih sonirhdog bolow.
3. Internet-iin suljeend shimteh bolloo geed zunduu oorchlolt garlaa. Za tegeed durtai zuiluudee blogtoo bichij baih bolnoo.