O aplicaţie cu tabele dinamice (situaţia şcolară)
Avem de creat un element <table> (folosim .createElement(), .appendChild() şi altele); de modificat <tbody> în tabelul inserat, încât rândurile să apară ordonate după valorile de pe o coloană; de asociat o diagramă statistică (invocăm Google Chart).
Înlocuirea unor porţiuni dintr-un tabel MySql
Aplicaţia noastră de salarizare (pentru şcoli) are ca idee de bază refolosirea datelor. Descriem aici concepţia aplicaţiei şi soluţia uneia dintre problemele concrete pe care le-am avut de rezolvat în legătură cu baza de date existentă.
de la HTML la PDF (cu Perl şi LaTex)
Esenţială pentru WEB este posibilitatea de interconectare; documentele de pe Web nu au în vedere "formatul A4" (nu vizează operaţia de tipărire pe hârtie), pentru motivul evident că de pe hârtie nu este posibilă interconectarea cu alte documente.
Pentru reprezentarea pe hârtie avem două categorii de instrumente: aşa numitele "procesoare de text" What You See Is What You Get (de exemplu, binecunoscutul Word din pachetul comercial Microsoft-Office, sau aplicaţia "free" OpenOffice.org-Writer); respectiv, limbaje de marcare/programare (TeX, cu varianta LaTeX) şi formate de reprezentare "independente de dispozitiv", precum PDF.
Transformări de documente, cu Google Docs. Obţinerea variantei PDF a unui document HTML, folosind modulul perl HTML::Latex şi elemente conjuncturale de limbaj LaTeX.
Distribuirea calculului factorialului: CGI şi Javascript
Anterior (a vedea "Hello World!" şi Subrutină performantă pentru calculul factorialelor) am realizat o subrutină în limbaj de asamblare pentru n!. Într-o primă etapă, factorialul se obţine în forma binară (în baza 2^32); în a doua etapă, se converteşte la baza 10^9 şi implicit la forma zecimală uzuală. Forma binară se obţine în 0-5 secunde (n <= 100000); însă conversia la forma zecimală durează cam de cinci ori mai mult.
Este posibilă optimizarea secvenţei de conversie… dar de ce să se ocupe serverul de conversie? (şi nu browserul). Serverul trebuie să returneze rezultatul - punct! Iar rezultatul este în cazul de faţă o valoare numerică brută, în formă binară (cel mult, hexazecimală). Cel care l-a cerut (nu serverul), trebuie să ştie ce vrea să facă cu rezultatul obţinut - să-l afişeze treaba lui cum, sau să-l utilizeze ca atare (ca valoare numerică) în calcule proprii ulterioare.
Cererea http://<HOST>/cgi-bin/amifac.cgi?1234 primeşte de la server factorialul numărului 1234, în hexazecimal. Aplicaţia rezultată este pusă la dispoziţie prin Factoriale; interfaţa conţine şi o funcţie javascript de conversie la baza 10 a unui şir de cifre hexazecimale de orice lungime (folosind schema lui Horner).
Substratul problemei ("inside-out")
Atitudinea funcţionărească şi atitudinea creatoare, faţă de "probleme".
A ignora legăturile posibile înseamnă a scăpa şansa de "a reinventa roata", adică şansa de a învăţa regândind lucrurile.
Ecuaţia µ2 - µ + 1 = 0 provine din (abcd) = (acdb) sau (abcd) = (adbc); deci un raport este echianarmonic dacă şi numai dacă el se păstrează în urma unei permutări circulare între trei numere... coeficienţii sunt funcţii simetrice de a, b, c - deci se vor putea exprima prin coeficienţii ecuaţiei de gradul trei care are ca rădăcini numerele a, b, c; regăsim pe această cale elementară - "reinventând roata", aşa-i? - condiţia în care o ecuaţie de gradul trei are rădăcini reale (o teoremă a lui Joachimsthal) şi restabilim o metodă (dată de Cayley) de rezolvare a ecuaţiilor de gradul trei.
vezi Cărţile mele (de programare)