Posterous theme by Cory Watilo

Filed under: ruby

PHP lesz

Óriási megkönnyebbüléssel és enyhe kudarcérzéssel jelentem be kitartó olvasóimnak, hogy a Statuemap.com újraírását Ruby on Rails keretendszer helyett PHP alatt folytatom (kezdem újra). Ennek egyszerű és prózai oka az, hogy jelen életembe egyszerűen sehogy sem fér bele az, hogy megismerkedjek eme nagyszerű környezettel. Este nyolctól egyig egyszerűen nem lehet világot váltani úgy, hogy közben nem ismered 100 százalékosan az adott környezetet.

A tökéletes csaj

Kicsit úgy éreztem magam, mintha meg próbálnám szerezni a nagyon tökéletes csajt, mert azzal végigmenni az utcán igazi büszkeség. Mert, valljuk be, ma RoR programozónak lenni menő, sőt mi több igazán hekker dolog. Nekem most ez mégsem fér bele, egyszerűen azért, mert az alábbi rendszert nem merem elindítani ingoványos talajra építkezve:

  • ~12 ezer szobor ~70 ezer fotója induláskor (szoborlap.hu migráció)
  • user kezelés, követés, kommentelés
  • amazon s3 cloud használata a képek tárolására
  • számtalan időzített feladat
  • mail küldés (hírlevelek, user események, stb.)
  • google maps erős bedrótozása
  • ajax, jquery aktív használata
  • fb, twitter, flickr apizás

Ha most lennék 16

Mindezekben persze elvileg nagyon király a Rails keret, mert ami PHP alatt 100 sor, az itt 3. Rengeteg függvény előre meg van írva, gyönyörűen. És itt is van a legnagyobb probléma számomra. Az előre megírt (GEM-eknek nevezett) összetevők zárt dobozok, én csak installálom őket. Megpróbálom betuszkolni mindet a logikámba, és egymáshoz is kell passzolniuk. Mindeközben Linux-guruvá is válsz egy picit, mert egy kész szerveren normálisan elképzelhetetlen a dolog (megfizethető áron). A külföldi szolgáltatóknál pedig azonnal jelentkezik az olcsóság ára, ezt persze a cloud-terjedés számlájára kell írnom. Egy pici plussz fícsör, +20USD, nem elég az email kvóta, +50; kicsi a forgalom-keret? +30, esetleg kevés a memória? +50; beszakadt minden és valós segítség kell? +25/óra... stb. Azt még nem is mondtam, hogy a hazai virtuális hosztomon 1mp alatt 2 emailt enged át az SMTP, míg slicehost.com-os szeletemen egy emailnek kell 27mp - vagyis rá vagy kényszerítve valamilyen email plugin igénybevételére. Ami ettől még nem biztos, hogy whitelist-es.

Opensource business modell

Sajnos ez az egész szellemiség nem passzol össze sehogysem az én kis szerelem-startupommal. Ebből kifolyólag tegnap este egy hirtelen döntés által vezérelve letöltöttem a legfrissebb CakePHP verziót, újraindítottam a projektet és 3 óra után kb. ugyanott tartottam, mint amennyit az első 3 hétben csináltam meg Rails alatt. A CakePHP keretrendszer sokak szerint a RoR koppintása. Az tény, hogy első ránézésre is látszik egy-két komoly hasonlóság a szerkezetben, logikában és elnevezésekben, de amellett, hogy mindig minden sok más dologból tud csak születni, nem a semmiből, azért valljuk be azt is, hogy az objektumorientáltság nem a Railsben született; az MVC logika már korábban is adott volt. A RoR ennek egyszerű kommunikálásában és "eladásában" jó, opensource/közösségi keretek között. De miért van mégis egy olyan érzésem, hogy a RoR mégiscsak a dollárok felé lejt, míg PHP alatt valóban szabadnak, platform- és szerverfüggetlennek érzem magam?

Természetesen nem adom fel végérvényesen. van egy olyan mondás, hogy amíg gyökeresen nem változik a helyzetem munka/szabadidő/tanulmányok relációban, addig nem kezdek komolyabb RoR projektbe. Ha pedig igen, akkor viszont tudom is, hogy mi a következő terület, amit ezzel a csúcsfegyverrel fogok meghódítani! ;]

Twitter nettó 6 óra alatt

Ahogy haladok a Ruby on Rails tanulással, egyre izgatottabb vagyok. Tegnap fejeztem be ezt a rails 3-ra optimalizált segédletet, amit mindenkinek ajánlani tudok csak. A tutoriált végigkövetve egyszerű lépések sorozataként nettó 6 óra alatt építettem egy twittert, pontosabban annak kb. 2 évvel ezelőtti, fapados változatát.

Ez azt jelenti, hogy működik benne a posztolás, a követés, van (gr)avatar-kezelés, és persze az alapvető dolgok: regisztráció, ki-belépés, adatváltoztatás, autentikációhoz kötött oldalak. Michael Hartl az utolsó fejezetben bemutatja az ajax submitot is, ami RoR alatt még egyszerűbb, mint ahogy gondoltam. 

Statuemap_twitter

Most, hogy végeztem, kijelenthetem, hogy a már középsuliban is sulykolt elmélet alapján felrajzolt programozástechnika-fejlődési úton komoly távolságot teszünk meg a ruby programnyelv segítségével. A szintaktikát nézve elgondolkodtató, hogy mennyire távol vagyunk már a gépi kódoktól. Anno a pascalra mondták, hogy magas szintű és éreztük is, hogy azért ott nem tudunk bármit megcsinálni, és sok finomsághoz assembly kellett. Most a rubynál érzem azt, hogy - főleg a rails keretrendszer miatt - még távolabb kerültünk a vastól, és így még inkább emberi nyelvvé válnak a programnyelvek. Ez persze még robosztusabb és komplexebb rendszerek tervezését és készítését teszi lehetővé, ami ebben a webkettes világban amúgy is alapkövetelmény.

