RubyConfLT 2009

RubyConfLT 2009 !

Programuoji? Programuoji “web’ui”? Programuoji, tačiau programavimas nesijaučia “fun”? Ko gero tau reikia susipažinti su Ruby, gana neseniai išpopuliarėjusi kalba, kuri tapo mūsų kasdienybe ir mes norime pasidalinti savo žiniomis su jumis. Bandysime apžvelgti Ruby ir Rails pasaulio naujoves bei ekosistemą, o taipogi aptarsime visuomet aktualias temas: greitaveiką, “skalabilitą” (scalability) ir testų rašymą. Laukiami ne vien “web developeriai”, tačiau ir žmonės norintys susipažinti su kalba, jos ideologija ir principais, stovinčiais už jos.

Konferencijos programa:

  • Ruby 1.9 (Eimantas Vaičiūnas)
    Neseniai išleista stabili Ruby 1.9 versija atnešė nemažai pakeitimų. Vienas iš didžiausių buvo interpretatoriaus pakeitimas iš MRI (Matz Ruby Interpreter, originalaus Ruby interpretatoriaus) į YARV (Yet Another Ruby VM). Aptarsime šį perėjimą, jo naudą, bei kitas Ruby 1.9 naujoves.
  • Rails 2.3 & 3 (Artūras Šlajus)
    Rails – nepaliaujamai besivystantis projektas, į kurį suplaukia patobulinimai sukurti viso pasaulio programuotojų. Papasakosime kas naujo neseniai išleistoje 2.3 versijoje, bei kokios perspektyvos laukia Rails 3 versijoje, kurioje bus įlietas MERB karkasas. MERB buvo sukurtas, jog pašalintų Rails trūkumus – monolitiškumą, saugaus gijų palaikymo nebuvimą (thread safety) ir kitką. Rails ir MERB suliejimas leis turėti geriausius dalykus iš abiejų pasaulių.
  • Git versijų kontrolės sistema (Artūras Šlajus)
    Git buvo parašytas valdyti Linux kernelio išeities kodą, tačiau Ruby bendruomenė greitai pamatė jo privalumus. Git yra paskirstyta (distributed), greita ir multiplatforminė versijų kontrolės sistema. Kalbėsime apie jos vidinę struktūrą, naudojimą, palyginsime su Subversion ir kokia Git reikšmė Ruby bendruomenėje.
  • Ruby profiliavimas ir greitaveikos testavimas (Eimantas Vaičiūnas)
    Užklausos pradėjo stabdyti? Procesoriaus apkrovimas viršijo proto ribas? Kažkur dingo visa atmintis? Gal pats laikas optimizuoti kodą? Aiškinsimės kaip tai padaryti.
  • Scaling Rails (Saulius Grigaitis)
    Kad ir kaip beoptimizuotum projektą ar kokį galingą serverį benupirktum, galų gale ateis toks laikas, kai vienas serveris projekto jau nebepavilks. Tad ką daryti? Ogi “scalintis”!
  • Cucumber (Saulius Grigaitis)
    Testai yra gerai, testai, kuriuos supranta klientas, yra dar geriau. Cucumber – karkasas, leidžiantis testus aprašyti natūralia kalba. Žiūrėsime ką daryti, jog tai, ką suprantat jūs ir klientas, suprastų ir Ruby.

Konferencijos pradžia: Balandžio 19 diena, 10:00

Kaina: Nemokama

Vieta: Studentų g. 48a-323, Kaunas

Registracija čia

Darbas už 14-40 tūkstančių/mėn.

money.jpgDirbant laisvai samdomu darbuotoju (netikes angliško žodžio freelancer vertimas) tenka susidurti su įvairiais klientais. Pasitaiko, kad išsiaiškini kliento reikmes, aptari jo (dagiau ar mažiau logišką) verslo modelį, įgyvendinimo strategija. Tačiau pradedant kalbėti apie kainą supranti, kad klientas tavo darbą vertina žemiau už nekvalifikuoto statybininko.

Nereikėtu sumenkinti savo ambicijų: 14-40 tūkstančių/mėn. su trupučiu žinių ir sėkmės yra realybė. Taip – ši pozicija yra San Francisco (JAV), taip – reikia mokėti anglų kalbą, taip – reikia būti stipria bei įdomia asmenybe. Tačiau tokie pasiūlymai ryškiai parodo, kad norint padoriai užsidirbti nebūtina 80 darbo valandų savaitę praleisti ofise rašant C++ kodą.

Nenuvertinkite savęs!

Image courtesy of flickr

RubyScript – ruby skriptai naršyklėje

