Monday, February 23, 2009

Хэрхэн хөгжүүлэгч болох вэ. 3-р хэсэг

SVN буюу Subversion ашиглах

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

Windows систем дээр: TortoiseSVN Клиент

www.tortoisesvn.net сайтаас суулгац файлыг татан авч ажиллуулаад хялбархан суулгачихна.

Дараах жишээ нь дээр дифф буюу хоёр хувилбарын ялгааг харж байгаа нь:

Ubuntu Linux дээр RapidSVN Клиент

Өмнөх tortoisesvn маань Цонхнууд системд зориулж гаргасан хэрэгсэл бөгөөд линукс системд консоль горимд ажилладаг коммандууд бий боловч бидэнд график интерфэйс бүхий svn client хэрэгсэл хэрэгтэй. Хэд хэдэн naughtysvn, rapidsvn, qsvn сонголт байснаас rapidsvn хэрэгсэлийг сонгож авлаа.
$ sudo apt-get install rapidsvn

гээд боллоо.

Одоо Дебиан/Үбүнтү Линукс сервер дээр SVN сервер суулгах, тохируулах зааврыг үүний дагуу хийж төслийн код сангаа үүсгэх хэрэгтэй.

Ингээд таны төслийн код болон хамтрагчийн тань код өөрчлөлт, нэмэлт, хувилбарууд бүгд хадгалагдах боллоо.


цааш унших...

Thursday, February 05, 2009

Blogger.com чимэглэл

Яг минийх шиг ийм тааг үүл үүсгэмээр байвал дараах линкээр орж зааврын дагуу хийгээрэй. Би блогер комын өөрийнх нь widgets дотроос хайгаад байсан чинь байдаггүй юм байна. ;)

http://www.blogger-templates-designs.blogspot.com/2008/10/add-label-cloud-widget-for-blogger.html


цааш унших...

Wednesday, February 04, 2009

Хэрхэн хөгжүүлэгч болох вэ. 2-р хэсэг

Өмнөх хэсэгт нилээд техникийн чанартай зүйл бичсэн. Энэ удаад хувийн зохион байгуулалттай холбоотой зүйлс бичье. Ямарваа зүйлс цэгцтэй, тодорхой дэг журамтай байснаар амжилтанд хүрэх нь илүү, адаглаад л алдах зүйл үгүй.
Гэхдээ энд прогаммлалын зохих мэдлэгтэй буюу алгоритм, программчлалын хэлүүд үзсэн, компьютерийн хэрэглээ, зохих гадаад хэлний мэдлэгтэй гэж тооцсон үндсэн дээр бичиж байгаа. Түүнээс бус шууд тэгээс буюу мэдээллийн технологид анхлан суралцагчыг шууд хөгжүүлэгч болгох тухай биш гэдгийг анхаараарай. Хэрэвзээ тэгнэ гэвэл бараг их сургуульд үздэг хичээлүүдийг бичих болно буй за. ;) Мөхөс миний энэ ядмаг бичлэг нь практик амьдралд буюу төсгөөд ажилд гарч буй "шинэ дайчдыг" хөгжүүлэгч болоход туслах гэсэн хувь хүний бяцхан зөвлөгөө төдий зүйл болно.

Хөгжүүлэгч хүнд байх ёстой чанарууд

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

2. 10 хуруугаараа хурдан шивдэг байх
Энэ чадвар заавал байх ёстой. Хэдий сайн хөгжүүлэгч байлаа ч 2, 3 хуруугаараа тон тон хийлгээд байвал бүтээмж бас л багасана. Англи Монгол гээд аль ч хэл дээр гараа харахгүйгээр чөлөөтэй бичиж сурах хэрэгтэй. Type Fast төрлийн монгол гадаад гээд янз бүрийн хурдан бичих дасгалын програмууд бий. Аль таалагдсанаа олж аваад өдөрт 1-2 цаг нүдээд байх хэрэгтэй. 2 сарын дараа та сайн бичдэг болчихно.

3. Сур сур бас дахин сур
Мэргэжилийн чиглэлээрээ сайн номыг hard copy, soft copy аль ч хувилбараар нь хамаагүй олж аваад уншиж судлаж байх. Энэ таны суурь мэдлэг сайжирахад туслана. Хом уншиж, судлах янз бүрийн л арга байдаг. Гүйлгээд гүйлгээд харсныхаа дараа өөрт хэрэгтэй хэсгээ тогтож унших эсвэл эхнээс нь аваад дуустал анхааралтай унших гэх мэт аргууд бий, өөрт тохирохоор л судлаад байхад болно. Манай их дээд сургуульд хангалттай суурь мэдлэг тавьж өгдөггүйгээс ч болдог юмуу, амьдрал дээр гараад илүү ихийг уншиж, илүү ихээр суралцах шаардлага гарна. Угаас программист/хөгжүүлэгч нарын том том зузаан зузаан номнуудыг бусад салбарынхан хараад гайхаж цочирдох нь их бий. Гэхдээ энэ бүхнээс шантрана гэж юу байхав, хэрэгтэйгээ л уншихад болно.

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

5. Интернэт холболтоо түр салга
Яг идэвхтэй, анхаарлаа төвлөрүүлж ажиллахын тулд Intant Messenger -үүдээ түр зуур салгаж холбоогоо таслачих хэрэгтэй. Нөгөө яг онгод орсон сууж байх үед гэнэт найз охиноос чинь Маргааш миний төрсөн өдөр гэсэн мессеж хүрээд ирвэл яах юм, хэхэ, юун нөгөө код бичих, төрсөн өдрөөр яаж сюрприз барих тухай өөрийн эрхгүй бодогдоод эхлэх жишээтэй. Хэдийгээр мессенжерүүд их ажлыг амжуулж өгдөг ч, тэр хэмжээгээрээ үнэт цагаас чинь зулгаагаад байдаг.

6. Хөгжим сонсохоо ч түр азна
Мөн л яг идэвхтэй ажиллах үедээ хөгжим сонсохоо азнаад ав. Учир нь бас л онгодынхоо үедээ өөртөө таалагдаагүй дуугаа сольж өөр дуу тавих гээд winamp, itunes эдэрүүгээ орох хэрэг гарна. Анхаарал чинь сулрахын л нэмэр, дээр нь завсаргүй 8 цаг дуу сонсоход завсаргүй 16 цаг ажилласан юм шиг бие чинь сулараад, ядраад эхлэнэ.
Дуу хөгжимөө ачаалал багатай, механик голдуу ажил хийж байхдаа эсвэл чөлөөтэй нээт ухаж, блог бичих гэх мэт үедээ сонсоорой. Хааяа нэг дуртай дуугаа сонсоход харин ч урам зориг сэргэдэг.

7. Гарын авлага болон Гүүглэ ах
Элдэв шинэ түүл, шинэ программ хэрэгсэл ашиглаж эхлэх, шинэ технологи, аргачлал суралцах гээд унших зүйлс зөндөө тохиолдоно. Тэр бүгд өөр өөрийн гарын авлага, зааваруудтай, Readme, Howto, Documentation, User Guide, Installation Guide, Troubleshooting гээд цааш урсана. Бүгдийг нь уншина гэвэл бас л их цаг орно, их тэвчээр ч орно. Тийм болохоор яг хэрэгтэйгээ уншаад явчихвал цагаа хэмнэнэ. Бусдыг нь дараа унших зайлшгүй шаардлага гарвал сөхөөд харчихаж л болно шүү дээ.
Гэхдээ бас зарим зүйлсийг дээрхи материалуудаас хайгаад олохгүй үе таарна. Учир нь хөгжүүлэгчид компьютерийн бүхий л архитектур, бүхий л сан гээд бүгдийг туршиж шалгаж зүгшрүүлж амжаагүй байх зэрэг тохиолдолд тэгээд гүүглэ/google ахаасаа манай хавтгай болчихсон дэлхийн бөмбөрцөг дээр надтай адил асуудал учирсан өөр бусад нөхдүүд яаж шийдсэнийг асуух хэрэгтэй. Түлхүүр үг хайх аргаа сайн сонговол ихэнхи тохиолдолд хариултаа олчихоод л байдаг шүү.

8. Мэйл бүлгэм, форум зэрэгт элс.
Өөрийн ажилладаг чиглэл, сурч буй технологийн чиглэлээр төрөлжсөн google group, yahoo group, forum зэрэгт элсээд тэдэнтэй үзэл бодол, тулгарч байгаа бэрхшээл зэргээр харилцан мэдээлэл солилцоод байх их зүгээр. Энэ хорвоо дээр чи ганцаараа биш шүү дээ. Таньд тулгарч байгаа бол тэдэнд ч бас тулгарч л байгаа гэсэн үг.

9. Тэмдэглэл, блог хөтлө
Тэгэхээр бичиж буй кодондоо сайтар тайлбар, тэмдэглэл хийж бай гэж туршлагатай хөгжүүлэгчид үргэлж хэлдэг. Яагаад гэвэл цаг хугацаа урсаад л өнгөрдөг. Аливаа зүйлийг маргааш гэж хойш тавих дэмий, цагийн юм цагтаа, өнгөрсөн цаг хугацаа эргэж олдохгүй гэдэг туйлаас үнэн үг. Өнөөдөр бид уг асуудлыг мартаагүй байгаа учраас бидэнд ойлгомжтой байдаг ч дараа өөр асуудалтай зууралдаад мартчихсан байхад яагаад ийм процедур, хувьсагч зарласнаа санах гэж цаг гарздана, хамаг кодоо эргүүлж тойруулж унших хэрэг гарна.
Ямар нэгэн хүндрэлтэй асуудлыг хэрхэн яаж шийдсэн, яагаад тийм асуудал гарсан зэргийг тусдаа тэмдэглэл дээр хөтлөөд явах ч дажгүй. Бидний мэргэжил үнэлгээ өндөртэй ч нүдний харааг муутгаж, санамжийг маань мартамхай болгож орхидог. Ойр зуурын зүйлсийг мартчихдаг болчихдог.
Блог хөтлөөд явах нь дээрхтэй адил талтай ч онцлог нь таны тэмдэглэлийг хүмүүс уншаад, таньд баярлалаа гэж хэлэх болно. Өөрөөр хэлбэл зөвхөн өөртөө зориулж биш бусдад зориулж бичдэгээрээ блог давуу.

