Bio

I make stuff, and try to make cool stuff! Currently leaning tRPC, weird JavaScript frameworks, and Rust

Stats

14
Projects
48
Devlogs
91
Votes
6
Ships

Coding Time

All Time: 114h 52m
Today: 0h 18m

Member Since

June 16, 2025

Badges

1
🚢
Maiden Voyage
you shipped your first project! the journey begins...

Projects

14
🚀
1 devlog • 9 days ago
🚀
2 devlogs • 13 days ago
Daydream Watcher
3 devlogs • about 1 month ago
Support Watcher
5 devlogs • about 2 months ago
Core watcher
5 devlogs • about 2 months ago
C

C

Shipped
5 devlogs • 3 months ago
🚀
2 devlogs • 3 months ago
Hide and Squeak
14 devlogs • 3 months ago
Mish's Marvellous Mapping Machine
1 devlog • 3 months ago
🚀
1 devlog • 3 months ago
🚀
2 devlogs • 3 months ago
🚀
0 devlogs • 3 months ago
Capitalisation Fixes
6 devlogs • 3 months ago
Paint 2D

Paint 2D

Shipped
1 devlog • 3 months ago

Activity

Earned sticker

I made some small improvements to make the UI nicer to use in preparation for shipping an MVP:
* Add some extra text to the current-game debug screen
* Add a button to leave the game (in the future I'll have proper user accounts for managing this stuff)
* Show the game you're in at the top of the app

Update attachment
Earned sticker

I hooked everything up, and the selected fixes are now the ones that get included in the pack! You can also generate the pack for various MC versions.

I improved the fix list by adding friendly names to all the fixes, so it's a bit nicer to read now (plus, using the class names broke when the code got minified :P)

Update attachment
Earned sticker
Mish
Mish worked on Hide and Squeak
25m • 4 days ago

I fixed the development instructions so that they work without any troubleshooting required on a new machine. I also organised the components into their own folders.

Update attachment
Earned sticker
Mish
Mish worked on Hide and Squeak
4h 15m • 6 days ago

I deployed the project to has.slevel.xyz! This involved a lot of struggling with Docker images and deployments, but I got it to work in the end.

Other improvements:
* Added a location indicator and a button to show your location
* Added a button to the map screen to zoom to the game bounds
* Improved README file (deployment instructions)
* Started work on a better bounds selector (shelved for now)

Update attachment
Earned sticker

Following the news of the imminent destruction of HC Slack, I decided to explore ways to export Slack canvases, as they often contain a wealth of useful information.

I discovered it's pretty easy to build a URL that lets you download a HTML representation of the canvas, so I created a web service that automatically converts canvas URLs into viewable HTML files. The styling currently leaves much to be desired, but I can work on that!

I also made a CLI tool to download the HTML to your filesystem, which is important for archival.

I plan to extend the CLI system to download a batch of canvases (defined in YAML) and save them all to a local folder, so that they can be shared and accessed without a dependency on Slack.

Update attachment
Mish
Mish created a project
8d ago

Slack canvas exporter

Get those Slack canvases off of Slack and onto our hard drives!

1 devlog 0 followers
Earned sticker

I wanted the Grafana dashboard to display names instead of just user IDs, so I'm writing my own mini Slack API client to fetch display names so that I can provide a metric that links IDs to names!

I haven't tested it yet, so that's the next plan :P

Update attachment
Earned sticker
Mish
Mish worked on GOV.UK watcher
1h 12m • 12 days ago

I was looking at the graphs produced by my program and noticed a sawtooth shape (shown in yellow below), caused by the GOV.UK reporting varying during each minute.

I fixed this by ensuring the script always fetches data on the minute.

Update attachment
Earned sticker
Mish
Mish worked on GOV.UK watcher
1h 8m • 13 days ago

I created a Prometheus metric exporter in Python that yoinks data from the govuk-display-screen API every few seconds and exports them as metrics.

I also learnt how to use Logfire for pushing my logs to the cloud for better observability, or something. That was pretty fun but I'd probably rather use something self-hosted.

Update attachment
Mish
Mish created a project
13d ago

GOV.UK watcher

An analytics dashboard for GOV.UK, using publicly-available data and a custom Prometheus metrics exporter.

2 devlogs 0 followers

I worked a bunch on the web UI, adding a Minecraft version selector (that fetches and filters from Misode's mcmeta API), and a list of the fixes that will be included in the pack, with the ability to toggle them on and off (this doesn't actually affect the pack, yet).

I also added some code to get the web UI version at build time, so it can be included in the generated resource packs as metadata. Shoutout to Vite!

Update attachment

I added some metrics about the metrics exporter to the dashboard. I also learnt how to count the number of daydream events, so I added that to the dashboard (and some emojis because I think they actually look cool in this context).

I also wrote the all-important documentation for developing and deploying the tool.

Update attachment

I added a few command-line arguments to my tool (using argparse), to make it more flexible.

I also worked to reduce the number of unnecessary HTTP headers and URL parameter options in the request. Those that I had to keep, I moved to constants in another file, to keep the main code readable.

Update attachment

I learnt how to use the prometheus_client library in Python so that I could scrape the Daydream Sign Up Leaderboard and export it as Prometheus metrics!

I did some network request inspection to work out how to fetch the data from the Airtable view. Fortunately it wasn't too complex.

I also spent a bunch of time making a Grafana dashboard (not counted by Hackatime) to present the data :D

Update attachment
Mish
Mish created a project
36d ago

Daydream Watcher

Tracks Daydream sign-up numbers over time! Complete with a pretty dashboard to visualize all those statistics.

Daydream Watcher
3 devlogs 0 followers Shipped

Added support for tracking the average hang time metric (basically, how quickly are helpers responding to tickets?)

I also made the tool more flexible by adding customisable debug logging and scrape intervals using command-line args.

This means I've included the chrono crate, which has sadly seemed to increase compile times a lot :/

Update attachment
Mish
Mish worked on C
1h 45m • about 2 months ago

I added a splash screen to the website that gives some basic info about the lang (the playground is now at /playground).

I also updated the top app bar, fixed a typo in one of the examples, and added a simple placing pieces example.

I'm quite happy with this now, so hopefully it'll get ship certified!

Update attachment

I added some of the 24-hour statistics to the demo dashboard, and added detailed instructions for running the code to the README. It should be ready to ship now!

Update attachment

The exporter now supports statistics for tickets opened in the last 24 hours (it's a rolling window). For example, you could see which helpers were most active on certain days.

Update attachment

I'm making another Prometheus exporter in Rust! This one's relatively simple so I've already got a MVP that tracks:
* Open/in-progress/closed tickets
* Total tickets
* Top 3 helpers

Next, I'll add some rolling stats (past 24h) & some hang time stats

Update attachment
Mish
Mish created a project
52d ago

Support Watcher

Cool statistics and graphs for the Summer of Making support channel! In technical terms, a Prometheus exporter for #summer-of-making-help statistics, written in Rust.

Support Watcher
5 devlogs 0 followers Shipped

Did a bunch of tasks to get it ready to ship:
- Made a custom Grafana dashboard to demo the program
- Actually set it up locally as a demo
- Added detailed installation instructions to the readme (including some quick start steps)
- Attempted to create a Github Action for compiling it (it didn't work)
- Pushed a v1.0.0 release

Update attachment

Core Watcher now sends network packets/bites transmitted/received! I think I'll add errored packets too.

Update attachment

Added support for tracking CPU frequencies, and all kinds of temperature sensors.

Update attachment

We can monitor CPU usage now! Woah!

Update attachment

I'm making another Rust project! I want to learn how to make a Prometheus exporter & cool Grafana dashboards, so I'm making a simple-but-useful system info exporter over the weekend.

I've got a basic exporter working with a test metric. A good start!

(Exporter? I barely know her!)

Update attachment
Mish
Mish created a project
56d ago

Core watcher

A lightweight Rust tool that watches your CPU cores (and other system metrics!) and exports them to Prometheus

Core watcher
5 devlogs 0 followers Shipped
Mish
Mish worked on C
7h 48m • about 2 months ago

I've implemented an online playground for C, so you can try it online! It features a split-view editor, and a couple of example programs that you can run. I'm decently happy with how that MVP turned out :)

(Apologies for the late devlog - I was locked in on web development xD)

Update attachment
Mish
Mish worked on C
4h 17m • 2 months ago

Updates to the spec: I've detailed the data types that C supports (well, actually just one data type), added comparative operators (like >=), wrote a spec for functions, and documented the garbage collection process.

Updates to the interpreter: I've implemented all the operators, implemented function defining and calling, and just now I've implemented named squares (variables).

Variables still don't do anything though.

Update attachment
Mish
Mish worked on C
19m • 3 months ago

Capture instructions have been implemented now! That didn't take too long

Update attachment
Mish
Mish worked on C
5h 11m • 3 months ago

I wrote a decently-detailed spec for the language, including writing to memory, modifying memory, variables, and arithmetic/boolean/bitwise operations. I'll need to define syntax for functions and error handling.

I've also written an interpreter for the language, and it supports writing to memory, and nearly supports operations and modifying memory. Those two things are next on my task list! I can already run a test program successfully.

I would have devlogged earlier, but there was a SoM bug that prevented me from linking my project.

Update attachment
Mish
Mish created a project
76d ago

C

An esoteric programming language that looks like Chess notation. Any resemblance in name to other popular programming languages is purely coincidental.

C
5 devlogs 1 follower Shipped
Mish
Mish worked on Hide and Squeak
2h 57m • 3 months ago

I've implemented game creation, and displaying a game's area on the Map screen! Also added a temporary game info screen, and a splash Map screen for when you're not in a game.

Update attachment

The Docker image is on Docker Hub now!

Update attachment
Mish
Mish worked on Hide and Squeak
7h 13m • 3 months ago

I've been working on actually dockerising the app! I started off wanting to have the frontend and backend as separate containers, then I realised I needed to just have one container to fit the requirements for the Dockerise YSWS, so I did that.

I spent a lot of time debugging issues with running yarn install inside Docker containers, and generally learning how to deploy Node.js apps in Docker. It seems to all work now though! Next steps: properly test it, write deployment instructions, publish to Docker Hub

Update attachment
Mish
Mish worked on Hack Hub
25m • 3 months ago

Wrote some code to fetch and (partially) validate the data from ysws.hackclub.com

Update attachment
Mish
Mish worked on Hack Hub
58m • 3 months ago

I've got a basic Next.JS app going, with Tailwind and shadcn/ui. Next, I need to write some code to show YSWS events.

Update attachment
Mish
Mish created a project
84d ago

Hack Hub

A dashboard for Hack Clubbers to keep track of events, YSWS programs, and maybe more

2 devlogs 0 followers

Added a dummy Create a game screen, and updated the database to use PostGIS. Also researched different coordinate systems (EPSG 4326 vs EPSG 3857) and decided to use 3857. Wrote a procedure for creating a game that takes in GeoJSON.

Update attachment

Tried using Prisma's experimental PostgreSQL extensions feature, but it didn't seem to do anything, so I dropped it.

Update attachment

I integrated the tabs component into the UI! It mostly worked first try, but I had to ensure I was using the checked attribute (not selected) and move the .tabs.tabs-box markup outside of the Tabs component

Update attachment

Learnt how to use Context with Voby to make a tabs component. Haven't tested it yet, so fingers crossed it works as I expect it to!

Update attachment
Mish
Mish worked on Hide and Squeak
1h 3m • 3 months ago

I managed to add data to the database for the first time!

I wrote TSX for the form fields, some TypeScript that uses tRPC to send the data to the backend, and then the backend uses Prisma to add the player to the game in the database. I'm very happy to see it all working!

Update attachment
Mish
Mish worked on Hide and Squeak
2h 18m • 3 months ago

I've implemented a bottom navigation bar that can switch between screens, and a tRPC API that will be used as the backend for the app.

I also added a join a game splash screen (doesn't function yet)

Update attachment

Added Tailwind and daisyUI to the project. Used the theme builder to create a slightly-customised theme for the app, and then modified it to create a dark theme too.

Update attachment

The journey begins! I initialized a Voby project using the PWA template, created a tsconfig.json (because apparently the template doesn't include that?!), customised all the branding to be Hide and Squeak and used @vite-pwa/assets-generator to generate icons.

Then I turned the whole thing into a monorepo, ready for a backend folder to be created :O

Next step: Either adding Tailwind (with shadcn/ui or daisyUI) or deciding how to do the backend (Node.JS I guess)

Update attachment
Mish
Mish created a project
88d ago

Hide and Squeak

Run your own town-scale IRL hide and seek game

Hide and Squeak
14 devlogs 1 follower

I fixed a bug where the map wouldn't render properly after generating a route (Leaflet moment) and improved the UX by automatically showing the route when generated.

I also added a reels feature to cater to the modern user.

Update attachment
Mish
Mish created a project
92d ago

Mish's Marvellous Mapping Machine

Easy pedestrian navigation for everyone

Mish's Marvellous Mapping Machine
1 devlog 0 followers

Switched over to VioletMonkey for a better development experience.

(Maybe something else as well that I've forgotten)

Update attachment
Mish
Mish worked on Statsapp
36m • 3 months ago

Updated Node.js dependencies and improved the README

Update attachment
Mish
Mish created a project
96d ago

Statsapp

A command-line tool that parses group chat export files from WhatsApp, and performs some data analysis, outputting CSV files that can be visualized in an app like Flourish.

1 devlog 0 followers

Set up a development setup with TamperMonkey and TypeScript, and investigated how to use the Wackatime editor API from a userscript.

Update attachment
Mish
Mish created a project
96d ago

wackatime-tldraw

A TamperMonkey script that adds time-tracking support to tldraw (for WakaTime-compatible servers, like Hackatime!)

2 devlogs 0 followers

Updated the resource pack to MC 1.21.6 and wrote some documentation on the process and the tools I used.

Update attachment
Mish
Mish created a project
97d ago

Capitalisation Fixes

Make your text perfect! A [Minecraft](https://minecraft.net) resource pack that fixes grammatical (and other) issues in-game and in GUIs. Paragraph break? Three newlines? Four newlines?

0 devlogs 0 followers

Migrated the publishing tool from node-fetch to native fetch(), and fixed a type error

Update attachment

I refactored parts of the build tool to be isomorphic, replaced some Node.JS libraries with browser APIs or isomorphic libraries, and I can now build a resource pack in the browser!

Next steps: Actually downloading the generated resource pack, and loading the README file and pack.png asset.

Update attachment

Made the project into a monorepo, created a web app with Preact and Vite, and made Pico CSS work with Catppuccin's colour scheme

Update attachment
Mish
Mish created a project
102d ago

Capitalisation Fixes

A web UI that lets you build your own customised version of the Capitalisation Fixes - a resource pack that fixes Minecraft's grammar issues.

Capitalisation Fixes
6 devlogs 0 followers Shipped
Mish
Mish worked on Paint 2D
16m • 3 months ago

I published a release that adds the mouse support feature, and created documentation for publishing releases.

Update attachment
Mish
Mish created a project
102d ago

Paint 2D

Paint 2D is a fun, two-dimensional painting app that runs in your terminal!

Paint 2D
1 devlog 1 follower Shipped
Mish
Mish joined Summer of Making
102d ago

This was widely regarded as a great move by everyone.