Am inceput sa ma uit la Wim Hof method. Cu tehnica din podcastul lui Joe Rogan am reusit sa-mi tin respiratia 2 minute. Cine stie de ce alte realizari marete o sa fiu in stare?
Am descoperit ca Python e superb ptr. scripturi utile (mai rapid de scris decat echivalentul in Js si Node). Tkinter in schimb e pain in the ass. Incercam PyQt5 next.
Pai avem asa:
Luni: motocoasa de la 9 la 10, la 11 daily standup work, munca pana’n asfintit, scos dulaii la lac sa faca o baie, invatat python;
Marti: repeat
Miercuri: repeat
Am regasit canalul lui Mosh, si o carte f. buna, un indrumar: The Standout Developer.
putin clean-up -> vreo cativa zeci de gb in plus pe server. Bonus points ca am redus cpu usage ca erau niste scripturi care mestecau acele fisiere si nu era nevoie
am inbunatatit un script de healthcheck pt un client. Ma astepata si sa configurez un serrver de mail pe Postfix
doh, ce saptamana am avut mi-am spart capul cu scriptulete de linux :))) pe langa javascript, ceea ce nu credeam ca voi face sau voi intelege vreodata
nici n-aveam idee cum arata if, for, while in linux.
ca un mic rezumat: A trebuit sa import un csv de 20mil linii (9gb) intr-o baza de date mysql;
script apache spark care formateaza datele si sparge csv-ul mamut in 10 sau 20 csv-uri mai mici;
script centos care contine citirea de json din care scot numele fisierelor, compunere url de la care downloadez fisierele, mysqlimport pentru import fiecare csv in baza de date, for async (cateva ore ca sa-mi dau seama ca diferenta intre sync/async e un & ), while “import” sleep deoarece la sfarsit aveam nevoie sa sterg tabelele “temporare” si sa curat tabela de status importuri.
Inca incerc sa-mi dau seama ce varianta e mai optima, import de 10 csv-uri cu cate 2m linii fiecare, sau import cu 50 csv-uri cu cate 400k linii fiecare. Cel din urma a durat undeva la 50 minute. Problema e ca sunt prea multe downloaduri, creare tabele temporare si inserturi asyncrone.
Am trecut de la “nu stiu Python” la a rescrie un micro serviciu impreuna cu un coleg. Cu tot ambaradamul in Python:
OOP
Static typing
Research de framework-uri de testing si de web
Unit Tests - toate if-urile din aplicatie sunt verificate … oops … tocmai ce mi-am adus ca am uitat unul. Treaba pentru Luni.
System tests (adica cele care incep chiar API si merg pana in capatul aplicatiei, fiind verificate datele la final in loc sa fie scrise in DB ori trimise pe alte API-uri)
All in all, I am proud. A fost chiar mai usor si mai eficient decat am crezut.
Am implementat un RESTful API in python cu flask si flask-restful. Tot auzeam de RESTful si habar n-aveam ce naiba e aia…pana cand am avut eu nevoie de exact ce ofera REST.
Pe parcurs am invatat un pic de flask, o leaca de REST, niste deployment cu Amazon Elastic Beanstalk.
Aplicatia consta intr-un db central cu niste interfete de adaugat/sters niste structuri de date. 2 endpoint-uri, unul ptr. enumerat numele structurilor existente, altul ptr. a interactiona cu structurile existente dupa nume.
Ca sa nu ma complic am ales sa mut toata distractia in json-ul pasat, fara sa utilizez url params. C-o fi good practice sau nu, nu stiu, dar ptr. mine merge excelent.
Sunt inca multe lucruri de optimizat dar fac si eu ca inteleptul Knuth si zic ca early optimization is mother of all evils.
Foarte faina experienta, acum inteleg mai bine ecosistemul web apps.
(Mi-a luat vreo 4-5 zile cu totul, inclusiv invatat, implementat si deploy. Credeam ca o sa-mi ia mai mult dar aparent a fost mai usor decat ma asteptam.)