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.

sync service class diagram
Planned sync service class diagram

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.

Peer.JS communication diagram
Simplified diagram of two Reckoner sync services connecting
Reckoner sync service data communication
Reckoner sequence diagram showing how data is to be exchanged between two devices.

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.

What’s Next

I’m marking off a few of the tasks and adding another to be completed.

General Tasks

Version 0.2: Multi-Device Synchronization

Version 1.0 (Future)