Unde pula mea e MODELUL ?

model view controller pula

Deci in pula mea, eram ieri la servici, pe la pranz, si ma ia  A-C, sefa mea cu ea la etajul 1 (nu sa-i dau o muie cum poate va gandeati) ci pentru o “reuniune”. Reuniunea de fata insemna de fapt ca am intrat in biroul unuia si ne-am asezat pe niste scaune, el urmand sa ne prezinte, si apoi sa ne predea un maret backoffice de moderare. Backofficeul asta, teoretic, ar trebui sa ma scuteasca pe mine de sarcina de a scrie unul noul pentru proiectul la care lucrez, asa ca putea fi util, daca era adaptabil.

Ok, individul intoarce monitorul si ne arata cum se logheaza el, cu vede niste inregistrari, si le “modereaza”. Adica alege daca sunt spam sau nu, evident. Aplicatia are un aer invechit si arata destul de naspa, dar, ni se precizeaza, a fost utilizata intensiv de echipele care fac moderarea, deci sunt deja obisnuite cu modul de utilizare. In plus, si aici devin brusc interesat, este scrisa foarte curat, obiectual, si poate fi extinsa/adaptata usor pentru a obtine ce avem nevoie.
“Perfect”, imi zic, hai sa vedem codul ala. Reunionistul deschide pspad (intotdeaua mi s-au parut dubiosi programatorii care folosesc pspad, intre noi fie vorba), si imi arata structura de clase. “E arhitectura MVC”, ma asigura el triumfator.  Asa cum aveam deja sentimentul, mvc la el inseamna ca are un fisier, index.php, in care foloseste un switch pentru a selecta codul care se va executa. Exact asa si era …
Restul codului era intr-un folder separat de “clase”, si inca unul de “functii”. Ok, zic eu, arata-mi “clasele” tale.

Clasele erau de fapt bucati de cod care se executau pentru fiecare pagina a siteului, si care tratau tot fluxul, de la intrare pana la template-ul smarty. As face aici o paranteza, legat de smarty. Smarty este un cacat inutil, utilizat de fraieri ca sa dea impresia ca sunt mari programatori si separa “codul” de “view”. De fapt obti acelasi rezultat daca scri un template in php (php este in esenta pulii lui un limbaj de template-uri!) si ii pasezi argumentele intr-un array. La fel de usor ajungi sa bagi business logic in template si in smarty si in php. Si aici inchid paranteza.
Asadar, fiecare pagina avea codul ei,100 % procedural, jalnic inchis intre o declaratie de clasa si paranteza de inchidere corespunzatoare.
Dar asta nu e tot, continua programatorul. Exista si un (simulacru) de sistem de mostenire, pe un nivel: toate clasele mostenesc o clasa de baza pentru a mosteni niste functii comune (si destul de dubioase) de autentificare si acces la baza de date. Pentru ca, da, nici macar o abstractizare BD calumea nu a fost implementata, pentru ca, imi explica el usor jenat, nu a reusit sa gestioneze problema cele 2 servere BD (unul pentru citit, frontul si altul master, pentru scris). “Deci ai facut o treaba de cacat” imi zic eu in gand, apoi zambesc protocolar, pentru ca urma sa-l mai intalnesc pe individ la cafea.