10. Мэдлэг, туршлагаа бусадтай хуваалц, бусдад зааж сурга.
Өгсөн мөртлөө үгүйрдэггүй зүйл юу вэ? Инээмсэглэл, бас мэдлэг.
Мэдлэг, туршлага хоёр юугаараа ялгаатай вэ? Мэдлэг нь та бусдаас сураад, номноос уншаад, сургуульд заалгаад дүн тавиулаад гарч ирснийг хэлнэ.
Туршлага бол таньд хэн ч зааж өгөөгүй, зөвхөн та өөрөө амьдралын туршид олж мэдсэн мэдлэгийг туршлага гэнэ гэж хаа нэгтээгээс уншиж байсан.
Өөрийн мэддэг, чаддаг зүйлсээ бусдад зааж өг, таниас туршлагагүй нэгэн таниас асуувал хариулж өгөөрэй. Таньд тэр хүн баярлах нь лавтай бөгөөд таны мэдлэг улам батжиж, удаан мартагдана. Үг, өгүүлбэр гэдэг их хүчтэй бөгөөд үгээр илэрхийлэгдэхийн өмнө заавал толгойд боловсруулагдаад гардаг. Тиймээс л батжиж таньд илүү удаан үлдэнэ.

За өнөөдөртөө ингээд дуусгая. Дараагийн бичлэгээр уулзацгаая.


цааш унших...

Monday, February 02, 2009

Хэрхэн хөгжүүлэгч болох вэ. 1-р хэсэг

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


Уран бүтээлчид, зураач барималч нарт бүгдэд нь урлан гээд ажлынх нь өрөө байх. Яг түүнтэй адил хөгжүүлэгчдэд ч гэсэн хомпуутерт нь виртуалаар басхүү ажлын өрөө, ажлын багаж хэрэгсэл, номын сан, туршилт тест хийх өрөө, аргачлал, уулзалтын өрөө гээд тэр ч бүү хэл шавар зуураад өрлөг хийж байхдаа өөрт таалагдсан аяатайхан хөгжим тоглуулагч хүртэл бий. За тэгээд хүнд ажлын ард гарчихаад алжаал тайлангаа үзэх видео тоглуулагч, өдрийн сонин гарчиглах гээд бүгд л бий л дээ. За тэр ч яахав гол асуудалдаа орсуу. (Дашрамд хэлэхэд ороё, үзье энэ тэр гэсэн дүрмийн алдаа гаргачихдаг үгнүүдээс эвтэйхэн зайлсийнээ, Дамдинсүрэн гуай шинэ үсгийн дүрэм хийж байхад орос сургагч нар заавал оруул гэсээр байгаад ийм балай ь, ъ үсэг оруулцан)

Веб систем хөгжүүлэгчдийн зайлшгүй мэдэх боловсрол болон ажлын орчин:

1. HTML, XML
HTML - HyperText Markup Language
Веб хөгжүүлэгчдэд суурь мэдлэг буюу энгийн гипертехт бүтээгч хэл болох html -ыг зайлшгүй мэдэх хэрэгтэй. Гэхдээ энэ нь маш хялбар энгийн учраас суралцахад нэг их хүндрэл гарахгүй. Энд html tag гэдэг ойлголтоос эхлээд гол гол хэдхэн зүйлсийн учрыг ойлгоод авчихад тэгээд цааш явцын дунд гүнзгийрүүлээд байж болно.
Гипертекст буюу холбоос агуулсан веб хуудасыг дүрслэхэд зориулагдаж гарч ирсэн бөгөөд анх вебсайтууд зөвхөн энэ л хэл дээр бүтээгдэж интернэтэд байрлаж байлаа, одоо ч мөн уг хэл дээр дүрслэгддэг хэвээрээ боловч илүү их өргөн боломжуудаар өргөтгөгдсөн гээд ойлгочихож болно (гэхдээ доор бичигдсэн зүйсээр).

http://www.asuult.net/nemesis/web/
http://www.soyolerdene.com/index.php/posts/category/html

XML - eXtensible Markup Language
Интернэт улам бүр хөгжиж том том вебсайт, агуулгуудаар баяжигдаж, интернэтэд байрлагдсан серверүүд буюу сайтууд өөр хоорондоо агуулга, өгөгдөл солилцох, дамжуулах нөхцөл шаардлагууд урган гарсан бөгөөд уг xml нь өгөгдөлийг илүү бүтэцлэгдсэн мөртлөө маш энгийн байдлаар хэвшүүлж чаддагаараа бусад адил технологиос илүү ихээр дэлгэрсэн.
Хэлбэр нь ерөнхийдөө html -тэй төстэй ба xml tag гэсэн ойлголтыг ашигладаг ба html нь веб хуудасыг дүрслэхэд ашигладаг бол xml нь өгөгдөлийг бүтэцлэн хадгалахад ашиглагддаг.

http://en.wikipedia.org/wiki/Xml
http://www.soyolerdene.com/index.php/posts/103

2. Javascript
Веб хөгжүүлэх технологиуд цааш хөгжихийн хирээр, мөн интернэт болон вебийн хэрэгцээ шаардлага улам бүр өсөн нэмэгдэхийн хирээр веб серверт "ачаалал" өгөхгүйгээр хэрэглэгчийн асуудлыг веб хөтөч дээр шийдэх зорилготойгоор гарч ирсэн гээд буудчихая. Жишээ нь хэрэглэгчээс анкет авах формуудад тухайн хэрэглэгч зөв форматтай мэдээлэл оруулж буй эсэх, тухайн хэрэглэгч ямар төрлийн (IE, Mozilla, Opera, Konquerer) веб хөтөч дээр ажиллаж буйг, тухайн хөтөчийн онцлогт тааруулж вебийн ажиллагааг уян хатан болгох гээд л... client side programming хийхэд үүнийг "тодорхой түвшинд" мэдэх шаардлагатай.

3. Web 2.0 - AJAX, CSS
Эдгээр үгнүүдтэй сүүлийн үед та их таарч буй бизээ. Учир нь эдгээр технологиуд вебийн технологид хувьсгал хийсэн гэж хэлбэл зохино. Веб программыг яг л хэрэглээний програм (application program) түвшинд аваачиж илүү динамик, илүү "sexy" болгосон юм. Өөрөөр хэлбэл веб програмууд гэдэг нь олон хуудсууд хооронд дамжиж, дахин дахин хуудас ачаалдаг явдалыг халж дахин ачаалахгүйгээр javascript XMLHttpRequest object ашиглаж вебээс өгөгдөлийг "цаана" ачаалж авчираад CSS буюу div хэмээх динамик элементэд динамикаар "нааж" чаддаг болсон. Ингэснээр Google, Gmail, Gogo.mn эдэр шиг веб сайтууд төрж, MS Office шиг программыг зөвхөн веб шийдлээр бүтээж хэрэглэгчид зөвхөн веб хөтөч, интернэт холболт л байхад өөрийн локаль компьютерт элдэв суулгац суулгахгүйгээр ажиллах боломжыг олгож буй. (Эдгээрийг илүү дэлгэрэнгүй бичихэд уг талбар багадаж байгаа тул цааш та бүхэн дэлгэрүүлж үзээрэй)

http://en.wikipedia.org/wiki/Web_2.0
http://www.soyolerdene.com/index.php/posts/33
http://www.soyolerdene.com/index.php/posts/category/javascript

3. Programming Language - (PHP - Hypertext Preprocessor)
Интернэт дэхь ихэнхи веб програм/сайтуудыг бүтээсэн, бүтээж буй хэлээр тодроод байгаа. Анх веб програмыг программчлалын Си хэл, BASH shell script, Perl script дээр CGI - Common Gateway Interface ашиглан хийж байсан гэдэг. Учир нь тэр үед зөвхөн веб програм хөгжүүлэхэд зориулагдсан PHP, ASP.Net, CFML, JSP зэрэг хэлүүд төрөөгүй байж.
Уг хэл нь Си хэлний синтакс буюу бичлэгийн дүрэмтэй маш төстэй, Объект хандалтат программчлал дэмждэг, нээлттэй эх кодтой гээд хөгжүүлэгчдийн дэмжлэгийг ихээр авсан учир өнөөг хүртэл хөгжсөн бизээ. Тийм ч учраас веб хөгжүүлэгч болохыг хүсэгчдэд уг хэлийг хувийн зүгээс санал болгож байна. Миний хувьд Java JSP -ээс илүү уг хэлийг ашиглаж өнөөг хүрсэн ба ганц дутагдал буюу таалагддагүй зүйл нь java byte code, c# native code шиг хөрвүүлэгдсэн код үүсгэдэггүй түүхий script code -оор ажилладаг юм, энэ нь нууцлалын хувьд асуудал үүсгэнэ. Гэхдээ энэ бол түүнээс татгалзах шалтгаан одоогоор биш, удахгүй шийдэгдэх байх. (Магадгүй би сайн судлаагүй ч биз)

http://en.wikipedia.org/wiki/PHP
www.php.net

http://www.asuult.net/nemesis/php/

4. Database, SQL Language - (MySQL/PostgreSQL)
Мэдээллийн баазгүй веб програм гэж та сонссон уу. Хэхэ. Манай ахмад үеийн хөгжүүлэгчдийн яриагаар MS SQL битгий хэл Oracle, Interbase гараа ч үгүй байхад мэдээллийг файл руу бүтэцлэн хадгалах, түүнийгээ ачаалж боловсруулалт хийх гээд түмэн асуудал мянган бэрхшээл тулгардаг байж. Өөрсдөө Мэдээллийн бааз боловсруулагч программ бичихээс өөр сонголтгүй. Одоо бол байдал шал өөр. Үнэтэйгээс эхлээд нээлттэй эх бүхий MySQL, PostgreSQL тэргүүтэй веб системд илүүтэй зориулагдсан баазууд ямар ч үнэ төлбөргүй байж байна. Гагцхүү тэдэнтэй "ярьж, харилцах" SQL (Structured Query Language)-ыг сурах хэрэгтэй. Мөн өгөгдөлийг эмх цэгцтэй, илүү сайн уялдаатайгаар төлөвлөж сурах шаардлагатай. CRUD, Join, View, SQL Procedure, Trigger, Transaction, RollBack, Sub query гэх мэт.
Хөгжүүлэгчид, хүмүүс MySQL -ыг илүү их сонссон байдаг боловч туршлагатай хөгжүүлэгчид PostgreSQL -ыг хамаагүй илүү найдвартай гэж хэлэх нь бий. Миний л мэдэхийн 2003 оны үед postgesql аль хэдийнэ transaction, procedure ажиллагаатай байхад mysql сураг ч үгүй л байсан. Та санаж байгаа бол саяхан 5 хувилбараасаа л эдгээр функцианолийг дэмжсэн. Мөн эх код дахь алдаатай мөрний эзлэх хувиараа postgresql хамаагүй бага гэсэн үзүүлэлт ч бий. (Уучлаарай, Нэтээс холбоотой мэдээллийг олохоосоо цагаа харамлав)

