Monthly Archives: March 2010

Ruby/Rails workshop’as #4

Media_httpemptydotcom_wmywe

Kartu su kolega dar prieš Naujus nutarėm paorganizuoti tokį neformalų nuolat vykstantį įvykį – workshopą Ruby/Rails tematika. Idėja labai paprasta – susirenkam kartą per kelias savaites, kas nori tas pristato kokią nors temą, kiti pamokyti pakodinam, padiskutuojam, žodžiu atvirai dalinamės know how ir kitu gėriu. Aišku, afterparty ir visokie ten flame wars su pythonistais tai čia pagal nutylėjimą ;-) Juokauju. Bet ne dėl afterparty.Keliskart “išbandę” tokią idėją su kursiokais, draugais, nusprendėm, kad nėr čia ko sėdėti užsidarius ir nuo 3-ojo workshopo, kuris mano galva pavyko tikrai neprastai (kaip ir visi iki tol!), kviečiame prisijungti visus norinčius. Šį šeštadienį organizuojame #4 workshopą, taigi ką domina Ruby/Rails tematika, nori paklausyti, pasidalinti, sužinoti ir/ar susipažinti – esat labai laukiami.Veiksmas vyks MIF’e, šį šeštadienį 14:00. Visa informacija, temos, dalyvių registracija ir kiti privalomi formalumai – workshops.emptydot.comŽinai kam būtų įdomu? Persiųsk šią informaciją!

Pavasarinis eismas

Media_httpemptydotcom_qcjrr

Vos tik aptirpo sniegas šalikelėse, prasidėjo siaubas keliuose. Gal per riebiai pasakyta, tačiau toks įspūdis liko pirmosiomis tikrojo pavasario dienomis padalyvavus eisme. Atrodo, lyg ereliai būtų gavę starto signalą pradėti lenktynes su beprotybe.Man iš dalies patinka žiemiškos eismo sąlygos, nes daugelis dėl savo sveikatos ar geležinio turto saugojimo juda kiek atsargiau, atrodo ir pagarbos kelyje mažumą daugiau. Deja, tas laikas baigėsi ir vėl stebina “šaunuoliai” keičiantys juostas triskart greičiau nei spėja tingiai pajunginėti posūkius. Ir krečiantys kitas smulkias išdaigas, nuo kurių telieka tik šaltą prakaitą nusivalyt.Tikiuosi, kad pirmoji erelizmo banga kiek atslūgs, kol į kelią pradės lysti pirmieji dviratininkai.

Lietuvos policija primena 10 elementariausių mandagaus elgesio kelyje taisyklių:1. Vairuok atsakingai.2. Išlik ramus, nesileisk supykdomas.3. Su šypsena užleisk kelią, o užleistas – padėkok.4. Be reikalo nenaudok garsinio ar žibintų šviesos signalo.5. Nestatyk automobilio neįgaliesiems skirtose vietose.6. Gerbk pėsčiuosius.7. Nevairuok neblaivus.8. Vairuodamas nekalbėk mobiliuoju telefonu, jei neturi laisvų rankų įrangos.9. Prižiūrėk automobilį, kad jis būtų tvarkingas techniškai.10. Nešiukšlink (neteršk) aplinkos.(via)

Venkite Date (Date vs Time battle)

Kalbant apie Ruby ir datos parsinimą. Jei tik įmanoma (o tai padaryti galima visada), venkite Date objekto, nes jis labai lėtas. Jeigu aktyviai dirbate su datomis (tarkime, kokia nors su kalendoriumi reikalų turinti aplikacija) tai išgelbės daug vargo valandų aiškinantis kodėl čia viskas taip lėta.Dažniausias atvejis turbūt yra “parse” metodas. “Date.parse(str)” keiskite į “str.to_date”. Tiesa, šitas galioja tik ten, kur requirintas “active_support” gemsas (to_date metodas), tačiau jeigu rašote ne Rails aplikaciją, rekomenduoju iš jų pasiskolinti šitą String extesioną.Argumentai?

require 'rubygems'require 'benchmark'require 'active_support'n = 10_000Benchmark.bm do |x|  x.report("Date parse:") do    n.times do      Date.parse("2000-01-01")    end  end  x.report("Alternative parse:") do    n.times do      "2000-01-01".to_date    end  endend

Linux Mint, ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux] @ Intel(R) Pentium(R) 4 CPU 2.66GHz:

