5
BUGS, Reported but not detected
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.
14
Version 0.0.7 (Navigation, Controls)
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
22
+ force better/worse precision (?)
23
3. Some basic information about current mouse location?
25
4. After an error we should go back in history. Otherwise it'll be corrupted.
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
30
a) on the edges move in the appropriate area, or zoom if no space to move.
33
Version 0.0.8 (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.
41
Version 0.0.9 (Handling graph ends)
43
1. With "optimize_time_axes=false", ADEI ����������� ������ ���� �� �������
44
����� �� ������� '|'. ����� ������� �� ������ ����� ���� ���������� ������
45
������ � ����� �������. ����� ����, ������ � ������� ����������� ���������
46
������� �� ������������ [ ������ ��� �� ������� ��������� ����� �� ���������
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)
57
1. Specify the current element (number) in graph, not group? Or in other way
58
indicate what we are showing without openning sidebar.
60
2. Clean screen after error
62
3. Comment debugging printf's: draw, cache
64
4. "Help" module with current version and keys descriptions [xml+xslt]
66
Version 0.1 (MASK/Experiment Editor)
68
1. Edit Masks / Experiments (XForms)
69
Gr1 ------------- -------------
70
Gr2 | v v v v v v | name from to
73
2. Each mask should allow item specific options:
74
+ Display on the second (right) scale
78
3. Include Save Mask, Save Time Window buttons
80
4. We need to update SOURCE and MENU if new mask/experiment is added?
82
5. SELECT chooses the last from the list (Custom in the MASK/Experiment menus)
83
if there are no specified value.
86
Version 0.2 (Subcaches)
88
1. Support for Subcaches (if density is above threshold use apporpiate
89
subcache). Join current table and subcache to automatically sort.
91
2. Show somethere information about used CACHE and its configuration
93
3. CACHE updating daemon and check renewals
96
VERSION 0.3 (Download/Export)
99
Instead of direct download, - download files in special folder and
100
afterwards, allow users to download them, delete, etc. Report status
103
2. EXPORT. Implement data resampling
105
3. Excel doesn't accept more than 65536 rows? What to do? Multiple sheets?
107
VERSION 0.4 (Navigation Bar)
109
1. Navigation Bar. Again use cropper but with fixed width and always visible
110
prefix: source, selector_config
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
116
VERSION 0.5 (Real-time Display)
118
1. Real-time display of the last 100-200 records [separate window]
121
VERSION 0.6 (Side-menu, Users)
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 / ...
131
1. What will hapen when clicking during long redraw (many items).
133
2. Check Firefox / IE memory consumption. Memory leaks?
135
3. Save opened page in history
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.
142
5. Limit dhtmlHistory size (optionally disable: All/Gecko/None)
147
1. Start Experiment / Stop Experiment to ZEUS web control
148
2. Alarms / SysLog Pages (modules)
152
Future Versions - Architectural Questions
154
1. Use "nanoseconds since" instead current quite strange system with
155
number-string timing. Or?
157
2. Graph precision calulating. \/\/______\/\. Using longest interval? But it
158
will damage other cases (points).
160
3. Joint visualization of multiple LOGGROUPs. How?
161
a) Virtual Groups joining several physical ones?
165
Future Versions - Beter Usability
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?
171
2. At the moment on the browser window resize the graphic is not autoupdated,
172
we probably should force update.
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?
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
185
Future Versions - Interface
187
1. Rewrite JS calendar
188
a) Straight forward way of selecting time (not update date every time
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.
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.
202
3. Move window with keyboard keys
204
4. Introduce graph options (Logarithmic). Move login to somethere.
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.
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
217
9. Do not execute update while we are changing configuration.
218
10. Optimize cssSetProperty by caching found classes.
221
Future Versions - Backend
223
1. Filter data, ignore zeroes? Etc.
225
2. READER. Exchange remote data source with local backup.
229
4. GRAPH: Reusing existing files (at the moment we don't store enough
230
information to do that (xmin,xmax,ymin,ymax,etc.)
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']
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
240
Future Version - Support Tools
243
a) Provide subsecond precision.
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.
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
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.
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.
287
10. Add Item to the graph.
288
11. Y-axes precise arithmetic if needed (and other rescalling options)