Tag Archives: Atviras kodas

Grąža atviram kodui

Media_httpemptydotcom_icdhh

Daugelis mūsų su atviro kodo produktais susiduriam kiekvieną dieną, net to nežinodami. Dalis žmonių, tokių kaip aš, pasinaudodami tokia laisve užsidirbame sau duoną. Atviro kodo įrankių, programų ir bibliotekų yra įvairiausių – nuo taip ir likusių alfa stadijoje iki išbaigtų, masinį pripažinimą ir naudojimą pasiekusių grandų kaip Open Office, WordPress, Firefox, Android ir t.t. Aišku, už tokių žinomų vardų stovi rimti žaidėjai, tačiau aplinkui taip pat pilna smulkių atviro kodo “pagalbininkų”. Ir kad visa tai pasiektų mūsų kompiuterius ir lengvintų mūsų gyvenimą nemokamai, autoriai neatlygintinai įdeda daug savo laisvo laiko ir energijos. Manau, kad intensyviai naudodamiesi ir palaikydami atviro kodo idėją galime bent šiek tiek jaustis skolingi bendruomenei.Taigi kviečiu visus bent šiek tiek prisidėti prie atviro kodo vystymo. Kaip tai padaryti? Pasinaudosiu Ryan Bates pasiūlymų sąrašu, pritaikytu Rails programuotojams, bet iš esmės tinkančiu visiems:

  • Peržiūrėkite dažniausiai naudojamus įrankius
  • Jei galite, padėkite kiekvienam:
    • Paaukodami (making a donation)
    • Ištaisydami klaidą (fixing a bug)
    • Papildydami dokumentaciją (wiki, howto, …)
    • Ar paprasčiausiai padėkodami autoriams

Nelikime pasyvūs ir prisidėkime prie atviro kodo gerinimo!

Neskausmingas CSV su Rails

Ko gero nėra nė vieno programuotojo, per savo praktiką nesusidūrusio su duomenų “atidavimu” CSV formatu. Norėtųsi šią gan dažną užduotį padaryti švariai ir elegantiškai (Rails-way). Deja, Microsoft’o Excelis nėra toks draugiškas kaip OpenOffice (CSV atžvilgiu) ir ne visai draugauja su įprastais būdais atvaizduoti lietuviškus simbolius. Taigi trumpai pristatau savo būdą kaip paduoti vartotojui CSV patogiai mums ir tinkamai suderintą galutiniam vartotojui.Siūlau naudotis csv_builder įskiepiu, kurį aš šiek tiek papildžiau. Kadangi autorius kol kas neatsako į mano pull request, kviečiu naudotis mano kopija:

script/plugin install git://github.com/vidmantas/csv_builder.git

Arba parsisiųskit iš Github ir įkelkit į vendor/plugins direktoriją.Pluginas leidžia naudotis CSV formatui skirtu builderiu ir atsakyti į CSV formato užklausas. Tarkime, kad turime action’ą “index”:

def index  @users = User.all  respond_to |format| do    format.html    format.csv {      @output_encoding = 'UTF-16'      @csv_options = { :col_sep => "t" }    }  endend

Tokie nustatymai leidžia Exceliui suprasti lietuviškus simbolius ir teisingai interpretuoja atskirus įrašus. Tokį failą atidarinėjant su OpenOffice tereikia pasirinkti separatorių “Tab”.Tada šalia index.html.erb sukuriame failą index.csv.csvbuilder ir jame į csv kintamajį sudedame reikalingus duomenis:

csv Ir, be abejo, dar reikėtų apie tokią galimybę pranešti vartotojui:
link_to "Save as CSV", users_path(:format => :csv)

Sveikinu, viskas!Detalės:Šiam sprendimui reikia turėti įdiegtus fastercsv gems’ą (gem install fastercsv) ir veikiančią Iconv instaliaciją. @csv_options reikšmė yra FasterCSV#new metodui perduodami nustatymai. Apie kitus nustatymus žr. README. Tinka Rails >= 2.1P.S.: būčiau dėkingas, jeigu kas nors pasiūlytumėte kaip tokį plugin’ą testuoti ;-)

