This is log of changes in the dabc project, which is started in the beginning 2013. In many cases it is the best place to find information about current functionality of the framework. 20.08.2014 1. Move HADAQ terminal output into separate module. 2. Provide more statistic in the TerminalModule 3. Deliver to the server title of the objects, display it as hint in the browser. 4. Better handling of special characters in the hierarchies - allows to display symbols like ' or " in the file structure. 5. Provide key cycle number when scanning TDirectory, makes look and feel as existing ROOT browser. 19.08.2014 1. Generate HTML only for visible elements in the hierarchy tree. This increase dramatically performance of navigation in the big structures. 2. When toggle/update tree content, change whole line again and not single images or links. Reduces number of required ids, remove ids for images completely. 3. In hadaq::UdpTransport print content of problematic packet when 'debug' option is specified. 4. Implement TerminalMode for hadaq::CombinerModule. Reproduces output of old event builder. 18.08.2014 1. Support different ROOT versions in ROOT plugin. Due to incompatible changes in TBuffer class one requires separate versions for TBUfferJSON class. 2. Use own code to generate hierarchical structure in HTML, replace dtree.js which is extremely slow for complex hierarchies 15.08.2014 1. Move JSRootIO into root plugin - now ROOT JS code fully independent from DABC. 2. Remove 'JSROOTIO.' prefix from _typename. Now real class name is used. 3. Use in all scripts JSROOT as central 'namespace' 4. Introduce context menu in 3D, use it for switch between 2D/3D modes 5. Everywhere use own-designed context menu 14.08.2014 1. In hadaq plugin correctly account dropped data. Drop all data when at least one input gets some data. 2. Ensure that hadaq::Combiner parameters produce change events after 0.2 s. With default settings (1s) EPICS control time to time produced zero rates. 3. Implement Emulation mode in hadaq::Observer for debugging purposes. 4. In JS work with streamer infos as with normal TList, support streamer info display in online and offline mode, use 'fName' and 'fTitle' instead of 'name' and 'title' 5. Fix several errors in JS TKey streamer, use member names as in ROOT itself. 6. Load scripts for 3D graphic only when they required 7. Load scripts for I/O only when required, for ROOT/DABC online monitoring this reduces number of used js scripts from 10 to 5! 8. First working version of single element drawing in ROOT JS. First working version of context menu in ROOT HPainter. From now ROOT JS is fully independent from additional features of dabc.js 9. When displaying single element, one could specify draw options and monitor property. 13.08.2014 1. Remove old hierarchy display from dabc.js, use HPainter from JSROOT. 2. Remove binary-based requests with streamer infos from dabc.js. Only for very special cases user can use binary I/O directly, JSROOT.ReconstructObject shows how object can be reconstructed. 3. Remove master name from all ROOT hierarchies. 4. In hadaq plugin update netmem parameters with 0.2 sec period Drop all buffers and produce message when one input do not deliver data at all 12.08.2014 1. Use new JSROOT functionality in dabc.js. One loads necessary ROOT scripts automatically from the beginning. 2. Implement online hierarchy display for ROOT and DABC based on JSRootPainter.HPainter class. For DABC window management remains, for ROOT offline collapsible display reused. On the long run one could introduce many different window managers (collapsible, tabs, subpads), which could be easily exchanged with each other. 3. Online display for ROOT is independent now from dabc.js. Main functionality in HPainter, window management in JSRootInterface.js. 11.08.2014 1. Move scripts/styles loading into JSRootCore.js. One can specify any list of files for loading. 2. To construct simple GUI, one can use standard examples in JSRootInterface.js or provide own list of scripts to load. 3. Simplify and make more flexible method of simple GUI building 8.08.2014 1. Remove most global variables and functions from JSRootPainter.js 2. Handle color palette local in Hist2Dpainter 3. Remove most global variables in JavaScript, use appropriate classes for them. 7.08.2014 1. First working version of JSROOT.Painter.HPainter. It should decouple data manipulation from drawing. Later should be possible to change layout and design how single objects are drawn. At the moment ROOT file with sub-directories and TTree are working. 2. Support TList in HPainter 3. Fix small error in hist painter. 4. Support list of streamer infos in HPainter, also make example how to draw sinfo structure in other window. 5. Support slashes in the item names. 6. Remove old code with fixed dtree-based file display. Complete hierarchy of file keys and objects handled by HPainter class. dtree is just many alternatives how display can be implemented. 5.08.2014 1. Adjust makefile for ROOT v6. For the moment own TRootSniffer class will be used, later one can switch to the ROOT version. 2. Fix small error in dtree.js - one should always set last sibling (_ls) property while tree can be dynamically changed 3. First try to read ROOT file inside dabc.js. Idea to extract common functionality and avoid strong coupling of I/O and graphics as it is now in JSRootIO. 4. In JSRootCore.js make central function, which handles different kinds of XMLHttpRequest. Use for ROOT and DABC data reading. Use only async requests, also for file header requests. 5. Load JSRootCore.js and JSRootPainter.js automatically, no nasty timeout at the first draw. 4.08.2014 1. Merge HJsonStore and HXmlStore into same HStore class. 2. Implement dabc::Buffer and dabc::Reference as RecordFields. 3. Use new RecordFields capabilities in the dabc::Command Remove ugly reference-to-string conversion. 4. Minimal changes in hadaq plugin - debug output about events gap only when ExtraDebug is enabled 1.08.2014. 1. Remove old xml generation from hierarchy/history. HJsonStore and HXmlStore are mainline now. 2. Use HStore classes for all kinds of text storage. 3. Command transport between hosts implemented in binary form. 4. Remove old xml generation in Record/Command class. XML used directly only in reading of configuration 5. Process commands in root::Monitor, required by Go4 31.07.2014 1. Implement several levels of compressions when creating JSON. 2. Implement storage of hierarchy into JSON, including history. 3. By new JSON/XML storage do not use intermediate binary buffer. Data directly written into string output. For XML case it also eliminates intermediate XML structures. 4. Adjust TRootSnifferStoreJson to be compatible with DABC format. 5. Data exchange between server and client always performed in JSON. Always h.json for hierarchy and get.json for data are used. XML will be left just for historical reasons. Tested with DABC/ROOT/Go4. 30.07.2014 1. Introduce HStore class to store hierarchy structure in JSON/XML formats. Idea to make functionality comparable with TRootSnifferStore classes. Later both ROOT and DABC should work with json-based descriptions. 29.07.2014 1. Move/resize of statbox works smoothly now also during updates. 2. Provide move/resize capability for title and colz options. 28.07.2014 1. Improve layout of HTML page in GOSIP page, adjust sizes dynamically. 25.07.2014 1. First version of gosip GUI with reading and writing of registers. Many small layout problems need to be fixed. 2. Implement newline in json format, used in gosip data dump. 3. Implement all commands in GOSIP GUI 24.07.2014 1. Correct treatment of quotes and double quotes in RecordField. Important when convertiong to JSON representation 2. When publisher analyzes URL with arguments, it tries to convert each arguments to int or double first. Also each argument tested if it can be repersented as vector. Need to be able correctly receive commands with complex arguments via URL and to able respond with JSON. 3. Introduce gosip.js, put there most JavaScript code. 4. First version of gosip command, reading complete setup 23.07.2014 1. Introduce newest jquery-ui 1.11 for JSROOTIOm, also will be used for GOSIP gui 2. Implement in TRootSniffer compression for binary data, activated when "zipped" option specified in query. Used in communication with go4. 3. Implement correct conversion of record data into JSON. Use double qoutes. 4. Return result of command execution in JSON form. It makes easier to operate with complex data in command execution. 22.07.2014 1. Allow to read key objects from TFile in TRootSniffer 2. Fix min/max selection of TH1 histograms 3. Add possibility to redirect http request to specified directory. 4. Use redirection to introduce custom GUI for the gosipcmd utility. 21.07.2014 1. When doing syslog, add for errors or for other messages 2. Suppress several errors messages 3. In ROOT sniffer scan list of keys 4. Introduce read-only flag in sniffer. Only if off, sniffer allowed to read objects and directories list from the files. 5. From dabc.js allow to read sub-directories content in TFile 6. Fix error in XML parser - processing of ' 18.07.2014 1. Fix errors in TH1/TH2 statistic calculations 2. Switch to newest jQuery 1.11.1, do not use 2.x while IE 6/7/8 not supported. 3. Switch to newest jQuery 2.1.1 - anyway IE 6/7/8 is not supported by JSRootIO 17.07.2014 1. Switch to d3 v3.4.10. Fix several problems with log scales. 2. Fix problems in statistic drawing for 2D histograms. 3. Allow move and resize of stat box 15.07.2014 1. Provide example how insert ROOT graphics in the