Determinarea numărului de ferestre dintr-un orar
/
…/
construieşte o expresie regulată (instanţă de obiect javaScript RegExp()
), la fel cum "
…"
construieşte un şir de caractere (instanţă de obiect javaScript String()
). Şablonul /\w[-~]\w/
se potriveşte de exemplu cu "C-1
" (o potrivire = o fereastră), iar /\w[-~]{2}\w/
s-ar potrivi cu "C-~1
" (când o potrivire = două ferestre); modificatorul /…/g
("global") asigură identificarea tuturor potrivirilor (nu numai a primeia), în cadrul şirului respectiv.
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.
vezi Cărţile mele (de programare)