David William Karagory

Mostly Ducks & Technology

ASCII Ducks


The following was originally posted on my LinkedIn, a site dedicated to a nuanced form of shitposting.

An animated ASCII fish tank in the terminal

I've been learning Rust and decided to rewrite an old, and admittedly silly, project of mine to give me a better understanding of the language. It did in fact give me a much better understanding of Rust, but it turned out to be much more rewarding than I expected for an entirely different reason.

The project I'm working on has been to rewrite freefish, a fish tank for your terminal. Originally I wrote freefish about 8 years ago in C++ with the help of my brother and it works ... but that's about it. It is a good proof of concept, but not a good user experience. Now, revisiting and rewriting this goofy little program years later, I've taken the care to make it easily customizable, hackable, and it even has actually useful error messages.

It needs a bit more testing, but it's a solid program that does what it's supposed to do, and it does it well. Initializing freefish is super easy. I have straightforward documentation with examples. Users can create their own assets using simple json files, and when they make mistakes my program will actually tell them what is wrong.

So what am I really trying to say here? There's value and empowerment in seeing small, even silly, projects all the way through? No, what I'm trying to say is that you should make me some ASCII art ducks (and fish and tanks) and submit a pull request to my repo. Better yet, if you're an experienced Rust developer and willing to take the time, I would really appreciate any critiques.

Check out freefish!