Candybar – ia bomboanele din rezultatele testelor phpunit

Acum aprox. două săptămâni, în timp ce lucram la un repozitoriu hostat privat, mă gândeam ce fain ar fi să pot avea niște badge-uri în readme cum ar fi unul cu build status sau unul cu procentul pentru code coverage. Din păcate serviciile care generează astfel de badge-uri oferă serviciul gratuit doar pentru repozitoarele publice, unele chiar limitate la github.

De fapt informația din care se generează imaginea, e deja disponibilă în xml-ul generat de phpunit când rulezi testele, așa că aș putea la fel de bine să generez eu o imagine și să o pun în readme!

Așa am început proiectul Candybar, care își propune să facă rezultatele testelor cu phpunit mai ușor de digerat și integrat cu alte tool-uri. De fapt, proiectul este o colecție de comenzi, care face fiecare o treabă, și de asemenea puteți adăuga propriile comenzi destul de simplu. Release-ul 0.2, poate să facă următoarele:

    • coverage:badge: generează badge-ul pentru code coverage
    • license:badge: generează badge pentru licență
    • coverage:style: aplică stil la prezentarea html pentru code coverage generată de phpunit (phpunit --coverage-html tests/coverage/html)
    • readme:add-badges: adaugă badge-urile generate în readme

Mai multe detalii despre fiecare comandă puteți afla rulând vendor/bin/candybar help [commandă]

Dacă vreți să scrieți o comandă, copiați clasa ExampleCommand din DevLib/Candybar/Commands într-un folder al aplicației voastre. Va fi necesar să schimbați namespace-ul și argumentele/opțiunile ($arguments și $options) iar logica o implementați în metoda handle().
Odată ce funcționează așa cum doriți și o testați cu phpunit :) o includeți la lista de comenzi în candybar/config.php.

Dacă aveți sugestii, deschideți vă rog un issue pe pagina proiectului.

Imaginea a fost luată de pe saitul cofetăriei Minimal.

The ”town” of Cluj-Napoca

Comparat cu alte orașe europene, Clujul este un ”town” cum zicea un prieten de-al nostru. Unul dintre lucrurile cele mai suprinzătoare pentru noi a fost faptul că toată lumea se cunoaște. Adică vorbești și tu cu o cunoștință mai veche. să-ți recomande un instructor bun, îți zice un nume și-ți dă un nr. de telefon, iar din vorbă în vorbă în vorbă cu acesta din urmă afli că e ginerele vecinului.
Cam ca pe la noi, pe la Hovrila!

Altfel, Clujul e un pic aglomerat, dar nu din cauza drumurilor, care sunt bune și gândite destul de bine, ci din cauza numărului de mașini. Sunt foarte multe mașini și puține locuri de parcare. Aș spune chiar că mulți clujeni se cred încă undeva la țară, – desigur mulți dintre ei chiar au trăit la țară și abia de una sau două generații stau la oraș – și nu-i nici un bai dacă lasă mașina la poartă, cu o roată în drum și una pe trotuar.

Avem 3 mall-uri, cel mai nou Platinia e foarte aproape de unde stăm noi și arată foarte fain – cumva o oază, cu restaurante cu specific dar prețuri bune. Comparativ cu alte orașe europene unde se mai înghesuie turiștii, Clujul are aici un avantaj – mâncarea, berea și cazarea sunt ieftine.

Însă nu prea avem atracții. Aș începe cu Grădina Botanică, care după părerea mea este insuficient promovată și utilizată. Mi-ar plăcea să se facă mai multe evenimente și reprezentații, chiar cu intrare liberă. Puțini turiști care ajung aici, știu că avem și o grădină botanică.
Centru vechi e fain, sunt și câteva cluburi și câteodată un concert, dar ne trebuie ceva mai mult ca să îi ții pe turiști aici mai mult de două zile. Din categoria celor care cheltuiesc mai mult sunt cei care vin cu familia, dar rar îi vezi pe la concerte sau festivaluri. Ca să-i atragem ne trebuie o ofertă pe măsură, un aeroport mai mare, evenimente pentru toți membrii familiei, ghizi și tururi de mai multe zile. Recunosc că nu știu prea multe despre acest domeniu, dar asta e concluzia.

Așadar cei mai mulți vin la festivaluri – Untold și Castelu’ Electric. Primul e foarte zgomotos. Atrage mulți turiști și în zilele alea, orașul e inundat de lume. Cazare poate mai găsești la cele două hoteluri mai scumpe din oraș unde stau și unii dintre DJ, iar dacă te gândeai la un weekend liniștiti în perioada aia, mai bine mergi la Hovrila! Adică eviți Clujul. Ceea ce fac și mulți clujeni – își dau apartamentele în chirie și stau un weekend la țară.
Sunt păreri și pro: aduce bani și recunoaștere internațională orașului; și contra: cei care stau în cartierele aproape de scene și de parc efectiv nu pot dormi din cauza zgomotului, unde pui că mai sunt și spitale în zonă.
Eu zic că ar fi bine ca autoritățile să îl mute undeva în afara orașului, sau să facă un parc destul de mare care să îl găzduiască.

