June 30, 2025
I completely revamped the UI and fixed some bugs to make the user experience better. Also, I completely rewrote the scraper to be more reliable and scrape more data such as user bios and profile pictures. Finally, I changed the font from Roboto to Montserrat, which made the UI look much more appealing.
My windows XP VM broke out of nowhere, so it took me a while to fix before I could update my code and make this devlog.
In this update, I made the chat client much more reliable. When a chat server closes, the client returns to the home page. Also, the servers page refreshes every few seconds and closed servers are removed from the page to make user experience much better.
For some reason, windows uses UTF-16 under the hood while I like using UTF-8, so I had to fix conversion as any non-ASCII characters such as emojis and Greek or other language characters (e.g., lambda) were previously broken.
At this point, I have a fully functional chat client and server code that seems to be ready to deploy! I'll also think about making a web client so non-XP users can chat with windows XP users through their browsers!
I built this project using C++ and the Win32 API. The current architecture includes a central server which tells the program what servers are available. The client can then choose a server, and the server does all of the chat handling stuff. I am using TCP sockets and a custom protocol for communication between the central server, servers, and clients.
So far, the central server is about ready and is built to run on Linux. Currently, the chat server is WIP but it's coming along well.
Working with Windows' Win32 API is difficult but rewarding!
A (sort of) decentralized chat client for Windows XP. This project is made up of three components: - A central server that tells the client what chat servers are available, so there can be servers in many different locations and users can host their own servers. - A chat server that handles receiving and sending messages between users and ensuring users don't have duplicate names - A chat client that runs on Windows XP and connects to both the central and chat servers. This was made as a submission for the Rewind YSWS.
I have finished writing this MCP server and have uploaded it to npm.
This project can be used with Claude Desktop or other AI tools to give the LLM the ability to search for Summer of Making projects and users. It can search by name and slack id and also sort by minutes logged, number of devlogs created, etc.
I refactored the backend to make the API much easier to consume. Rather than sending the entire 2.5MB database, clients can search for certain data and can receive up to 200 results. Also, the project now also leverages the Summer of Hacking API to allow searching by Slack user URLs.
I spent a lot of time tinkering with raw SQL to get it to work just right. I learned that when developing a moderate sized project, you should probably try to do things right from the start or you'll spend lots of hours cleaning up.
This project uses Node.js, Express, and Prisma ORM for the backend and plain HTML/JS/CSS for the frontend.
I created and deployed the web app after almost 6 hours of straight development time. Most of the time was spent developing the frontend UI and the scraper itself. Currently, the following features are supported:
Scrapes are infrequent and the app does not scrape a page twice to avoid causing unnecessary load to the HackClub servers. For this reason, users, projects, and thumbnails are cached locally on the server.
Currently, all filtering and sorting is done on the frontend, so the entire ~3 MB scraped data collection is sent to the browser. I will fix this in a later update to increase the efficiency of the frontend.
AI was only used for problem-solving. All code and assets were created by me.
I have made significant progress on my project. So far, I created a simple backend and a C++ daemon that runs on the raspberry pi. The daemon communicates with wpa_supplicant to scan for networks, connect to public Xfinity hotspots when possible, and sends a list of nearby networks to the backend whenever possible.
The backend itself uses Google's Geolocation API to resolve a location from a list of nearby networks. So far, this has been pretty accurate but may not work well in rural areas.
A problem I faced is that the Pi Zero 2 W does not support 5Ghz out of the box, so I'll need to purchase a 5Ghz-capable Wi-Fi adapter and a microUSB to USB-A adapter and temporarily put a hold on the project.
I'm not sure how well this is going to fare in terms of power consumption and power bank battery life. I'm hoping I can have the power consumption below 500 mA which gives 20 hours of charge on a 10,000 mAh power bank. I'm thinking I may be able to power on and off the Wi-Fi adapter in intervals to reduce the average power consumption to 250 mA for around 40 hours of battery life.
Currently, I'm slightly unhappy with the costs but I can try and compile a cheaper list of components later. Other than these issues, development has been going great!
Using a Raspberry Pi Zero W 2, some accessories, and free public Xfinity hotspots to create a cheap car tracker. No additional hardware required.
I created pastie from the ground up using fastify for the backend and vanilla HTML/JS/CSS for the frontend.
Some features I implemented are:
- End-to-End encryption and decryption in the browser using AES-256-GCM and PBKDF2 (w/ SHA256)
- A sleek dark UI
- Raw paste access
- Once a paste is created, the decryption key is included in URL for easy decryption
This was widely regarded as a great move by everyone.