Acasă
Despre
Cautare
🌐
English Română
  • Despre pasiune, programare si sisteme de incalzire

    Read this post in English

    Aug 8, 2018 programming
    Share on:

    Nu te lasa pacalit, aceasta postare chiar este despre programare, arhitectura sistemelor, dar si despre un sistem de incalzire.

    Daca nu-ti dai seama cum poti vorbi despre programare fara sa folosesti programare, atunci ar trebui sa citesti cartea “The Passionate Programmer” de Chad Fowler, este o carte foarte buna. Povestirile legate de jazz din acea carte m-au inspirat sa scriu aceasta postare.

    Povestea incepe intr-un apartament nou dintr-o cladire veche. Sau cel putin, e nou pentru mine.

    Cladirea are o centrala proprie, foarte veche si extrem de ineficienta. Dupa o lunga analiza, am decis sa-mi instalez propria centrala de apartament si sa ma deconectez de la sistemul de incalzire al cladirii.

    Pana aici nimic deosebit, multa lume face asta, parte pentru confort, parte pentru optimizarea cheltuielilor.

    Acestea fiind spuse, aveam un proiect si aveam nevoie de un dev. Sau, cu alte cuvinte, aveam un sistem de incalzire de facut si aveam nevoie de cineva care sa-l construiasca.

    Am intrebat in jur de un dev “bun”.

    Ca in orice alt domeniu, sunt multi oameni care vin cu solutii proaste. Sunt unii care fac oferte foarte bune, dar nu sunt capabili sa termine lucrarea, sau scriu cod urat care nu este scalabil, sau, si mai rau, imposibil de mentinut.

    Avand in vedere ca tot ce stiu despre centrale si sisteme de incalzire este cam ce stie oricine dupa ce a cautat subiectul pe google pentru aproximativ doua ore, am vrut pe cineva in care sa am incredere, asa ca am cautat dev-ul pasionat!

    Am avut cateva recomandari. Primul mi-a spus ca trebuie sa-mi pun tevile aproape de travan. Dupa ce l-am convins ca nu vreau ca apartamentul meu sa arate ca o fabrica plina de tevi mi-a spus ca in mod sigur trebuie sa inlocuiasca (cel putin) un calorifer pentru ca nu poate trage o teava prin spatele lui. Aproape ca puteam sa-mi bag toata palma in spatele caloriferului asa ca am concluzionat ca cel care vine trebuie sa fie capabil sa treaca testul de a trage o teava prin spatele caloriferului.

    Era evident ca nu era un dev bun. Un bun dev trebuie sa poata lucra cu cerintele, un proiect trebuie sa respecte cat mai multe din cerintele clientului, iar daca nu poate atunci sunt cateva explicatii: nu poate pentru ca nu stie cum sau nu vrea pentru ca stie ca este greu si nu vrea sa se complice. In unele cazuri asta nu este o tragedie, poate este mai ieftin si mai rapid, iar in cazul lui ar fi fost. Din pacate pentru el, eu eram interesat de calitate.

    Si apoi a aparut programatorul pasionat. Nu a spus la niciun moment ca este ceva ce nu poate face, era mereu vorba doar de un cost si, poate, de o consecinta. Can lucrezi cu un dev mai, totul legat de ei e mai scump, nu doar munca lor: vor vrea servere mai bune, unelte mai bune si uneori mai mult timp pentru lucruri precum testare si mententanta. Cu alte cuvinte, uneori pretul este mai mare, nu doar pe loc, ci si pe termen lung. Un proiect de calitate necesita timp si bani.

    Acesta este rezultatul proiectului meu:

    In caz ca nu ai mai vazut un sistem de incalzire pentru un apartament, poate ar trebui sa stii ca, in afara de tevi, nimic altceva nu este neaparat necesar.

    Este doar pasiune!

    De exemplu: pompa din dreapta jos, este acolo doar ca sa forteze apa sa se miste mai repede prin instalatie. Gandeste-te la ceva de tipul Redis, care va avea un efect benefic asupra sistemului, dar majoritatea sistemelor vor lucra foarte bine fara el. Evident, la un moment dat ar putea chiar avea nevoie de mententanta sau poate creea si probleme, ca aceasta problema din Magento 2: https://github.com/magento/magento2/issues/10002. Orice sistem vine cu pretul lui.

    Vasul de expansiune din stanga jos nu era necesar (in sensul in care centrala are deja unul integrat), dar nu este o idee rea sa ai unul in plus. Este ca si cum ai resurse suplimentare (spatiu de stocare suplimentar, ram sau CPU) pe care nu le folosesti, de fapt, in mod constant. Un server nu ar trebui in general sa depaseasca un anumit load, acela este vasul de expansiune al serverului pe care trebuie sa-l iei in considerare.

    Filtrul de apa este ca un firewall, ai nevoie de el, este protectia ta, poate marea majoritate a timplui va fi inutil, dar atunci cand vei avea probleme pe instalatie iti va parea bine ca il ai, pentru ca el le va filtra.

    Partea buna cu un dev pasionat este ca si alti devi ii inteleg si ii apreciaza munca. Asta este foarte important, indiferent de industria “dev-ului”.

    Singurul care a avut ceva de comentat a fost tehnicianul care facea ISCIR-ul. Puteai sa-ti dai seama foarte usor ca nu e pasionat, a vrut sa spuna ceva de rau doar ca sa ma impresioneze pe mine cu expertiza lui.

    Din pacate pentru el, a facut niste comentarii foarte ridicole dupa care mi-a facut o oferta de mentenanta. El era consultantul, nu a facut proiectul si nu a vrut sa munceasca la el, dar in mod sigur vrea sa faca un ban din el fara sa depuna niciun fel de efort.

    Cred ca o concluzie este ca intre developeri, calitatea si pasiunea transcend industria.

  • Google stie acum unde stau

    Read this post in English

    Mar 1, 2010 google maps yahoo maps
    Share on:

    Acum mai bine de un an de zile am scris un blog, in care ziceam ca Google nu stie unde stau.

    Problema era ca Goole Maps avea o acoperire deosebit de proasta pentru Romania, iar Yahoo! Maps este o alternative mult mai buna pentru aceasta parte a europei. Inca mai cred ca Yahoo! Maps este o alternativa mult mai buna dar am fost surprins totusi de un lucru. In decursul tipului am tot intrat pe Google Maps pentru ca sa vad cum mai sta acoperirea pe Bucuresti, practic era o singura cale reprezentata pentru a ajunge de la autostrada A1 la A2 si nimic mai mult.

    Acum aproximativ o luna, am intrat din nou pentru ca trebuia sa construiesc o aplicatie de turism in Romania si… surpriza, surprize, chiar daca pozele din satelit sunt de calitate mai proasta acum, am putut nu doar sa gasesc folosind cautarea strada pe care stau dar si blocul. Mai mult de atat, am putut calcula trasee alternative catre diverse locatii din Bucuresti.

    Se pare ca Google a inceput sa aiba ceva mai mult interes pentru aceasta zona din centru Europei, acum permitand formarea unei concurente reale cu Yahoo!. Asta este un foarte mare avantaj pentru cei care au telefoane cu Android si folosesc Google Maps ca aplicatie de GPS. Acum cativa ani, sa folosesti Google Maps in Romania era complet inutil, puteai sa vezi intradevar imaginile din satelit, dar cam atat, nu puteai sa gasesti adrese utile, iar daca erau cumva marcate pe harta nu puteai sa calculezi un traseu catre acestea.

    Pana la urma aplicatia am rezlizat-o folosind Google Maps, desi inca sunt de parere ca Yahoo! Maps este o foarte buna alternativa, atat de punctul de vedere al calitatii cat si ca API. Si ca tot vine vorba de API, ambele mi se par ok si nu cred ca acest criteriu este unul de diferentiere intre cei doi giganti.

    O chestie putin socanta totusi legata de Google stie unde stau a fost intr-o seara cand curios sa vad daca GPS-ul de pe telefonul meu functioneaza am iesit pe balcon. Totul a fost ok, m-a gasit cu o aproximatie intre 50 si 100m pe harta Google folosind conexiunea mea de wireless pentru transferul de date. Intr-o alta seara un prieten a venit la mine si am incercat acelasi lucru, tot pe aceeasi conexiune de internet, acelasi program Google Maps, cu o apximatie constanta de 100m.

    Teoretic nimic anormal, totul a devenit bizar cand a doua zi am aflat ca de fapt telefonul lui nu are GPS, deci ce vedeam noi era ultima conecare de la dispozitivul meu… deci Google chiar stie unde stau… la propriu…

  • Douglas Crockford despre JavaScript

    Mar 10, 2009 Douglas Crockford JavaScript
    Share on:

    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.

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

    Feb 6, 2009 Google nofallow pr
    Share on:

    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:

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

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

    1<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.

  • trafic.ro pe bani

    Feb 6, 2009 Google Analytics SEO
    Share on:

    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.

    • ««
    • «
    • 1
    • 2
    • 3
    • »
    • »»