Si acum partea didactica pentru toti pularaii care au deschis un editor si au inceput sa “programeze” in PHP, in principal pentru ca ca are  bariera de intrare foarte joasa.
In cuvinte simple, model view controller este un pattern care ar trebui in principiu sa izoleze logica aplicatiei, cum s-ar zice Business Model-ul, de interfata, de afisare. Asta inseamna ce … de exemplu daca ai de implementat afisarea listei de sefi carora trebuie sa le sugi pula ca sa ajungi un sef mai mic, in modelul aplicatiei incarci lista, din baza de date sa zicem, o prelucrezi, aplici reguli specifice (sa zicem ca ai o filtrare, numai sefi cu acelasi etaj cu tine sa va intalniti la aceeasi toaleta), dupa care pasezi aceste informatii, intr-un format neutru, afisarii. Si cine paseaza datele si face legatura intre model si afisare (view) ? Controllerul.
Aici este momentul in care fraierul cade in plasa … o regula foarte ignorata este TC-FM (thin controller – fat model), adica controllerul trebuie sa faca STRICT doar interfata intre cele 2, sa nu contina business logic. Dar, este mult mai usor sa bagi la greu cod in asa zisa ta “clasa” care devine un fat controller curand singleton curand o mare laba.
In poza de sus, in partea acoperita de pula, scrie “encapsulates application logic” si “exposes functionality”. Adica … adica ofera un acces selectiv la sistemul care e modelat. Deci fara query-uri in controller, desi pare mai usor. Izolarea scopului, asta e esential.
Muirea continua cu viewul: intr-o aplicatie web nivelul view este de fapt o combinatie intre codul server side care prepara afisarea, codul client side care o modifica/afiseaza (html + javascript care manipuleaza html) + browserul web, exact cois… Daca vrei sa fi ortodox nu faci query-uri in template-uri php sau altceva, nu prelucreazi informatie in view si nimic altceva. Doar afisezi, faci un for chestii de genu asta.
Mult mai ingrijorator este persistenta acestei abordari, daca pot macar sa-i zic asa, in framework-uri cu pretentii. Un trist exemplu este Zend Framework care nu ofera absolut nici un suport pentru partea de model, parca incearca sa fie o continuare a “traditiei” scriptkiddies legata atat de des de PHP.
Ca sa revin la intrebarea initiala: “unde pula mea e modelul?”

P.S.

Dupa amiaza m-am intalnit la o tigara cu Mikael, din celula de securitate, care mi- a zis ca cunoaste backoffice-ul respectiv, ca e “un truc de merde” dpdv securitate,  si tradus mai pe scurt, ca “isi baga pula, el nu aproba utilizarea lui in aplicatie”.

Plugin-uri Flickr pentru wordpress

Una din ultimele initiative mai de cacat d-ale mele este sa-mi pun pozele asa zis misto pe flickr. Numele web 2.0 agramat, recunosc, ma irita, dar pana l-a urma am facut cont acolo. Deci cum ar fi, aici ar fi http://www.flickr.com/photos/deodorel/.

Anyway, alataieri ma gandeam daca exista cumva un plugin decent gen sidebar care sa-l pun usor in site. Si oarecum exista … iata testul meu:

1) Quick Flickr widget

Asta s-ar gasi aici : http://wordpress.org/extend/plugins/quick-flickr-widget/

Pluginul se instaleaza clasic, prin dezarhivare/copiere, si apoi il poti trage in sidebar. E destul de complet, merge inclusiv sa-ti bagi numele de utilizator si sa iti gaseasca el streamul. Singurul lucru care nu mi-a placut este formatarea stangace, trebuie sa intru in css chiar si pentru tema default deci nu aveam chef.

2) Flickr RSS
Se gaseste aici : http://wordpress.org/extend/plugins/flickr-rss/

Asta teoretic ar trebui sa mearga cu linkul rss al streamului, dar in practica cu ultima versiune de wordpress nu merge … deci pica.

3) Smugmug photo sidebar widget

Are un nume bizar, si se gaseste aici: http://wordpress.org/extend/plugins/photo-sidebar-widget

Pana la urma asta a fost alegerea castigatoare, care se vede in dreapta. Iti bagi rssul, cate poze vrei, daca pune sau nu caption si aia e, cois. Arata normal in template, nu vreau mai mult. Ce pula mea …

7.04.2008 – o tura la Balea cu Matei si Raluca

datacurenta

Ce se intampla cand cica ai fi ocupat si nu postezi la timp turele ? Ajungi sa le pui dupa un an, din amintiri si din posturile prietenilor mai consecventi. Ca Matei de exemplu.