$ ruby date_parse_benchmark.rb                     user     system      total        realDate parse:          5.560000   0.590000   6.150000 (  6.379308)Alternative parse:  2.880000   0.240000   3.120000 (  3.158638)

Dukart!Ir dar: argumentas eiti link Ruby 1.9 (ruby 1.9.1 p378 w rvm):

$ ruby date_parse_benchmark.rb                      user     system      total        realDate parse:           2.630000   0.070000   2.700000 (  2.755911)Alternative parse:  1.480000   0.010000   1.490000 (  1.498565)

Taigi jei taip nutiktų, kad pabėgtumėt iš Date.parse su ruby 1.8.7 į to_date su 1.9.1, šioje vietoje paspartėsite ~4-5 kartus!

Programų sistemos. 7 semestras

Media_httpemptydotcom_xeqch

Laikas apšnekėti kas gero ir blogo užklupo mus, programų sistemų studentus, paskutiniame semestre, kai dar “rimtai” vyksta paskaitos*.Kaip visada, visų pirma apie gerus dalykus. Kur tokie kursai kaip šiemet buvo ankščiau? Konkrečiai kalbu apie “Programų kūrimo procesą“, “Informacinių sistemų auditą” ir “Programų sistemų projektų ir kokybės valdymą“. Pagaliau kažkas pakilo į aukštesnį lygį procesų atžvilgiu ir papasakojo kaip realiai vyksta/turėtų vykti darbas. Kalbame ne apie tai, kaip turėtų pavadinta klasė, rasti optimaliausią algoritmą, o apie tai, kaip funkcionuoja visas tas organizmas, kurio gal tik 1/4 laiko sąnaudtų vyksta toks tiesioginis kodinimas, apie kurį viena ar kita prasme daugiausiai ir porino visus tuos metus. Toks žvilgsnis visai iš kitos pusės buvo ir labai įdomus, ir labai naudingas – galėčiau tokių bent porą semestrų klausyti. Tiesa “Programų sistemų projektų ir kokybės valdymo” paskaitos galėjo būti ir išsamesnės, tačiau likusių dviejų iš šios trijulės vertėjo nepraleist nė vienos paskaitos.Taip pat labai naudingas buvo ir informatikos teisės kursas, nes dėstė teisininkas praktikas ir viską galėdavom išsiaiškinti per gausybę pavyzdžių. Daug naudingos informacijos apie el. komercijos, el. dokumentų teisinį reguliavimą, autorių teises ir domenų registravimo ir perėmimo reikalus. Žodžiu, žiauriai naudinga, tik gaila paskaitos laikas papuolė labai nedėkingas…Loginis programavimas buvo įdomi patirtis, visai kitas požiūris į tas pačias problemas. Neįtikėtina, kaip kartais visai netrivialias užduotis galima išspręsti 2-3 eilutėm rekursyvaus prologo kodo ;-)Bioinformatiką vertinčiau 50/50 – dalis kurso buvo labai įdomu, o dalis apie visai neaktualias temas. Kam programų sistemų inžineriams 4 kurse po 3 paskaitas iki visiško detalumo dėstyti kaip veikia koks nors genų lyginimo algoritmas? Vietoj to galėjo išmokyti kaip realiai naudotis tais galingais prieinamais įrankiais, daugiau dėmesio skirti praktinėms užduotims ar jų paruošimui. Visgi dalis kurso buvo įdomus, vertingas intro į platų bioinformatikos pasaulį.Na ir liko šio semestro ir apskritai MIF’o gėda – programų sistemų testavimas. Dėstytojo tik kartais galima buvo sulaukti paskaitose, pusvalandžio vėlavimas – skiriamasis bruožas, nuoširdus nesidomėjimas užduotais darbais, žodžiu, tikras laiko gaišimas ir pinigų švaistymas. Garantuoju, kad MIF’o vadovybė situaciją žino, nes ji kartojasi jau ne pirmus metus, bet vistiek jokie pokyčiai nevyksta.Susumuojant, manau tai buvo pats įdomiausias ir kiečiausias (dėstytojų ir dalykų atžvilgiu) semestras! Tiesa, “informacinių sistemų auditas” ir “loginis programavimas” buvo pasirenkamieji dalykai, tai kaip sekėsi jiems, gal kas pasidalins komentaruose? ;-)* – paskutiniame semestre yra tik 1 paskaita, bakalaurinis darbas ir profesinė praktika.Kiti įrašai apie programų sistemų semestrus:6 semestras5 semestras 4 semestras3 semestras <gap>1 semestras