Below is a selection of free software I've developed, typically because it's useful or amusing to me.
Name/link | Type | Description | More info |
---|---|---|---|
Emojipasta Generator | web | Convert text to emojipasta. | goto |
Pixelate | web | Make images pixely, add dither, make them black & white, etc. | goto |
Tiny Metronome | web | A mobile-friendly, 981-byte metronome. | goto |
bs | desktop | A CLI tool for quick number base conversion. | goto |
pseu | desktop | A CLI tool for indecisive people. | goto |
TokiPonaPoemBot | web | A bot that tweets random poems in toki pona. | goto |
MonaLisaGoL | desktop | Common Lisp software for tinkering with the Game of Life. | goto |
Collision Calculator | web | Calculate hash collision probabilities. | goto |
ka | desktop | A calculator tool with a CLI and GUI. | goto |
Slingshot Chess | web | Chess game where you fire your pieces at the enemy. | goto |
Add word-relevant 🤖 emojis ✨ to text with sometimes hilarious results. Based on AnEmojipastaBot, which I unleashed on Reddit a few years ago.
Make images more pixely, make them black & white, resize them, or add a dithering effect. I used it for this blog post.
A mobile-friendly, 981-byte metronome. I made it because most of the metronome web apps I found on the internet were bloated, or clunky on mobile. I also wrote about this app in a blog post.
A Python CLI tool that converts numbers between bases with as little typing as possible. If you don't specify the base, it does all valid conversions between common ones.
Installation:
pip3 install base-convert-cli
Examples (more in the README):
$ bs FFFE
[from hexadecimal]
decimal 65534
binary 1111111111111110
octal 177776
$ bs -t d F
15
A Python CLI tool that randomly generates numbers, shuffles, picks, and rolls dice. Possible uses: picking someone to do a shitty job; relieving yourself of the agony of deciding which movie to watch; making life choices.
Installation:
pip3 install pseu-cli
Examples (more in the README):
$ pseu pick "good life choice" "bad life choice"
bad life choice
$ pseu pick --n 2 </tmp/movies.txt
Boogie Nights
The Hunt for the Wilderpeople
$ pseu roll 1d6
3
$ pseu rand 100
42
$ pseu shuffle alice sue bob
bob
sue
alice
I wrote about a poem generator that I made for the toki pona language, then turned it into a Twitter bot. It tweets poems like this on a daily basis:
soweli wawa,
pi tomo suli ala,
e ni li tawa.a a mi kala.
Common Lisp code that searches for Game of Life states that turn into a given picture. It can also be used to create GIFs of the Game of Life. Write-up here.
Goes well with Pixelate, because you can: (1) take your own picture, (2) shrink it and turn it black & white (using Pixelate), and then (3) pass it to MonaLisaGol to find a Life state that turns into your picture. Or just run your picture as a Life simulation, which is also cool.
If you put 'k' balls in 'N' buckets, what's the probability that at least 2 balls will end up in the same bucket? In other words, what's the probability of a hash collision?
ka is a small calculator language. It supports various useful features for day-to-day calculations, such as:
There are 3 ways to interact with it: executing individual expressions through the CLI (ka '1+1'
), a CLI interpreter (ka
), and a GUI (ka --gui
).
>>> 2 * (1/2)
1
>>> 1 metre + 1 foot > feet
4.2808398950131235
>>> p = 0.7; C(10,3) * p^3 * (1-p)^7
0.009001692000000007
>>> sin(90 deg)
1
>>> e^pi
23.140692632779263
Installation:
pip3 install ka-cli
A version of chess where you fire your pieces at the enemy and try to knock their king off the edge of the board.