csiszarattila.com / Rubysztán

Változatos írások és olvasnivalók egy webfejlesztő mindennapjaiból.

Kövess!(RSS)

27 2010 November

Első railsszes project...done

Hát ezt is megértük… elindult az első éles Railsszes alkalmazás (Euxpert) amiben én is közreműködtem. Igaz a fejlesztés javarészt már készen volt és rám már csak az utolsó módósítások, finomítások vártak, de így is hatalmas tapasztalatot jelentett.

Röviden néhány technikai fogás:

  • Chef A szerver üzemeltetésére chefet használunk, Linode alapokon. Tulajdonképpen ez volt a legfőbb feladatom. Többnyire az opscode cookbookjai beváltak, egy-két saját egyedi recepttel vegyítve.

  • Solr A szöveges keresés Solr szerveren keresztül történik. A Sunspot gemmel egyszerűen megoldható a Railsszes integráció. Csak egy tanács: élesben ne használjátok a sunspot beépített Solr szerverét!

  • Devise Dont reinvent the weel: user/accountok kezeléséhez.

  • Resource controller Mint az előbbi csak a kontrollerek “tisztán” tartására. Must have.

  • Haml, Sass, Compass A Hamlról már írtam. A Sass+Compass páros pedig verhetetlen. Próbáljátok ki!

  • Hoptoad A futás közbeni hibák elkapására, értesítésre.

  • New relic rpm Teljesítmény mérésre.

  • Lighthouse Bugok, feladatok nyomon követésére.

Persze a feladat döntő része viszont most jön, hiszen egy dolog elindítani valamit és utána tovább fejleszteni:) …Ohh by the way mostanában az Rspec könyvet olvasgatom.

31 2010 Augusztus

IRB felvértezése

Nem tudom ti mennyire használjátok az irb-t. Én szinte mindenre: kisebb Rubys kódok kipróbálására, Railsben pedig kódok debuggolására (ala. script/console). Nagyon hasznos tud lenni, mivel azonnal ki lehet benne kódokat próbálni, a visszaadott értékekkel eljátszadozhatunk, és van kódkiegészítés! (Annak idején ez volt az ami elsőként megtetszett a Rubyban.)

Most két gemet ajánlanék az irb-hez ami tovább növelheti a produktivitásunkat. Egyikük az utility_belt, ami hasznos kiegészítésekkel látja el az irb konzolt(szintakszis-kiemelés, művelet-history, stb.).

Másik a hirb, amely objektumokat táblázatos formában íratja ki, ezáltal jobban átláthatóbbá válnak, ez rails konzol esetén a lekérdezések után visszaadott objektum-kollekciók vizsgálatánál tud nagyon hasznos lenni.

A két gemet a legegyszerűbben - a mostmár ‘szabvánnyá’ váló - bundlerrel vehetjük használatba, ha hozzáadjuk őket a Gemfile-unkban és futtatjuk a bundle install parancsot.

group :development do
          gem 'utility_belt'
          gem 'hirb'
        end

A hirb használatához még engedélyeznünk kell azt, a Hirb.enable utasítás kiadásával az irb konzolban.

23 2010 Augusztus

markItUp! Böngészős szövegszerkesztő alternatíva

Végre egy számomra is megfelelő textareas szövegszerkesztő alternatíva: markItUp

JQuery alapú, kicsi, több markup nyelvet is tud(HTML, Textile, Markdown stb.) baromi könnyen konfigurálható, és kiterjeszhető.

Én a Markdown editor lőttem be, ráadásul pár óra alatt sikerült hozzáfaragnom egy képfeltöltős/beillesztős plugint is, annak ellenére, hogy nem vagyok egy JS guru.:)

20 2010 Június

Videók Ipod formátumra hozása egyszerűen

Mivel hetente kétszer megteszem a Szeged-Törökszentmiklós távot a hosszú utazás alatt lehetőleg szeretem hasznosan eltölteni az időt, ami gyakorlatilag teljes Rubys content-fogyasztást jelent:), főleg mióta szert tettem egy Ipod Touchra. Viszont nem minden videó-formátumot hajlandó lejátszani, az iTunes beépített videó-konvertálója pedig lassú…nagyon lassú.

