O chestiune de organizare a codului
Avem de organizat şi poate de reformulat codul Python respectiv, pentru a simplifica lucrurile (de exemplu, să fie de lansat un singur script în loc de cinci). Poate fi tentantă complicarea lucrurilor, concepând întâi nişte modele de bază "profesor", "disciplină", "clasă", etc.; dar nu prea este cazul, fiindcă noi preluăm doar formularea finală a orarului (nu avem de "introdus" şi de gândit datele pe baza cărora s-a generat orarul).
Cel mai simplu este să concatenăm într-un singur fişier scripturile respective; iar astfel, fişierele JSON (folosite iniţial pentru a transfera structuri de date de la un script la altul) devin inutile.
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).
vezi Cărţile mele (de programare)