79 lines
3.3 KiB
Markdown
79 lines
3.3 KiB
Markdown
|
+++
|
||
|
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"
|