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").
Sintetizarea etapelor de înregistrare a datelor dintr-o colecţie PGN
Grupăm în numai două scripturi Bash toate operaţiile necesare (implicând diverse "instrumente" şi limbaje, sau alte scripturi executabile) pentru extragerea, filtrarea şi gruparea datelor existente într-un fişier PGN şi înregistrarea corespunzătoare a acestora (prin modulul Python MySQLdb) în baza de date constituită în scopul reflectării unor colecţii de partide de şah adnotate (de Crafty), ale utilizatorilor.
Modelarea şi înregistrarea datelor dintr-o colecţie de partide de şah
Extragerea şi gruparea datelor specifice dintr-un fişier PGN care conţine o colecţie de partide de şah necesită o gamă variată de "instrumente", încât modelarea (în Python Django) şi înregistrarea acestor date (prin modulul Python MySQLdb) devine o etapă de sine stătătoare în realizarea unei aplicaţii Web de prezentare a acestor partide (aproape independentă de realizarea propriu-zisă a aplicaţiei).
Prelucrări de text PGN şi adnotarea partidelor de şah
Identifică, extrage şi grupează informaţii dintr-un fişier text (partide de şah în format PGN), folosind modulul Python pyparsing (şi alte instrumente). Pune la punct o procedură practică (implicând AWK şi Bash) pentru derularea analizei automate a partidelor de şah folosind Crafty.
Notaţia prefix canonică şi reprezentarea DOT a expresiei
Urmărim (folosind şi C++11) scopuri practice - cum obţinem reprezentarea prefixată (complet parantezată), împreună cu descrierea DOT a arborelui sintactic pentru expresii algebrice date în formatul obişnuit, infixat; nu vizăm "analiza sintactică" în sine, ca tehnică sau metodologie - ci doar la nivel de algoritm, modelând direct (la nivel de caracter, cu neajunsurile specifice) metoda "precedence climbing".
vezi Cărţile mele (de programare)