avalansa-balea
Cica anul trecut … prin aprilie asa, l-am convins pe Matei sa isi exorcizeze bucegita cronica si sa vada si cum e prin Fagaras. In principiu la satisfacut experienta, dar nu uita sa precizeze didactico-geologic ca “… caldarea Balii mi s-a parut o super oboseala. Evident, or fi si prin zona locuri faine, pe care daca ti le arata cunoscatorii ai sanse sa ajungi fan Balea. Mie mi-a fost dat sa vad ce vede cineva care ia pentru prima oara contact cu zona…cu toate ca ma indoiesc de existenta unor vai in zona gen Malin, Galbinele, Costila, etc. Iar daca sunt, pericolul de avalansa datorat fetelor inierbate omniprezente in zona si percum si a structurii geomorfologice cred le fac sa fie mult mai periculoase dpdv al avalanselor comparativ cu surorile din Bucegi.

Revenind la poveste, dupa o plecare cam tarzie, gen “matei si-a uitat aparatul foto la birou dar de fapt era acasa”, reusim dupa pranz sa ajungem la Balea Cascada, sa luam telecabina. Vremea era calda, zapada destul de multa si in general in miscare. Pe vale majoritatea valcelelor erau curse sau in curs de … Skiori erau cativa, in rest fauna obisnuita de Balea.

Ajunsi sus, Matei se schimba imediat si decide sa dea o tura rapida pana nu se inchide telecabina … eu decid sa nu, din pacate. Daca veneam si eu l-as fi dirijat pe drumul bun, astfel incat isi reducea timpul de dat la bete pe fundul vaii. Iata cateva avalanse curse si fotografiate de el.

avalansa1

avalansa3

avalansa4

Intors victorios, Matei ma convinge sa urcam in Saua Doamnelor sa ne dam pe un horn interesant acolo. Urcus a fost destul de ok, pentru ca erau deja trepte sapate. Dupa o tigara triumfatore, in umbrele inserarii pe saua dintre vai, decid sa cobor primul, testand cu ocazia asta skiurile cu silvretta-uri care mi le-a imprumutat Matei. Cica sa vad si eu cum e cu skiuri de tura.

matei-pe-stanca
eu-fumez-pe-marginea-valcelului

Am vazut, si nu mi-a placut. Probabil ca erau legaturile care nu te ajutau foarte bine la coborare, dar mi-am promis sa ma rezum la legaturi de alpin de acum incolo. Pe horn am coborat raschetat, nu ma simteam deloc in sigurata cu legaturile respective, deci cam de cacat.

eu-cobor

Matei se lanseaza vijelios, pleaca cu jumatate din zapada si razant pe langa niste stanci, dar din fericire ajunge in siguranta. Dupa alte cateva viraje ajungem jos, apoi la cabana, unde fetele trebuiau sa ne filmeze/fotografieze. Insa si dslr-urile au o limita pentru ca nu se vedea nimic :), deabeau au iesit cateva poze. Ok .. era intuneric aproape ….

Seara continua cu bere, mancare, plus discutii savante despre vai si coborari … si probabil despre Bubulu.

A doua zi, de dimineata, Matei si Raluca decid sa mai urce o data in Saua Doamnei, vremea era la fel de calda ca si ieri. Mi-e mi-e lene, am fost deja de cateva ori pe acolo. Plus mi-e super tarsa de skiuri, cu volkl-urile mele de 1.90 m-as fi simtit mult mai bine. In sfarsit, se duc, fac poze si coboara, trebuie sa plecam.
Raluca si Monica se duc cu cabina, noi 2 o luam pe vale, pericolul de avalansa estimam noi a scazut, ce era de curs a curs deja.

Pe vale zapada e uda, grea, si nu prea alunecam. Legaturile de tura sa zicem ca ma ajuta un pic la mers pe drept, oricum nu am piei. Partea frumoasa ramane bine inteles, valcelul de la cascada, unde ii fac o poza magistrala lui Matei. Adica asta.

Cam atat ar fi tura, un rezumat, am mai eliminat din backlog ca sa zic asa …