Persze ilyenkor rögtön kibújuk az emberből a unixos ösztön:) és az ffmpeg-re gondol mint megoldás, nekem viszont most nem volt kedvem paranccsorban vacakolni, a szükséges libraryk telepítéséről nem is beszélve.

Szerencsére egy kis guglizás után kiderült, hogy létezik az ffmepg alá írt grafikus kliens ffmpegX néven. Ami tényleg gyors és némileg egyszerűbb is.(DHH 70perces Railsconfos videóját pl. fél óra alatt átkonvertálta:).

07 2010 Június

Upgrading a Rails 2 App to Rails 3

A great blogpost about what changes in Rail 3 fundamentally and how to deal with it when you are planning to upgrade your 2.x app.

18 2009 December

Zend Framework: Zend_Application + Bootstrap + Resource

A következő a cikksorozatokban - a Rubysztán blog történetében először - PHP-s témára kerül a sor, méghozzá a mostanság két legdivatosabb library, a Zend keretrendszer és a Doctrine összehangolására. Railsszel fejlesztők fig... Tovább

18 2009 December

Zend Framework: Doctrine 1.2 integrálása

Az előző cikkben már említettem, hogy maga a Zend keretrendszer teljesen szabd utat biztosít minden komponens tekintetében így az elengedhetetlen adatbáziske... Tovább

04 2009 November

Hosszú szünet után...

Hosszú szünet után jelentkezek ismét bejegyzéssel. Sorolhatnám persze az okokat, hogy miért nem de most nem ezért ragadtam billentyűzetet, sokkal inkább nézzük a fejleményeket.

Legfontosabb, hogy mostantól főállású webprogramozóként dolgozom, ugyan Ruby helyett PHP-ban, de érdekesek a feladatok, emellett főként Zend Framework-öt használunk, amely egy remekül felépített MVC keretrendszer.

Emellett persze igyekszem nem elszakadni a Rubytól se, egy kis idő mindig akad egy-egy érdekesebbs témára. Az utóbbi időben főként tesztelési eljárásokkal ismerkedtem - RSpec és barátai - amelyekről terveim szerint hamarosan egy bejegyzés is születik majd, a próbálkozásokból ezenfelül két hobbiprojekt is született.

Az ActiveDocument egy régóta tervezgetett ötlet volt: filekezelés kicsit másképp, az ActiveRecord mintájára. A koncepció onnan eredt, hogy annak idején adatbázis helyett sima text fájlokban szerettem volna tárolni a blogbejegyzéseimet - mivel így sokkal könnyebb a szerkesztésük/kezelésünk - majd. Ennek egy kivonataként, önálló libraryként született meg az elmúlt hónapokban apródonként ActiveRecord. Példákat és a pontos használatot megtaláljátok a projekt Github oldalán.

A másik Rubys projekt a Rubysztán blog alapjainak az újraírása volt: átültetni az ActiveRecord libraryra, részletesebb teszteléssel, letisztultabb működéssel, amellyel együtt egy általános célú blogmotor jött létre. Ennek a Mini nevet adtam, Githubon szintén elérhető.

Hosszú kihagyás után mindez kevésnek tűnhet, de igérem mostantól igyekszem érdekes tartalommal feltölteni az oldalt.

07 2009 Május

Kapcsoszárójel-szindróma

Bármennyire is a legkedvesebb nyelv a Ruby számomra, bizony rákényszerül az ember, hogy más programnyelveket is használjon a mindennapokban. Fél év után ismát PHP-t ragadtam.

Nem mondom a PHP-ra való visszaállás nem volt zökkenőmentes, de nem okozott túl nagy nehézségeket sem. A PHP-vel alapvetően nincs nagy baj, de nagyon sok dolog furán hat és elgondolkoztatja az embert, ha hosszú időt eltölt a Rubyval - főképp az, hogy utóbbiban mennyire logikusabban vannak bizonyos dolgok megtervezve és implementálva.

