Claudiu Persoiu

Blog-ul lui Claudiu Persoiu


Archive for the ‘Web stuff’ Category

About passion, programming and heating systems

without comments

Don’t be fooled, this post is about programming, system architecture but mostly about using a heating system.

If you don’t know how can you talk about programming without programming you should check out the “The Passionate Programmer” book by Chad Fowler, a great read. The Jazz stories from this book inspired me to write this blog.

The story begins with a new apartment in an old building. Or at least it’s new to me.

The building has its own heating system, very old and extremely inefficient. After a long consideration I’ve decided that it was time to install my own heating system and disconnect from the main building one.

So far, nothing interesting, there are many people that do this, partly because of the added comfort and partly to optimize expenses.

With this being said, I had a project and needed a developer. Or in other words, I had a heating system to build and I was in need of somebody to do it.

I’ve asked around for that “good” developer.

Like in anything else, there are a lot of people that come up with bad solutions. There are devs that make great offers but are unable to finish the project, or they write very bad code that is not scalable and even worst, unmaintainable.

Since what I know about heating systems can be covered by anyone with the patience to google the subject for a couple of hours or so, I wanted somebody I could trust, so I was looking for the passionate kind of developer!

I had a couple of recommendations. The first one told me that he had to put all the pipes close to the ceiling. After convincing him that I don’t want my house to look like a factory full of pipes he said that he will definitely need to replace one of the radiators (at least) because he could not fit a pipe behind it. I could fit my palm behind that radiator, with this in mind I knew I wanted somebody that could fit a pipe behind my radiator.

It was clear that he wasn’t a good developer. A good developer must work with the requirements, the very least a project should be able to respect most of the client requirements, if it doesn’t, there can be several explanations: he can’t because he doesn’t know how or he doesn’t want because he knows it’s hard and doesn’t want to go that extra mile. In some cases that’s not a tragedy, maybe it will be cheaper and faster, and in his case it was. Unfortunately for him, I aimed for quality.

Then there was the passionate developer. He never mentioned anything about not being able to do something, it was always a cost and maybe a consequence. The deal with better developers is that they are more expensive and everything about them is expensive, they will want better servers for hosting, better tools and sometimes more time for things like testing and maintenance. In other words, sometimes the cost is bigger not just then, but also in the log run. A quality project takes time and money.

This is my resulting project:

If you never seen an apartment heating system before you should know that except for the pipes, nothing else is actually required.

It’s all just passion!

For instance: the pump on the lower right, it’s there just to force the water to move faster in the system. Think of it as Redis, it will have a good effect on your system but most systems will happily work without it. Of course, at some point there may be maintenance for that pump and can even result in issues, like this Magento 2 issue: https://github.com/magento/magento2/issues/10002. Every system has its own cost.

The expansion tank in the lower left was unnecessary (in the sense that the system already has one built-in), but it’s not a bad idea to have an extra. Think of it as that extra storage space, ram or CPU that you don’t actually use. Your server should never go above certain server loads, that’s the expansion tank you should take into consideration.

The water intake filter is like your firewall, you need it, it’s your protection, maybe most of the time will be useless but when there will be issues, then you will be glad you have it, because he will have filtered them out.

The good thing with passionate developers is that other developers understand and appreciate their work. That is very important, no matter the industry of the “developer”.

The only one that had anything to comment on the system was the ISCIR certified technician that initialized the heating system (ISCIR in Romania is a special authorization needed for this exact thing). You can tell that he wasn’t passionate, he just wanted to say something bad about it because he wanted to make a good impression on me.

Unfortunately for him, he made some very stupid comments and then he made me a maintenance offer. This guy was the consultant, he didn’t do the project and he doesn’t want to work on it but he definitely wants to make some money on it without actually doing anything.

I guess the conclusion is that no matter the developer, the quality and passion transcends the industry.

Written by Claudiu Persoiu

8 August 2018 at 8:47 PM

Posted in Diverse,Web stuff

Tagged with

Google now knows where I live

without comments

More then an year ago I wrote a blog, where I was telling that Google doesn’t know where I live.

The issue was that Goole Maps had a very poor coverage for Romania, and Yahoo! Maps is a way better alternative for this part of Europe. I still believe that Yahoo! Maps is a better alternative but I was surprised by one thing. Occasionally I’ve visited Google Maps to see how things are going with the coverage of Bucharest, basically it was represented a single way to cross the city from highway A1 to A2, and nothing else.