www.mysql.com
www.postgresql.com

http://www.asuult.net/mysql.php
http://ariunbolor.wordpress.com/2007/05/30/sql-%D0%B3%D1%8D%D0%B6-%D1%8E%D1%83-%D0%B2%D1%8D/
http://php.az.mn/index.php?module=menu&cmd=content&menu_id=4&id=42

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

4. IDE - Код засварлагч (Eclipse, Dreamveawer, HomeSite, Zend Studio)
Integrated Development Environment буюу Хөгжүүлэгчийн орчин, товчоор код засварлагч гэе. Энэ нь эрхэм хөгжүүлэгч таньд кодоо бичих, засварлах ажилд өгүүлэшгүй тус нэмэр болно. Энд та класс үүсгэх, хаана ямар хувьсагч зарласан, эх код файлууд, хавтасуудтай ажиллах, функц хувьсагч хайх, эх кодод тайлбар хийх гээд олон олон тухлаг, эвтэйхэн байдлыг таньд хангаж өгөх янз бүрийн программын сонголтууд арвин бий. Гэвч эдгээрүүд өөр өөрсдийн давуу болон сул талуудтай байдаг. Гэлээ гэхдээ адуучин хүн уургач морь, холд унадаг хатирч морь, хонинд унадаг номхон морь, аргал түүдэг бядтай морь, айл хэсдэг сайвар морь гээд хэд хэдэн уналгатай байдаг шиг тус бүрийг нь давуу онцлогт нь тааруулж хэрэглээд болоод л байна.
Миний өөрийн хэрэглэдэгээс сонирхуулж дурдвал:
- HomeSite+ 5.5 : Маш тухлаг, хүчирхэг засварлагч. html, css, php засварлахдаа ашиглана. Жишээ нь заавал байнга
гэсэн тааг бичээд байхгүй, шууд Ctrl+b гээл болоо. Кодыг өнгөөр ялгаж харуулна, тухайн бичиж буй мөрийг хүрээлж харагдуулна. Их хэмжээний код дотор бол хэрэглээгүй байгаа хэсгийг эвхээд жижиг болгочихно гэх мэт... Гэхдээ сул талуудтай, debug хийхгүй (Заавал Coldfusion сервэртэй холбогдож байж) design view буюу хөтөч дээр харагдах байдлыг харуулдаггүй, гэхдээ Dreamveiwer -тэй шууд холбогддог учир түүн дээр харчихаж болно.
-Notepad++ : Цонх (Windows) системийн Notepad энгийн текст засварлагчийг илүү сайжируулсан хувилбар. Маш олон төрлийн формат, хэлийг дэмждэг (color view) ба үнэхээр хөгжүүлэгчид өөрсдөдөө дутагдаж байсан засварлагчийг мэдэрч хийж чадсан гэж үнэлдэг. xml, sql, yml, css гээд бүтэцлэг формат бүхий файлуудыг засварлахад өнгөөр сайн ялгаж өгч санамсаргүй алдааг гаргахаас сайн сэргийлдэг.
-Eclipse : Үнэгүй, хүчирхэг засварлагч. Нээлттэй эхийн хөгжүүлэгчдийн хамгийн өргөнөөр ашиглаж буй IDE бол яах аргагүй эклипс. File browse, Debug, SVN, CVS гээд бүхий л хэрэгцээт боломжуудаар сайн хангагдаж буй. Гол дутагдал нь компьютерийн ресуурс буюу ачаалал их өгдөг. 512Мбайт санах ойтой байхдаа арай чуу л гэж ажилладаг байлаа. :)
- Zend Studio : Миний хувьд огт хэрэглэдэггүй. Учир нь төлбөртэй. Яахав крэкдээд хулгайн хуулбар ашиглаж болох ч ашиглахыг огт бодож үзээгүй. Зарим хөгжүүлэгчид худалдаж аваад ашигладаг, магтдаг. Гэхдээ өөр төлбөргүй, нээлттэй эхийн багажууд зөндөө байхад, тэгээд ч Eclipse IDE маань хангалттай байдаг.

http://bolorcms.com/badaa/index.php?/archives/9-Eclipse-PHPEclipse-Aptana-Texlipse.html
http://www.dhtech.com/hujii/archives/3-Zend-Studio-247.html
http://hujii.blog.banjig.net/post.php?post_id=29447

5. Version Control System - (CVS or SVN)
Кодын Хувилбар удирдах систем.
Практикт буюу амьдрал дээр системүүд үргэлж шинэчлэгдэж, шинэ шинэ зорилт, хэрэгцээг хангахаар өргөтгөгдөж, сайжируулагдаж байдаг. Системийн анхны хувилбар нь хэрэглэгчдийн нөхцөл шаардлагын зарим хэсгийг л хангахаар тусгагдаж уг зорилгоо биелүүлсэн гэж бодоё. Дараачийн 2.0 хувилбарт илүү олон зорилт тусгаж болно.
Яг ийм нөхцөлд төслүүд хувилбар удирдах системийг ашиглах зайлшгүй шаардлага гарна. Мөн хувилбар бүрт завсрын хөгжүүлэлтийн явцын дэд хувилбарууд багтах бөгөөд тэдгээрийг нэмэлт, хасалт зэрэг өөрчлөлт бүрийг хөгжүүлэгч бүрээр ангилж хадгалсан баазыг уг систем агуулна. Өөрөөр хэлбэл системийн нэг хувилбараас нөгөөх хувилбар хүрэх хоорондох бүхий л түүхийг агуулж байдаг.
Энэ төрлийнхөөс MS SourceSafe, Borland TeamSource гэх мэт төлбөртэй, CVS SVN гэсэн төлбөргүй нээлттэй эхийн хэрэгсэлүүдийг дурдаж болно. Мэдээж хэн ч аваад ашиглахад үнэгүйгээрээ SVN, CVS -ийг санал болгож байна.
Та Цонх систем ашигладаг бол таньд TortoiseSVN, TortoiseCVS -ийг санал болгож байна. Эдгээр нь бүгд үнэгүй програм юм.

http://www.dulmandakh.com/2009/01/blog-post_05.html
http://buyaa.blogspot.com/2008/10/svn.html

6. Diff, Merge tools
Diff буюу ялгааг харах, merge буюу нэгтгэх хэрэгсэлүүд.
Хувилбар удирдах систем ашиглаж буй үед болон ер нь хөгжүүлэгчдэд хоёр файлуудын ялгааг харж хувилбар хоорондын өөрчлөлтүүдийг ялган харах, улмаар тэдгээрийг хооронд нь нэгтгэхэд эдгээрийг ашиглах нь маш тустай. Цаг завыг чинь хэмнэнэ, алдаа эндэгдэл гарахыг хаана. Эдгээрийг хэрэглэж сурснаар та эхлэн суралцагч байхаа больж туршлагатай хөгжүүлэгчдийн эгнээнд орноо ;)

WinMerge, Meld, Kompare
Эдгээр нь нэг их онц ялгаа байхгүй. Таалагдсанаа сонгож аваарай.

7. Database Design, Management Tool
Баазтай ажиллах үед тэдэнтэй ажиллах тохилог, тухтай боловч тогтвортой сайн ажиллагаатай багаж хэрэгсэл бас хэрэгтэй. Ямар баазтай ажиллах болон зөвхөн бааз удирдах ажиллах эсвэл төсөл хөгжүүлэх явцад аливаа баазыг төлөвлөх, архитектур дизайн гаргах эсэх зэргээс хамаараад дараах багажууд бас үнэ төлбөргүй хирнээ түгээмэл ашигладдаг, хөгжүүлэгчдийн талархлыг хүлээсээр удаж байгаа.

phpMyAdmin - MySQL бааз удирдах веб интерфэйс
phpPgAdmin - PostgreSQL бааз удирдах веб интерфэйс
MySQL Workbench - График интерфэйс бүхий MySQL бааз удирдах, баазын дизайн архитектур зурах хэрэгсэл
DBDesinger4 - График интерфэйс бүхий MySQL, Oracle, MSSQL болон аль ч ODBC бааз удирдах, баазын дизайн архитектур зурах хэрэгсэл

http://bolorcms.com/badaa/index.php?/archives/50-DBDesigner4-on-linux.html
http://bolorcms.com/badaa/index.php?/archives/90-MySQL-Workbench-on-Ubuntu-linux.html

Ингээд өнөөдөртөө эхний хэсгийг өндөрлөе. Дараагийн хэсэгт хөгжүүлэгчийн ширээний Үбүнтү үйлдлийн системээ бэлдэх болон php framework, adodb db layer, веб програмаа тест хийх буюу зүгшрүүлэх зэрэг зүйлсийг багтаахийг хичээсү.
Гарчигийг Хэрхэн нээлттэй эхийн хөгжүүлэгч болох вэ гэж өгснөө энэ нь утгын хувьд нээлттэй эх бүхий систем хөгжүүлэгч болох тухай болчих санагдаад өөрчилөв. Уул санаа нь үнэгүй болон нээлттэй эх бүхий програм, хэрэгсэл ашиглан хөгжүүлэгч болох гэсэн боловч урт болчихлоо.

Өчүүхэн миний зүгээс алдаж, ташаарсан зүйл байх аваас та бүхэн засч залруулж өгөх аваас туйлаас баярлах болно. Мөн уг сэдвээр хамтран үргэлжлүүлэн бичихийг хүсэгч нэгэн байвал татгалзах зүйлгүйгээр хамтран бичихэд таатай байх болно.


цааш унших...

Wednesday, September 03, 2008

Symfony - OpenSource PHP Framework

www.symfony-project.com

http://www.symfony-zone.com/wordpress/2007/12/19/developing-symfony-with-eclipse/


цааш унших...

Monday, August 04, 2008

Multiple OSes in the one host

Зиак, линуксчидэд энэ өдрийн мэнд.
Тэгэхээр ажлын нөхцөл шаардлага энэ тэрээс болж ихэнхи админууд үндсэн системээ Виндовсоор авч байгаа байх. Бяндоовз (Windows) дээр ч тэгээд тоглоом, өргөн хэрэглээний янз бүрийн программуудаар баялаг л даа.
Гэхдээ линукс систем дээр зарим нэг зүйл турших, тестлэх гээд шаардлагатай үед physical -аар дахин Linux хост суулгах хэрэгтэй болдог. Эдгээр хооронд Dual Boot-ээр шилжинэ. Линукс, Windows-ын хооронд шилжихийн тулд дахин дахин компьютерээ унтрааж, асаана. Түвэгтэй л дээ.