Hasonló a helyzet a keretrendszerekkel is: az elmúlt hónap során jópár MVC alapút kipróbáltam (CodeIgniter, CakePHP, Zend Framework) és óhatatlan volt a Railsszel való összehasonlításuk. Itt megintcsak ismételni tudom önmagam: mintegyik rendszer nagyon jól használható és okosan valósítja meg az MVC szemléletet, de olyan apró nüanszok hiányoznak belőlük, amelyek miatt számomra még mindig a Rails felé húz a szívem. A három PHP keretrendszer közül egyébként a Zend Framework nyerte el leginkább a tetszésemet, mivel elég rugalmasan konfigurálható és sok funkciót a Railshez hasonlóan old meg, így számomra jóval kevesebb meglepetést okozott.

Ezzel együtt az utóbbi időben egyre gyakrabban merült fel bennem az a gondolat, hogy megérte-e egyáltalán a Rubyt és a Railst választani szakdolgozati témának, és nem mondjuk egy PHP alapú rendszer tervezéséről írni, de az utóbbi időszak tapasztalatai meggyőztek, hogy helyesen döntöttem. Mind a Ruby, mind a Rails nagyon sok hasznos fogást és (alap)ismeretet tanított meg mind programozásról, mind keretrendszerekről, nem is beszélve a mögötte rejlő alapvető gondolkodásmódról, amelyet bármelyik nyelvben hasznosíthatok.

Hangsúlyozni szeretném, ezt a posztot nem offenzívaként akartam szánni a PHP ellen, és egy esetleges Ruby vs. PHP vitát elindítani. Épp ellenkezőleg a múltbeli tapasztalatok tanítottak meg arra, hogy minden technológia iránt fogékonynak kell lennie az embernek.

16 2009 Április

Nyelvtanulás pusztán kedvtelésből?

Az utóbbi időben egyre gyakrabban kerül szóba a nyelvismeret (álláskeresés miatt többek között), ami jó apropó, hogy erről is írjak...régóta terveztem már ezt a témát. Pontosabban nem is a nyelvismeretről, hanem a nyelvtanulásról lesz szó.

Azt, hogy az iskolákban kritikán aluli a nyelvoktatás magamon tapasztaltam: 11 évnyi iskolapad koptatás után döntöttem úgy, hogy elegem van, én ezt magam is megtanulhatom.

Szerencsémre addigra már elég jó szókinccsel rendelkeztem: két évnyi intenzív fordítgatás után olyan szintre kerültem, hogy bármilyen angol szöveggel megbírkóztam, a tartalmát megértettem. És ekkor ért az első meglepetés: az első néhány nyelvkönyvet a kezembe véve elkezdtem megérteni a korábban érthetetlennek tűnő nyelvtani szerkezeteket, szabályokat és a magam ritmusában sikerült apránként magamba szívnom. Olyananyira, hogy jó félvére rá sikeres nyelvvizsgát tettem, elsőre átmentem!

Ezzel még magamat is sikerült meglepnem, hiszem jó két évvel korábban még meg voltam győződve róla - az iskolában ezt éreztették velem, hogy én soha nem fogok elégséges szintre eljutni angolból! Ekkor döbbentem rá a saját tapasztalataim útján, hogy nem a diákokkal, hanem legfőképp a tanítási módszerekkel van a gond.

