Wow, this has been a while. Let's first start with the primary reasons for the delay.
- Last year we refreshed the web interface and replaced the jqwidgets library asap. This change gave us a lot of improvements, but did not provide a good interface to continu building on. With a fair amount of emails requesting a lighter and more clean interface, reason one was created.
- The server was given the ability to serve multiple protocols at the same port like websockets and http on te same port, this was done for both secure and non secure connections, the secure connections even got the http2 and SPDY protocol added on the same port. SPDY is going to retire in favor for http2 and apple announced only secure will be allowed in the future. Cleanup was required, reason 2.
- Because the server moved to http2 (with http 1.1 fallback), the clients needed to get updated to take advantages of this resulting in faster data retrieval, reason 3
- The server only allowed updates when having a persistent connection using raw or websockets, this made the background service of the android app a very expensive one. A solution for this was needed, reason 4,
- Etc. some etc, and a little but more etc.
Because of the above 5+ reasons it took a while to release of a new snapshot kept us really busy, especially the new web interface (which cost weeks and weeks) but here it finaly is. My guess is that you are more interested in what has changed. So to make a long story short, the change logs.
Important:
If you are updating, you need to update your the init script and for the users:
- Remove assigned mobile devices,
- Save the user which had the mobile device asigned,
- Re-asign the mobile devices to the user,
- Repeat for every user.
The above is not needed for fresh installations.
Change log
Change log since last most stable alpha release
PiDome Server
- Updated Java runtime version,
- Completely replaced web interface UX and UI (bye bye dark interface):
- New graphs,
- New controls,
- Replaced floor map engine, draw multiple straight lines to define locations/rooms
- New web home page,
- Web dashboard can be used in full screen,
- Web interface now only supports https:
- Proper http2 support,
- Update websockets engine,
- Removed SPDY,
- Ping/Pong mechanism for clients,
- Improved detection of disconnected clients,
- Removal of stale connections was not possible because of non closed objects (GC root for the nerds), fixed.
- Less unneeded update data transfered to clients,
- Fixed memory leak in http data transfer,
- Broadcast connected media player,
- Server info page cleanup,
- Refurbished news page,
- Added open issues to news page,
- Various possible memory leaks fixed (try with resources for the nerds),
- Replaced category images, we have a custom categories font now,
- Removed obsoleted, but still depending on, code,
- Added personal macro when user enters geofence radius,
- Added API requests without the requirements of persistent connections,
- A vast amount of small fixes and micro optimizations resulting in using less memory and processor usages,
- Updated core libraries and updated to be compatible with these.
PiDome Client
- Proper HTTP2 support using OkHttp,
- Updated core libraries,
- Clients are split to their running platforms:
- Implemented unsupported ALPN to be able to do http2 with SSL with Java 1.8,
- Updated graphics engine,
- Corrected boot script,
- Fixed slider on details screen,
- Improved dashboard rendering,
- Android specific:
- Corrected SSL/TLS detection routines,
- Geofencing routines now utilize fused locations saving massive battery life,
- Geofencing service now uses non persistent connections, saving even more battery life,
- All non Android platforms have their java runtime updated,
- Improved reconnect strategies for non mobile platforms
Client libraries
- Improved reconnect support,
- Improved interfaces to support different platforms,
- Added support for API calls
PiDome Website
- Updated downloads page,
- Added HTTP2 support,
- Preparations for https://pidome.atlassian.net/browse/PS-24
Concluded
The above change log is quite abstract as every update consist of a large set of small updates. The largest set of small updates are for the web interface which includes a lot of fixes and updates. Next to the web interface a lot has been done on server internals. With this update we will be able to implement features a lot faster.