/adei/ui

To get this branch, use:
bzr branch http://darksoft.org/webbzr/adei/ui

« back to all changes in this revision

Viewing changes to ToDo

  • Committer: Suren A. Chilingaryan
  • Date: 2008-04-02 10:23:22 UTC
  • Revision ID: csa@dside.dyndns.org-20080402102322-okib92sicg2dx3o3
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
BUGS
 
2
====
 
3
 
 
4
 
 
5
BUGS, Reported but not detected
 
6
====
 
7
1. Check JS preciseMath in different browsers
 
8
2. Check timezone in JS and PhP (there was difference in 3600 seconds, at
 
9
   the moment not reproducible. But check anyway)
 
10
   Another report: PhP - GMT, JS - CET.
 
11
3. After "ResetY" and zooming again (without vertical restriction), the old
 
12
    Y restriction is restored. Or something in that way.
 
13
 
 
14
Version 0.0.7 (Navigation, Controls)
 
15
=============
 
16
1. Create CONTROLS poup
 
17
    + Support for dynamic items inside.
 
18
    + Export is first of them
 
19
2. Add Aggregation options 
 
20
    + aggregation (approach), interpolate, show_marks, show_gaps
 
21
    + logarithmic
 
22
    + force better/worse precision (?)
 
23
3. Some basic information about current mouse location?
 
24
 
 
25
4. After an error we should go back in history. Otherwise it'll be corrupted.
 
26
 
 
27
5. Scroll button + Shift, Ctrl to move left/right, top/bottom (see standards
 
28
for that). Default actions causes problems. Use some keys. Special handling
 
29
of just zooming.
 
30
    a) on the edges move in the appropriate area, or zoom if no space to move.
 
31
 
 
32
 
 
33
Version 0.0.8 (LEGEND)
 
34
=============
 
35
1. LEGEND. 
 
36
    a) Information about clicked location
 
37
    b) Add "Show Only", "Remove" buttons.
 
38
2. The LEGEND is not always shown (�������������)
 
39
3. The LEGEND precision problem with subsecond graphics.
 
40
 
 
41
Version 0.0.9 (Handling graph ends)
 
42
=============
 
43
1. With "optimize_time_axes=false", ADEI ����������� ������ ���� �� �������
 
44
    ����� �� ������� '|'. ����� ������� �� ������ ����� ���� ���������� ������
 
45
    ������ � ����� �������. ����� ����, ������ � ������� ����������� ���������
 
46
    ������� �� ������������ [ ������ ��� �� ������� ��������� ����� �� ���������
 
47
    ����� ].
 
48
    � �������������� ������ ���� ��������, �.�. ���� � ������� ����� � 
 
49
    ������� �������������� ???
 
50
2. Remove LIMIT from SQL requests in DATAInterval
 
51
3. Enable Flexible mode for intervals in DRAW (this could damage edges, so it
 
52
    should be done together with 1)
 
53
 
 
54
 
 
55
Version 0.0.10
 
56
=============
 
57
1. Specify the current element (number) in graph, not group? Or in other way
 
58
 indicate what we are showing without openning sidebar.
 
59
 
 
60
2. Clean screen after error
 
61
 
 
62
3. Comment debugging printf's: draw, cache
 
63
 
 
64
4. "Help" module with current version and keys descriptions [xml+xslt]
 
65
 
 
66
Version 0.1 (MASK/Experiment Editor)
 
67
=============
 
68
1. Edit Masks / Experiments (XForms)
 
69
    Gr1  -------------         -------------
 
70
    Gr2 | v v v v v v         | name from to
 
71
    ... |
 
72
 
 
73
2. Each mask should allow item specific options:
 
74
    + Display on the second (right) scale
 
75
    + Logarithmic 
 
76
    + ...
 
77
 
 
78
3. Include Save Mask, Save Time Window buttons
 
79
 
 
80
4. We need to update SOURCE and MENU if new mask/experiment is added?
 
81
 
 
82
5. SELECT chooses the last from the list (Custom in the MASK/Experiment menus) 
 
83
   if there are no specified value.
 
84
 
 
85
 
 
86
Version 0.2 (Subcaches)
 
87
===========
 
88
1. Support for Subcaches (if density is above threshold use apporpiate 
 
89
   subcache). Join current table and subcache to automatically sort.
 
90
 
 
91
2. Show somethere information about used CACHE and its configuration
 