21 ianuarie 2009 – ski la Isola 2000

telescaun in amurg la isola 2000

… si am avut prima experienta de ski frantuzesc, saptamana trecuta, intr-o statiune cu un nume cu iz italienesc – isola 2000.

Dar sa incepem cu inceputul: acum vreo 3 saptamani vorbeam cu J, ca doi expati, sa gasim o statiune de ski pt un weekend, undeva la mijloc, intre olanda si sudul frantei. Asta pica cam … plm, chamonix, elvetia, etc etc. In gluma (proasta) am sugerat la grave, J s-a plans ca e doar un teleski si am renuntat … Oricum distanta era mare pt amandoi.
Pana la urma cea mai buna solutie s-a dovedit ca el sa vina cu avionul aici, eu sa-l iau si sa mergem la o statiune mai apropiata din Alpii de sud. Aici in afara de Isola se mai gasesc Auron si Valberg, statiuni similare ca dimensiuni si pozitionare. Bun, si multe altele ca de exemplu Serre Ch, dar vorbesc de cele accesibile intr-un weekend.

Am plecat cu credincioasele mele volkl carver axis de 1.91, la fel de eficiente ca de obicei. J urma sa-si ia  niste skiuri de jucarie de 1.50 probabil, ca sa skieze “carve”.

Alpii de sud sunt niste munti cu adevarat interesanti … la 90km de coasta ajungi la 3000 si ceva de metri rapid, vara chiar pe sosea daca te mananca in cur. Apropierea de coasta inseamna precipitatii extrem de bogate .. anul asta periculos de bogate: isola 2000 a fost blocata o saptamana in noiembrie: in multe locuri se acumulasera > 20 de m de zapada.
Deja cativa nefericiti au semnat condica la morti_in_avalansa_pe_hors_piste asa ca nu prea e de glumit, din fericire deja a trecut ceva timp si ce era de curs a curs. Asta nu insemna bineinteles ca nu imi infasor arva sub polar.
Revenind la actiune, sambata 21.01 la o ora stupid de tarzie intram in a8 spre Nice … Drumul este in mare bun, cu parti de voie rapide. Zapada a aparut doar la sfarsit, pe ultimii 20 km, cand practic urci spre statiune din satul Isola, dar foarte putina pe sosea. La un moment dat am vrut sa-mi pun lanturile, nereusind din prima am renuntat, oricum a mers.
Pe la pranz (dupa cam 2h) ne parcam masina intr-o parcare excelent de pustie: isola 2000 ne intampina aproape goala.

La isola si in alte statiuni frantuzesti, dupa cum aveam sa descopar, nu se folosesc cartele de acces. In principiu iti cumperi niste abtipilduri care ti le pui(sau nu) pe tine si treci .. se trece pur si simplu la toate instalatiile. La unele mai e cate cineva care mai controleaza prin sondaj … dar cam atat. Se bazeaza pe incredere. Eu dupa cateva incercari eu mi-am pus abtipildul pe casca …
Abonamentul pt o zi este 24 euro, demi-jurneul 20, inchiriatul cam 20.


Ca domeniu skiabil Isola se prezinta bine: 120 km/44 piste, si 22 de teleferice dintre care 2 gondole mai mari. Destul de multe sunt telescaunele mai vechi, nedebraiabile, de 2  – 4, dar sunt si vreo 2 de 8, moderne.
De skiat e destul, noi nu am apucat intr-o zi decat cateva piste sa facem. Majoritatea sunt insa usoare … chiar si alea asa zis grele. Greu inseamna doar cateva grade in plus in inclinatie si ceva mai multe moguls.
Dpdv coclauri se gasesc tot timpul variante, dar cunoscatorii le stiu mai bine. Am vazut mai multe culoare interesante cu destul de multe urme pe ele, dar nu imi era clar cu sa ajung acolo si nu aveam timp sa le caut. Asa cam m-am rezumat la variante prin padure/padurici, destul de comune.

Zapada era excelenta, cam 15 – 20 cm de pudra inghetata si fluida deasupra unei zapezi bine batute de ratrakuri … de vis pentru o statiune. Gheata e un musafir greu de gasit in zona. Cat am stat acolo a nins intermitent, inca vreo 10 cm cum am constatat la intoarcere pe sosea. Dpdv al securitatii, erau destul de multe zone alpine expuse, unde vedeam niste versanti destul de ingrijoratori. Oamenii isi faceau datoria si inchideau anumite zone dar lumea nu prea lua in seama avertizarile …


La momentul potrivit am gustat si o bere, mult prea comuna si proasta 1664, intr-o cabanuta cocheta pe la 2000 si ceva de metri, langa partie. Pentru nostalgici gratarelul sfaraia langa cabana.

O bere era 3.5 sau 4.5 euro (la 25 cl), un hotdog 4 euro, o portie de cartofi prajiti 4.5 euro.
Si cam atat – cu ultimul telescaun luat ne-am oprit la masina si ne-am tirat … cu mare atentie pe sosea: la zapada proaspata si la plugurile imense si carora le si cam rupea de alte masini, care aparusera deja.

Un nou index – Melodii de iarna

Incep aici un nou index, si anume melodii cu specific de iarna. Aici o sa includ in special cele cu o tematica de sezon, si mai putin cele cu un videoclip … sa zicem cu zapada.

Incep cu o melodie care am auzit-o de curand, dar mi-a trezit interesul Raphael – le vent de l’hiver
[kml_flashembed movie=”http://www.youtube.com/v/m0qHiqYn7mo” width=”425″ height=”350″ wmode=”transparent” /]

Videoclipul este destul de cheesy, nu e cel original, dar prindeti ideea. Melodia imi pare oarecum un fel de Decembre frantuzesc, sa exemplific cu cateva versuri.

Vive le vent de l’hiver
Et tout retourne la terre
Les loups sont à la porte
Un dernier coup d’oeil en arrière
Dans le rétroviseur

sau

C’était le temps de Lily Brik
Le temps du soleil tatoué
C’était le temps des avalanches
Le temps des verres bus et cassés
Ma vie brûlait comme la place rouge
Quand la nuit finissait sa course

Scorurile melodiei sunt:

Zapada: 4/10
Ski: 0/10
Atmosfera: 8/10
Total: 4/10

Versurile complete ar fi:

C’était le temps d’une autre année
Le temps des néons allumés
Le temps des témoins des colombes
Le temps de la vitesse et de l’ombre
Le temps des lettres jetées au feu
Le temps où on était heureux

C’était le temps des bords de mer
Le temps des Gainsbourg, des Prévert
Je revois tes cheveux défaits
Dans la chambre d’hôtel tu jouais
Et moi sur la banquette arrière
Je voyais le monde à l’envers …

Vive le vent de l’hiver
Et la chanson de Prévert
Continue sa route à l’envers
Je ne suis pas chrétien
Mais de tout je me souviens

Vive le vent de l’hiver
Et tout retourne la terre
Les loups sont à la porte
Un dernier coup d’oeil en arrière
Dans le rétroviseur

C’était le temps de Lily Brik
Le temps du soleil tatoué
C’était le temps des avalanches
Le temps des verres bus et cassés
Ma vie brûlait comme la place rouge
Quand la nuit finissait sa course

C’était le temps des accords majeurs
Où tout était illuminé
Et j’entends battre ton coeur
Doucement doucement
Je ne suis pas soigné
C’était le temps de la Cantate
Le temps où tu la jouais pour moi

Vive le vent de l’hiver
Et la chanson de Prévert
Continue sa route à l’envers
Je ne suis pas chrétien
Mais de tout je me souviens

Vive le vent de l’hiver
Et tout retourne à la terre
Les loups sont à ma porte
Un dernier coup d’oeil en arrière
Dans le rétroviseur

(Sur les routes pavées
Nuit d’hiver j’étais…)

Longboard, Ski si Arta de Avangarda