About a month ago, I went back to check what was new because I needed to build an Romanian tourism app and… surprise, surprise, even though the satellite photos are of lower quality now, I could find my street using the search and even the block where I live. Even more I was able to calculate alternative routes to various  locations in Bucharest.

It looks like Google has began to have a little more interest in this part of central Europe, now allowing for a real competition with Yahoo!. This is a great advantage for Android phone users who use Google Maps for there GPS app. Few years ago, to user Google Maps in Romania it was completely useless, you could see the satellite images, but that was about all, you could not find useful addresses, and if there ware marked on the map you could not automatically find a route to them.

Eventually I used Google Maps for my app, even though I still believe that Yahoo! Maps is a good alternative, as far as quality and API. Speaking of API, both of them seem ok and I don’t king that’s a criteria to difference them between the two giants.

A thing a little shocking about Google knowing where I live it was on an evening when curios to see if my GPS works on my mobile phone I went on my balcony. Everything was ok, it found me within 50 and 100m on the Google map, using my wireless connection for the data transfer. Another evening a friend came over to tried the same thing, using the same connection to the Internet, same Google Maps app, and he was found within 100m.

Nothing unusual in theory, but everything changed  the next day when he told me that his phone didn’t have GPS, and what we ware seeing was the date from the last time I connected my device… so Google now knows where I live… literary…

Written by Claudiu Persoiu

1 March 2010 at 9:38 PM

Posted in Diverse,Web stuff

Tagged with ,

Douglas Crockford despre JavaScript

without comments

Asteptam de ceva vreme video-ul acesta si intr-un final a aparut.

Douglas Crockford este una dintre cele mai importante persoane in comunitatea JavaScript. Modul in care pointeaza toate problemele legate de JavaScript mi se pare genial, parca te tine in tensiune pana la final sa vezi care sunt si partile bune.

Written by Claudiu Persoiu

10 March 2009 at 3:30 PM

Rel nofallow, “don’t fallow him please!”

with one comment

Toata lumea tanjeste dupa PR de la Google, dar cum sa faci sa nu dai PR fara rost?

Aceasta problema este foarte comuna, incepand de la site-uri de prezentare pana la blog-uri si forumuri. Sau mai exista si cazuri speciale cand preferi sa nu se indexeze anumite link-uri, cum ar fi link-urile care tin locul formularelor de tip GET.

Raspunsul este foarte simplu! Argumentul rel=”nofallow”. Sa luam un exemplu:

<a href="http://www.claudiupersoiu.ro">Claudiu Persoiu</a>

Cam asa arata un link normal, acum nu mai trebuie adaugat decat rel=”nofallow”:

<a href="http://www.claudiupersoiu.ro" rel="nofallow">Claudiu Persoiu</a>

Hmmm… ce mai trebuie? Nimic! Practic cu acest mic argument s-a rezolvat problema.

De multe ori pentru site-uri externe se marchiaza cu “external nofollow”, practic rezultatul este similar. In acest mod sunt marcate si link-urile de la comentarii de la acest blog.

Written by Claudiu Persoiu

6 February 2009 at 9:01 PM

Posted in Web stuff

Tagged with , ,

trafic.ro pe bani

with one comment

Arhicunoscutul site trafic.ro a devenit de curand serviciu pe bani, mai exact 10 euro fara TVA pe an.

Eu personal pentru acest blog folosesc google analytics, deci nu e ca si cum ma afecteaza pe mine dar undeva in sinea mea chiar imi pare rau. Era un mod foarte bun de a aflat date care altfel sunt condifentiale despre concurenta, era o unealta foarte buna si pe care multi o lasa complet neprotejata. Cu ajutorul trafic.ro poti vedea cuvinte cheie, surse de trafic si multe alte date foarte interesante din punct de vedere SEO. De asemenea cu acest serviciu puteai vedea cat de “sanatos” este traficul prin numarul de utilizatori care frecventeaza un anume site si cam ce rata de intoarcere au. Cu toate aceste date puteai sa faci un raport interesant chiar daca de multe ori si minimalist despre cum sa furi clientii unui site.

