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