92
 
 
93
3. CACHE updating daemon and check renewals
 
94
 
 
95
 
 
96
VERSION 0.3 (Download/Export)
 
97
===========
 
98
1. Download Page
 
99
    Instead of direct download, - download files in special folder and 
 
100
    afterwards, allow users to download them, delete, etc. Report status
 
101
    "still donwloading".
 
102
 
 
103
2. EXPORT. Implement data resampling
 
104
 
 
105
3. Excel doesn't accept more than 65536 rows? What to do? Multiple sheets?
 
106
 
 
107
VERSION 0.4 (Navigation Bar)
 
108
===========
 
109
1. Navigation Bar. Again use cropper but with fixed width and always visible
 
110
   prefix: source, selector_config
 
111
 
 
112
1.1 As a main "navigator" provide point density (red - green?), with special
 
113
    color highlight the places where are distance between points exceeding
 
114
    specified threshold.
 
115
 
 
116
VERSION 0.5 (Real-time Display)
 
117
===========
 
118
1. Real-time display of the last 100-200 records [separate window]
 
119
 
 
120
 
 
121
VERSION 0.6 (Side-menu, Users)
 
122
===========
 
123
1. Redesign side menu (popups)
 
124
    a) Optionaly open over graph (skip, just b?)
 
125
    b) Single popup. And just select current mode (see google maps?)
 
126
2. Users loggons / Multiple options / ...
 
127
 
 
128
 
 
129
Version 0.7 (Fixups)
 
130
===========
 
131
1. What will hapen when clicking during long redraw (many items).
 
132
 
 
133
2. Check Firefox / IE memory consumption. Memory leaks?
 
134
 
 
135
3. Save opened page in history
 
136
 
 
137
4. READER and CACHE data intervals mistmatch. What to do (use CACHE intevals
 
138
   if notification turned off)? Month/Day/Hour intervals within READER data
 
139
   but out of the CACHE data? The accuracy is droped, since we calculating
 
140
   amount of points for bigger window.
 
141
 
 
142
5. Limit dhtmlHistory size (optionally disable: All/Gecko/None)
 
143
 
 
144
 
 
145
ZEUS Related
 
146
============
 
147
1. Start Experiment / Stop Experiment to ZEUS web control
 
148
2. Alarms / SysLog Pages (modules)
 
149
3. ZEUS MSSQL Backup
 
150
 
 
151
 
 
152
Future Versions - Architectural Questions
 
153
===============
 
154
1. Use "nanoseconds since" instead current quite strange system with 
 
155
   number-string timing. Or?
 
156
 
 
157
2. Graph precision calulating. \/\/______\/\. Using longest interval? But it
 
158
    will damage other cases (points).
 
159
 
 
160
3. Joint visualization of multiple LOGGROUPs. How?
 
161
    a) Virtual Groups joining several physical ones?
 
162
    b) ...?
 
163
 
 
164
 
 
165
Future Versions - Beter Usability
 
166
==============
 
167
1. Currenly double-click zoom is only working within selection. However, if we
 
168
   are doing horizontal or vertical zooms, there are more areas selected.
 
169
   Should we make them double-clickable as well? Or not?
 
170
 
 
171
2. At the moment on the browser window resize the graphic is not autoupdated,
 
172
   we probably should force update.
 
173
 
 
174
3. The following case: We made a selection and opened one of the popups. The
 
175
   forced graph update have canceled selection. However, the selected values
 
176
   are still present window configuration dialog.
 
177
   Should we cancel them? Or could user to use them? Or should we draw 
 
178
   selection after update?
 
179
 
 
180
4. Position Apply Button within 'Source' popup always in the bottom of the
 
181
   popup (if initial size (defined by open-button size) is bigger than 
 
182
   actual content size, than the Apply Button will be positioned just after
 
183
   content).
 
184
 
 
185
Future Versions - Interface
 
186
===============
 
187
1. Rewrite JS calendar
 
188
    a) Straight forward way of selecting time (not update date every time
 
189
    afterwards)
 
190
    b) Allow multiple windows (title)
 
191
    c) Selection GMT/Local time (?)
 
192
    d) Open correct month/year page, not current one
 
193
    e) Date(toString/Parse) functions are behaving differently on different
 
194
    browsers (mozilla for example not adding timezone information, but works
 
195
    in the user time zone). It is completely Okey until only that functions
 
196
    are used. Therefore, the timepicker should be changed to use this 
 