Ruby 1.9 – iššūkis bendruomenei

Media_httpemptydotcom_nsaqt

Pirma stabili Ruby 1.9 versija pasirodė sausio pabaigoje. Ši versija atsinešė daug ilgai lauktų naujovių ir pataisymų, tarp kurių žinomiausi ko gero yra spartos gerinimas, native thread’ai, m17n (multiling… tas ilgas žodis). Iš esmės matz atliko savo dalį į pasaulį paleisdamas šią Ruby versiją be trūkumų, dėl kurių į šios kalbos pusę skriejo daugiausiai kritikos. Dabar laikas savo darbo imtis mums kuo greičiau pereinant prie masinio 1.9 versijos naudojimo.

Kodėl tai svarbu? Kalbos patrauklumas naujokams ir patyrusiems – ištaisytos didžiausios Ruby kamuojančios bėdos. Turėti dvi nesuderinamas versijas šalia – nemaža problema, ypač kodo veikimo aplinkos prasme ir besimokančių žmonių atveju. Galime pjauti visą susigulėjusį blogį iš pat šaknų arba dar ilgai tąsytis su 2003 metais pasirodžiusia 1.8.Viena bėda ta, kad Ruby bendruomenėje sklando gandas, kad 1.9 yra tik “preview” kada nors pasirodysiančiai 2.0. Aš taip pat tikėjau šita nuomone beveik iki pat 1.9.1 išleidimo. Tai – klaidingas požiūris – 1.9.1 yra normali stabili versija – svarbu tai suprasti visiems, programuojantiems šia puikia kalba. Nelyginis skaičius antroje pozicijoje nereiškia, kad tai development & testing versija.Iš savo “senų dienų su PHP” pamenu kiek buvo vargo su PHP perėjimu iš, sakykim, nekokios 4 versijos prie 5. Uždaras ratas, kai serveriuose niekas naujosios nediegia, nes nedaug kas programuoja, o niekas neprogramuoja, nes serveriuose nepalaiko. Šiuo atveju turime galimybę apsivalyti ir vienu ar keliais žingsniais persikelti į aukštesnį lygį. “Zen and the Art of Programming” perėjimą prie 1.9 vadina didžiausiu iššūkiu bendruomenei 2009-aisiais.Tai ką daryti? Susipažinti su pakeitimais, įsidiegti ir padėti gems’ų ir plugin’ų autoriams kilstelti savo projektų compability iki 1.9 versijos. Pranešti apie veikiančius ir neveikiančius paketus. Neskleisti gandų, kad 1.9 – tik testavimo versija :-)Tikiuosi, kad metų pabaigoje jau bus galima skaičiuoti viščiukus – sėkmingai perkeltus projektus į Ruby 1.9.P.S.: RubyConfLT 2009 – balandžio 19 Kaune! Tarp temų – ir apie 1.9.

Persikraustymas: Windows –> Linux OpenSUSE 11.1 (& OS X)

Media_httpemptydotcom_dfbti

Prieš mėnesį persikrausčiau: Windows –> Linux.  Ką gi, kažkada ketinau išmesti lauk visą nelegalų softą ir pradėti nuo OS –  ir štai, pagal visus dėsnius –  realizavosi :]Pagrindiniai gana ilgo delsimo tai daryti argumentai buvo:

  • tai namų kompiuteris, kuriuo dažniausiai naudojasi žmona – jai reikia paprastai, įprastai ir aiškiai.  Linux įvaizdis – programerių OS, kur reikia “kažką” žinoti, mokėti naudotis;
  • kompiuteriu tvarkau  fotografijas – neteko girdėti apie tvarkingą Photoshop’ą linuxuose, o kur dar raw apdorojimo programos ir panašiai. Taip, yra Gimp, bet kelis kartus pabandęs supratau, kad kantrybė “jau nebe ta”, užtruks daug laiko – nebesimokysiu.

