Drop #184 (2023-01-23): Belated Lunar New Year Edition
RabbitControl; Rabbit Ear; tac
Today's tethered edition (yet-another New England snow-event that takes power and internet out just before our replacement generator is installed) [belatedly] celebrates Lunar New Year by showcasing two 🐇 and one 🐱-themed resources.
RabbitControl [GH] (RC) is a “protocol for remote-control” that enables generation of improvised user interfaces for parameters exposed by any application. The Remote Control Protocol (RCP) is the foundation of the RabbitControl ecosystem and documents the data-format which describes data values and user interface elements. It is intended to expose parameters (values) from a host application to a client in a defined way. It was created with interactive user clients in mind, which update values at the host application. Likewise, it can also be used in a non-UI cases.
The protocol was primarily developed to bridge the physical world with its digital counterpart, so an example may help show what gap RabbitControl fills.
TouchDesigner (TD) is “a visual programming environment aimed at the creation of multimedia applications. There are many tools for what we call today 'Creative Coding'. The main idea is that programming should be accessible for artists and designers also without a formal programming education. TD allows you to connect 'everything to everything' in the digital media world. Everything that can be digitized can become an input to a TD application, and everything that can be controlled digitally can be output from TD.”
And, since both TD and RC are ultimately meant to bridge meatspace and cyberspace, a full-on example might help illustrate what it does better than more blathering by me:
You don't need such a fancy setup to work with RC on your own. Bela is a “maker platform” designed to help artists, musicians, researchers, and hobbyists. In their words, it is:
"an embedded computing platform for creating beautifully responsive interactive projects. Bela provides ultra-low latency, high quality audio, analog and digital I/O in a tiny self-contained package that can be easily embedded into a huge range of applications. Built on the BeagleBone family of open-source embedded computers, Bela combines the processing power of an embedded computer with the timing precision and connectivity of a microcontroller."
There's a great example of how to use RC with Bela over at How To Get What You Want.
If you even remotely considered taking on a meatspace project in 2023, you should give RabbitControl a 👀.
Try as one might, it's nigh impossible to escape maths, and origami is all about maths. This 2015 article has some great examples (including the section header image) and more detailed explanation on the maths behind this ancient paper folding tradition.
Rabbit Ear encodes origami fold patterns as a network graph, and includes a math library that helps compute shape intersection, basic geometry, and linear algebra. This is another visually oriented resource, so “seeing is believing”, and you can hit up this example to get some idea of the code and capabilities of Rabbit Ear before you dig into the full spec.
The command line
cat utility gets all the 💙 and attention. It's the most basic way to spew the contents of a file to the terminal (the official description of it is “concatenate and write files”). You have likely never used
cat's backward cousin
tac, which concatenates and writes files in reverse. This utility copies each file, or standard input if none are given, to standard output, reversing the records (lines by default) in each separately.
tac is super handy for looking at log files (since we tend to want to see what happened last and work backwards), and it has some options that make it super helpful in specific use cases.
tac -r -s 'x\|[^x]' /etc/hosts
a try (or pick some other text file), dig into the [short] user manual, and see if
tac should have a place in your go-to toolbox.
If you're looking for a way to help the victims of Monterey Park shooting, consider hitting up the verified GoFundMe. ☮