Personal Projects
A lot of small toy projects can be found on my GitHub and Glitch (and a number of small plugins and scripts can be found on my Gists), mostly these exist to play around with some tech or solve a very small problem for myself. Here's an assortment of things that I'm proud of though:
- Year in Fractions , a Twitter bot inspired by @year_progress , powered by Express, tweets daily how far through the year we are as a (usually approximate) fraction [retired]
- This very site , a Fresh site running on Deno Deploy, ported from Gatsby
- Wizzbo , a Discord bot that acts as a playground for me to try out ideas, but with the functionality to deploy subsets of commands as their own sub-bots
- Consnake , Snake, but playable in the devtools (opening devtools here will start the game 👀)
- Christmas Eve Eve , a very dumb single-page thing based on an old XKCD
- PuppetDF, what started as a hacky proof-of-concept that turned out to be surprisingly useful. An app that takes a URL and uses Puppeteer (a headless Chromium browser) to output a PDF. (Glitch has dropped support for Puppeteer, so may stop working)
- slice-or-substr, a kind of broken toy that demonstrates how slice, substring and substr all work in JavaScript, because I can never remember
- Doushi Flash , a Japanese verb flashcard generator. Generates an image with a random Japanese verb, its translation and a couple of conjugations
- myuseragent, a super simple app that simply logs your user agent string (with a JSON option too)
- Bust-a-Ghost, a little "target practice" type game I threw together on a sick day
Games
I've casually toyed with making small games here and there (which can also be found on my Itch.io ), and here's what has stuck:
- British Bulldog , a game made in collaboration with a few friends with minimal communication, built in the Lua-based framework LÖVE, most of my work was refactoring, completing features and polishing, but I also added a splash screen inspired by old cracktros
- Build-n-Blocks , a game made as part of a small "Build" themed game jam in a fortnight, also built in LÖVE. The game is a 1-bit falling block puzzle game, with a Gameboy RPG-esque overworld
- Card Sharpshooter , a Playing Card-themed FPS prototype built in Godot. A collaborative effort, "my" game of 3 we worked on together.
I've also started entering a few small game jams, to experiment with prototypes and build the habit of finishing small projects:
- Bunslinger at High Noon , an arcade-y restaurant sim game in the style of a Nokia 3310 for Nokia Jam 5
- Ball Room , a simple high score game made for the 3-hour weekly game jam, Trijam
- Pongaconda , a rough prototype of a game combining Pong and Snake, built in a few hours for PongJam
Work in progress
I have a few private work-in-progress projects that will hopefully see the light of day:
- Mycross - a web utility to create custom puzzles for Mario's Picross for the original Gameboy
- An untitled JavaScript game, a combination of Snake and a typing game, built from the ground up without any engines or libraries. I started this a while ago, before getting into Love2D and Godot, but plan on finishing it someday
- A Playdate port of Build-n-Blocks - utilising a wrapper around the portions of the Love2D API that I'm using
- ...and more!
Other coding miscellany
I bought a Bangle.js 2 smartwatch, based on Espruino (embedded JS), in early 2024, and have been working on a few small apps:
- davidsharp/watch , a simple watch face, with a big digital time display, a seconds ticker, kanji day of the week and pedometer and heart rate display
- davidsharp/bangle-js-snake , a simple proof-of-concept Snake clone using screen swipes to control direction
I've participated in Advent of Code for a number of years (but have yet to fully complete a year), usually in terse JavaScript, and keep my code here: davidsharp/advent-of-code
Here's some xbar (fka bitbar) plugins for macOS (all GitHub gists):
- Weather, a weather plugin that uses wttr.in
- Spotify, a plugin that displays the currently playing song, with some shortcuts and controls
- Shuffle Spotify, a plugin that adds a shuffle/unshuffle button to the menu bar
- Clipboard Spy, a plugin that shows what's on your clipboard, with an option to clear it
- COVID Stats, a plugin that uses diseases.sh to get the country's COVID stats (API no longer updated)
- Toggle Mono/Stereo audio (may no longer work), a plugin that adds a button to toggle accessibility options for mono/stereo audio