Dar toate acestea urmeaza sa se schimbe, o noua era in SEO din Romania se schiteaza.

Written by Claudiu Persoiu

6 February 2009 at 8:40 PM

Posted in Web stuff

Tagged with ,

Un index face diferenta

with 3 comments

Ca sa faci o aplicatie web in general ai nevoie de o baza de date. La scoala in general invatam ca “baza de date este administrata de administratorul bazei de date”. Teoretic asa ar trebui sa se intample, practic… ajungem sa ne facem singuri bazele de date de cele mai multe ori.

PHP este folosit in general cu un SGBD (Sistem de Gestiune al Bazelor de Date), de obicei aceasta este MySQL. Atunci cand o aplicatie incepe sa mearga greu in general se cauta metode de optimizare incepand de la reducerea sau inlocuirea functiilor lente (de exemplu echo este mai rapida ca print sau nl2br($text) este mai rapida ca str_replace(“\r\n”,”<br>”,$text)) pana la reducerea numarului de cereri http (in loc de mai multe fisiere css se foloseste unul singur). Totusi un mod foarte simplu pe care foarte multi nu il iau in calcul este acela de a adauga un index pe tabela.

Index-ul se adauga pe un camp pe care se fac sortari sau se pun conditii. Avantajul major este in momentul cand se extragi datele. Dezavantajul este atunci cand se introduc datele. Pe o tabela unde se fac modificari frecvent poate sa fie discutabila nevoia de un index, depinde de raportul de select-uri vs. insert-uri.

Cum se adauga un index:

ALTER TABLE tabela SET INDEX(camp);

Chiar zilele trecute aveam o interogate destul de greoaie pe mai multe tabele si nu intelegeam cum poate totusi sa mearga atat de greu. Am adaugat un index pe criteriul de filtrare si unul pe cel de ordonare iar in mai putin de 5 minute totul a devenit mult mai rapid, a devenit de 3 ori mai rapida interogarea (si nu am decat 2000 de inregistrari)!

Poate cateva milisecunde in plus nu par mare lucru, dar luati in calcul cateva zeci sau chiar sute de interogari pe o singura pagina, inmultiti cu numarul utilizatoriilor care acceseaza pagina simultan si… nu o sa mai apara atat de putin.

Written by Claudiu Persoiu

8 December 2008 at 10:39 PM

Posted in Web stuff

Tagged with ,

if(!WYSIWYG()) die();

without comments

Traim intr-o lume inconjurati de medii de programare.  Incepand de la Adobe Dreamweaver si Eclipse pana la notepad fiecare din noi foloseste un mediu de programare, un IDE (Integrated development environment) sau pe romaneste “mediu integrat de dezvoltare”.

Fiecare firma si individ are preferintele lui in functie de limbaj, costuri, complexitate etc. Probabil cel mai folosit din punctul de vedere al webdesig-nerilor este Adobe Dreamweaver, ba chiar acesta este preferat si de foarte multi programatori. Eu personal am testat Zend Studio for Eclipse varianta trial si pot spune ca sunt impresionat, cand vine vorba de programare in PHP este un mediu complet utilat, dar nu voi intra in mai multe detalii.

Cu toate ca lumea este plina de IDE-uri, atat cu licente platite cat si open-source multe firma prefera varianta notepad sau chiar am intalnit la o firma editate folosind MC (Midnight Commander, foarte similar cu Windows commander dar pentru linux). Motivele sunt simple de cele mai multe ori, bani, obisnuinta, licenta incompatibila sau chiar lipsa de interes.

Eu unul pur si simplu nu pot sa-i inteleg pe cei care fac aceste alergeri, ok eu nu sunt designer si nici nu pretind ca sunt sub nici o forma dar fara un mediu cu WYSIWYG (What You See Is What You Get) ma simt terminat. Un mediu vizual poate sa creasca productivitatea considerabil si sa scada numarul de erori intr-un site, intr-un cuvand este o investitie nu o cheltuiala si ar trebui perceputa ca atare. Pentru mine sunt trei lucruri esentiale intr-un IDE: 1 sa aiba un editor WYSIWYG, 2 sa aiba autocomplete (nu pentru ca nu stiu sintaxa, dar ma ajuta sa scriu cod mult mai repede si mai corect), 3 sa aiba suport FTP ca sa pot lucra direct pe server. Daca tu nu folosesti asa ceva ar trebui sa te gandesti serios la asta, iar daca seful tau nu se gandeste la asta ar trebui sa te gandesti serios la care sunt prioritatile lui!

