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