Nálam így működött: elsőként találj egy neked érdekesnek tűnő témát(nekem a Forma 1 volt az) és kezdj el az adott nyelven olvasgatni, fordítani belőle. Meglátod nagyon gyorsan iszonyatos szókincsre teszel szert...a szótárból való tanulást felejsd el, azok a szavak nem fognak megmaradni. A nyelvtant jó félév, év után párhuzamosan kezd el tanulni, és inkább a magad, mint egy könyv ritmusában - például, ha nem értesz egy nyelvtani szerkezetet nézz utána! Próbálj meg minél több módon az adott nyelvvel kapcsolatba kerülni ...hírportálok, újságok olvasása, filmek, zenék, rádiók hallgatása... az internet és a web szinte mindent a kezünkbe ad, csak jól kell tudni kihasználni. És ha már sikeresen teljesítetted a nyelvvizsgád akkor se add fel a dolgot, folytasd a tanulást... én még három évvel a nyelvvizsga után is úgy érzem bőven van még hova fejlődnöm. Mindezt nem önfényezésből, hanem tanulságként szeretném megosztani, hogy mások is okuljanak a dologból: a nyelvtanulás nem misztikum, sőt lehet ezt élvezetesen is csinálni a lényeg a megfelelő módszer megtalálásában rejlik meg persze kell hozzá egy nagy adag kitartás is.

És azt, hogy ez a módszer helyes többek közt az is bizonyítja, hogy a családon belül is sikerült továbbadnom, és már látszanak az eredményei.

Másrészt érdekelne, hogy Ti hogyan tanultok nyelveket, hogyan tartjátok napi szinten a tudásotokat?

Én első körben angolosoknak nagyon tudom ajánlani a BCC Learning English szekcióját, rendkívül hasznos!

28 2009 Március

Blogmotor kevesebb, mint 150 kódsorban

Amióta Sinatrázom foglalkoztatott egy projekt gondolata: vajon legkevesebb hány kódsorból lehetne egy alapfunkciójú blogmotort írni?

Az alapfunkciókon a következőket értem: bejegyzések hozzáadása/módosítása/törlése, kommentelés lehetősége, RSS a bejegyzésekről. A cél mindezt, a HTML kódokkal együtt, egy fájlban (!) megvalósítani, a lehető legkevesebb kódsorral!

Ma reggel bele is vágtam, és gyorsan sikerült is az elképzelt funkciókat megvalósítani. Első célként 100 kódsort jelöltem meg - és itt jól formázott kódot értek, nem egymásra tolt definíciókat. Hamar kiderült azonban, hogy ezt nem sikerül tartani a nézetek HTML kódjai miatt, a Haml használta ellenére. A következő határt, a 150 kódsort már bőven sikerült tartani, és végül 137 sorban sikerült is megállni.

Az elkészült művet, illetve próbálkozást itt nézhetitek meg.

A bejegyzést vehetitek felhívásnak is! Várom mások próbálkozásait is: írjatok hasonló funkciójú blogot bármiben, a lehető legkevesebb kóddal! Így legalább én is törhetem a fejem azon, hol lehetne még faragni a saját kódomból:)

26 2009 Március

Kezdődik, kezdődik...F1 idénnyitó!

Az ismerősök és családtagok között nem ismeretlen, hogy nagy Formula 1 rajongó vagyok... alig tudok kivárni minden versenyhétvégét. Ezért is voltam egyre türelmetlenebb mikor kezdődik már el az idei F1-es évad, nem is emlékszem kezdődött-e ennyire későn az utóbbi években. Megszokta az ember, hogy javában benne szoktunk járni márciusban amikor két versenyt is lefutottak többnyire. (Jó hír viszont, hogy a szezonnyitó Ausztrál Nagydíjat közvetlenül követi majd a Maláj GP).

Nekem egyébként nincs igazán nagy kedvencem - jó talán Räikkönen - de általában a neutrális oldalhoz tartozok - így például nem csinálok érzelmi kérdést, hogy ki a jobb az Alonso-Hamilton-Räikkönen hármasból-, és az igazán izgalmas futamokért drukkolok. Amire a radikális szabályoknak köszönhetően most nagyobb esély lehet és kicsit összezavarodhat a mezőny, szerintem az első versenyekig bőven lesznek meglepetések, utána nagy valószínűséggel visszaáll a McLaren-Ferrari uralom - ezt mutatták az első szabadedzések is - de ne legyen igazam!

A favoritjaim idén a vb címért: Räikkönen, Massa, Lewis, Alonso. Akire figyelni kell, mert zavart okozhat az űrben: Vettel:).