Concluzia, alege bine mediul de programare pentru ca el va determina cat de repede si bine vei lucra in continuare.

Written by Claudiu Persoiu

1 November 2008 at 1:15 AM

Posted in Web stuff

Tagged with , ,

Zend framework certification

without comments

De putin timp Zend a lansat programul Zend Framework Certification. In cadrul programului de certificare, utilizatorul are la dispozitie manualul de referinta, ghidul de studiu, training si un voucher pentru examenul de certificare (si sa nu uitam un tricou foarte interesant 🙂 ).

Avantajele certificarii sunt aceleasi ca si la ZCE in PHP5.

Totusi fata de programul de certificare in PHP5, acest program are cateva lucruri diferite, cum ar fi:

PHP5 Zend framework
– este universal valabila pentru toti cei care fac programare in PHP5 – este folositoare doar celor care lucreaza cu… ZF
– este universal – exista si alte frameworkuri
– trecerea la alte versiune nu implica decat cunoasterea diferentelor – trecerea la alt framework greoaie

Trecand peste aceste diferente, atitudinea Zend este una bine venita, pana la urma atrage dupa sine un standard pentru in frameworkuri. Problema este ca nu sunt universal valabile, pana la urma chiar daca nu toti folosim un framework de pe piata, avem tendinta sa ne construim propriul framework.

Invatarea unui astfel de framework are totus avantajul de a oferi o noua perspectiva asupra lucrurilor, ne ajuta sa ne construm o imagine mai clara la ce trebuie sa ne asteptam de la frameworkul folosit. Pe de alta parte, un framework cum este Ruby on Rails a inspirat la randul lui multi programatori in modul cum un framework ar trebui construit, acesta avand echivalente in limbaje cum ar fi Java si evident PHP, fara ca multi dintre ei sa migreze la el. Si ce se intampla daca acum te certifici in el iar apoi te implici in proiecte care folosesc alte frameworkuri?

Pana la urma aceasta este tendinta, asa cum programarea obiectuala a oferit o perspectiva noua pentru refolosire fata de programarea procedurala, asa un framework are tendinta sa aduca programarea orientata obiect la un alt nivel, sporind gradul de refolosire al codului. Dar… doar Zend Framework este solutia?

Written by Claudiu Persoiu

28 September 2008 at 10:51 AM

Posted in Web stuff

Tagged with , ,

Zend PHP5 Certified Engineer

without comments

Si a venit si momentul examenului (a si trecut). Dupa poate ceva mai putin timp decat ar fi trebuit pentru studiu, in ultima zi de concediu am decis sa sustin examenul.

Taxa am platit-o direct la Zend cu un card Visa Electron. Apropo, sa nu faceti aceeasi gresala ca mine, nu incercati sa platiti cu alt card decat cel personal! Am avut aproximativ 5 incercari, doua telefoane in Germania si unul in USA am ajuns sa-mi fac card pentru a cumpara examenul si alte cateva produse! Evident exista si alte metode de plata, dar nu la fel de rapide.

Cand am ajuns la programare, a fost deosebit de simplu, poate prea simplu pentru mine. Totul a mers conform planului, m-am programat si am asteptat ziua examenului.

Ziua examenului. Pentru ca nu aveam nici cea mai mica idee unde se afla centrul ales de mine din cadrul complexului Facultatea de Drept Bucuresti, am decis sa dau un telefon preventiv… nici un raspuns, am mai incercat, era suficient de tarziu cat sa fie cineva acolo si totusi… nici un raspuns.

Am hotarat sa ma duc acolo. Nu mica mi-a fost surpriza cand nimeni nu a auzit de Pearson VUE, iar cand spun asta nu ma refer la femeile de servici care tineau locul de portarului, ci la cei care raspund la telefonul de pe site. Dupa suficiente legaturi din centrala am gasit si centrul (undeva in dreapta) este de fapt un centru CISCO afiliat Person VUE.