Dacă preferați un festival mai chill, avem Jazz in the Park, e un festival tare fain și mai restrâns la care chiar poți să auzi din difuzoare și înaltele și mediile.

Restaurantele din Cluj, sunt pentru toate buzunarele. La noi ne-a plăcut la Nomad, la Bianco Milano la Samsara și la Marty . În ordinea asta: cea mai bună experiență internațională, cel mai bun gelato, cel mai bun meniu vegetarian și cele mai bune burgere.

Din păcate, și cineva a mai scris despre asta, în Cluj, nu avem restaurante de lux. Adică nu prea ai unde să-ți spargi portofelul, unde un meniu să coste pe la 80 de euro, exclusivist, rafinat sau cum vreți voi să-i ziceți. Mie îmi place să mai fac câte o escapadă în astfel de locații, dar Clujul nu reușește să mă ademenească. Dacă știți astfel de locații vă rog să-mi dați de știre. Scriu un review.

Avem multe evenimente tech! Foarte multe. Dar dacă vreți să mergeți la vreunul, să vă puneți la punct cu engleza, deoarece aceasta este limba care se vorbește la ele. Serios, doar la meetup-uri se mai folosește româna. Din păcate sunt puține evenimente (două știu eu până acum) care chiar aduc speakeri de calibru, sau au o agendă focusată – restul cam toate sunt tech!

Aș mai adăuga ceva despre evenimentele pentru startup-uri, și peisajul din jurul acestui fenomen, însă, pentru că am mai multe de zis, o să-i dedic un articol întreg în curând.

De ce motivele pentru care nu mergi la vot sunt un bullshit!

Nu mă interesează politica – bullshit! Ești cetățean român? Plătești taxe statului Român, ei uite că te interesează. Administrația locală, taxele și impozitele pe care le plătești sunt controlate de cei care stabilesc bugetul, adică de politicieni. Ia spune, dacă ți-ar propune impozite mai mari ai deveni brusc interesat?

Nu am pe cine alege, nu găsesc un candidat care să mă reprezinte – bullshit! Ia te uită mr. perfect. Chiar dacă nu ai cu cine să votezi, sigur ai împotriva cui. Trebuie să te prezinți la vot dacă vrei să te asiguri că nu câștigă cei din tabăra adversă.

Toți sunt la fel, chiar dacă votez, tot ăia ies – alt bullshit! Desigur că se aseamnă între ei, doar sunt politicieni. Și gunoierii se aseamnă între ei, poartă uniforme sunt mai murdari așa, dar fiecare lucrează la altă companie și are o serie de idealuri. Asta dovedește că ești așa de leneș încât nici nu știi care sunt programele de guvernare și promisiunile făcut de diferite partide. Poate nici nu știi de ce se aliază partidele uneori sau ce înseamnă separarea puterilor în stat – ia treci și pune mâna pe carte că puți!

Votul meu nu contează, suntem puțini să schimbăm ceva – bullshit! Fiecare vot contează. Diferența în cazul Brexitului a fost de 1 270 000 – un milion și două sute și ceva de voturi – adică lipsă ceva din populația Bucureștiului sau alte 3 mari orașe din țară. În cazul alegerilor din 2016 din SUA, diferența a fost de vreo 2,8 milioane de voturi. Redus la populația statului nostru asta ar însemna aprox. o jumate de milion – Clujul.

Nu vreau să mai stau în țară, vreau să mă mut – bullshit! Poate cândva o să te muți, poate că nu. Dacă nu te-ai decis încă probabil că nu o să pleci prea curând, iar până în momentul în care ți se va conferi cetățenia altui stat, pentru că nici alea nu se dau pe gratis, ești cetățean Român și ne întoarcem la primul motiv.

Din motive medicale! – din 2016 se poate vota prin corespondență!

Chiar aș dori să aflu de la voi, dacă aveți, alte motive serioase? nu bullshit-uri pentru care să nu ați fost la vot.

Vă invit la cursul meu de parenting

Cursul de parenting, pe care vi-l propun se va desfășura în 3 pași foarte simplu de urmat. Am o ofertă extraordinară – cursul este absolut gratuit și durează câteva ore pe zi. De asemenea vă recomand să îl dați mai departe și la alți părinți deoarece este o ocazie unică!
O să vă explic cum vă puteți crește copii sănătoși și inteligenți așa cum trebuie să fie. Serios, cine nu-și dorește copii așa cum trebuie să fie?!