Тэгвэл Линукс системээ virtual host хэлбэрээр үүсгэчихвэл Windows дотроосоо л ачаалж, унтрааж болно. Мөн хэдэн ч ийм virtual host үүсгэсэн таны дур. Таньд санал болгох программууд гэвэл:

- VMware Workstation

Үүнийг та Unix, Linux, Windows Server, DOS, Netware гээд системүүдийг виртуалаар үүсгэх бол ашиглахад тохиромжтой. Найдвартай, алдаа багатай ажилладаг болохоор би ашигладаг (Гэхдээ crack-дсан байгаа л даа :D )
Виртуал хост руу орохдоо дэлгэц дээр нь товшиход орно, гарахдаа Ctrl+Alt хослолоор үндсэн систем руу шилжинэ.










-Microsoft Virtual PC 2007

M$ -аас гарсан тул энэ нь зөвхөн Windows системийг виртуалаар үүсгэнэ. Үүнийг би XPe SP2 (XP Embedded) судалгаанд ашиглаж байгаа.
Үндсэн системээс виртуал хост руу орохдоо дэлгэц дээр нь товшиход орно, гарахдаа Alt (Right) дарж гарна.

Дээрхи 2 програм үндсэн системийн төхөөрөмжүүдийг виртуаль систем руу оновчтойгоор хуваалцаж (share) өгснөөр виртуал систем тань яг л бодит системтэй адил л ажиллана. Та файл, хавтас share хийж, ftp http mail bind гээд network service-үүд ч ажиллуулж болно.

Сис админ таны ширээний программууд дотор байх ёстойгуудын нэг мөн.
За ингээд амжилт хүсьЕ!


цааш унших...

Wednesday, July 25, 2007

Шавьтай боловоо би

Линукс систем хэдэн жил оролдсоных би гэж хүн анхан шатнаас арай дээр болоо юм биз. Саяханаас 2 ч шавьтай болж байна гэж, ө.х. Монголын Линукс сисадминуудад 2 хүнийг "уруу татаж" байгаам байхаа...

Эхнийх нь манай найзын найз охин, Цоомоо гээд.
Дараах нь манай дүү болох Гамбаа гээд.

Тэгээд нөгөө хоёр маань Debian Etch desktop суулгаж аваад л видео яаж үзэх, нэмэлт фонт яаж суулгах, мессенжерт орох, дотоод сүлжээний shared folder руу хандах, LAMP сервер яаж суулгах, коммандууд гэж юу, файл систем бүтэц, процессууд, device driver-ууд, CD яаж шарах гээд л бойтоглож өгт байнаа хэхэхэ.. Дандаа мангар easy юм асуух нь хэцүү ч юм шиг... Аль болох өөрсдөөр нь учрыг нь олуулах гээд суулгахаар хэлээд өгчихгүй гээд тунирхах янзтай :(

Гэхдээ би өөрийнхөө анх яаж Линукс сурч байснаа бодоод инээд хүрэв. Анх ИнженерСофт компанид 3-р курсээ төгсч орсон хойноо RedHat 7.0 Windows 2k -ыг хамт суулгах гэж, LAMP -г source compile хийх гэж мунгинаж байсан минь санаанд ороод... Тэгэхэд архаг админ байсан Мэндээ гээд хайк рок залуугаас завсаргүй л асуудаг байж дээ. MySQL PostgreSQL 2 юугаар ялгаатай, яг аль Linux Distro сайн бэ, Exploit Patch гэж юу вэ, системийг яаж хайкдах вэ гээд л дуусахгүй л дээ. ( Тэр үед wikipedia.org байсан бол надад шууд url-ыг нь өгөх байсан байх :D )

Тэгээд хараад байхад Windows систем цэвэр энгийн хүмүүст зориулагдсан нь илт мэдрэгдэх юм даа. Ямар ч асуудал хүндрэл байхгүй (вирусыг эс тооцвол) . Харин цаашид IT чиглэлээр явах хүнд бол тэр дундаа интернэт чиглэлээр ажиллах хүнд систем болон элдэв технологиудын талаар мэдлэг өгдөг учраас Линукс системийг ашиглаж байх нь зөв гээд нэг шалтгааныг гаргаад ирчихлээ гэж :)

Шинэ юм дандаа хялбар байдаггүй, шинэ юм сурахад дандаа хүндрэл гардаг. Үй түмэн мэдэхгүй, чадахгүй зүйл дундаас хүн өөрийгөө нээн олж чаддаг. Их хөдөлмөрлөж байж олж авсан мэдлэг туршлага ч өөрт хурдан өөриймсөж, мартагдах нь ч удаан байдаг.

Тэгэхээр шантарч болохгүй шүү залуусаа, шинэ танилцаж буй орчин системтэйгээ хурдан зохицож дасаарай. Нэг л өдөр харин энэ систем энэ орчингүйгээр амьдрал харин утгагүй санагдах өдөр ирэх вий гэж айж байна :)


цааш унших...

Spam гэж үнэн ядаргаа

ICT блог дээрээ ойрд юм бичээгүй нилээд удчихжээ... Монголд зуны дэлгэр цаг ирээд хүмүүс ч албан газрууд ч амарч, зугаалах ихдээд байгаа болохоор ч тэр байх даа.

Өндөөдөр манай компаниас WebHost үйлчилгээ авдаг нэг газрын мэйл нь ажиллахгүй байна гэсэний дагуу сервер рүү ортол бөөн спам ирээд бөглөчихөжээ хөөрхий... Угаасаа мэйл сервертэй ажиллах үнэн дургүйг ч хэлэх үү... Postfix MTA дээрээ rt blacklist үүсгээд, DomainKeys тохируулах гэж хэсэг оролдоод арай л барсангүй ээ.. Маргааш дахиад л үзэхээс... Уул нь хийгээд дуусгачихвал спам багасаж, Yahoo Gmail эдэр руу явуулсан мэйлүүд Bulk, Spam folder руу орохгүй амар л юм даа.

Болохгүй байгаа нь минийх VHCS2 гээд opensource/free control panel суулгаж, MTA -гаа тааруулж тохируулсанд байх шиг байна.

Дээрх Mailserver hardening хийх талаар эхлээд Баянаагын бичсэнг уншчихвал зүгээр шүү.

Дараа нь минийхтэй адил Postfix MTA сервертэй хүмүүст дараах линкүүд хэрэг болох байх...

Setup Realtime Black List on your MTA

Postfix MTA Spam control configuration

Setup Postfix MTA with DomainKey support

Хараад байхад веб хостинг үйлчилгээ үзүүлдэг компаниуд cPanel, Ensim эдрийг л ашигладаг юм шиг.
Яахав жижиг дунд байгууллагуудад, эсвэл дотроо олон вебтэй томхон шиг газрууд эдэрт VHCS2 мэт үнэгүй боловч функциональ сайтай control panel дажгүй байх ... Гэхдээ би урьд нь Ensim Pro -г ашиглаж байхад ч sendmail MTA нь бас л спамд бөмбөгдүүлдэг л байсан доо :D


цааш унших...

Thursday, June 14, 2007

Joost Testing

Дээр үед Joost Beta Tester -ээр бүртгүүлээд мартчихсан байсан саяхан Friends Edition татаж авна уу гээд имэйл ирсний дагуу суулгааж, ашиглаж үзлээ. Үнэхээр гайхалтай санагдлаа...

Жүүст нь P2PTV хэлбэрийн Desktop stand-alone application буюу компьютертаа суулгаад л нилээд өргөн сонголттой сувгуудаас VoD (Video-on-Demand) үзэх боломжтой юм.

KaZaA, Skype зэрэг peer-to-peer мангасууд болох Niklas Zennström, Janus Friis нар 2006 онд бизнес санаагаа олж 150 орчим программисттайгаар төслийг эхлүүлсэн гэнээ.

Технологийн хувьд дан OpenSource Software буюу нээлттэй эх бүхий технологи, программуудыг ашигласан байна. Серверүүд нь гэхэд л өнөөх л Ubuntu байна.

За тэгээд Видео дүрслэл болон кодчилолийн хувьд сүүлийн үед хүчийг авч байгаа MPEG-4 AVC (Advanced Video Codec) буюу H.264 кодекийн CoreAVC гэсэн commercial encoder ашигласан байна.

GUI хувьд XULRunner engine ашиглаж Mozilla Firefox, Songbird програмуудын адил XUL (XML User Interface Language) дээр бичигдсэн.

Видео тоглуулагчыг VLC программд FFmpeg decoder-т x264 кодек сан ашиглаж арын фон хэсэгт тусад нь layer хэлбэрээр байрлуулжээ.

За тэгээд сүүлийн хэдэн хоног зав л гарвал Жүүст орж хэдэн видео үздэг ажилтай боллоо. XUL ашиглаж XULRunner програм бүтээхэд cross-platform буюу аль ч үйлдлийн систем дээр ажиллах боломжтой хэдий ч жоохон удаан ажиллаж буй тал ажиглагдлаа. Ялангуяа RAM -ыг хэтэрхий их ашиглаж байна:

Энд миний 512Mb RAM бүхий XP SP2 систем дээр өнөөх л Firefox, Joost хоёр нийлээд бүүр Photoshop-оос илүү санах ойг эзэлж байгаа нь харагдаж байна. Дээр нь Songbird медиа тоглуулагчыг ачаалвал тэгээд би "дуусах нь тэр" :)

P2P -ын хувьд өөр адил төрлийн програмууд болох Хятад-АНУын хамтарсан TVUPlayer-ыг бодвол хамаагүй сайн ажиллаж байна лээ. Энэ программаар би хааяаа CCTV, NASA TV эдэрийг үздэг юм. Гэхдээ өдөр манай монголын сүлжээ ачаалал ихэсдэг тул оройхон тийшээ л peer-ээ олж үзэх боломжтой болдог.
Харин Жүүст 512Kb Down Stream байхад чөлөөтэй үзэж байна.

За Joost хэмээх нэгэн шинэ дуулианы талаар миний бодол нэг иймэрхүү байна даа. Уншигч та өөрөө туршаад үзнэ бизээ.







цааш унших...

Monday, May 14, 2007

Power Session with Screen

