Reckoner Update July 2023
This has been a month of one step forward, one step back. Regardless of progress, or lack thereof, I plan to document how this project is going.
🔄 Sync Updates
Here I was, all set to program the synchronization logic for Reckoner and add data synchronization. So I started coding, and coding, and coding. I eventually had something which implemented the minimal viable pieces and then started a Linux and web instance, connected them to each other, and then nothing.
Ok, so I just need to do some debugging and figure out what is going on. I did that and none of the code I had written was being called. It turned out I had written an event sequence that basically prevented devices from connecting. Even when I fixed that issue, I had issues with the synchronization sequence. It became clear that I needed a clear roadmap before I could continue coding.
I had a meeting with my brain trust showing them the class diagram I had created for the planned infrastructure.
However, this isn’t the best way with presenting the data. Frood was the first to suggest using a sequence diagram to properly model the time series communication focused nature of the synchronization service. To that end, I have produced two diagrams to model this.
As you can see, there’s a lot going on here. I’m not going to explain in detail what each piece means, but to say that doing this effort has helped to clarify what I need to have each class I write do and what the logic should be on receiving the data.
🥊 I Get Knocked Down, But I Get Up Again
This was a month where I had a low amount of time and willpower to work on Reckoner. There is no other way to describe this month other than a failure to significantly move the needle forward. However, I am not going to let this setback derail the project. Yes, I didn’t complete any major functionality this month, but that is OK. I have all the pieces in place to make significant progress next month.
I’m marking off a few of the tasks and adding another to be completed.
- Make Reckoner documentation website
- Thoroughly test the application over several days using realistic workflows
Version 0.2: Multi-Device Synchronization
- Investigate peer-to-peer synchronization
- Add PeerJS dependency
- Device communication and key exchange
- Determine infrastructure for synchronization chain
- Determine how to remove compromised device and notify other devices
- Update database with synchronization model
- Synchronize data based on last sync time
- Implement sync service based on sequence diagram
Version 1.0 (Future)
- Release on FDroid
- Release on FlatHub
- Release on Google Play