Kas liečia pirmąją priežastį – išsisprendė lengvai. Open SUSE 11.1 – graži, suprantama ir patogi. Vidmantas (ačiū) instaliavo, sutvarkė, ir iš esmės problemų dabar nekyla.  Šiaip esu naujovių mėgėjas, tad man net ir įdomiau kai kažkas nauja, azartas tik kyla. Tačiau žmonai teko pažadėti, kad viskas bus taip, kaip buvę. Ir taip, vizualiai viskas, kas kasdien naudojama – direktorijos bei  Firefox su tuo pačiu pluginų rinkiniu – stojo į savo vietą. Pirmas įspūdis – jei OpenSUSE dar savyje turėtų visus reikalingus “draiverius”, kad gerai veiktų CD, DVD, bei turėtų pačių patogiausių kasdien naudojamų programų rinkinuką – būtų tiesiog idealu. Šiaip kartu su OS instaliuojant  “keliauja” begalė naudingų programų, tačiau visgi teko pasirankioti “savų” – tokių kaip VLC, ar ieškotis rekomendacijų audio failų grotuvui.  Taip pat išliko viena neišsprendžiama problema – matytumėt kaip išraipo Euro Pass CV formą OpenOffice  – tačiau čia Linux niekuo dėti – čia korporacijų reikalai, kai kažkodėl sukuriami failai būtent Windowsų vartotojams, kai visiškai nesunku padaryti prieinamą visiems (yra begalė tokių pavyzdžių su valstybinių dokumentų kūrimu tik Windowsams ir IE).Antras įspūdis – o taip! Kam mokėti už Windows, kai yra jau tiek pažengę Linux. Įmonėje diegčiau Linux – vartotojui paprasta, užtektų trumpo apmokymo “nesupratingiems”, pigu instaliavimo prasme, o kas dėl priežiūros – na, bus matyti ateityje.Dėl nuotraukų tvarkymo problemos – aš jos ir nesprendžiau. Išsisprendė pati – prireikus ir pasitaikius puikiai galimybei visa bazė iškeliavo į  MacBook.Malooonūs du dalykai – nebeturiu nelegalios OS, ir tai, kad apskritai nebegadinu bervų su Microsoft.Gražios dienos, Egidijus

Keletas gerų žodžių apie Arch Linux

Media_httpemptydotcom_ymfat

Šį savaitgalį brendo pribrendo Įvykis – asmeninio kompiuterio reforma (beveik kaip mokesčių reforma, tik aš savo darbiniam arkliukui reikalus lengvinau, o ne sunkinau). Viskas dabar čia taip, kaip turi būti – operacinė sistema ir svarbiausi duomenys ir media – atskirai.Ir taip jau nusiklostė situacija, kad teko atsisveikinti su openSUSE. Viskas su šia tikrai user-friendly sistema buvo gerai, išskyrus mano žinias peržengiančius spyriojimosis su keliais Ruby projektėliais (ir dar tai, kad jau stable versijų paketų pavidalų reikia taip ilgai laukti) Kiek pasikankinęs ir nieko nepešęs šiuo klausimu, nužiūrėjau savo ex-meilę iš distribucijų šeimos – Arch Linux. Sveikas grįžęs.Atrodo, kad sudiegus Arch viskas stojo į savo vietas – žinau, kam ir iš kur dabar dygsta kojos, konfigūracija švari ir be kažkieno generuoto kodo. Tvarka, švara, minimalistika. Tarsi namie būtų stojusi ilgai laukta tyla :-)Tenka pripažinti, kad nuo to laiko, kai pirmą kart bandžiau prisijaukinti Arch, viskas gerokai pasistūmėjo į priekį – tiek distribucija, tiek OSS lygis. Ir, be abejo, mano paties žinių lygis, kuris leido dabar tinkamai ir absoliučiai neskausmingai įsikurti iš naujo. Atskiro paminėjimo vertas Arch’o AUR – tai tikrai smarkiai pajudėjęs į priekį “produktas”. Yaourt – ir programinės įrangos problema nebeegzistuoja.Matyt Ruby ir Arch Linux principų/idėjų auros sutampa – KISS, simplicity, elegance :-)