Сис админууд маань Linux сервер рүүгээ SSH -ээр гаднаас нэвтрэн орж ажилладаг шүү дээ. Зарим үед нэг серверээс нөгөөх рүү том хэмжээний файл хуулах, зөөх, том архив tar файлыг задлах, архивлах зэрэг удаан үргэлжилдэг ажиллагааны үед админуудын маань холболт тасрах үе гардаг. Энэ үед өнөөх л удаан ажиллагаагаа дахиад л эхнээс нь эхлүүлнэ дээ. Өмнө нь screen коммандыг гараагүй байхад nohup коммандыг ашигладаг байсан боловч энэ нь лог файл руу тухайн үр дүнг гаргадаг болохоос тухайн ажиллагаа яг юу болж байгааг мэдэх боломжгүй байснаараа дутагдалтай байв.

Одоо тэгвэл screen коммандыг ашиглахад таны серверт орсон холболт/connection тасарсан ч үйл ажиллагаа/session нь устахгүй цааш үргэлжилсэн хэвээр л байх бөгөөд та дахин серверт холбогдон орж өмнөх session -д холбогдох боломжтой нь маш давуу байдлыг олгоно.

Суулгах:
http://www.gnu.org/software/screen/ сайтаас эх код болон бусад бинари суулгацуудыг авч болно.
Debian GNU/Linux дээр бол мэдээж apt-get install screen гээд суучихна.

Хэрэглэх:
Шинээр session үүсгэхдээ screen mc буюу screen гэх мэт. Үүний дараа SSH холболт салсан ч өмнөх комманд хэвийн цааш ажиллана.

Холбогдох:
screen -ls коммандаар ажиллах байгаа session -ууд хараад

[root@gigan root]# screen -ls
There are screens on:
31619.ttyp2.gigan (Detached)
4731.ttyp2.gigan (Detached)
2 Sockets in /tmp/screens/S-root.

screen -r 31619.ttyp2.gigan гэх мэтээр тухайн session руу дахин холбогдож орно.

Холбоосууд:
http://www.rackaid.com/resources/tips/linux-screen.cfm
http://www.gnu.org/software/screen/


цааш унших...

Friday, January 19, 2007

Cheat Sheets

Cheat Sheet гэж юу вэ?
Энэ нь программист болон хөгжүүлэгчдэд зориулсан, тухайн программчлалын хэл, программуудын хамгийн хэрэгтэй зүйлсийг А4 цаасны хэмжээнд багтаасан хүснэгт бүхий маш жижиг гарын авлага гэж ойлгож болно. 10 жил, их сургуульд сурагч оюутанууд шалгалтад орохдоо өөрсдөө "шипи" гээд жижиг цаас дээр ийм зүйлсийг бэлддэг байсныг санаж байгаа биз дээ.

Тэгвэл программ хөгжүүлэгчид ч ийм "шипи"-гүүдийг хэрэглэдэг байна.

Нээлттэй эх ашиглан веб хөгжүүлэгчдийн хувьд дараахь "шипи"-гүүдийг нэг сонирхоод үзээрэй:

HTML Cheat Sheet
PNG PDF

CSS Cheat Sheet
PNG PDF

JavaScript Cheat Sheet
PNG PDF

MySQL Cheat Sheet
PNG PDF

PHP Cheat Sheet
PNG PDF

Regular Expressions Cheat Sheet
PNG PDF

Эх сурвалж:
http://www.ilovejackdaniels.com/cheat-sheets/


цааш унших...

Wednesday, January 10, 2007

Acronis аминд орно шүү

Хөгийн ч юм шиг, сургамжтай ч юм шиг зүйл өчигдөр боллоо.
Ойрд Windows XP Pro гуай удаан, гацаад байхаар нь форматлаад дахин суулгахаар боллоо. (Арга ч үгүй биз, суулгаснаасаа хойш янз бүрийн юм нэмж, хасч янз бүр болгосоор бүтэн жил болгоцон байхад)
Windows XP Media Center олж аваад суулгадаг баатар болсон чинь Setup GUI дээр partition-уудаа харж байгаад хэрэггүйгээ устгаж байгаад андуураад 60Gb NTFS partition-аа хусаад хаячихаж, баахан Linux partition эдэртэй тэрхэн зууртаа андуурчихлаа. Тэгээд шууд F3 дараад суулгалтын явцыг зогсоогоод гартал харин XP товарищ delete partition command-ыг commit хийцэн байдагийм даа. Уул нь бусад Unix/Linux гээд аль ч систем partition-тай ажиллахдаа хэрэглэгчээс бүхий л коммандыг авч устгахыг нь устах, зөөхийг нь зөөхөөр болгож санаад хамгийн сүүлд хэрэглэгчээс дахин лавлаад гүйцэтгэдэг байтал муу ямбий Бяндоовз гуай шууд хусдаг гэнээ...

Заза уур уцаар яахав, нэгэнт болоод өнгөрцөн хойно одоо харин яаж устгуулсан зүйлээ яг анхных шиг нь бүрэн, бүтэн сэргээж авах нь чухал.
Хэдэн жилийн өмнө хоёр адилхан RedHat Linux системтэй диск залгаж байгаад /var/www partition-аа бас хусуулчихаад Acronis Recovery Expert програмаар асуудалгүй сэргээж байснаа санаад www.acronis.com руу орлоо. Тэр нь одоо Acronis Disk Director Suite 10 гээд гарчихаж. Демог нь татаж аваад үзтэл E: диск гээд гаргаж ирж байнаа. Харин яг сэргээх гэнгүүт худалдаж ав гээд новширчийно. Тэгэхээр нь болчихоод өөр боломжийн үнэгүй зүйлээр сэргээх гээд нэтээс ухаж гарав.
Partition Magic, EasyRecovery, Active@ Recovery энэ тэр гээд үзлээ. Бүгд хэрэг алга.
Мессенжер руу зар явуултал харин IT Park-ын Мурат гээд админ залуу torrent-ooс татаж өглөө шүү. Суулгаад сэргээтэл УРА!
Acronis -ыг үнэлдэг үнэлэмж дахиад сэргэв. Хэзээ ч чанартай, найдвартай зүйлээс гар бүү татаа гэж. Дараа бүүр чухал хэрэг гарвал бүтээгдэхүүнийг нь худалдаж авнаа.
Тийм болохоор хэрвээ та бүхний FAT, VFAT, NTFS, Ext2, Ext3, Linux Swap эдэр гээд partition-уудаа undelete хийх, ер нь partition manage хийх бол Acronis Disk Director Suite сонгоорой!

Хэрвээ юмыг яаж мэдэхэв гээд цуглуулгадаа авахыг хүсвэл над хэлээрэй! Дуртайяа илгээмз


цааш унших...

Friday, December 22, 2006

How to make Film strip

Саяхан нэг төслийн хэсэгт ийм функциональ бүхий нэгэн жижигхэн скрифт бичснээсээ та бүхэнд сонирхуулж байна.
Зорилго нь өгөгдсөн видео файлаас өгөгдсөн тооны фрэймүүдийг зураг болгон салгаад уг салангид зургуудыг нийлүүлж нэг зургийн файл болгох. Өөрөөр хэлбэл дээр үеийн киноны плёнк шиг буюу дараах зураг шиг:


Өгөгдсөн файл: softboy.avi
Өгөгдсөн фрэймын тоо: 5
Гаралтын файл: softboy.avi.png

1. Фрэймүүдийг задлах
mplayer -ss 1 -frames 4 -vo png softboy.avi

Үүний дараа 00000001.png 00000002.png 00000003.png 00000004.png 00000005.png гэсэн зургийн файлууд үүснэ.

2. Салангид фрэйм зургуудийг нэгтгэх
convert -resize 200x100 -border 10x4 -bordercolor black 0000000*.png +append softboy.avi.png

Ингээд л болчихлоо. Үүнд mplayer, imagemagick гэсэн хоёр хэрэгслийг ашиглаж байгаа ба үүнийг системдээ суулгахдаа

RH, FC системүүдэд өмнөх бичлэгийн адил:
up2date -i mplayer imagemagick

Debian, Ubuntu системүүдэд:
apt-get install mplayer imagemagick


цааш унших...

RHEL's up2date Yum Repository

Блог дээрээ бичлэг хийлгүй их удчихажээ. RedHat Enterprise Linux ашигладаг админууд маань стандарт RedHat Network-ын (up2date) package channel-уудад байдаггүй өөр програм, package-уудыг хэрхэн суулгах вэ гэсэн асуулт их тавьдаг. Надад өөрт маань ч mplayer, ffmpeg, mencoder гэх мэт зөндөө л нэмэлт хэрэгсэлүүдийг ашиглах шаардлага гардаг.

Үүнд up2date хэрэгсэлд Yum буюу (Yellow dog Updater Modified) гээд rpm software updater, installer хэрэгсэл (tool)-ийн repository-г ашиглах нь дажгүй сонголт.

Өөрөөр хэлбэл стандарт програмуудыг RHN-оос суулгаад, энд байдаггүй нэмэлт зүйлсийг Yum-ын сангаас суулгая:

1. /etc/sysconfig/rhn/sources файлд дараах мөрүүдээс өөрийн системд хамаарах хэсгийг нэмнэ:

### Dag RPM Repository for Fedora Core
yum dag http://apt.sw.be/fedora/3/en/$ARCH/dag ## FC3-г ашиглаж буй бол
yum dag http://apt.sw.be/fedora/2/en/$ARCH/dag ## FC2-г ашиглаж буй бол
yum dag http://apt.sw.be/fedora/1/en/$ARCH/dag ## FC1-г ашиглаж буй бол

### Dag RPM Repository for Red Hat Enterprise Linux
yum dag http://apt.sw.be/redhat/el4/en/$ARCH/dag ## RHEL4-г ашиглаж буй бол
yum dag http://apt.sw.be/redhat/el3/en/$ARCH/dag ## RHEL3-г ашиглаж буй бол

2. Үүний дараа системээ шинэчилнэ:
up2date -u

3. Шинээр програм суулгахдаа:
up2date -i mplayer ffmpeg mencoder

гэх мэт

Мөн RedHat, Fedora систем дээр Debian системийн Apt (updater, installer) хэрэгслийг ашиглах боломжтой. Дэлгэрэнгүйг энэ линкээс уншаарай.


цааш унших...

Tuesday, December 12, 2006

Cluster Computing

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

Монгол дахь хэрэглээний тухай

