Projects

Oh! Tracks! Link to heading

Oh! Tracks! (ohtrx) is a partial implementation of the Owntracks recorder and REST API service in Rust. In its current form it does the basics and can serve content so that the Owntracks Frontend can use it instead of the original otrecorder.

The plan is to continue the implementation of original Owntracks features and add additional features. Backward compatibility is not guaranteed and eventually may have its own versions of the various apps.

Repo: https://codeberg.org/futuretim/ohtrx

Device Management Services Link to heading

Device Management Services was an open source project for Ubuntu Core IoT fleet management I lead (after our initial fork from Canonical). It originally started its life as four separate components. On the server side there was individual services for management, identity and devicetwin components. For clients there was an agent. We initially maintained that logical structure but later combined and refactored into just a dmscore and dmsfront component. The previous three services were all combined into core. The web frontend was originally served by the management Go service was split out and served by an nginx proxy in dmsfront.

Core: https://github.com/everactive/dmscore
Front: https://github.com/everactive/dmsfront
Agent: https://github.com/everactive/iot-agent

Project Kebe Link to heading

Project Kebe was/is a hack project to implement the basics of an alternative Snap store. The idea was with a simple patch to snapd one could use both fully private snaps in their own repository/store as well as snaps from Canonical’s official store. It used an S3 compatible storage backend for snaps, assertions, etc. It setup all of the necessary accounts for the store to operate as a root authority once snapd was patched.

Source: https://codeberg.org/futuretim/kebe

Mocked Revault GUI Link to heading

While continuing to learn Rust I also wanted to learn a GUI framework to use with Rust on projects. Iced always seemed like the front runner for my tastes. When combined with System76’s embracing of same for its COSMIC DE it was obvious that I had to learn it.

One of the problems with Iced or any Rust GUI framework is that non-trivial example applications were hard to come by. The first thing I looked at was the Borderlands 3 Save Editor bl3_save_edit. It wasn’t quite the full application I was looking for though so I continued to look.

Later I came across Revault GUI. It provides a GUI to the Revault daemon revaultd. The latter in turn is a core implementation of the wallet from the Revault protocol which is a Bitcoin architecture for multi-party transactions/situations. None of that is relevant to me and I didn’t have any knowledge of it prior to starting.

But after looking over the application I decided it could work well for a learning platform. So I set about mocking data for the GUI so that it would run without the daemon connection. This involved implementing the Daemon trait for a FakeDaemon and using the FakeDaemon when the GUI tried to connect to the real daemon. It also required mocking in a number of other places or forcing the GUI applications to accept the results of the values if in other cases it would not have.

The original source is maintained in the master branch (as per the original repo on Github).

Source: https://codeberg.org/futuretim/revault-guj

More coming soon Link to heading