Annak akit érdekel én így követem az eseményeket év közben:

  • Szabadedzések

    Na igen, ez általában kemény dió szokott lenni. Ahhoz hogy élő-közvetítést fogjon az ember vadászni kell a kalóz stream közvetítésekre, tavaly a brit ITV internetes közvetítését sokan osztották meg, vagy angol proxy szerveren keresztül elérhető volt(IP alapján csak a britek nézhették). Idén a BBC-vel állítólag nehezebb lesz.

    Most olvasom, hogy a Firefoxhoz létezik egy ADtelly nevű kiegészítő amivel kijátszható az BBC Iplayer (és tényleg működik!).

  • Chequered Flag Formula 1 Podcast

    A BBC 5-ös rádiójának műsora verseny előtti és utáni elemzésekkel, interjúkkal, a legjobb F1 újságírókkal, riporterekkel! F1 rajongóknak kötelező!

  • BBC Sports Formula 1

    Idéntől a BBC közvetíti újra Angliában a F1-t, a híroldaluk eddig sem volt gyenge, de köszönhetően a teljes közvetítésnek most már videókkal és még több információval egészítik ki az oldalukat.

  • F1világ.hu

    Annak aki magyarul szeretné élvezni a híreket. Egy kis reklám csinálok ennek az oldalnak - nézzétek el régi ismertség köt az oldal készítőjéhez (Ő is megszállott F1 rajongó, és elég sokat köszönhetek neki).

  • Autosport.com

    A leghitelesebb F1-es híroldal, itt is a tűz közelében lévő újságírók publikálnak, sok érdekes tartalommal - a többségükért fizetni kell.

  • Torrent oldalak...

    Nem szeretném itt reklámozni, honnan lehet teljes (akár belső kamerás!) futamokat is letölteni, de akit érdekel email-en keresztül szívesen megosztom.

  • F1Racing újság

    Nagy kár, hogy havonta jelenik meg... és szivesebben olvasnám angolul, bár a magyar fordítás is nagyon jó.

  • F1-live live timing (parancssorban)

    Az F1-liveon elérhető live-timing rendszer...csak ehhez nem kell Java, ja és konzolon fut:)...linux-f1 mániásoknak kötelező. OSX alatt sem nehéz compileolni.

Ezzel kívánok minden F1 rajongó társamnak jó szezont!;)

07 2009 Március

Metamorfozis

Kisebb (inkább nagyobb) átalakuláson esett át a Rubysztán blog. A korábbi hosszabb lélegzetvételű leírások mellett helyet szerettem volna szorítani a rövidebb, nemcsak a Rubyt és programozást érintő téáknak is - ezekre a régi struktúrában és formában nem volt igazán lehetőség. Egy különálló blog létrehozását nem tartottam ésszerűnek: a tartalmak frissítése, megosztása és követése túl bonyolult lett volna számomra és számotokra is. Úgyhogy ezentúl kibővített tartalommal jelentkezik a Rubysztán blog!

A tartalmi változtatás a nyitóoldal strukturáját is érintette: a rövidebb bejegyzéseket baloldalt, teljes hosszukban olvashatjátok, míg a korábbi és a jövőbeni hosszabb tartalmak, azaz cikkek listáját jobboldalt találjátok meg. Ezért kérem, akik (rss) hírolvasón keresztül követik a blogot is vessenek rá egy pillantást:). A hozzászólás lehetősége természetesen továbbra is megmaradt, sőt mindenkit arra buzdítok, hogy tegye meg!

Ami az oldal technikai részét illeti: a blog alatt egy saját, Sinatrára épülő rendszer fut. A bejegyzések és cikkek adatbázis helyett szöveges fájlokban tárolódnak: a hozzájuk kapcsolódó fontosabb meta-információk (pl. létrehozási dátum) YAML formátumban a szöveg elején, maga a tartalom egyszerű Haml formátumban található meg. Így kényelmesen, egy kódeditorral, webes felület nélkül szerkeszthetem a szöveget. A kommentek ezzel szemben egy törpe SQLite adatbázisban kapnak helyet - ezeket egy ActiveRecord modellen keresztül kezelem, így nem kell az SQL lekérdezések összeállításával bajlódni. Ezenfelül írtam hozzá pár automatizmust - bejegyzések létrehozása, feltöltése az éles szerverre - végrehajtó Rake parancsot is.

