Despre aplicatii in general si Biziday in particular

Screen Shot 2017-03-06 at 07.49.51

De vreo doua zile ard Facebookul, Redditul si cateva bloguri pe seama aplicatiei Biziday care a dat o alarma falsa de cutremur si dupa cum spuneam si pe la Adrian, astea-s consecintele utilizarii oricarei petarde de aplicatie.

Sa ne intelegem de la bun inceput, oricine cu minime cunostinte de programare poate sa faca o aplicatie pentru aproape orice mizerie. Mai tineti minte stirile alea in care vreun pusti de 5 ani a facut aplicatia X sau aplicatia Y? Ati mai auzit ceva de pustiul respectiv? A ajuns vreun mare programator? A pus bazele vreunui startup de succes? Raspunsul e evident NU.

Eu am invatat programare pe vremea cand aveam 12 ani, pe cont propriu si fara sa fac scoli in domeniu. Invatasem suficient Basic si Pascal incat sa-mi fac programe care sa-mi rezolve problemele la matematica. Mi-era atat de sila de profesorul de matematica incat ajunsesem sa urasc cu desavarsire materia respectiva si folosindu-ma de algoritmii de calcul dezvoltasem o serie de programe in care bagam valorile date de problema de matematica si care-mi dadeau rezultatul calculand in locul meu.

La vremea aia pentru mine ceea ce reusisem sa invat era incurajator si foarte important, pentru cei din jur treaba aia ma transformase intr-un mic geniu desi nu eram.

Ori cam la fel sta treaba cu aproape orice tine de programare in domeniul IT. E extrem de usor sa inveti un limbaj de programare, e foarte usor sa-i intelegi structura si sintaxele si de altfel si mai usor sa arunci cateva linii de cod prin care sa automatizezi sau sa rezolvi oaresce problema. Insa nu-i asa usor sa nu deceptionezi prin ceea ce faci.

Programarea domestica poate sa fie pentru oricine, insa programarea profesionala e musai sa raman rezervata doar celor care au vointa si determinare sa invete mai mult decat cele cateva exemple oferite in manualul de programare si resursele disponibile pe Stackoverflow.

Uite, eu spre exemplu habar n-aveam cu ce se mananca PHP-ul sau Perl-ul inainte sa ma apuc sa fac primele siteuri bazate pe Wordpress si am invatat sa lucrez cu ele fara sa deschid vreun manual si sa-l citesc cap coada. Am invatat sa fac doua-trei scripturi utile, sa le combin sau sa corectez erori, dar nu as putea sa ma laud vreodata ca sunt programator si ca le stapanesc pe ambele fara discutie. Daca nu era Stackoverflow poate ca nu reuseam sa invat aproape nimic si trebuia sa pierd enorm de mult timp pe studii aprofundate in domeniu, dar Stackoverflow nu te face programator ci mai degraba un scriptkid mai evoluat si cam atat.

Revenind la appuri, in urma cu vreo 4 ani am fost solicitat sa lucrez la un proiect ce se baza pe o finantare guvernamentala si care presupunea realizarea unui site si a catorva aplicatii native pentru diverse sisteme de operare mobile. Am acceptat sa fac siteul ce reprezenta de fapt doar o dezvoltare pe o platforma CMS, dar am refuzat sa ma ating de appuri pentru simplul fapt ca nu cunosteam catusi de putin ce urma sa fac pentru niste appuri native si puteam doar sa realizez un singur app bazandu-ma pe HTML5 ce nu justifica in niciun fel suma pusa la bataie de client (1500 de euro erau alocati pentru realizarea unui app care sa mearga pe toate deviceurile mobile).

Asa ca decat sa trag o teapa cum practica de altfel amatorii in domeniu (si cum se practica de altfel prin Romania) am ales sa recomand o firma care se ocupa cu astfel de proiecte si care avea capacitatea sa asigure intretinerea appurilor pe termen lung.

Un an mai tarziu am fost contactat de alt client care aflase de la primul despre faptul ca pot sa recomand o firma care sa realizeze niste appuri si sa ofere ulterior si seriozitate si promptitudine in intretinerea lor. Noul client mi-a spus inca din prima fraza ca „ieftin” nu e un cuvant pe care vrea sa-l auda si ca are nevoie de un app prin care sa intermedieze vanzarea de bilete pe la discotecile din Ibiza. Si in cazul asta puteam sa ma ofer eu si sa incropez un app universal folosindu-ma de vreun API public al platformei care centralizeaza vanzarile de bilete la fel cum se practica de altfel in afiliere, insa din nou n-am vrut sa ma implic si sa trag o teapa.

Puteam desigur sa ma pun cu burta pe carte si sa invat sa dezvolt appurile respective insa deadlineurile impus de clienti nu-mi permiteau luxul asta si timpul meu era oricum rezervat pentru alte proiecte la vremea respectiva.

Acuma, apropos de Biziday, am vazut ca aplicatia a fost primita cu mare entuziasm desi nu facea mare lucru decat sa integreze un agregator de stiri si folosind push sa trimita niste alerte de cutremur folosind un API public. Oricine cu minime cunostinte de Wordpress putea sa faca un agregator bazat pe Wordpress si sa-i adauge o tema de mobil, iar apoi sa-l preia intr-un app universal bazat pe HTML5, dar nu oricine putea sa securizeze fluxul pentru a evita manipularea lui pentru raspandirea de stiri false.

Eu spre exemplu puteam sa fac acelasi lucru folosind ReaderSelf ca sa mai reduc din riscurile impuse de utilizarea unui CMS precum Wordpress, insa nu aveam capacitatea sa securizez frameworkul de PHP utilizat de ReaderSelf (CodeIgniter) si nici clientul de RSS (Simplepie) suficient incat sa fiu sigur ca nu poate sa fie manipulat in vreun fel. Cat despre API-ul public utilizat pentru alertele de cutremur nu pot decat sa ma gandesc decat la faptul c-a fost scris de vreunul precum cel de la GovITHub care a urcat pe Github fisierul de configurare a bazei de date cu parola la liber.

In definitiv Moise Guran a vrut ceva ieftin si bun si fix asta a primit, pana la proba contrarie evident. Acum n-are decat sa culeaga roadele indolentei sale.

E suficient sa te uiti cum arata siteul lui Moise pe mobil sau sa iei in calcul faptul ca inca nu foloseste https ca sa intelegi cam cum sta treaba si cu aplicatia lui: