Bio

I <3 programming

Stats

8
Projects
13
Devlogs
146
Votes
7
Ships

Coding Time

All Time: 215h 23m
Today: 0h 0m

Member Since

June 30, 2025

Badges

2
🚢
Maiden Voyage
you shipped your first project! the journey begins...
Ballot Stuffer
vote 100 times.

Projects

8
🚀
0 devlogs • 4 months ago
xpchatter

xpchatter

Shipped
3 devlogs • 5 months ago
som-mcp

som-mcp

Shipped
1 devlog • 5 months ago
som-data

som-data

Shipped
3 devlogs • 5 months ago
portfolio

portfolio

Shipped
1 devlog • 5 months ago
CarTracker

CarTracker

Shipped
3 devlogs • 5 months ago
pastie

pastie

Shipped
1 devlog • 5 months ago
jmc

jmc

Shipped
1 devlog • 5 months ago

Activity

Anirudh
Anirudh Shipwright gave you feedback
65d ago

CarTracker

really nice idea, loved the minimal ui, and execution.

from Anirudh
Elliott
Elliott Shipwright gave you feedback
68d ago

portfolio

Nice job. Possibly add links to all your projects, a couple of them don't have links. Also, this readme is completely fine for a portfolio website, but just note that for bigger projects, a bigger readme is required.

from Elliott
Jose M.
Jose M. worked on portfolio
9h 1m • 2 months ago

I created the first iteration of my new portfolio page. I have made a few portfolios before, but none were ever to my liking so I decided to try again and I really like this one! I decided to use vanilla HTML/CSS/JS because using something like Next.js or React would be overkill and I'd like my portfolio to be lightweight. I also spent a few hours making a nice little HTML canvas animation that performs well even on high-frequency monitors. While I'm sure my portfolio could use some work in some places, I think it's a great start!

Jose M.
Jose M. worked on CarTracker
4h 56m • 3 months ago

In this update, I made the program much more stable and reliable by making it spawn its own wpa_supplicant process when necessary rather than depending on the system. Also, I'm using Linux's 'rfkill' utility to block the wifi card when not in use to keep power usage minimal.

For some reason, though, my program stops sending updates when there's no hotspot available but does not re-detect them when nearby.

In the next devlog, I hope to have fixed any issues and maybe remove the dependence on wpa_supplicant altogether.

In the future, I plan to integrate GoogleFindMyTools and OpenHaystack into my project to leverage Google's Find Hub and Apple's Find My for much better tracking when there's no nearby open networks. These tools work by relying on nearby iOS and Android devices for location updates, so they'll likely be more reliable and use less power.

Update attachment
Jose M.
Jose M. worked on CarTracker
4h 34m • 3 months ago

I figured out that the Raspberry Pi Zero W 2 doesn't support 5Ghz Wi-Fi which means it can't connect to Xfinity and many other hotspots at all. However, thanks to the Hackmate YSWS, I was able to buy a Raspberry Pi 3 A+ which is cheaper than a Pi Zero W 2 + USB-A to microUSB + a 5Ghz Wi-Fi dongle. It's also pretty nice as it has full-size HDMI and USB ports which are great for debugging, especially when having to turn Wi-Fi on and off. Though, I'm unsure if the power consumption is low enough to last a good while on a power bank. I'll have to try disabling services, disabling the ports when unused, only turning on Wi-Fi and Bluetooth periodically for short durations, etc. Optimization is really important as a power hungry device would mean having to charge the power bank multiple times a day which is infeasible. I'm thinking maybe charging the power bank in the car or at home once a day would be a bit annoying but doable.

Anyways, I've been making the project connect to hotspots in a more stable way and I've switched to using Docker to emulate aarch64 rather than cross-compiling as it's much easier but a bit slower. Also, I've added a feature so the program caches previous locations when unable to connect to the server which will ensure that I get a continuous, complete location history.

While doing some testing, I noticed that the Google Geolocation API can get as accurate as 10 meters with nothing but a list of nearby Wi-Fi networks which is very impressive and honestly insane. I'm thinking of potentially logging nearby Bluetooth devices which would give me an idea of how many devices are nearby and how close they are which could potentially help in a theft situation, though this is just speculation. Same could be done for logging Wi-Fi clients such as mobile phones. Modern phones often use active Wi-Fi scanning rather than passive scanning, so it would be possible to detect when phones with Wi-Fi enabled are in the vicinity. There's certainly a lot of work to do going forward!

I've also done a bit of work on the web frontend and I'm learning how to use OpenStreetMap and Leaflet to display a nice map in a web UI. I'm also thinking of creating a mobile app later to receive notifications and even potentially send messages to the raspberry pi for administrative purposes. Though for now, I'm only receiving data over HTTPS from the pi.

Sorry for the rambling and I'm glad that I was able to get past the Wi-Fi issue and make some great progress so far!

Update attachment
Jose M.
Jose M. created a project
110d ago

som-vote-tracker

A vote tracker for Summer of Making!

0 devlogs 0 followers
Jose M.
Jose M. worked on som-data
2h 43m • 4 months ago

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.

Update attachment
Jose M.
Jose M. worked on xpchatter
2h 39m • 4 months ago

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!

Jose M.
Jose M. worked on xpchatter
4h 47m • 5 months ago

I have now made the chat gui. It has been very difficult working with multithreading and asynchronous programming. There were many deadlocks, but it's finally stable.

Update attachment
Jose M.
Jose M. worked on xpchatter
9h 46m • 5 months ago

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!

Update attachment
Jose M.
Jose M. created a project
146d ago

xpchatter

Ever thought of going back to Windows XP? No? Well, if you ever change your mind, you should try this: ​ xpchatter - 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.

xpchatter
3 devlogs 1 follower Shipped
Jose M.
Jose M. worked on som-mcp
3h 17m • 5 months ago

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.

Update attachment
Jose M.
Jose M. created a project
149d ago

som-mcp

An MCP server to access Summer of Making data

som-mcp
1 devlog 0 followers Shipped
Jose M.
Jose M. worked on som-data
7h 59m • 5 months ago

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.

Update attachment
Jose M.
Jose M. worked on som-data
6h 1m • 5 months ago

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:

  • Request an update (re-scrape for available projects)
  • Search for projects. Sort by minutes, devlog count, or random. Filter by author name or title
  • Search for users. Sort by minutes, devlog count, or random. Filter by name

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.

Update attachment
Jose M.
Jose M. created a project
151d ago

som-data

Scrape and visualize Summer of Making data in an easy-to-use web app. This app can list projects and users and allows sorting and filtering by different criteria.

som-data
3 devlogs 1 follower Shipped
Jose M.
Jose M. created a project
153d ago

portfolio

My professional portfolio website. It showcases my skills, past experience, and a few projects I've worked on. I tried to add some cool little effects without them being too eye-catching or annoying.

portfolio
1 devlog 0 followers Shipped
Jose M.
Jose M. worked on CarTracker
9h 35m • 5 months ago

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!

Update attachment
Jose M.
Jose M. created a project
156d ago

CarTracker

Using a Raspberry Pi Zero W 2, some accessories, and free public Xfinity hotspots to create a cheap car tracker. No additional hardware required.

CarTracker
3 devlogs 0 followers Shipped
Jose M.
Jose M. worked on pastie
6h • 5 months ago

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

Update attachment
Jose M.
Jose M. created a project
159d ago

pastie

Free and fast text file hosting with AES-256-GCM end-to-end encryption support.

pastie
1 devlog 0 followers Shipped
Jose M.
Jose M. worked on jmc
1h 24m • 5 months ago
  • Added freelook by creating a temporary pitch/yaw variable and modifying rendering logic to use the temporary values when enabled
  • Added ESP using OpenGL's glDepthRange function
  • Refactored some code
Update attachment
Jose M.
Jose M. created a project
160d ago

jmc

Heavily modified 1.8.9 Minecraft client with custom mods suited for PvP.

jmc
1 devlog 0 followers Shipped
Jose M.
Jose M. joined Summer of Making
160d ago

This was widely regarded as a great move by everyone.