08 2009 Február

A CouchDB találkozása a Rubyval

A bejegyzés első részében láthattuk, hogy a REST API-nak köszönhetően hogyan tudjuk a CouchDB-t elérni és használni. Mindez azt jelenti, hogy erre építve Rubyban is nagyon egyszerűen tudunk a... Tovább

06 2009 Február

CouchDB - szakítás a relációs adatbázisokkal

Bácsi László(lackac) blogbejegyzésében olvastam először a CoucDB-ről, és annyira megtetszett a koncepciója, hogy gondoltam Én is teszek egy mélyebb ismerkedést vele - mintegy k... Tovább

19 2009 Január

Felhasználói-felületek HTML prototípusokkal

A következő bejegyzést két közelmúltban elolvasott bejegyzés ihlette. Először Szinek Péter blogjában mutatott be egy ötletes programotTovább

09 2009 Január

Rails debug tipp - rails-footnotes plugin

Ha még nem hallottál volna a rails-footnotes pluginról, mindenképp próbáld ki! Feltelepítése után minden oldalhoz hozzáad egy navigációs elemet, amelyről könnyedén e... Tovább

04 2009 Január

A Rails munkamenet kezelése

Ebben a cikkben igyekszem összefoglalni a Rails munkamenet kezelési megoldásának alapjait: hogyan működik, miként használhatjuk azt. Ha nem ismernéd pontosan mi az a munkamenet-kezelés és miért van rá szükségünk webalkalmazások... Tovább

22 2008 November

Egyedi FormBuilder Railsben

A Rails sok automatizmust ad a kezünkbe, ezeket legtöbbször azonban felül kell bírálnunk. Viszont a Rubynak és a Rails logikus tervezésének köszönhetően könnyű dolgunk van.

Tegyük fel, hogy a következőre van szükségün... Tovább

09 2008 November

Haml szövegbeviteli(textarea) mezőkben

Nemsokkal az első Rails-es alkalmazáson megírása után elkezdtem használni a Haml-t, ami egy remek HTML templétező vagy sablon motor. Annak aki még nem ismerné, javaslom mindenképpen vessen... Tovább

02 2008 November

MySQL Gem telepítése OSX 10.4.11(Tiger) alá

Mi tegyünk ha a Rails(2.1) logjában ilyen üzenetekkel találkozunk:

DEPRECATION WARNING: You're using the Ruby-based MySQL library that ships with Rails. This library will be REMOVED FROM RAILS 2.2. Please switch to the offical mysq...
        Tovább
      
26 2008 Október

Ruby frissítése OSX 10.4(Tiger) alatt

A Mac OSX rendszerek - legjobb tudomásom szerint - a 10.3-as verzió óta előtelepítve tartalmazzák a Ruby interpretert. Az OSX 10.4 (Tiger) mindenképp, ugyanakkor ez csak(?) a Ruby 1.8.4-es verzióját jelenti. A következő leírás épp... Tovább

19 2008 Október

Ruby blokkok közelebbről

A mai célünk megtanulni, hogy a következő kifejezés:

Array.new(3) { n += 1; n * 10 }
=>[10, 20, 30]

mit is jelent, hogyan is működik pontosan.

A Ruby fontos nyelvi elemeit jelentik a blokkok, amelyet szint... Tovább

12 2008 Október

Git fordítása OSX Tiger alatt (SVN modullal)

Rendhagyó módon nem egy Rubys témájú bejegyzéssel nyitom meg az oldalt, de remélem elnézőek lesztek. Terveim szerint egyébként sem csak a kedvenc programozási nyelvünkről szólna ez a blog, időnként előfordulhat, hogy körülj... Tovább