Jason’s Status Report for 4/20/2024

Over these past two weeks, David and I spent a significant amount of time converting our blocking control flow into a completely different asynchronous model. This model change has allowed us to implement calling “UNO!”/ calling out other players for not saying “UNO!”, async state correction, and more. This change took tens of hours and touched almost every part of the code base. On top of switching to an asynchronous model, we set up a WebsiteDisplayer which handles sending the state to a server to update clients in real time. This allows us to externally host the website and save some power on the Pi.

I am on schedule. We will spend the rest of this week fixing bugs and further refining the website. This next week, I will improve the website and give a better interface for state correction on the website.

Additional Prompt:
Before this project, I had never fine-tuned a model on my own, unique dataset. On top of that, I had never gone through the process of collecting and formatting data. I learned a lot about picking good models and creating scripts to artificially diversify your dataset. I also went through some of the pitfalls of over fitting to data and discovered techniques to help the model generalize better. For this, online ML tutorials proved to be quite useful, as well as a lot of trial and error.

Besides machine learning, I also learned a lot about asynchronous coding in Python. For this async model, I learned how to use Python’s thread-safe queues for message passing. I learned and took inspiration from some designs I made for Distributed Systems.

Finally, I learned a lot about web interfaces and real-time updates to websites. Honestly, Stack Overflow and ChatGPT were very helpful for showing small examples to apply to our bigger task.

Leave a Reply

Your email address will not be published. Required fields are marked *