Photograph of a wind-swept treeAs I’ve used it continuously for more than a week, I shall share (if not release, exactly) Bayamo, a prototype for an idea of uncertain merit. Bayamo’s ideal: gather many continuously streamed sources of small bits of text — one’s various social media and chat channels, for the most part — and then funnel them into a single, non-interactive view, suitable for use as visual background to one’s work.

Bayamo’s implementation, as of today: First, force everything into IRC, and then use Textual on macOS as your IRC client, with local logging turned on. Bayamo watches your designated Textual log directory, and every time a line is added therein, the script determines whether it represents a person saying (or emoting) a message. If so, it reformats the line with paragraph indentation and a bit of ANSI coloring, and then prints it to standard out.

If the phrase “standard out” means nothing to you, Bayamo — as I’ve no doubt you have already concluded — probably isn’t useful to you in its current form. Then again, it’s probably not useful to you anyway. I don’t know if it’s useful to me, but I’m having fun with it, and I can tell you why.

I recently re-embraced IRC after decades away from it, and between running Textual and Slack, I discovered that I hate clicking tabs to discover new messages. I wanted to use IRC, Slack, and every other chat system the way I use Twitter, or indeed the way I use email: let all things fall into a single, everything-is-miscellaneous stream, which would just flow at me all day long, without demanding any action from me.

What I didn’t want was the situation I found myself in within hours of using IRC — and which, frankly, had been irritating me about Slack, but I couldn’t put my finger on before I could contrast it with another system. Tab after tab with their respective There are unread messages here! indicators lit, but either (a) I wasn’t interested in that tab’s topic at the moment, or (b) I was interested but clicking on it would flood me with hundreds of messages representing hours or days of stale conversation, none of which felt relevant any more.

I wanted a flow, letting me monitor the tone and tenor as much as the content of online conversations, and from various trusted sources, whenever I felt like dipping in with just a little background attention. I would otherwise feel free to it let drift on by, with no sense of missing something. This is what Bayamo angles at. For a prototype, I think I works okay, especially when allowed to babble away on a secondary display. Here’s what a slice of it looks like for me (with names blurred out for propriety’s sake):

Screenshot of Bayamo prototype

Not the prettiest, but it runs inside of an Apple Terminal window with no text formatting other than newlines and indentation, so I’ll take what I can get. Within this sample — all of which happened to occur as I typed the preceding paragraphs — we see conversations from two Freenode IRC channels (#macosx and #perl); the general channel of “Arbitrarium”, a private social Slack I inhabit; and the video games discussion channel of IFMud. Four message-sources from three wholly separate networks, but all presented in the same flow from my perspective.

You’ll note that Bayamo notes the utterances’ sources, in terms of both the speaker and the location, but does not include a timestamp; not even a simple hour-and-minute one. This is because I do not care! Bayamo lives in the now. Timestamps belong on archival logs — and, by definition, you’ve got those too, if you’re using Bayamo. Certainly you can scroll up to catch a few lines that you missed, but I mean for this output to not so much capture a moment as display the present, many facets at once.

An aside: with delight have I been exploring all the tools that souls far more lost than I have created to force non-IRC technologies to act like IRC. Slack, despite its own regrets, runs such a gateway service itself, and it works quite nicely. I use Ben Kelly’s ifirc program to connect to ifMUD via IRC — yes, an entire faked-up IRC server meant to connect to a single MUD. There are layers here, and it is exactly what I want.

I have yet to try the Twitter-to-IRC shunt I’ve found on CPAN, but I look forward to it — and if it doesn’t work, there are others. (Facebook, sadly, may be a lost cause for now. I found only [this one Japanese-language project], whose years-old English-language preface apologizes that it has long since stopped working since Facebook changes its API too often.)

Anyway, that’s Bayamo. It feels useful, if not quite fully formed yet, and maybe you can do something with it too, idk.


A note on naming. Both Bayamo and Alisio take their titles from the top of this alphabetical list of named winds. I found it specifically because, feeling irritated at the need to name the project that would become Alisio, I turned to Darius Kazemi’s collection of lists of stuff and happened across a JSON version of same; it never occurred me to think of winds as a class of stable entity deserving of permanent names, but of course it is, and thus followed immediate appeal. Obviously I practice some choosiness here, skipping names I find too hard to pronounce or too similar to other things, but I otherwise plan to continue mining this list for names of future small projects.

I have, despite myself, started to think of Alisio and Bayamo as the first two entries in the wind series, which in the fame-walk of my mind develops into a long garden of small, focused and idiosyncratically brilliant projects that will serve as a lasting testament to my principal self-identity as a software toolmaker. I don’t know if, in reality, this will grow beyond two tiny hot messes of dubious value outside of my own terminal windows, but that’s where we are just the same.


Next post: Alisio: prettier, and more accessible

Previous post: I read Ancillary Justice