Энэ намрын SysAdmin Summit 2006 дээр манай анхны алтан хараацайнуудын нэг болох Монголын Үндэсний Статистикийн ахтай Линукс системээр супер компьютер хэрхэн хийх, мөн монголд юунд ашиглах талаар хэсэг ярилцаад авсан юм. Тэр ах ярихдаа өмнө нь Windows системээр гурван мөчиртэй (processor/cluster node) кластер хийсэн үүгээр өмнө нь нилээд хэдэн цаг болж байж гаргадаг тооцололтын ажиллагааг хэдхэн минут болгож хурдасгасан гэж байлаа. Уг систем нь зарим нэг зүйлийг хийхэд болж байгаа ч өөр бусад тооцололтыг хийхэд боломжгүй байгаа учраас Линукс кластерийг сонирхож байлаа. Жишээ нь Компьютерийн 3D буюу 3н хэмжээст график, хөдөлгөөнт дүрс, эффектийг хийх. Мөн зарим статистик мэдээлэлийг тооцлоход гадны төвүүдэд захиалга өгдөг ба үүний төлбөрт нилээд хэдэн мянган доллар алддагийг болиулах гэх мэт ажиллагаанд хэрэглэмээр байна гэв.
Бид хэдийгээр гадны томоохон төвүүдэд ийм хүчирхэг кластерууд ашигладагыг мэдэж байсан ч хараахан монголд маань хэрэглээ бий болоогүй гэж бодож байсан нь буруу байж гэдгээ тэгэхэд дахин нэг бодоход хүргэж билээ.

Бидэнд хамааралгүй зүйл эргээд бидэнтэй хэрхэн хамааралтай болох вэ?
Дараахан нь Эрдэнэт, Дархан руу ажилаар явж байлаа. Замд таарах тариалангийн том том талбайнууд, ургацаа хурааж байгаа ажиллагаа зэргийг хараад үнэхээр сэтгэл хөдөлж, эргээд өмнөх кластер системийн ач тусыг ойлгох шиг болсон шүү.
Тайлбарлавал, уг кластерийг хийхэд нэг их зардал шаардагдахгүй боловч ач тус нь их юм. Жишээ нь, Одоо байгаа манай цаг агаарын урьдчилсан мэдээ нь ирэх долоо хоногийн тоймыг 21 аймаг болон Замын-Үүд, Чойр, Ханбогд гэсэн хэдэн төв суурингуудаар гаргадаг бөгөөд бусад газруудын талаар "баруун зүгийн нутгаар", "төвийн нутгаар" гэж бүрхэг хэлэхээс биш яг тэр аймгийн тэр сум гэх мэт гаргадаггүй байна. Өнгөц бодоод үзэхэд өнөөдөр бороо орох уу орохгүй юу, өдрийн дулаан хэд орчим байх зэрэг нь бидэнд нэг их онц чухал биш санагдана. Гэвч байдал тийм биш. Манайх шиг байгалын эрхшээлд байдаг мал аж ахуй, газар тариалан зэрэг салбартай улсад нарийвчилсан, үнэнд ойрхон цаг агаарын мэдээ амин чухал хэрэгтэй юм. Жоохон хийсвэрлээд үзье:
Кластер компьютергүй учраас энэ олон суурин, төвүүдийн мэдээллийг хурдан боловсруулж, цаг агаарын урьдчилсан мэдээ гаргаж амжихгүй. Мэдээ сумдаар нарийн гарахгүй учраас мөндөр орчихлоо гэхэд яах вэ, хурааж амжаагүй байсан тариа "ёстой будаа". Үүнээс улбаалаад будаа, гурилны үнэ "тэнгэрт гарна". За ингээд бодоод үзэхээр цаг агаарын мэдээний үнэ цэнэ, түүний үнэн болоод хүртээмжтэй, хурдан байдал нь харагдаж байгаа биз.

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

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

Links
Weather & Ecosystem Modeling
The Earth Simulation
Computer Cluster

Build a digital animation system
IBM -ын сайт дээр дижитал анимэшний студийн графикийн боловсруулалт (render) хийх кластер системийн талаар нийтлэгдсэний линкийг энд тавилаа. Өөрөөр хэлбэл бидний шимтэн үздэг Шрек, Мангасуудын компани, Немогийн эрэлд зэрэг 3 хэмжээст хүүхэлдэйн киног бүтээхэд өнөөх л Линукс кластерууд маань хүчин зүтгэж байгаа хэрэг юм.
Part 1
Part 2
Part 3
Part 4
Part 5

Энэ сэдвийг цааш үргэжлүүлэх болно.


цааш унших...

Tuesday, November 07, 2006

Линукс сисадминууд анхны хүндрэлүүдийг хэрхэн давдаг вэ?

Сүүлийн үед Linux эхлэн суралцаж байгаа найзууд, танилууд маань анх тохиолддог бэрхшээлд хэтэрхий автагдаад, бие даан шийдвэрлэж чадахгүйд хүрэхээрээ Линукс хэцүү, бэрх гэх мэтчилэн шантраад байгаа нь ажиглагдлаа. Мөн зарим хүмүүсийн хүсэлтийн дагуу элдэв програм суулгах, тохируулах заавар зэргийг энд тэр бүр бичээд байх нь боломжгүй тул

Линукс эхлэн суралцаж буй СисАдминуудад анхлан тохиолдох хүндрэлүүдийг давахад нь жоохон ч гэсэн туслах зорилгоор товч бичихээр шийдлээ.


Би үүнийг яаж давдаг байсан бэ
Би гэж хүн анх Линукс системийг 2001-2002 онд л байхдаа RedHat Linux 7.0 хувилбарыг хамгийн анх суулгаж байсан санагдана. Тэр үед Anaconda (RedHat Linux Installer) одоогийнх шиг ийм тухтай байсангүй зарим зүйлсийг гараараа хийдэг байлаа. Жишээ л гэхэд автомат-аар partition хуваахгүй, Windows гэх мэт бусад систем суусныг автоматаар таньж Lilo,Grub гээд систем эхлүүлэгч нарт оруулдаггүй гэх мэт.
За тэгээд анх хэвийн ажиллагаатайгаар суулгаж сурталаа нилээд олон удаа оролддог байсан. Миний хувьд шинээр танилцаж буй Линукс систем маань үнэхээр их сонирхол татаж, хүчин чадлыг нь биширч байсан тул хэзээ ч хүнд хэцүү байна хэмээн орхиж байсангүй. Заримдаа шийдэж чадахгүй зүйлс тохиолддог ч үүнийг дараах аргуудаар шийдвэрлэхийг оролддог:

1. Өөрийн системээ алдаагүй эсэхийг нягтлах, алдаагүй зөв хийсэн эсэхээ шалгах
2. Google-ээс хайх
3. Тухайн програм, технологийн албан ёсны вебсайтаас холбогдолтой мэдээлэл, гарц хайх
4. Илүү туршлагатай нэгнээс зөвлөгөө авах
5. Тухайн програм, технологийн талаар илүү дэлгэрэнгүй, нарийн мэдлэг олж авах, унших
6. Үүнийг орлуулж болох бололцоо байгаа эсэхийг хайх, олж авах

1. Өөрийн системээ алдаагүй эсэхийг нягтлах, алдаагүй зөв хийсэн эсэхээ шалгах
Системд маань маш олон төрлийн програм суусан байх тул эдгээр нь алдаагүй цэвэр суусан ажиллаж байгаа эсэхээ олж тогтоох нь чухал юм. Үүндээ бат итгэсний дараа та тухайн ажиллагааг алдаагүй үнэн зөв хийсэн эсэхээ нягтлах хэрэгтэй. Үүний тулд тухайн програмыг хэрхэн суулгах талаархи албан ёсных нь гарын авлага материалыг нь уншиж, нарийн танилцах хэрэгтэй болно.

2. Google-ээс хайх
Дараагийн шатанд та зөв суулгасан ба таны систем алдаагүй байсан бол энэ нь тухайн програмын өөрийн нь алдаа болон бусад төрлийн ямар нэгэн асуудал байж болно. Алдааны мессеж болон алдааны log бүртгэл зэргээс нь сэжүүр олж аваад түүгээр түлхүүр үг хийн интернэт хайлтын системүүдээс хайхад ихэнхи ийм асуудлыг шийдвэрлэчихдэг туршлага бий шүү. Нээлттэй Эхийн Програмуудыг маш түгээмэл ашигладаг тул эдгээрийн талаарх мэдээлэл ч нээлттэйгээр түгээмэл байдаг.

3. Тухайн програм, технологийн албан ёсны вебсайтаас холбогдолтой мэдээлэл, гарц хайх
За дараагийн шатанд энэ нь зөвхөн таньд л тохиолдсон эсвэл маш ховор тохиолдол бол та албан ёсны вебсайтаас нь энэ талаар ямар нэгэн зүйл бичигдэж байсан эсэхийг нягтлах хэрэгтэй. Эсвэл тухайн програмыг түгээгч баг, холбогдох хаяг руу имэйл бичин харилцах нь дээр боловуу.

4. Илүү туршлагатай нэгнээс зөвлөгөө авах
Уг програмыг удаан хэрэглэсэн мөн илүү туршлага бүхий нэгнээс энэ талаар асууж лавла. Имэйл лист, имэйл груп, веб форумууд гээд Линукс хэрэглэгчид дэлхий даяар байгаа ба таньд дуртайя хэлж өгөх болно.

5. Тухайн програм, технологийн талаар илүү дэлгэрэнгүй, нарийн мэдлэг олж авах, унших
Мөн ихэнхи алдаа болон програм ажиллахгүй байгаа зэрэг нь тухайн програм болон технологийн талаар мэдлэг нимгэн болон шаардлагатай нарийн зүйлсийг ойлгоогүйгээс бас ихэвчлэн гардаг. O'Reilly энэ талаар бараг гаргаагүй ном байхгүй байх. Боломжтой бол номыг нь hard copy эсвэл soft copy -гоор нь олж авч уншвал нилээд зүйлсийг мэдэж авна.

6. Үүнийг орлуулж болох бололцоо байгаа эсэхийг хайх, олж авах
За хамгийн сүүлд тухайн програмыг дээрхи бүх аргаар оролдоод суулгаж дийлэхгүй бол зүгээр л орхичих. Болохгүй бол заавал амжуулах гэж зүтгэж өөрийгөө зовоосноос үүнтэй адилхан ажиллагаатай мөртлөө өөр програм ч зөндөө бий шүү дээ. Бид чинь Нээлтэй Эх бүхий Програм Хангамжийн ертөнцөд амьдарч байна. Өөр нэгийг хайн олж аваад л дахиад эхнээс нь үзнэ дээ. Харин дараа нь та үүнийг орлуулсны дараа өөр тест систем дээр ч юмуу тухтайхан шиг дахиад туршаад үзэж болно шүү дээ.