Claudiu Perșoiu

Programare, tehnologie și altele
Mai multe

Postări recente

  • Slider in Tasmota folosind BerryScript
  • Proiectul care rezista probei timpului
  • Docker in interiorul wsl2
  • Migrând de la Wordpress
  • Calea personalizată pentru Composer cache
  • Magento2 si crudul adevar
  • Un pic de PHP, Go, FFI si atmosfera de sarbatori
  • Cum sa folosesti Xiaomi Air Conditioning Companion in Home Assistant in doar de 20 pasi usor de urmat!

DIVERSE 72 PHP 67 JAVASCRIPT 22 BROWSERS 12 MYSQL 12 WEB STUFF 12 MAGENTO 7 DESIGN PATTERNS 5 HARDWARE 3 HOME AUTOMATION 2 LINUX-UNIX 2 GO 1 MISCELLANEOUS 1

PHP 52 JAVASCRIPT 20 PHP5.3 14 MYSQL 13 PHP6 12 PHP5 10 FIREFOX 9 CERTIFICARE 8 INTERNET EXPLORER 8 ZCE 8 ZEND 8 CERTIFICATION 7 MAGENTO 7 HACK 6
Toate etichetele
10 ANI1 3D1 ADOBE AIR2 AJAX1 ANDROID3 ANGULAR1 ANONYMOUS FUNCTIONS3 API1 APP1 BERRYSCRIPT1 BETA1 BOOK1 BROWSER4 C2 CALCULATOARE1 CARTE2 CERTIFICARE8 CERTIFICATION7 CERTIFIED2 CERTIFIED DEVELOPER1 CHALLENGE1 CHM1 CHROME1 CLASS1 CLI2 CLOSURES5 COD1 CODE QUALITY1 CODEIGNITER3 COFFEESCRIPT1 COLLECTIONS1 COMPOSER1 CSS3 CSV1 CURL1 DEBUG1 DESIGN PATTERNS4 DEVELOPER1 DEVELOPMENT TIME1 DIAGRAME1 DOCKER2 DOCKER-COMPOSE1 DOUGLAS CROCKFORD3 DRIVERE2 ELEPHPANT2 ENGINEER1 EXAMEN1 EXCEL1 FACEBOOK2 FEEDBACK1 FFI1 FINALLY1 FIREFOX9 FISIERE1 FPDF1 FRUMOS1 FTP1 GAMES1 GD2 GENERATOR1 GO1 GOOGLE5 GOOGLE ANALYTICS1 GOOGLE CHROME3 GOOGLE MAPS2 HACK6 HARDWARE1 HC-911 HEADER1 HEIGHT1 HOMEASSISTANT2 HTML2 HTML HELP WORKSHOP1 HTML51 HUG1 HUGO1 IDE1 IMAGINE1 INFORMATION_SCHEMA1 INI1 INTERNET4 INTERNET EXPLORER8 IPV41 IPV61 ISP1 ITERATOR2 JAVA1 JAVASCRIPT20 JQUERY1 LAMBDA2 LAPTOP2 LINUX1 LIVELY1 LUNI1 MAGENTO7 MAGENTO22 MAP1 MAPS1 MICROSOFT1 MINESWEEPER1 MOTIVATION1 MSN MAPS1 MYSQL13 MYSQL WORKBENCH1 NGINX1 NODE.JS2 NOFALLOW1 NOSQL1 OBSERVER3 OBSERVER PATTERN1 OOP1 OPERA1 OPTIMIZATION1 ORACLE2 PAGESPEED1 PAIR1 PARSE_INI_FILE1 PASCAL1 PEAR1 PECL1 PERSON VUE2 PHAR1 PHONEGAP2 PHP52 PHP ELEPHANT2 PHP FOR ANDROID1 PHP-GTK1 PHP42 PHP510 PHP5.314 PHP5.46 PHP5.53 PHP5.61 PHP612 PHP7.41 POO1 PR1 PROGRAMMING1 PROIECTE1 RETEA1 REVIEW1 ROCK STAR1 ROMANIAN STEMMER2 RSS1 SAFARY1 SCALAR TYPE HINTING1 SCHEME1 SEO1 SET1 SHOPPING CART PRICE RULE1 SIMPLEXML1 SINGLETON1 SOAP2 SPL2 SQLITE1 SSH1 STACK TRACE1 STDERR1 STDIN1 STDOUT1 STOCATE1 STUDY GUIDE1 SUN2 SYMFONY2 TABLE1 TASMOTA1 TEST TO SPEECH1 TITANIUM2 TRAITS1 TTS1 UBUNTU1 UNICODE3 UTF-82 VECTOR1 VISTA2 WEB2 WEBKIT1 WINBINDER1 WINDOWS2 WORDPRESS1 WSL21 WYSIWYG1 XP3 YAHOO3 YAHOO MAPS2 YAHOO OPEN HACK1 YSLOW1 YUI1 ZCE8 ZCE5.31 ZEND8 ZEND FRAMEWORK4
[A~Z][0~9]

Copyright © 2008 - 2024 CLAUDIU PERȘOIU'S BLOG. Toate drepturile rezervate