Thursday, October 22, 2009

Bash use case: Downloading Railscasts

Сүүлийн хэд хоног Rails-ийг нилээд эрчимтэй үзэж байна. Жилийн өмнө нэг ном уншсан, хэргийг нь гаргахгүй байсаар бараг мартаж орхиж. Уул нь бол зөндөө л ном байна, бүгдийг нь ухаад суухаар нэлээд цаг зарах шинжтэй. Харин rubyonrails.org-ийн документац хавиар хэсч яваад, Railscasts хэмээх нээлттэй видео хичээлтэй нэлээдгүй хэрэглүүштэй сайт байдгийг мэдэж авлаа.

Хичээлүүд нь их ойлгомжтой, амьдралтай. Товч бөгөөд тодорхой. Янзтай. Харин вебээр үзэхээр энд тэнд дарж, хуудас лоод хийхийг хүлээж суух нь жаахан залхуу хүрмээр. Болдог бол бүгдийг нь татаж аваад(import into media player list), эхнээс нь дуустал үзэх юмсан. Ер нь хоёр дэлгэцнийхээ нэг дээр нь гаргачихаад, хэрэгтэйг нь тогтосхээд үзээд байвал нь тун догь, цаг хугацааны хувьд хэмнэлттэй ч юм шиг, нэг сумаар хоёр туулай буудах тухай л яриа юм.

Сайтын html кодыг сонжихнээ тун цэгцтэй санагдсан тул жижиг робот бичээд, гүйлгэчихмээр санагдлаа. За ингээд гялс нэг скеч бичээд, жаахан дебагдаж, зүгшрүүлээд бидний робот бэлэн боллоо:

railscast_video_downloader.sh
Энэ скриптийн эх миний git repo дээр бий.


Кодын мөр бүрийг тайлбарлалтгүй байх аа, хараад л ойлгох биз. Гэхдээ скриптийн онцлогоос дурдъя:
  • Бүх видео хичээлийг татна. Хуудас дамжин crawl хийнэ.
  • Татац ямар хавтаст хураагдахыг тохируулах боломжтой. Одоогийнхоор бол скрипт байгаа газарт 'movies' хавтас үүсгээд, түүний дотор цуглуулна.
  • Татах хурдыг тохируулна. 20K/s гээд хязгаарласан тохиолдолд хавь орчиндоо балаг тарихгүй.
  • Таталт хооронд бага зэрэг амсхийнэ. Серверт тустай байж болох юм.
  • Татсан файлыг дахин татахгүй. Харин дутууг зогссон газраас нь үргэлжлүүлнэ. Тийм болохоор асааж, унтрааж, хэдэн өдөр дамнуулан ажиллуулсан ч болох нь!
За ингээд хичээлээ үзье:

Татаад авчихсан болохоор гэрийн интернэт удаан байх нь эрдэм номд шимтэх ариун үйлсэд саад болж үл чадмой ;)

Видео нь чанартай, бичлэг сайтай юм гээч! Өөр, өөрийн онцлогтой 180 хичээл байна. Сайхаан!

Тэмдэглэл:
Очко багшийн бичсэн "Ruby use case : Downloading Монголын Нууц Товчоо"-г сонирхоорой. Богинохон, цэгцтэй програм бий.

Линукс - хөгжүүлэлт хийхэд нэн таатай орчин. Хийх ёстой зүйлээ юунаас ч илүү хийх олон жижиг програмын цуглуулга. Эдгээрийг өөр хооронд нь угсарч, залгаад нилээд төвөгтэй ажиллагааг тун амархан шийдчихнэ. Бүтээмжийг их өргөнө. Юникс философи гэж тусдаа лут сонирхолтой сэдэв бий. Энэ талаар пост бичихээр төлөвлөөд, материал цуглуулж байна.

4 comments:

Эрдэнэпүрэв said...

Үнэн тасархай. Гоё пост бичсэн байна.

Ochko said...

Хэрэгтэй юм хийжээ. Railscast гоё шүү. Би бас хэрэгтэй гэснээ татаж аваад хадгалчихдаг юм. Амжилт хүсье!

Battur Sanchin said...

Ер нь бол wget ашиглаад нэг мөр кодоор дээрх кастуудыг татах боломжтой юм билээ. wget маань өөртөө crawl хийх функцтай юм байна.

С.Мягмарсүрэн said...

Гоё пост байна аа.Иймэрхүү зүйл хийж үзмээр сэтгэгдэл төрж байна.