Ce ați mai învățat astăzi?

Văzusem recent un topic, tot aici, a unui băiat care voia să facă o clonă a YouTube cu React și posta acolo ce a învățat el ziua respectivă și mi s-a părut interesantă ideea și de aici și ideea acestui topic.

Țin să-mi cer scuze dacă nu e la categoria corectă.

Eu astăzi am învățat cum să fac deploy la o aplicație django pe Raspberry Pi.

2 Likes

Astazi si in urmatoarea perioada o sa invat backend / nodejs / express / graphql

Ce coincidența, eu tot la graphql sunt acum, încerc să deslușesc cum se conectează la baza de date. Tot oscilez între apollo-server si express + graphql + join-monster.

1 Like

Eu, incercand sa rezolv o problema de performanta/scalabilitate, la un backend Node.js cu PostgreSQL, am invatat sa interpretez mai bine metricele legate de Node Garbage Collection, de Event Loop Latency/Usage.
In cazul de fata, este vorba de Heroku care iti ofera la dispozitie aceste metrice specife Node-ului.

Am ajuns sa citesc despre:

si

Cat si despre alte informatii specifice plateformei Heroku ce tin de scalabilitate.

Ieri am invatat cat de utila poate fi comanda ab - Apache HTTP benchmark Tool , pentru debugging si scalability.
Exemplu:

Cum poti sa-ti dai seama daca anume DB-ul este bottleneck-ul de performanta.
Si mai exact, am facut asta ruland acelasi query in regim normal si in in conditii de stress/load testing cu tool-ul ab, masurand response time-ul la DB pentru acel query. Daca exista o diferenta in timpii de raspuns, atunci inseamna ca DB-ul este un bottleneck.

Am de gand sa public un articol pe medium, cat de curand, ca si case study.

5 Likes

@GarryOne m-am lovit si eu de acel lucru cand am avut un memory leak in aplicatie. Era cauzat de o lista care tot se umplea cu alarmele create de aplicatie. :slight_smile:

Am invatat sa intreb si utilizatorii aplicatiei cum o folosesc si de acolo s-a aprins beculetul.

Si ca sa raspund la intrebare si nu neaparat invatate azi sau ieri :smiley:

Pe partea tehnica:

  • despre n+1 query. Am acesta problema in aplicatie si va trebui sa o rezolv
  • am reparat un modul de export care avea probleme de performanta. Am invatat sa folosesc si recursivitatea, am invatat cum sa folosesc operatorii ?. si ??
  • cum sa scriu query-uri native cu Spring Data JPA folosind @Query

Pe partea non-tehnica:

  • Am invatat ca nu trebuie sa merg la sala in fiecare zi, ci doar sa mananc cum trebuie.
  • Am invatat cum sa pun problema intr-un meeting cat mai clar si sa obtin raspunsuri.
1 Like

Scuze de offtopic, dar “why is this still a thing in 2021”

Da….Inca este
de orm, de mai multe

Foarte probabil pt ca java. E mai simplu sa alegi un limbaj ineficient si sa cârpești apoi, doar asa poti prinde contract de mentenanta si sa tot mulgi bani. De ce sa asculti de uncle Bob si sa chiar faci o treaba eficienta de la inceput pe care sa o mentii.

Putin web scraping pe imdb folosind node.js.

Am facut mic script cu care experimentez:
-scriu filmele intr-un file .json (9999 de filme din orice categorie si acest numar din cauza ca pagina URL-ul se modifica la filmul cu nr 10000, cred ca este criptat numarul habar n-am dar am sa dau de cap)

-folosesc cheerio, request-promise, axios.

-o functie cu care pot sa descarc posterele local.

-un mic regex pentru a ediat url-ul

Q: Cat de mare poate sa fie un fisier .json?
Prin absurd sa zicem ca vreau sa scriu 412,820 de obiecte json (unde am title, description, imageUrl etc.) intr-o fila .json. Credeti ca este potrivit? Cum pot de exemplu sa adaug atata informatie? Ma gandesc ca pot sa si dupa split pe mai multe file-uri json si fiecare sa aiba end point diferit.

Cum se abordeaza problema atunci cand lucrezi cu un volum mare de informatie.

Cât permite file-system-ul. La ntfs e 256TB.

Problemele apar însă la citire.

La câțiva (zeci?) MB nu cred că ar trebui să-ți faci probleme prea mari, mai ales dacă e doar pentru teste.

1 Like

Nu cred că e idee prea bună să folosești JSON pentru stocare de date, pentru că atunci când vei avea nevoie de UN SINGUR obiect din el va trebuie să încarci în memorie TOT json-ul (ceea ce înseamnă consum de RAM și CPU). Mai degrabă stochezi datele in db și generezi json-ul on-the-fly atunci când/dacă ai nevoie de el.

4 Likes

Mai în topic, azi am învățat cum să rulez aplicații nodejs în container (podman) și să înțeleg cum funcționează pod-urile. Cred că fără să vreau ajung incet-incet la kubernetes :slight_smile:

LE Și m-am lovit de o problemă (aparent) bizară din lumea containerelor. Mapez în containerul root-less un folder oarecare și îi dau drepturi de scriere containerului (podman unshare chown blabla:blabla /un/director/oarecare). Aplicația din container scrie un fișier în acel volum și ghici ce, userul care a instanțiat containerul nu are drepturi de citire pe acel fișier. Logica e că acel fișier a fost creat cu un alt user-id decât cel al “instanțiatorului”.

Exista optiunea sa ai fiecare obiect pe o linie in format json si asa e mai simplu de procesat ca nu trebuie sa incarci tot tree-ul deodata, vezi mai multe informatii aici:

2 Likes