RubyScript

Atsirado (labai eksperimentinė) galimybė paleisti Ruby skriptus naršyklėje tokiu būdu, kaip yra leidžiami JavaScript arba VBScript. Demo galima rasti čia.

Belieka tik pasvajoti, kad po kokių 10-15 metų populiariausios naršyklės pradėtu palaikyti šiuos skriptus “out of the box” =)

irb tab completion (windows)

Tam kad windows’ose irb pradėtu veikti tab completion reikia į irb.bat (esančio ruby/bin direktorijoje) įdėti eilutę

[code]

require “irb/completion”

[/code]

Ruby vs. PHP našumas

Pastaruoju metu vis girdžiu klausimą dėl Ruby našumo. Ruby ir PHP (bei kitų programavimo kalbų) našumo palyginimus galima rasti čia.

Ruby

Pasak WikipediosRuby – interpretuojama programavimo kalba greitam ir lengvam objektiškai orientuotam programavimui. […] Tai paprasta, mobili ir lengvai plečiama kalba.”

Mmm… “lengvas objektiškai orientuotas programavimas”. Skamba viliojančiai =)

Iš pradžių klausimai į kuriuos reikia atsakyti: taip, Ruby veikia Windows platformoje. Netgi daugiau: Ruby puikiai veikia visose pagrindinėse operacinėse sistemose: Windows, Linux (Unix), MacOs, BeOs, OS/2 ir t.t.

Ruby yra interpretuojama programavimo kalba, o tai reiškia, kad kaip ir daugelis kitų kalbų (Python, Perl, Php, *.bat bylos =)) Ruby kodas nėra kompiliuojamas ir jį paleidžia interpretatorius.

Ruby yra objektiškai-orientuota programavimo kalba: jei tokiose kalbose kaip Python’as arba Java yra objektų “pakaitalų”, tai Ruby faktiškai yra pilnai objektiškai-orientuota (objektiškumas ir buvo viena iš šios kalbos parašymo priežasčių).

Taip prieiname prie sintaksės. Čia norėčiau papasakoti trumpą istoriją:

Man asmeniškai keletą metų teko dirbti su Python’u. Dalinai to reikalavo darbdavys (pagrindinis programavimas įmonėje vyko Python kalba), dalinai tai buvo mano “programming language of choice”. Visą tą laiką lyg ir žinojau, kad egzistuoja tokia Ruby programavimo kalba, kuri yra labiau objektiškai-orientuota bei galingesnė nei Python’as, jaunesnė, šviežesnė, tačiau vis numodavau ranką, manydamas kad kalba yra pernelyg nebrandi, turi nepakankamai dokumentacijos, yra per mažai naudojama ir t.t.

Taip maniau iki tol, kol Slashdot’e ne pamačiau vis dažnėjančių įrašų apie Ruby on Rails. Tada pradėjau nagrinėti šią programavimo kalbą. Jaučiausi keistai: iš pradžių (paviršutiniškai žiūrint Ruby sintaksė yra panaši į Python’o sintaksę) nebuvo intuityviai aišku kodėl reikia visur prirašinėti “end”, bei kodėl nebūtina sąlygose rašyti “:”, tačiau palaipsniui pripratau (dabar (kartais) dirbant su Python’u keista kodėl reikia naudoti toki griežtą “whitespace’a”, bei kodėl nereikia prirašyti “end” sąlygos gale =)). Greitai priėjau “closures” (prireikė laiko perprasti šį principą), bei kitas įdomias “savybes” (bet apie jas vėliau).

Su laiku programuojant Ruby augo mano entuziazmas, ir nusprendžiau juo pasidalinti su vienu iš bendradarbiu (mano manymu labiau patyrusiu už mane programuotoju). Po kiek laiko jis man atsakė, kad jam Ruby “primena Japonų kalbą”. Būtent taip ir pasakė =).

Aš manau, jog tai geriausias apibūdinimas (kaip perkeltine taip ir tiesiogine prasme). Iš pažiūros paprasta: vienas hieroglifas – viena reikšmė (nereikia rašyti žodžio, kuris susideda iš raidžių), tačiau visgi sunki/kitokia/nesuprantama (nes Japonų =)), o po kiek laiko, įpratus, labai galinga ir produktyvi.

Tikiuosi sužadinau Jūsų apetitą bei atsakiau į kelis klausimus. Jei taip tai parsisiųskite Ruby ir išbandykite patys.

P.S. Tai mano pirmas įrašas į šį blogą. Jei turite klausymų / pageidavimų / pastabų – drąsiai rašykite komentarus.