Nem mondom, hogy nem ijesztő egy picit, mert amíg a PHP-ban közelebb éreztem magamhoz a class-okat és a function-öket, és így saját képemre szabásukat is elérhetőnek láttam, most távoli és misztikusabb a dolog magja, ami egy picit azt az érzetet kelti, hogy nem nálam van a gyeplő.

A szerverkörnyezetre ugyanez igaz. A (RoR) cloud lényege, hogy ne te cseszelődj a szerverbeállítással és skálázással, hanem egyszerűen nyomd fel a herokura (pl.) a cuccodat és ott majd minden elfut, ha meg kell, akkor kis dolláregységenként, havidíjasan bővíted a cuccot egy csúszka feljebb húzásával.

Persze mindent magamhoz ragadhatnék és a github rails repository módosításával saját keretet gyárthatnék, de minek? Ma már nincs időnk arra, hogy minden területen magunk tapossuk ki az ösvényt. Túl nagyok az elvárások - de nem is baj: izgalmas dolgok születnek néha és a webnek köszönhetően a csapatmunka globális és súrlódásmentes lehet.

Szintet ugrunk

Siker, rubyban írom. A hétvége két dologgal is gazdagított. Egyrészt sikerült végre összeraknom a Ruby on Rails fejlesztői környezetemet, másrészt a Minerva barátném Szoborlap hírlevele is elindult. 

Kis sztorizás még. A szoborlap angol verziója, amin dolgozni fogok egyébként "statuemap" névre hallgat. Közvetlenül a szoborlap indulása (2006) után már elkezdtem foglalkozni azzal, hogy nemzetközi legyen a történet, és 2007 végén el is indult az oldal a statuemap.com címen. A lap egyszerű és áttekinthető volt, 2010 első negyedéig működött kb. Azért is fontos, mert az első php munka, amit tök egyedül, VG barátom hathatós segítsége nélkül írtam az elsőtől az utolsó karakterig.

A mostani verzió (nevezzük 1.0-nak) annyiban lesz más, hogy az eltelt években rohamosan terjedtek a lokalizációs élményre, helyzetmegosztásra gyúró webalkalmazások, ami még inkább életképessé tette az anno 2006-ban megálmodott logikámat, miszerint fogom a mobilt, sétálok a városban, és ha egy szobrot látok, máris tudom, hogy mi a sztorija, mi az, mert a GPS-szel összedrótozott szoborlap jól megmondja. Ha meg nincs fent még, hát klikk-klakk, és már töltöm is felfelé.

Hol futtatom majd: Slicehost. A lényeg, hogy kapsz egy darab tárterületet (a legolcsóbb 20USD/hó), ahová kb 10 féle Linux disztró közül választhatsz oprendszert (Ubuntu Maverick volt nálam a nyerő). Egy legördülőlistából választod a verziót, submit és 1 perc múlva már SSH belépésed van. Ezután jön a játszadozás, ami nekem kb. 2 hétig tartott, mondjuk minden szabad percemben. 

A linux beállítgatások (apache, mysql, mc, git-core, ftp, stb.) után jön a ruby telepítés, aztán rubygems, aztán rails és a többi, ami kellhet. MySQL gem is kellhet, ha abban gondolkodsz. Kiváló leírás ez pl. Ezután jön a futtatókörnyezet, amihez a Phusion Passenger tökéletes.

Aki nem akar annyit bénázni, és egybecsomagot akar, annak a Ruby Enterprise Edition is megfelel, nekem valami miatt nem jött be (ja igen, bizonyára túl egyszerű lett volna, haha). Ezek után már sikerült összeraknom egy appot, ami futott is... Összefoglalva kimondhatjuk, hogy döntöttem a fejlesztői környezetet illetően. December 20-ra tűztem ki az erős béta indulást, és kb. másfél évre előre látom a verziózást :]

Talán sikerül újra( )írni

Úgy érzem, hogy lassan ideje van annak, hogy újra írni kezdjek. A történelmi előzményekkel ellentétben és a hagyományaimmal szakítva jórészt technológiai témákat dolgozok fel ezen a lapon. A sorok és bejegyzések között néha elejtett privát élmények és vélemények moderált szinten maradnak, ígérem ;]

Az írásra erős motivációt érzek már vagy egy éve, de sajnos időhiány miatt nem engedhettem meg ezt a luxust. A nappalok és éjszakák átszervezésével lassan úgy tűnik, hogy egyre inkább kialakul a szabadidőm. És az írás már nem is annyira luxus.

Fő munkám, a szoborlap.hu nemzetközi verziójának újraírásába fogtam pár hete. Első lépésben a környezetet határoztam meg, és egyelőre itt el is akadtam. Ruby on Rails-t fogok használni egyszer, ha sikerül végre belőnöm az otthoni és a publikus környezetet. Az elmúlt hetekben 17 linux reinstallon (6 disztribúcióban), 4 külföldi fizetős host kipróbáláson, három otthoni platformon való cseszelődésen vagyok túl - 4 körüli "feladom" felkiáltással. Az ötödik feladomnál jön a CakePHP.

Voltam annyira pofátlan, hogy meginterjúvoltam a moly.hu fejlesztőjét is, aki rettentő kedvességet és türelmet tanúsított. De egyelőre mégsem jutok egyről a kettőre. "Na majd ma este..." (ez a mondat kb. 30 alkalommal hangzott el mostanában...). Kitartás.