fix hard cabled stream_fini response when some error occurs
[brisk.git] / TODO.txt
1  TODO |
2 ------+
3
4   MAJOR |
5  -------+
6    - BUG: some connection to the named socket fails
7    - Not simultaneous more then one stream
8
9   MINOR |
10  -------+
11    WIP - try to be more antivirus-friendly
12    - multiple rows between games
13    - packetize and automatize php-ancillary and apache module
14    - into the room local step remains -1
15    - DISABLED_TO_FIX: DNS access (perform blocking dns requests, must be fixed)
16
17
18   DONE |
19  ------+
20    DONE - Page still opened after the server restart
21    DONE - log_legal address fix
22    DONE - manage too fast reload in xynt-streaming
23    DONE - add xhr as transport layer and manage different streams better
24    TEST - BUG: pari + 72 non fa 4x ma attualmente fa 3x, da correggere
25    TEST - BUG: lurker are logged out (and remain a pending socket opened (look the spush log)
26    DONE - save/restore database
27    DONE - centralize all '<script ...' incapsulation to allow multiple transport system.
28    DONE - BUG: access with password from 2 diff browsers the second go in strange "page not found" 
29           in the first tentative, the second works
30    DONE - BUG: access with password from 2 diff browsers place the first in a strict loop (the 
31           problem was a call to a static parent method instead of the overrided child method,
32           substitute self:: with the dynamically get class::)
33    DONE - garbage management
34
35    DONE/FROZEN - problem with getpeer (HOSTADDR)
36
37    DONE - slow cards distribution
38    DONE - substr to mb_substr
39    DONE - parametrizations:
40           . parametrization of $DOCUMENT_ROOT  var in brisk-spush.phh file
41           . parametrization of SITE_PREFIX(_LEN) define
42           . move the name of the named socket into the configuration file
43    DONE - manage and test cross forwarder between table and room
44    DONE - setcookie (for tables only and persist prefs)
45    DONE - images flickering on slow windows: try to poll stream every 300 ms (seems to be download problem)
46    DONE - database connection fails after a while, check close and try PGSQL_CONNECT_FORCE_NEW.
47    DONE - unneeded garbage_time.expired access
48    DONE - BUG: fast loop on stream index_rd_ifra page (js watchdog start without timeout corrupt counts)
49    DONE - BUG: logout failed (fixed with a garbage_collector wrapper at sac-a-push level
50    DONE - 404 wrong page management (remove directories redirections (es. brisk/))
51    DONE - configuration file management
52    DONE - app level keep-alive
53    DONE - index_wr other issues
54    DONE - from room to table
55    DONE - from table to room
56    DONE - chunked
57    DONE - bug: read from a not resource handle (already closed because a new socket substitute it)
58    DONE - partial write for normal page management
59    DONE - index_rd_ifra: last_clean issue
60    DONE - fwrite failed error management (select, buffer where store unsent data, and fwrite check and retry)
61    DONE - bug: after restart index_rd.php receive from prev clients a lot of req
62    DONE - index_wr.php::chat
63    DONE - index_wr.php::exit
64    DONE - index_rd.php porting
65    DONE - generic var management from internet
66    DONE - index.php auth part
67    ABRT - index_wr.php::reload - reload is js-only function
68    ABRT - keepalive management - not interesting for our purposes
69
70  BRISK4 (mammuth)
71  ======
72
73  - STEP MANAGEMENT VERIFY
74  Slim Paragraph
75  DONE - move the garbage timeout on file
76  DONE - in index_rd load all data only when required
77  - briskin5 alignment
78    DONE . extern del garb_timeout
79    DONE . user_load parameters verify
80    DONE . Bin5::load_data and Bin5::save_data refactoring with
81           data split
82    . move many function into "Bin5 class"
83  - garbaging of .step files
84
85  DB: - initial usage
86      DONE - configurabilità file o db
87      DONE - aggiornare le funz di gestione db in modo che prevedano anche il flag DISABLE
88      DONE - travasatore file to pg
89        DONE - travaso punteggi
90        DONE - memorizzazione nuovi i punteggi nel db
91        DONE - gestione classifiche in SQL
92          DONE - produrle
93          DONE - mostrarle
94
95      STEP 1.1
96        DONE - points archiver
97
98      STEP 1.2
99        DONE - partial usability if database go down.
100
101      STEP 1.5
102      - sistema di inserimento nuovi utenti (riversatore da form di inserimento)
103
104      STEP 2
105      - aggiornare le funz di gestione db in modo che prevedano anche il flag SUSPEND
106      - modifica password   
107      - ripristino password 
108
109      STEP 3
110      - comunicazioni di aggiornamento (stato salvato sul server) 
111
112  DONE - var $G_base aggiunta per gestire include in include da path differenti
113
114  BRISK3 (trusty)
115  ======
116   DONE - donameter
117     DONE - G_donors
118     DONE (WOW!) - js object with infos
119     DONE - main logic at login (cookie check in index_rd.php; show_message and createCookie via snippets with block
120            to prevent fast reload)
121     DONE - cookie per non assillare e visualizz.
122     DONE - graphical donameter
123     WIP content (in conf.)
124
125   DONE - numero di tavoli auth-only nel .brisk-install
126   - isolation
127     TEST - ricalcolo delle persone in piedi quando si cambia modalità
128     DONE - se si e' in isolation non si può cambiare nick perdendo l' auth
129     DONE - non leggere le chat di quelli non autenticati (in isolation)
130     DONE - regole per passare alla modalita' (in piedi o ai tavoli autenticati) 
131     DONE - treni non auth da nascondere 
132     DONE - verso gli altri ??: uguale a prima
133
134   finire multilingua (briskin5/index_wr.php e altri se ce ne sono)
135   coniglio
136   only auth strictly
137   placing limits to config file
138
139 Dunque, 
140
141 - come vengono aggiornate le classifiche: ogni giorno alle 23:58
142
143 - cosa cambia tra le tre coppie di classifiche: 
144   ci sono le classifiche dell' ultima settimana, quelle dell' ultimo mese,  e quelle dell' ultimo trimestre,
145   per ognuno di questi lassi di tempo poi c'è la classifica di chi ha giocato più di TOT partite o meno di TOT partite, con TOT che cambia a seconda del lasso di tempo.
146
147 - come vengono calcolate le classifiche: per ogni utente vengono presi tutti i punti fatti ai tavoli con lucchetto nel lasso di tempo preso in considerazione (ultima settimana, ultimo mese o ultimo trimestre), sommati e divisi per il numero di partite fatte in quello stesso lasso di tempo per normalizzare i valori; poi siccome la gente quando vede 0.18734 sbarella ho deciso di moltiplicare il tutto per 100.
148
149 Un esempio per chiarire:
150
151   l'utente 'pippo' che è nuovo gioca 4 partite nell'ultima settimana con i seguenti punteggi:
152     -2, 1, 2, 1
153   lo score viene { [ (-2) + (1) + (2) + (1) ] / 4 }  * 100 = 50.0
154   
155   a parità di score tra utenti va più in alto chi ha giocato più partite.
156
157 Se dopo quelle 4 partite 'pippo' non ne giocherà più, passata una settimana dall'ultima giocata 
158 sparirà dalla classifica settimanale e rimarrà in quelle mensili e trimestrali.
159
160
161   
162
163
164
165
166  BUG
167  ---
168  
169   DONE - paste da demauroparavia
170   DONE - recupero partita per re-login con password
171   DONE - problema "|" nei nomi (manca enhance degli script lato server)
172   - problema col treno se mouse sopra mentre stringe (verif)
173   
174  MINOR
175  -----
176
177  NORMAL
178  ------
179
180   - win test
181   WIP - /listen 
182     DONE - skin della textarea
183     DONE - set cookie 
184     DONE - init client (read from cookie) - ALWAYS BY SERVER
185     DONE - init server
186     DONE - after cookie check auth-only when no-auth case
187     DONE - aggiungi info accanto a "Chat"
188   DONE - /mesgtoadm
189   DONE - img dei comandi
190
191   DONE - form per garantire utenti (accoda in un file nel formato corretto)
192   DONE -   process request
193   DONE -   show form
194   DONE -   close butt
195   DONE -   submit form
196   DONE -   process form js side 
197   DONE -   process form
198   DONE -   documentazione in help
199
200   DONE - user status
201
202   DONE - aggiornare help
203   DONE -   overflow management
204   DONE -   for status
205   -   for password
206
207   DONE - reload home
208   - notify for long pages
209
210   - buddy list
211   - silenziastolti vari (fino al buddy import)
212   - restrict challenge per IP
213   - restricted charset for login
214   - watchdog
215
216   - db (minimal)
217     - db admin page
218     - user db admin
219     - use db 
220     - admin db
221
222     - studiare un anti-dos
223   - login modify
224  DONE  - db (fake)
225  DONE  - display auth
226     - manage preferences 
227
228  minor
229  -----
230    - auth after login
231
232 ----- done ------
233
234  BUG
235  ---
236   DONE   righe troncate
237   DONE - questione "a monte" che:
238   DONE   - lascia fuori il bottone
239   DONE   - scrive &agrave e compagnia
240   DONE - refresh act_table when unauthorized
241   DONE - problema ghost autenticato (ne prendi il posto ovunque sia)
242
243  MINOR
244  -----
245   DONE - refactoring of the owner name (auth attr for owner name)
246   DONE   - room
247   DONE     - at chat input line 
248   DONE     - in the chat output line
249   DONE     - deauth management
250   DONE - table
251   DONE   - at chat input line
252   DONE   - in the chat output line
253   DONE   - for user area of other users
254   DONE   - deauth management
255   DONE - alart to one user
256
257
258  NORMAL
259  ------
260   DONE - strong ban: "expire time|IP|session|(nick if authenticated)"
261   DONE   - login: se auth      -  verifica solo gli expire per quel nick
262   DONE   -        se non auth  -  verifica gli expire per IP e sessione
263   DONE   - riscrivere messaggi
264
265   DONE - login 
266   DONE   - se pass:
267   DONE     - richiede per l' utente un token (tutta la parte backend va un minimo studiata)
268   DONE     - lo legge, ci hasha la password
269   DONE     - invia la pass al server hashata
270   DONE   - se non pass:
271   DONE     - check del login e return corretto
272   DONE     - oggetto in shm single table con ( "ip", "login", timestamp ) e suo management
273   DONE     - rename ghost if logged
274   DONE     - onunload_cb e onbeforeunload_cb !!! 
275   DONE   - da change attrs a change class (input field)
276   DONE     - colore del bg per arrivare ad essere omogeneo
277   DONE     - cambiare path e file di config
278   DONE   - login with or without pass
279   DONE   - registered nick notice (METTERE IL MSG NELLA PAG DI LOGIN)
280   DONE     - segnalare tavoli solo per auth
281   DONE     - rename restriction at auth table
282   DONE     - change nick (strcasecmp)
283   DONE   - refact js tables to handle flags
284   DONE - room javascript refactoring
285
286   DONE - work background
287   DONE - reserved tables
288
289
290  BRISK2 (spawn)
291  ======
292
293    
294    URGENT - tables spawn
295             DONE - link with photos
296             DONE - top banner in Etc file
297             DONE - spawn of a table
298             DONE - data to cookies (removed table_idx from xhr calls also)
299             DONE - set subst to shutdowner/shutdowned
300             DONE - return to index.php
301             DONE - game's token
302             DONE - recover of corrupted table data
303             DONE - closure of a table
304             DONE - flush of the table
305             DONE - security checks for right scope access
306             DONE - garbage collector management
307             DONE -    recursive garbage - howto ?
308             DONE - stat & subst in browser
309             DONE - laccwr setting and exit if all players are unactive for some time
310             DONE - the list of test case
311             DONE - shm dimension
312             DONE - remove unused parts
313             DONE - move images
314             DONE - optimizations
315             DONE - cambiare titolo al tavolo
316             DONE - shutdowning lock tables
317             DONE - topbanner
318             DONE - public announcements
319             DONE - 10 sec to exit from table
320
321             FAR - inheritances
322    
323    TRAIN  -  DONE - add again in reload   
324              DONE - wag_set refact
325              DONE - filtra char speciali per title
326              DONE - chatt_send refact 
327              DONE - elenco dei giocatori
328              DONE - documentazione online
329              DONE - timeout management     
330              LATER - border color a muzzo
331        
332    NORM   - testament
333    NORM   - public announcements
334    NORM   - 10 sec to exit from table
335    NORM   - moving label for tables click
336
337 ----------------- join -----------------
338    NORM   - map
339
340    NORM   - restart preload img
341    NORM   - tools dir with a main and some pages where check briscola tools.
342    NORM   - watchdog
343
344    NORM   - chat vecchie in reload (forse)
345
346  MIDDLE TODO
347  ===========
348
349    - user assistant (with button to enable disable)
350    - documentation
351
352
353  FAR TODO
354  ========
355    NORM - internationalization
356    NORM - img -> div + css
357    
358  WEB
359  ===
360
361    - link to stable/unstable
362
363 -------------------------------------------------------------------
364  DONE
365  ====
366
367    ABORTED - asta: highlight buttons (css hover) - change pointer when over
368    DONE - step proxy
369    DONE - special chars in js
370    DONE - ban temporaneo dai tavoli
371    DONE - flash player to play sound
372    DONEBUG - (aum. il timeout) - carte giocate che restano girate
373          Sembra non migliorare di molto la cosa, gestita la cache
374          correttamente, sono apposto.
375
376    DONE - one player reject a game, to less points (<= 2)
377    DONE - help page
378    DONE - test di download per la cache
379    DONE - se passano tutti tranne l'ultimo l'asta va al penultimo.
380           Corretto il codice, occorre verificare se questo
381           ingenera qualche problema.
382    DONE - raddoppiato il numero di righe nella chat
383    DONE - corretto bug del /nick
384    DONE - carosello pubblicità altout
385    DONE - smammamorti
386    DONE - unload of the stream
387    DONE - standup centrati
388    DONE - current player - in info
389    DONE - HELP butt con ABOUT, REGOLE, VERSIONE
390    DONE - welcome lines in the chats (room and table)
391    DONE - welcome lines in the chats (room and table)
392    DONE - nomi in primo piano se vai sul quadrato   
393    DONE - to pass explicit config file to INSTALL.sh
394    DONE - flag to create a config file
395    ABRT - bottoni => immagini
396    DONE - aggiungere bottone al login
397    DONE - nomi in primo piano se vai sul quadrato   
398    DONE - installer to set cookie path
399    DONE - change name
400    DONE - automatic and manual logout
401    DONE - cache problems solved via .htaccess
402    DONE - all players out of the auction
403    DONE - time to send cards
404    DONE - hide cards before sends at a new game
405    DONE - well recognization of the browser and O.S.
406    DONE - login consistency !!!!
407    DONE - functionalization of garbage
408    DONE - call garbage function into login
409    DONE - game
410    DONE - manage the reload from scratch of the table page
411    DONE - table reset
412    DONE - sendcard => card_send(idx, ....)
413    DONE - show table for game
414    DONE - points calculation
415    DONE - make-up of the chooser
416    DONE - where place the briscola on the table
417    DONE - users info
418    DONE - show current auction position
419    DONE - table with internal management of the transition between pages.
420    DONE - server side page abort management  
421    DONE - cookie problem with Ajax
422    DONE - spostare il tasto "esco"
423    DONE - to pass explicit config file to INSTALL.sh 
424    DONE - 8 tables
425    DONE - safety out management
426    DONE - info enhancement and related button (how win the last game and
427           with how much points ?)
428
429  WEB
430    DONE - homepage
431    DONE - screenshots
432
433 DOC
434    CHAPTERS
435       HTTP Streaming
436       Local serializer
437       Database on shmem
438       Page abort (reload on http streaming case)
439       Chat
440       Cookies management
441       CSS tricks
442
443 CHECK ON NEW SERVERS
444 .htaccess AllowOverwrite mode for Cache-Control directive
445
446
447
448
449 */
450