Мөн та анхлан линукс системийг суралцаж байгаа бол Линукс системболон Нээлттэй Эхийн Програм Хангамжийн талаар эхлээд сайн уншиж, суралцах шаардлагатай юм. Үлгэрлэвэл боксын бээлий гэж юу болох дэвжээ болон тулааны техник зэргийг сайн мэдээгүй байж боксын тулаанд орохтой агаар нэгэн. Иймээс эхлээд шаардлагатай мэдлэг, чадварыг олж ав, харин бусад нарийн мэдлэг, туршлагыг явцын дунд олж авах хэрэгтэй. Үүний тулд өдөр бүр шинийг уншиж, мэдэж, туршиж байгтун. Өдөр бүрийн энэ хөдөлмөр, хичээл таныг нэг л өдөр илүү түвшинд аваачсаныг мэдрэх болно.

Таны амжилт бүтээл арвиг байг!


цааш унших...

Monday, November 06, 2006

iPodLinux - Hacking iPod


Сүүлийн үед embedded system тэр дундаа embedded linux миний сонирхолыг ихээр татах болсон л доо. Солонгост сурдаг найз Тэгшбаяр маань энэ чиглэлээр нилээд туршлагажиж байгаа ба намайг бас "уруу татсан" нь энэ. ;) Бид хоёр хааяа мөрөөддөг л дөө. Жижигхэн хөөрхөн ч нилээд супер маягийн халаасны Монгол-Гадаад хэлний тольбичиг, ярианы дэвтэр бүхий электрон төхөөрөмж хийх талаар.. Дээр нь нэмээд медиа тоглуулагч, зургын цомог, фм радио хүлээн авагч энэ тэртэй гээд л... За тэгээд хийх юм, хэрэгцээ зөндөө зөндөө...

Тэгээд яг хийх гэхээр өнөөх л ядуу буурай орны зовлонд унана даа. Наад зах нь л Development Board, Flash ROM, Tester энэ тэрээс өгсүүлээд л тоног төхөөрөмж байхгүй. Бүгдийг гаднаас авна гэвэл нилээд хөөрхөн төсөв гарчих жишээтэй. Байхгүйнээ :(

Гэхдээ хүний сонирхол татагдаад, тэмүүлээд ирвэл ямар нэгэн байдлаар хийж үзэж байж л санаа амарна. (Дээр үед "шилэн форд" чаачаантай адил машинийг нэг монгол дархан дан модоор хийчихсэн гэсэн яриа ч байдаг шүү)

"Чанга гар" (hackers/crackers)-ууд маань аль хэдийнэ л нөгөө үйлдвэрлэгдэж гарсан хэдэн төхөөрөмж, бүтээгдэхүүнийг өөрийн хүссэнээр өөрчилөх, нэмэх, сайжруулах зүйлийг гаргачихдаг хойно, Apple iPod mp3 тоглуулагч төхөөрөмж дээр µCLinux port-лж орхижээ.

Хэрвээ таньд хуучин ч юмуу iPod байдаг ба linux систем ашиглах дуртай, тэгээд дээр нь өөрийн гэсэн mp3 тоглуулагч хиймээр байвал iPodLinux татаж аваад хакдаад үз.

Ер нь инженер сэтгэлгээтэй хүмүүс аль хүүхэд байхаасаа л тоглоомоо задлаад үзчихдэг, яаж ажилладгыг ухдаг сониуч зантай байдаг. Энэ бол тийм л зангийн хэлтэрхий гэмээр юмуу даа. За ингээд би ч бас нэг хуучин iPod-ыг customized own mp3/media player, game box болголоо.

Happy Hacking iPod!


цааш унших...

Friday, October 27, 2006

Adding additional hard drive in Linux

Linux төрлийн систем анхлан хэрэглэгчид маань сервертээ шинээр hard disk суурилуулах нь ихээхэн түвэгтэй гэж боддог. Windows дээр бол залгачихаад л системээ эхлүүлэхэд өөрөө суурилагдчихсан байдаг шүү дээ. Тэгэхээр энэ удаа шинээр дискээ яаж Линукс системд нэмэх талаар үзэцгээе!

Disk, partition-ны нэрсийн тэмдэглээ

Дискний нэрүүд нь 3 үсгээс тогтох бөгөөд IDE болон SCSI disk drive-ууд тус бүр "hd", "sd" гэсэн 2 үсгээр эхлэдэг. Гурав дахь үсэг нь тухайн дискнийг аль disk controller-ын аль interface болохыг заадаг.

IDE disk drive бол дараах "a"-с "h" хүртэл,
SCSI disk drive бол дараах "a"-с "p" хүртэл байж болно.

Тэгэхээр ихэнхи системд эдгээр 3 дахь үсэг нь дараах хэлбэртэйгээр нэрлэгдсэн байна.

# a болон b - 1 дэх IDE controller-ын Primary interface дэх Master болон Slave disk
# c болон d - 1 дэх IDE controller-ын Secondary interface дэх Master болон Slave disk
# e болон f - 2 дахь IDE controller-ын Primary interface дэх Master болон Slave disk
# g болон h - 2 дахь IDE controller-ын Secondary interface дэх Master болон Slave disk

Нэрний дараачын хэсэг нь тоо байх бөгөөд энэ нь тухайн диск дэхь partition-ы дугаарыг заана. Жишээ нь: hda1, hdb2, sda1, sdd4 гэх мэт

IDE disk drive бол дараах 1-с 16 хүртэл,
SCSI disk drive бол дараах 1-с 15 хүртэл байж болно.

1-4 дугаартай бол primary, extended
5-16 (15) дугаартай бол logical

Өөрийн дискүүд дэх partition-оо харах гэвэл:

# ls /dev/hd*
эсвэл
# ls /dev/sd*

Өгөгдөл агуулсан шинэ диск нэмэх

Эхлээд мэдээж Линукс сервер компьютерээ унтраагаад шинэ хатуу диксээ залгана. Үүний даа системээ эхлүүлээд дараах командыг суперхэрэглэгчээс өгнө:

# ls /proc/ide

Үр дүн нь дараах хэлбэрээр харагдана:

drivers hda@ hdc@ ide0/ ide1/ piix

Бидэнд hdc гэсэн шинэ хатуу диск суурилагджээ гэж үзье:

Одоо уг диск өөртөө partition агуулсан эсэхийг шалгахдаа:

# fdisk -l /dev/hdc

Disk /dev/hdc: 64 heads, 63 sectors, 787 cylinders
Units = cylinders of 4032 * 512 bytes

Device Boot Start End Blocks Id System
/dev/hdc1 * 1 610 1229728+ 83 Linux
/dev/hdc2 611 787 356832 5 Extended
/dev/hdc5 611 787 356800+ c Win95 FAT32 (LBA)

гэсэн үр дүн харагдлаа.

Одоо уг дискний эдгээр partition-уудыг системдээ залгаснаар дээрх мэдээлэлтэй ажиллах боломжтой болно:

# mount /dev/hdc1 /mnt/hdc1
# mount /dev/hdc5 /mnt/hdc5

5 дахь нь Windows системийнх тул та үүнийг файл системийн төрлийн заан залгах шаардлагатай юм:

# umount /mnt/hdc5
# mount -t vfat /dev/hdc5 /mnt/hdc5

Ихэнхи хэрэглэгддэг файл системийн төрлүүд нь:

* msdos - FAT12 and FAT16
* vfat - FAT16 with long file name support, FAT32
* ext2 - primary Linux file system;
* ext3 - compataible with ext2 file system with log support
* reiserfs - new Linux file system with log support

эдгээр бөгөөд үүнээс гадна нилээд файл системүүдтэй Линукс систем ажиллах чадвартай.

Өгөгдөл агуулаагүй шинэ диск нэмэх

Дээрх жишээний hdc диск суурилагдсан гэж үзвэл дараах командыг өгнө:

#fdisk /dev/hdc
Command (m for help): _

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

Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Шинэ дискэнд partition байгаа эсэхийг харахдаа p товчыг дарна:

Command (m for help): p

Disk /dev/hdc: 64 heads, 63 sectors, 787 cylinders
Units = cylinders of 4032 * 512 bytes

Device Boot Start End Blocks Id System

гэвэл уг диск хоосон байна гэсэн үг.

Шинэ partition үүсгэхийн тулд n товчыг дарна:

Command (m for help): n
Command action
e extended
p primary partition (1-4)

Энэ нь primary эсвэл extended төрлийн partition-ны алиныг үүсгэхийн заана. Бид p товч дарж шинэ partition-оо үүсгэнэ.

Үүний дараа partition-ны дугаарыг оруулна:

Partition number (1-4): 1

Уг partition-ны дискны аль цилиндрээс эхлэхийг оруулна:

First cylinder (1-787, default 1):

Using default value 1

Дараа нь уг partition-ны дискний аль цилиндрт төгсөх дугаар эсвэл нийт эзлэх хэмжээг оруулна.
Гэхдээ хэрвээ бид уг дискийг бүхэлд 1 л partition болгох бол шууд Enter товч дарчихад болно:

Last cylinder or +size or +sizeM or +sizeK (1-787, default 787):
Using default value 787

Command (m for help):

За нигээд бид шинэ partition үүсгэчихлээ. Шалгая:

Command (m for help): p

Disk /dev/hdc: 64 heads, 63 sectors, 787 cylinders
Units = cylinders of 4032 * 512 bytes

Device Boot Start End Blocks Id System
/dev/hdc1 1 787 1586560+ 83 Linux

Command (m for help):

Хэрвээ бид дээрхи partition-ыг устгах хэрэг гарвал d товч дараад дугаарыг оруулж өгнө:

Command (m for help): d
Partition number (1-4): 1

Command (m for help

За одоо уг шинэ partition-оо диск рүүгээ хадгалаад гарах хэрэгтэй:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Дискыг форматлах

#mkfs -t ext3 -j /dev/hdc1

mke2fs 1.37 (21-Mar-2005)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
5029888 inodes, 10050657 blocks
502532 blocks (5.00%) reserved for the super user
First data block=0
307 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

Шинэ partition-ыг файлсистем руу залгах

Шинэ хавтас үүсгээд түүнийг шинэ partition-ыг залгая (mounting):

#mkdir /backup
#mount -t ext3 /dev/hdc1 /backup

Нийт файлсистемд агуулагдаж буй partition -ыг харахдаа:

#mount | column -t

Системийг анх эхлэхэд автоматаар залгах

Дараах файлыг текст файл засварлагчаар нээгээд
#vi /etc/fstab

дараах мөрийг нэмнэ:

/dev/hdc1 /backup ext3 defaults 0 0

Төгсгөлд нь үүнийг мэдэж авснаар та Линукс системийн хэрэглээнд нэг алхам урагшиллаа. Амжилт хүсье!


цааш унших...

Friday, October 20, 2006

Secure remote filesystem mounting

Юуны өмнө ойрын үед хийж байгаа ажил үйлс маань маш урагштай байгаа болохоор сэтгэл санаа сайхан байна :)

Миний ажилладаг хэдэн сервер сүлжээгээр хоорондоо зарим файлуудаа share хийх шаардлага гарлаа.
- Эхлээд NFS (Network Filesystem) болгох санаатай нилээд үзлээ, бараг 2 өдөр суугаад нилээд их бэрхшээлтэй учирлаа. Миний ойлгосноор Sun-RPC буюу Remote Procedure Call ашиглаж ажиллаж байх шиг байна. Тиймээс энэ аргыг суулгахад хүндрэлтэй болоод аюул ихтэй гэж үзээд орхилоо.
-Дараа нь алдарт Samba-гаа ашиглахаар шийдлээ. Хоёр өдөр ашигласны эцэст permission problem-оос болоод бас л орхилоо.
-Нилээд олон distributed filesystem технологи, аргыг сонирхсоны эцэст sshfs буюу SecureShell FileSystem -ыг туршиж үзлээ. Эцэст ажиллагаа нь болон суурилуулахад маш энгийн зэрэг нь надад маш их таалагдав. (Сүүлийн үед зорилгодоо хүрч л байвал энгийн хялбар зүйл ашиглахаас ичихээ байсоон)

Товч танилцуулга

Будапештын нэг Linux hacker Miklos Szeredi анх FUSE (Filesystem in USErspace framework) гэж үүсгэсэн ба энэ нь sshfs үүсэх эх үндэс нь болжээ. Энэ FUSE Library нь Linux kernel 2.6.14-оос эхлэн албан ёсоор орсон юм байна. Үүнийг дижитал фотокамеруудын UBS холболт зэрэгт хамгийн их ашигладаг гэж ойлгов. ;)