197
    functions for the date printout.
 
198
 
 
199
2. Near borders of graph remove the control from the croper, change pictogram
 
200
   to 'hands' and allow moving source_window currently on display.
 
201
   
 
202
3. Move window with keyboard keys
 
203
 
 
204
4. Introduce graph options (Logarithmic). Move login to somethere.
 
205
 
 
206
5. If we had selcted an area of graph and afterwards in controls have altered
 
207
   the window properties. At the moment the selection is canceled. It would
 
208
   be nice to check if new values are within the currently displayed window
 
209
   and, if so, adjust selection instead.
 
210
   
 
211
8.At the moment we are reseting the mask/experiment/window properties after 
 
212
LogGroup have been changed. We should try to use current 
 
213
    a) window/interval if they are inside the range.
 
214
    b) Preserve "all" mask (and named masks as well if they exists for both 
 
215
    groups)
 
216
    
 
217
9. Do not execute update while we are changing configuration.
 
218
10. Optimize cssSetProperty by caching found classes.
 
219
    
 
220
    
 
221
Future Versions - Backend
 
222
===============
 
223
1. Filter data, ignore zeroes? Etc.
 
224
 
 
225
2. READER. Exchange remote data source with local backup.
 
226
 
 
227
3. LOGGROUP joiner.
 
228
 
 
229
4. GRAPH: Reusing existing files (at the moment we don't store enough 
 
230
information to do that (xmin,xmax,ymin,ymax,etc.)
 
231
 
 
232
5. APPFilter. 
 
233
  a) Add support for global and per-block header/footer (with options parsing)
 
234
  b) Block separators (messages sent between two blocks) [ if 'groupmode=false']
 
235
 
 
236
6. Support for 'omit_raw_cache' option (using READER instead of raw cache table)
 
237
  Intended to reduce caching table size if connection to data source is reliable
 
238
  and it is not overloaded
 
239
 
 
240
Future Version - Support Tools
 
241
==============
 
242
1. ROOT
 
243
  a) Provide subsecond precision.
 
244
 
 
245
 
 
246
 
 
247
Very Future Versions
 
248
====================
 
249
1. SELECTION. 
 
250
    a) Show statistics (if single-item-graph)
 
251
    b) Show correlation (if two-items-graph)
 
252
2. CONFIGURATION (Data sources/groups/experiments/etc.)
 
253
    a) Load big XML configuration on startup and use it to generate all menus.
 
254
    Expected benfits:
 
255
        1. Stability: Prevents errors during SOURCE updates
 
256
        2. Easy programming: The asynchronousity is eleminated
 
257
    b) At least load all SOURCE menus (single update, I mean) in one chunk
 
258
3. ERROR Handling. Standartize error handling in JS scripts
 
259
    a) Throw from async parts???? And call adeiError in all others???
 
260
    b) Use "translate" calls everythere.
 
261
4. GRAPH. Multiple data aggregation modes. Currently we are using MIN-MAX, 
 
262
    but we could provide at least MEAN mode easily. 
 
263
    a) Think about providing MEDIAN?
 
264
    b) MEAN could be over items, or over length (considering that the old 
 
265
    value is valid until next one).
 
266
5. Develop streamable TAR archives, for in-place streaming multiple groups. In
 
267
    this case the user will receive the data will we preparing next portion.
 
268
    a) TAR. In the block begining [0,size] data_block, used_size
 
269
    b) DIME?
 
270
6. At the moment while calculating the data gaps for grouped (aggregated) data 
 
271
    we are assuming what the data is uniformely distributed over interval. 
 
272
    This is not precise enough (if something is really going wrong, it likely
 
273
    what all missing data is concentrated in one place and, threfore, the real
 
274
    gap is considerably bigger then estimated one).
 
275
     Unfortunately, the SQL syntax of MySQL server is not  allowing us to 
 
276
    calculate distance between two sequent rows. Therefore, we need to 
 
277
    implement stored function for that purpose and, then, implement 
 
278
    CACHE_PRECISE_GAPS support in the DATAInterval.
 
279
    
 
280
   To correct the 'missing' values stored in the database (which are also not
 
281
   precise enough, value <= real_value < 3*value) we could make another 
 
282
   iteration over the data and correct approximated values.
 
283
   
 
284
 
 
285
 
 
286
 
 
287
10. Add Item to the graph.
 
288
11. Y-axes precise arithmetic if needed (and other rescalling options)