Examenul a fost exact asa cum a fost descris pe site, singur in sala, fara obiecte personale, iar acelea care poti sa le iei cu tine in sala de examen nu pot sa le scoti. Examenul este supravegheat cu o camera, care ma facea sa cred ca voi auzi “zzz, zzzz” in timpul examenului de la zoom, dar nu a fost asa.

Examenul, asa cum scrie si in manualul de la Zend, se bazeaza pe experienta cu PHP. Trebuie sa ai cel putin idee de elementele PHP si in special sa ai ochiul format pentru debuging. Cum era de asteptat se analizeaza mai mult elementele atipice de implementare, functii standard PHP si mai putin capacitatea de a scrie cod, dar pana la urma este grila, nuprea aveau cum sa faca altfel. Examenul nu mi s-a parut foarte dificil, dar nici simplu. Se vede clar experienta cu PHP in intrebari, se vede cine s-a “jucat” si cine nu.

La finalul examenului, mi-a aparut “Congratulations you have passed the exam”, sau ceva de genul asta, eram prea fericit ca sa mai memorez.

A doua zi lucratoare am avut si profilul completat pe site, desi puteam sa-l editez la cateva ore de la terminare (de cand am ajuns acasa).

Acum astept diploma care se trimite prin posta, cred ca asta se trimite din Israel deci… o sa fie un cadou frumos de Craciun probabil…

Am uitat sa amintesc de “mock” testele pentru examen. Desi am primit la pachet 10, nu am folosit decat 3, iar cu fiecare test facut scorul a crescut. Din pacate motivul pentru crestere este ca intrebarile se repeta (nu toate dar suficiente) si nici macar nu le-am regasit in examen, forma este asemanatoare, dar diferentele sunt mari in continut. Va sfatuiesc sa nu luati pachete mari pentru ca rezultatele nu o sa mai fie relevante dupa primele teste.

Am citit pe alte bloguri care testul este mai ushor decat examenul. Eu nu am aceeasi parere, gradul de complexitate este de fapt similar, doar intrebarile deosebit de stufoase nu se regasesc in examen, in rest sunt similare.

Written by Claudiu Persoiu

17 September 2008 at 8:36 PM

php|architect’s Zend PHP5 Certification Study Guide – 2nd Edition

with 2 comments

php|architect’s Zend PHP5 Certification Study Guide – 2nd Edition, sau mai exact ghidul recomandata de Zend pentru sustinerea testarii in vederea obtinerii ZCE PHP 5.

O carte subtirica pentru un limbaj peste 1000 de functii (var_dump(get_defined_functions()); – 1297 in versiunea mea), dar exista o explicatie, aceasta carte NU ESTE UN MANUAL! este doar un ghid, manualul il cunoastem deja, se gaseste pe site-ul php.net.

Este o carte foarte interesanta, cel putin a fost pentru mine. Aceasta atinge practic toate subiectele posibile in cadrul examenului de certificare, dar NU le trateaza in detaliu. Daca intentionati sa studiati pentru certificare folosind aceasta carte, trebuie sa aveti manualul aproape, pentru ca nu se gasesc toate explicatiile in carte.

Pe alocuri mai sunt greseli, chiar daca este a doua editie, lucru care mi se pare bizar. Din fericire ele sunt destul de usor de reperat.

Editia a doua mai trateaza doua noi subiecte, respectiv PDO si mysqli. Chiar daca sunt tratate pe scurt, eu am mai gasit lucruri care nu le stiam in aceste capitole (ma indoiesc ca erau critice pentru a trece examenul, dar cred ca sunt utile pentru experienta mea).

Pana la urma este o carte interesanta, si nu de putine ori citind ma gandeam “nu stiam ca se poate face si asa”.

Eu am cumparat-o de la Zend, o data cu certificarea, un set de 10 teste si doua tricouri (php geek fashion 🙂 ), am ales livrarea prin posta, pentru ca era mai putin de jumatate fata de DHL si surpriza, pachetul a venit la doar o saptamana de cand am fost anuntat ca a plecat! Evident pachetul a venit de la un centru apropiat (element 5 Germania), desi initial ma gandeam ca o sa fie livrat din SUA sau Israel si o sa fie un frumos cadou de Craciun.

Written by Claudiu Persoiu

17 September 2008 at 7:21 PM

Posted in Diverse,Web stuff

Tagged with , , ,