/adei/trunk

To get this branch, use:
bzr branch http://darksoft.org/webbzr/adei/trunk
339 by Suren A. Chilingaryan
Update of ToDo lists
1
ADEI2
2
=====
3
 1. Improve extensibility: It should be possible to add new features as 
4
 independent modules without messing with existing code. And this modules should
5
 not be able to break functionality of other modules. A lot of stuff is done by 
6
 students and it's important they can break other things. 
7
 Additionally:
8
 - Current JS frontend is ugly and it is really horrible to extend it in any way.
9
 Complete rewrite, drop of compatibility with non-standard complaint browsers, 
10
 and latest web toolkits should simplify development drastically.
11
 
12
 2. Improve customizability: The ADEI layout should be based on some 
13
 templating/WiKi engine. All this small things Ashots asks you to change in 
14
 ADEI. Remove line here, change label there. For each experiment, we should 
15
 be able to easily configure the layout. The same functionality will help to 
16
 adjust ADEI representation to various devices with different screen sizes 
17
 and input abilities: smartphones, pads, laptops, big visualization stations.
18
19
 3. Introduce custom visualization modes: Simplify treatment of multi-dimensional
20
 time series represented in variety of formats and requiring different modes of 
21
 visualization. Basically, instead of just a single dynamic application "Graph" 
22
 we have now, it should be possible to implement "Visualization Applications" 
23
 within ADEI (modules) and place them in the desired place (templates). Because
24
 of significant increase in data amount, for this we will extensively use the 
25
 following features and should re-implement them in significantly simpler 
26
 to use manner:
27
 - Custom (per-view) caches. Some kind of ORM should be introduced for 
28
 performance non-critical caches.
29
 - C-plugins. Ruby is much simpler to mix with C than PHP. But also some 
30
 code may be moved to database server. For this reason, migration to PostgreSQL 
31
 may be desirable.
32
 
33
 4. Enhance Collaborative Analysis: tagging, wiki, etc.
34
 
35
36
Architecture
37
============
38
 - Template engine (CMS?) + WiKi + Tickets + eLog + Data Views
341 by Suren A. Chilingaryan
Really support INF and NAN in the caching code
39
 - íÙ ÂÕÄÅÍ ÄÅÌÁÔØ ÛÁÂÌÏÎÙ × WiKi, WiKi ÓÄÅÌÁÅÍ ÄÉÎÁÍÉÞÅÓËÉÍ ÞÅÒÅÚ ÐÒÏËÓÉ. îÏ
40
 ÓÁÍÏ WiKi ÄÏÌÖÎÏ ÂÙÔØ ÄÉÎÁÍÉÞÅÓËÉÍ: ÒÁÓÔÑÇÉ×ÁÔØÓÑ × ÌÅ×Ï É ÐÒÁ×Ï, etc. ÷ÏÏÂÝÅÍ,
41
 ExtJS based.
339 by Suren A. Chilingaryan
Update of ToDo lists
42
43
44
Technicalities
45
===============
46
 - Current ADEI is relaying on GET string to save state. It is quite convenient, 
47
 but already the string grown to large. We need a new approach. 
48
49
 - Use "nanoseconds since" instead current quite strange system with number-string 
50
 timing?
51
52
 - Support for Local Time. Major obstacle is synchronization between php (jpgraph)
53
 and browsers. Just using timezone offset doesn't allow us to find out DST changes 
54
 and etc. In Mozilla and Safari, however, there is tricky way of obtaining time-zone.
55
      var now = new Date();
56
      now.toString();
57
 will return the lexcial name of time-zone (however, the names could differ between 
58
 php and JS?). It is possible to extract this time zone info and pass to php. From, 
59
 other side Opera and IE7 returns just numerical representation of offset GMT+, 
60
 without real name. And there is no any warranty on toString() format change.
61
62
 - We have a set of electronics used for testing some kind of equipment, i.e.
63
 TOSKA coils, battaries. Generally, in this case we are interested not in 
64
 absolute time, but in time since the start of the test (experiment).
65
 As well, the test is some times repeated, for example to check the degradation
66
 of battery over the time. In this case we will be interested in comparing
67
 multiple tests directly. If we should substract start time, should be 
68
 encapsulated into the experiment.
415 by Suren A. Chilingaryan
Synchronize ToDo lists with zweb
69
70
Tools
71
=====
72
 - ngnix + web sockets
73