Primul pas: foarte important, lăsați lucrul de o parte, opriți și ascudeți telefoanele, tabletele și laptopurile sub pat, sau orice vă distrage atenția. Ca și cum urmează să faceți un lucru foarte important de la care nimeni nu are voie să vă întrerupă. Asigurați-vă că absolut toate electronicele cu ecran și conectate la internet sunt ascunse bine sub pat sau dacă nu aveți un pat la îndemână le puteți pune într-o punguliță și apoi într-un sac de gunoi. Sunt în siguranță stați liniștiți.

Pasul doi: vă așezați în fața ferestrei, trageți aer în piept, la fel cum v-ați pregăti pentru o sesiune de yoga. Apoi vă gândiți la momentele în care copilul sau copii dvs. au zâmbit sau au făcut ceva ce v-a stârnit râsul și admirația, și spuneți ”Am un copil/copii extraordinar!”.

Pasul trei: mergeți și luați-vă copilul sau copii și spuneți-i/le că îi iubiți, apoi jucați-vă cu el ca și cum voi sunteți în centrul universului și restul lumii poate să aștepte; o oră, două sau chiar trei. Pentru că ăsta este cel mai prețios lucru pe care îl putem dărui cuiva – timpul.

Copiii voștri sunt așa cum trebuie să fie – copii. Și vă asigur că după acest curs, ei vor crește responsabili, inteligenți și sănătoși.


Și eu și mai ales Titiana, mai primim invitații la workshopuri și cursuri de parenting – cum să crești copii nu-știu-cum sau află ce ”auroră” are copilul tău ș.a.m.d.
Pe lângă bani, pentru că stai să vezi prețurile încep de pe la 250 de lei, mai e și timpul ca să mergi la un curs unde o tanti cu un profil în marketing și sales îți spune tot ce e nașpa cu tine ca apoi să îți propună încâ câteva cursuri și mai scumpe care să-ți rezolve problemele.

Cam 3 din 4 dintre aceste așa-zise traininguri, cursuri sau workshopuri  sunt niște șarlatănii, sau snake oil cum le-ar zice americanii – valoarea lor intrinsecă este zero. Sunt o mulțime de cărți scrise de oameni calificați, psihologi, medici și de ce nu și opinia unui călugăr mi se pare mai avizată in domeniul dezvoltării creierului. De banii pe un curs (unu singur) din ăla îți poți umple biblioteca de cărți din domeniu.
Iar domeniul, după cum am spus, nu este parenting – pentru că nu este numai despre noi despre părinți ci este despre dezvoltarea creierului. Numai de curând am început să înțelegem ce și cum se leagă din experiențele copilăriei în viața de adult.

Am lucrat mulți ani alături de echipele de vânzări și marketing, chiar am fost implicat în procesul de vânzare de câteva ori, iar printre strategiile care au cel mai mare succes e să-l convingi pe posibilul client că procesele sale, sau produsele sale dau greș sau nu se ridică la X standard. Desigur echipele de vânzări sunt indispensabile în orice business, dar cam asta sunt și cursurile de parenting – un business – care te califică pentru ce?!

Dacă vrei să mergi la cursuri de parenting pentru că nu te ascultă copii, crezând că ei sunt problema, cred că de fapt tu ai o problemă cu încrederea și mai mult ai avea de învățat de la un psiholog. Problemele cu copii nu se rezolvă cu la un curs, ci se rezolvă împreună cu ei, cu copiii!

Dragi părinți și viitori părinți, copiii vă ascultă și vă iubesc cu aceeași măsură cu care voi îi ascultați și îi iubiți – pentru că asta e măsura pe care o învață, tot de la voi. Sunt o grămadă de lucruri pe care ei nu le înțeleg, iar voi sunteți filtrul. Copiii noștri se vor adapta la filtru.

O soluție pentru MySQL foarte lent

Încercam ieri să testez o îmbunătățire la un algoritm de căutare, când am observat că containerul docker cu mysql răspundea foarte foarte greu. Cam peste câteva secunde așa.

Prima încercare a fost restart – nu mă luați la rost, era serverul local vroiam doar să pot testa! În fine chiar și după restart rezultatul a fost același – mysql era foarte lent.
O scurtă verificare a logurilor a scos la iveală următoarele

[Warning] IP address '172.17.0.4' could not be resolved: Temporary failure in name resolution

Aparent, în mod implicit mysql încearcă să rezolve domeniile utilizatorilor conectați, iar asta adaugă timp prețios la fiecare cerere.
Pentru a sări acești timpi putem adăuga următorii parametri în fișierul my.cnf:

skip-name-resolve
skip-host-cache

Cu skip-name-resolve mysql nu va mai rezolva host-ul la fiecare conexiune nouă iar skip-host-cache va ignora cache-ul dns intern. Mai multe puteți afla aici: https://dev.mysql.com/doc/refman/5.5/en/host-cache.html .
De asemeea aceste setări nu sunt recomandate în producție fără o testare în prealabil.