From the Bookmarks: January 2023

This month’s bookmarks span the topics of AI, cybernetics, logging & resilience.

Panic: A serendipity engine

I’ve recently been starting to familarise myself with the field of cybernetics, and this led me to a great piece of interactive art, called Panic. It was shown at the Australian Cybernetic exhibitation in late 2022. Panic took text input from the viewer, and ran it through three models: the first enriched the input to make it more descriptive, the second generated an image from the enriched text, and the third generated a text caption from the image. This could then be continuously run through the models, producing ever more interesting outputs.

A diagram of how Panic works. The text prompt is: A group of dogs wearing hats and red bows. The generated image is quite gloomy, and shows many dogs, some of them are floating. This image is then captioned by the second model as: A group of teddy bears are dressed like soldiers. This is the generated into another gloomy image of human-like teddy bears with guns.

Panic prompts questions about the effect of feedback between models. This is espeically of interest now that the GPT models are providing a more widespread capability to generate content. I also wonder about the effect of feedback on a large generative model that is trained on data that is partially generated by another model? At a certain point you run the risk of some kind of mutli-model overfitting to the training data.

Logging practices I follow

I found “Logging practices I follow” by Eliran Turgeman to be a concise guidance to use when adding logs to an application. I recently used some of these suggestions when I needed to tidy up some logging in an application. Specifically of note was the suggestion of using a consistent prefix that identifies the class/service/file, and the importance of using unique log messages, which both help to pinpoint the exact area of the codebase that requires attention.

Resilience and Waste in Software Teams

“Resilience and Waste in Software Teams” by Jessica Kerr provided good insights into the benefits of maintaining some slack in our schedule. These benefits include greater flexibility, as well as the time to work on tasks that help to keep things ticking along. The article nicely frames this as part of a team having resilience. I really enjoyed this analogy of a kitchen which contrasted working with and without slack:

“It’s like I’m trying to cook but the kitchen sink is full of murky water and knives. […] In the kitchen, I always wash the knives and put them away immediately as soon as I’m done chopping.”