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