+++ title = "Shit-code and Other Performance Arts" slug = "shit-code-and-performance-art" date = "2023-02-08" [taxonomies] tags = ["software", "art", "sundry", "proclamation", "chaos"] [extra] toc = false +++ # A sundry collection of intellectual property, some less intellectual than other Something I firmly believe is that it's possible to make jokes in any medium. Here at Nebcorp Heavy Industries & Sundries, despite occasional dabbling with the [physical](@/sundries/a-thoroughly-digital-artifact/index.md), we work primarily with software, and so this medium is one of our primary corporate humor channels. Below is just some of our work there, from least to most useless. ## *katabastird, a graphical countdown timer* [katabastird](https://crates.io/crates/katabastird) is, in its own words, "a simple countdown timer that is configured and launched from the commandline." It looks like this when it's running: ![katabastird running normally][katabastird_normal] It was created for a couple reasons: - I wanted to make a GUI program to learn how to use a [particular library called "egui"](https://github.com/emilk/egui); - I had signed up to give a five-minute talk to demonstrate the latest release of a [commandline argument parsing library called "clap"](https://docs.rs/clap/4.0.0/clap/), which I had titled, "Clap for Clap Four", and I needed a program to showcase it. Obviously the best way to showcase a commandline-parsing library is to incorporate it into a graphical program. Other commandline-mission-critical features included changing the color of the background to get more and more red as less time remained ![katabastird almost done counting down][katabastird_ending] and using the font used by the alien in *Predator* ![get to the choppah][katabastird_predator] But by far its greatest feature is an undocumented option, `-A`, that will play an [airhorn salvo](https://gitlab.com/nebkor/katabastird/-/blob/4ccc2e4738df3f9d3af520e2d3875200534f4f6f/resources/airhorn_alarm.mp3) when it's done. This option is visible in the program's help text, but it's not described. This is, honestly, not a great program. Once it's launched, it only understands two keyboard inputs, `ESC` and `q`, both of which simply cause it to exit. Using the mouse, you can pause, restart, and reset. And that's it, that's all the interaction you get. In spite of this, I find myself using it all the time. It's easy to launch with different times (the commandline parsing understands things like `-h` for hours, `-m` for minutes, etc.), and its last invocation is just an up-arrow in my terminal away. The airhorn cracks me up every time. At some point, I plan on changing it to something that uses the GPU to run a fire simulation on the numbers, and have the flame intensity get higher as the time remaining gets lower. I'll save that for when I want to get slightly more serious about graphics and shaders, though. ## *randical, a commandline program for generating random values* - randical - freedom-dates - bad_print # Other peformance arts ## goldver ## chaos license [katabastird_normal]: ./katabastird_normal.png "counting down with one hour, twenty-nine minutes, and forty-three seconds remaining" [katabastird_ending]: ./katabastird_almost_done.png "counting down with one second remaining" [katabastird_predator]: ./katabastird_predator.png "get to the choppah"