ICARUS Terminal for Elite Dangerous
ISC License
Published by iaincollins almost 3 years ago
This release includes major UI improvements, with support for mobile and tablet displays and improved UI scaling. The approach being used should lend itself well to development of other UI panels that are adaptable to different screen sizes and display orientations.
There is a new data transfer indicator, that in addition to indicating (by blinking) when the connection between client and server is lost, also indicates when data is being transferred by lighting up.
In this release, only logs from the last 30 days are loaded at startup. Previously all data from the last 90 days was loaded at startup, but loading only data from the last 30 days is likely to be much faster while still loading enough data to be useful.
This further change to what data is loaded is an interim change to improve startup times. Eventually data should be persisted and this won't be necessary (all logs will be loaded once at initial run and from then on, only very fast incremental updates necessary). There may still be intermediate approaches applied on a pragmatic basis until persistence is implemented - the effort is not in persisting the data, but in doing so efficiently and in a useful way that scales well and meets needed use cases.
Published by iaincollins almost 3 years ago
Now defaults to loading log entries from the last 90 days by default. Includes log view improvements.
Loading everything from the last 90 days is a pragmatic middle ground between only loading the most recent log file and loading everything. This will likely be revised again in future (once data persistence is in place it will be possible to import everything, once) but this provides a decent amount of utility for now without depending on other features.
Published by iaincollins almost 3 years ago
Improved log browser interface with better display of log events and event details.
Published by iaincollins almost 3 years ago
You can now browse log messages. Additionally, new interface elements are now implemented.
This is the first release with something approaching meaningful functionality.
With the application scaffolding in place a framework to build on and assets imported (including a new icon library) porting features and assets is proving straightforward. While the event handling as been slightly refactored (and is not yet final; there is currently no event data persistence between reloads) functionality has so far been easy to port in from the unreleased prototype.
Published by iaincollins almost 3 years ago
Added icons using the new icon font.
Using an icon font (rather than vector graphics) means that icons can have the same effects (e.g. glow, glitching) applied to them as other text.
Icon font glyphs are still vector images, but are (in practice) monotone and transparency is not supported (though it is possible to approximate it using a halftone effect). SVG images will still be used in the app (the map view, for example, generates SVGs on the fly to generate the system map) but icon buttons and some other use cases will use the icon font to allow the same special effects to applied to icons and text.
Some icons are original, some are recreations of icons seen in Elite Dangerous icons and many come from http://edassets.org (see also https://github.com/SpyTec/EDAssets).
Published by iaincollins almost 3 years ago
Improved loading performance and improved loading UI with new statistics (log lines, file sizes) and progress meter.
New terminal view now shows a list of recent log events (and updates in real time)
IMPORTANT:
This release has reverted to loading all events to an in-memory database each time the app starts.
This takes a few seconds and uses lots of RAM and is not intended final behavior for release, but is useful for testing the performance delta between this build and previous builds, to quantify the impact of recent improvements.
The approach as we get closer to a 1.0 release will likely be a hybrid model with a small percentage of data persisted to storage (e.g. stellar cartography, system services, trade data) and the rest treated as transient events used to enrich data that is persisted; and previously imported data will persisted between app launches.
Published by iaincollins almost 3 years ago
Refactored internal event handling to drastically improve load times and reduce memory usage.
This update also includes cosmetic changes to how loading status is displayed in the launcher.
The performance improvements came by selectively indexing in the in-memory database only some types of in-game event, keeping only the most recent instance of others in memory (but not in the database) and discarding other event types we don't care about entirely.
If required, further improvements could be made to performance by persisting previously loaded data to a cache on disk. If performance proves to be sufficient, given that loading is non-blocking (i.e. you can start using the app before it has finished loading and the UI continually updates as new information is loaded) implementing a persistent cache may not be necessary.
Published by iaincollins almost 3 years ago
Terminal window now displays list of events and how many of each type found.
Terminal windows can now be launched before data has finished loading, they will update as new data is loaded.
Published by iaincollins almost 3 years ago
Now displays count of the number of log files and events loaded in the launcher window. These update in real time as new events come in.
Release v0.1.10 is a defective build and should not be used (it will error at startup and exit with an error).
It should still auto-update to this build, but if you have any issues you may need to manually upgrade.
Published by iaincollins almost 3 years ago
The launcher window now displays statistics for data that has been loaded.
Following the updated custom installer images in the last update - there is a new custom icon to give the app it's own visual identity.
Published by iaincollins almost 3 years ago
ICARUS Terminal now always defaults to running port 3300, to provide for a consistent URL for remote connections.
The URL for remote network connections (from tablets, laptops, other computers, etc) is displayed in the launcher. It will be different on each system, depending on your computers local network IP address, and can be copied/pasted from the launcher window.
The number 3300 is significant as it corresponds to the in-game year when Elite Dangerous launched (the game is set 1286 years in the future).
If depending on a fixed port turns out to cause problems on some systems (e.g. because of other software using that port) it's trivial to revert the behavior of selecting an available free port (and could provide a UI to configure this) but having it be the same port every time, on all systems, would be ideal from a user experience point of view as would be the least confusing.
NB: It's still possible to override the default port by creating a shortcut to ICARUS Terminal.exe
and using a command line flag to specify another port (e.g. --port=1234
).
From this release forward there is custom branding on installation/update package.
This is significant as a number of unique animation and effects can be applied to font assets that cannot be applied to SVG files and will make it easier to blend in effects applied to icons with other text in the interface.
I intend to both leverage assets from https://edassets.org/ and share the resulting fonts back with them / the community so it can also be used in other projects. Expect more information about this in a future update.
Published by iaincollins almost 3 years ago
When loading content (launcher, a new terminal window) a version of the loading animation embedded into the application is now displayed.
This improves perceived loading performance and reduces flicker while the UI is rendered.
Published by iaincollins almost 3 years ago
UI now powered by Next.js/React.
This is an internal change but an important feature to test.
Published by iaincollins almost 3 years ago
New versions are now automatically downloaded and run when you choose to update to the latest version.
Published by iaincollins almost 3 years ago
The application exits if an update is download.
Published by iaincollins almost 3 years ago
The installer now checks for Microsoft Edge WebView2 Runtime at installation time and automatically installs dependencies that are required - this means the application will work out of the box on systems that don't have Microsoft Edge installed.
Published by iaincollins almost 3 years ago
This prelease build is not intended for production use.
There is no meaningful functionality in this release.
This release is being tagged up as a production release in order to facilitate testing of the upgrade mechanism.
This build improves the behavior of checking if a new version is available.
Published by iaincollins almost 3 years ago
This prelease build is not intended for production use.
There is no meaningful functionality in this release.
This release is being tagged up as a production release in order to facilitate testing of the upgrade mechanism.
This version should automatically check for new releases at startup and provide the option to download a new release.
This is a crude initial implementation to test release integration and is not intended to be the final behavior.
Published by iaincollins almost 3 years ago
This prelease build is not intended for production use.
There is no meaningful functionality in this release.
This release is being tagged up as a production release in order to facilitate testing of the upgrade mechanism.