Reducerea numărului de ferestre pe orarul şcolar al unei zile
Avem obiceiul de a revizui - şi povesti - aplicaţiile pe care le-am realizat.
Foarte bun obicei!… te ajută să o iei de la capăt.
Revizuim şi elaborăm o aplicaţie (sau poate… numai un joc) Ajustarea orarului care poate servi pentru ajustarea interactivă a orarului şcolar al unei zile, în scopul firesc de a reduce cât mai mult numărul de ferestre.
Reformularea orarului generat de "asc-orare", cu Python și Sphinx
În cadrul unui program Python, accesăm pagina cu "orarul profesorilor" de la un liceu sau altul și extragem datele orarului, creând un dicţionar convenabil (profesor - discipline - orar zilnic); pe baza acestui dicţionar de date, constituim prin scripturi Python anumite fișiere ".rst" (text cu limbajul de marcare reStructuredText) pe care le utilizăm apoi prin modulul python-sphinx. Poate rezulta astfel un site consistent, cu posibilități și deschideri superioare (față de pagina HTML inițială a orarului) - orar școlar (exemplu).
Rezolvarea practică a unei chestiuni de bidirecţionalitate
Există "dreptaci" și "stângaci", există microprocesoare "little endian" (Intel reprezintă numărul întreg 0x123456 prin secvența de octeți consecutivi 0x00, 0x56, 0x34, 0x12) și "big endian" (Motorola îl va reprezenta prin 0x12, 0x34, 0x56, 0x00) și bineînțeles, există limbi - arabă, ebraică - în care se scrie de la dreapta spre stânga. Nimic nou sub soare… Problemele apar când un "dreptaci" face o partidă de tenis cu un "stângaci", când "little endian" se înlănțuie cu "big endian" și bineînțeles, când se îmbină text englezesc cu text arab.
Prevenirea duplicării câmpurilor de tip TEXT
Dacă avem înregistrări identice - este ușor să ștergem, păstrând una singură; adevărata problemă nu este ștergerea acestora, ci prevenirea apariției de înregistrări identice. Soluția standard ar consta în constituirea unei "chei unice" și folosirea comenzii INSERT cu clauza IGNORE; însă în cazul când câmpul de care depinde unicitatea înregistrării este de tip TEXT, "cheia unică" trebuie constituită drept nou câmp (de tip compatibil cu "unique") - setându-i ca valoare indexul rezultat pentru textul respectiv prin folosirea unui algoritm de tip "message-digest" (MD5, de exemplu).
O aplicaţie Web cu Django şi jQuery: colecţii de partide
Intenţia de bază este următoarea: alegând un "coach" şi un "partner" - utilizatorul va obţine lista partidelor dintre aceştia doi, putând să urmărească (printr-o anumită interfaţă grafică) desfăşurarea uneia sau alteia.
Pentru a transmite către funcţia home()
din views.py
valorile selectate de utilizator, montăm pe cele două elemente <select> câte un handler de eveniment "onChange" care angajează metoda jQuery.post()
(şi ne mai folosim de atributul HTML5 data-*
). home()
va selecta datele corespunzător cererii, va completa şabloanele de răspuns pregătite în /templates
şi va returna răspunsul metodei post()
(care îl va "afişa").
vezi Cărţile mele (de programare)