1. Setup FUSE
Эхлээд FUSE -ээ кернелд модуль хэлбэрээр суулгах шаарлагатай.
2.6.14 кернелээс өмнөх кернелтэй Линус серверт үүнийг эх кодоос нь хөрвүүлж авахаас өөр аргагүй.

FUSE эх кодыг http://fuse.sourceforge.net/sshfs.html сайтаас татаж авах хэрэгтэй.

1.a Татаж авах
wget http://belnet.dl.sourceforge.net/sourceforge/fuse/fuse-2.5.3.tar.gz

1.b Задлая
tar xzf fuse-2.5.3.tar.gz

1.c Суулгах
cd fuse-2.5.3
./configure && make && make install && modprobe fuse

1.d Суусан эсэхийг шалгахдаа
lsmod | grep fuse

2. Setup SSHF

FUSE суусаны дараа SSHFS -ыг бас эх кодоос нь хөрвүүлж суулгах хэрэгтэй болно.

2.a Татаж авах

wget http://puzzle.dl.sourceforge.net/sourceforge/fuse/sshfs-fuse-1.7.tar.gz

2.b Задлах

tar xzf sshfs-fuse-1.7.tar.gz

2.c Суулгах

cd sshfs-fuse-1.7
./configure && make && make install

Санамж: RHEL4 дээр ингэж суулгахад /usr/local/lib дотор суулгаж байсан ба үүний дараа sshfs бүрэн ажиллуулахгүй байсан тул би дараах өөрчлөлтыг нэмэв:

ln -s /usr/local/lib/libfuse.so /usr/lib/libfuse.so
ln -s /usr/local/lib/libfuse.so.2 /usr/lib/libfuse.so.2

Магадгүй миний систем дээр PATH асуудал байсан байж магадгүй)

3. Mounting Remote FileSystem

Одоо ингээд таны системд sshfs суусан тул алсад орших өөр серверийн файл системыг өөрийн локаль систем руу залгая:

sshfs remote_userid@remote_host:/remote_directory local_directory

гэх мэт холбоход болчихно доо.

4. Unmounting Remote FileSystem

fusermount -u local_directory

Ингээд л болчихлоо. Хурдан байгаа биз!


цааш унших...

Wednesday, October 18, 2006

MySQL Master-Master Replication

Юунд хэрэглэх вэ?
Интернэт-д өдөрт л 2 сая орчим вебсайт шинээр мэндэлж байдаг гэж байгаа. Мөн том том мэдээллийн болон олон нийтийн сайтуудад нэр дор хэдэн мянган хэрэглэгчид ордог. Жишээ нь: Yahoo.com вебсайтаар өдөрт 2 сая гаруй хэрэглэгч үйлчилүүлдэг гэж хаа нэгтээгээс уншиж байсан санагдана. Тэгэхлээр ийм их ачаалал даахын тулд вебсерверүүдийг дэлхийгээр нэг тараан байрлуулаад тухайн хэрэглэгчид хамгийн ойр орших серверээс үйлчилгээг үзүүлдэг. Yahoo -д ийм 400 гаруй FreeBSD сервер байдаг гэж g0mb0 (Микомын инженер Ганболд) ахын нийтлэлээс харж байсан шүү.

За манай Монголд маань ч интернэт үйлчилгээ үзүүлдэг томоохон сайтууд олноор бий болох болжээ. Мөн Монголдоо хостинг хийгдсэн сайтууд руу гадаадаас ороход удаан ачаалдаг, эсрэгээр гадаадад хостинг хийгдсэн сайт руу Монголоос ороход удаад байдаг. Манай интернэт медиа үйлчилгээ үзүүлдэг on-air.mn сайтад ч яг ийм шаардлага гараад удаж байгаа юм.
Үүнийг шийдвэрлэхэд энэ мэдээллийн баазыг хувилах буюу mirror хийж болох юм.
Монгол дахь сервер нь дотоодын хэрэглэгчдэд, гадаад дахь сервер нь гадаадаас хандаж буй хэрэглэгчдэд үйлчилгээг үзүүлэх ба уг хоёр сервер өөрсдийн мэдээллийн тухайн агшин бүрт солилцож байхад л боллоо.

Үүнийг яаж хийх талаар энд товч бичиглэе!

MySQL Master-Master Replication

Эхлээд мэдээж Mysql сервер таны 2 сервер тус бүр дээр суусан байх ёстой.

1. Server Names

Master 1/Slave 2 ip: 202.131.2.131

Master 2/Slave 1 ip : 11.11.11.11

гэж бодъё.

2. Setup Master 1

Master1 серверийн /etc/my.cnf файлд дараах өөрчлөлтийг хийнэ.
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
old_passwords=1

log-bin
binlog-do-db= # replication хийгдэх баазын нэр
binlog-ignore-db=mysql # хийгдэхгүй баазын нэрс
binlog-ignore-db=test

server-id=1

[mysql.server]
user=mysql
basedir=/var/lib


[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


3. Create replication slave1 user

Master1 серверийн mysql сервис руу ороод дараах коммандыг өгнө:

mysql> grant replication slave on *.* to 'replication'@11.11.11.11 identified by 'slave';

Mysql сервисыг дахин ачаална:

/etc/init.d/mysqld restart

4. Setup slave1 replication

Slave1 буюу Master2 серверийн /etc/my.cnf файлд дараах өөрчлөлтийг хийнэ:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
old_passwords=1

server-id=2

master-host = 11.11.11.11
master-user = replication
master-password = slave
master-port = 3306

[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

5. Starting slave1 replication

Slave1 буюу Master1 серверийн Mysql сервисыг дахин ачаална:

/etc/init.d/mysqld restart

Slave replication-ыг эхлүүлнэ:

mysql> start slave;
mysql> show slave status\G;

Үүний дараа дараахтай адил үр дүн дэлгэцэнд гарна:

*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 202.131.2.131
Master_User: replica
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: MASTERMYSQL01-bin.000009
Read_Master_Log_Pos: 4
Relay_Log_File: MASTERMYSQL02-relay-bin.000015
Relay_Log_Pos: 3630
Relay_Master_Log_File: MASTERMYSQL01-bin.000009
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 4
Relay_Log_Space: 3630
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 1519187

1 row in set (0.00 sec)

Энд Slave_IO_Running болон Slave_SQL_Running гэсний ард Yes гэсэн байх ёстой.

6. Checking Master replication

Master1 сервер дээр дараах коммандыг өгнө:

mysql> show master status;
+------------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------------+----------+--------------+------------------+
|MysqlMYSQL01-bin.000008 | 410 | adam | |
+------------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

Үүний дараа дээрхтэй адил үр дүн дэлгэц дээр харагдах ёстой.

7. Create Master2 Replication

Slave1 буюу Master2 серверийн /etc/my.cnf файлд дараах өөрчлөлтийг хийнэ:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
server-id=2

master-host = 11.11.11.11
master-user = replication
master-password = slave
master-port = 3306

log-bin
binlog-do-db= # replication хийгдэх баазын нэр

[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

8. Create replication slave2

Slave1 буюу Master2 серверийн Mysql сервист дараах коммандыг өгнө:

mysql> grant replication slave on *.* to 'replication'@202.131.2.131 identified by 'slave2';

9. Setup Slave2 Replication

Slave2 буюу Master1 серверийн /etc/my.cnf файлд дараах өөрчлөлтыг хийнэ:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

log-bin
binlog-do-db= # replication хийгдэх баазын нэр
binlog-ignore-db=mysql # хийгдэхгүй баазын нэрс
binlog-ignore-db=test

server-id=1


# information for becoming slave.
master-host = 202.131.2.131
master-user = replication
master-password = slave2
master-port = 3306

[mysql.server]user=mysqlbasedir=/var/lib

10. Starting Slave2 Replication

Master1, Master2 серверүүдийн mysql сервисүүдийг дахин эхлүүлнэ.

Master1 сервер дээр дараах коммандыг өгнө:

mysql> start slave;

Master2 сервер дээр:

mysql > show master status;

Master1 сервер дээр:

mysql> show slave status\G;

гэсэн комманд өгсөний дараа Master1 дээр

*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 11.11.11.11
Master_User: replica
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: Mysql1MYSQL02-bin.000008
Read_Master_Log_Pos: 410
Relay_Log_File: Mysql1MYSQL01-relay-bin.000008
Relay_Log_Pos: 445
Relay_Master_Log_File: Mysql1MYSQL02-bin.000008
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 410
Relay_Log_Space: 445
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 103799
1 row in set (0.00 sec)

ERROR:
No query specified

гэсэн үр дүн дэлгэц дээр харагдах болно.


цааш унших...

blogger templates | Make Money Online