CJ Eller

Classical Guitar by Training, Cloud Engineer by Accident

I've been getting into golf again, though “stumbling” is a more appropriate. Used to play with my dad and friends intermittently. Then intermittent began to mean years instead of months in between sessions. Now my clubs are out of storage and I hope to keep it that way.

The reason I bring this up is because I've discovered this recreational programming practice called Code golf. The Wikipedia definition is as follows:

Code golf is a type of recreational computer programming competition in which participants strive to achieve the shortest possible source code that implements a certain algorithm.

The main site (if that's even true for such a thing as “code golf”) includes numerous challenges with numerous languages and a leaderboard to egg you on. It's not my kind of golf, but I appreciate the spirit of Code golf — driving towards concision.

I had an instance today at work where we were trying to parse data out of an AWS CLI command. This was the initial go around:

aws rds describe-db-dngine-versions --engine postgres --engine-version 9.6.20 | grep -a 500 "ValidationUpgradeTarget" | grep "EngineVersion" | sed -e 's/"//g' | sed -e 's/EngineVersion: /PostgreSQL /g' | sed -e 's/,//g'

Then we played around with using another “club” instead of grep & sed — jq. With jq, the command turned to this:

aws rds describe-db-dngine-versions --engine postgres --engine-version 9.6.20 | jq -r ".DBEngineVersions[].ValidUpgradeTarget[].Description"

Accomplishing the same thing in fewer lines. Though it's more than that. While the second solution with jq is smaller, it's also more readable. You can easily infer the structure of the response.

Code golf judges your code by the number of characters & byte size. The real world judges your code by clarity.

Something I'm trying to get better at is archiving the problems I run into with computers — everything from getting a Docker image to work a certain way to figuring out how to do a particular thing in Python or AWS.

What if I could curate these problems like books in my personal library? Think of it. Every day has the potential to unearth an approach to a problem on my shelf. One day I could read something one day that relates to the Docker image issue I keep having. And yet it can be difficult to even manage one's own issues. What problems could be solved if they were top of mind, not lingering in the back of my subconscious?

How to build that awareness? How to build a problem library?

Claire L. Evans wrote a magical piece called Beyond Smart Rocks that took me by surprise. It digs under the silicon and sand that run modern computers to look for sustainable alternatives. A rich corpus of research into mold and memristors shows a fascinating alternative to the relationship we have with computing today. As Evans muses,

Switching from silicon to slime is a transformative idea. For me, the very question feels radically hopeful: might building computers from slime molds and mushrooms transform computing from a sophisticated solipsism into a far more sophisticated expression of our awe-inspiringly complex, interconnected world? Certainly it would change our whole relational experience of computing. It might also be more sustainable, as biological computer systems would consume far less energy than traditional hardware and, at the end of life, be completely biodegradable. ”We can shut down our PC completely,” [Andrew] Adamatzky explains, “but we will never shut down a living fungi or a slime mould without killing it.” Forget planned obsolescence.

The research that Evans dials in on is about Physarum polycephalum, a type of slime mold that has the propensity for limited learning.

Its sensing, searching protoplasmic tubes can solve mazes, design efficient networks, and easily find the shortest path between points on a map. In a range of experiments, it has modeled the roadways of ancient Rome, traced a perfect copy of Japan’s interconnected rail networks, and smashed the Traveling Salesman Problem, an exponentially complex math problem. It has no central nervous system, but Physarum is capable of limited learning, making it a leading candidate for a new kind of biological computer system — one that isn’t mined, but grown. This proposition has entranced researchers worldwide and attracted investment at the government level. An EU-funded research group, PhyChip, hopes to build a hybrid computer chip from Physarum, by shellacking its protoplasmic tubes in conductive particles. Such a “functional biomorphic computing device” would be sustainable, self-healing and self-correcting. It would also be, by some definition, alive.

“A new kind of biological computer system — one that isn’t mined, but grown.” That hits home for some reason. If alternatives like the PhyChip catch on, server farms could actually become more like farms than data centers, where maintenance relies on horticulture as much as it does on traditional IT skills. Imagine growing your parts for your laptop along with herbs for your dinner.

As Evans notes, such experiments only recapitulate the beautiful interconnectedness of our planet. At most we can produce a poor recapitulation — even as our modern world accelerates forward with “innovation” after “innovation.”

[A]s we dream of embedding artificial intelligence into every material surface of our lives, we are at best poorly emulating processes already at play beneath our feet and in our gardens. We’re making a bad copy of the Earth — and, in mining the Earth to create it, we are destroying the original.

However, there is something about the paradigm shift that this alternative creates that is indeed transformative. To go from “a sophisticated solipsism” towards a “sophisticated expression of our awe-inspiringly complex, interconnected world” is a shift I'd want to be a part of.

Best to keep an eye on this and work on my green (slime) thumb.

There's a great Twitter thread from Tom Critchlow that responds to the narrative of the “status game” being played online. In particular, Tom is responding to the variation on the narrative portrayed in this piece by Ali Montag about how writing online takes becomes this “Inner Ring” a la C.S. Lewis (source).

The thread within Tom's thread I want to pull on is this:

But if all you read and follow are mainstream and “inner circle” folks then you're only going to see the status and celebrity game.

You'll desire audience and reach and think that writing in fast company is success...

When the reality is that you can rewild your attention, and follow blogs and people writing small weird things.

You can find your group, you can forge real connections. And writing, working in public helps! It's a tiny weird signal.

That phrase — rewild your attention — hits home with me. It explains much of the development over the past couple years with my relationship towards blogging. A lot of the readers & writers I've come to know exist within the bandwidth of tiny weird signals, especially within the community surrounding Write.as. There are so many great people I've met in that network who are writing those small weird things Tom mentions — more than I can count. I am grateful that I acknowledged and traveled closer towards this signal when I did. It shaped not only my trajectory as a writer but also within the field of technology I work in today. Now that signal is something I don't think about. It's my day-to-day online existence.

But the signal can fade. Tom's message makes me realize that rewilding attention is an active practice. One must not only pursue those tiny signals but share them as well, whether that means writing about them on your blog or by word of mouth. The only way the tiny signal can keep on resonating throughout the web is if we keep passing it on.

Sometimes all I can muster are a couple sentences for a blog post. At first it bothered me. Why couldn't I write longer entries? Slowing down? Losing inspiration?

Ever since I started posting on an every weekday basis, however, the number of words started to matter less. It became more about what I was reading or thinking or doing in that week. If that can only be expressed in a couple sentences, then that's okay.

A blog should be a place to express yourself. Why limit that expression with artificial limits?

I am in a work from home scenario. This week is the first time that I'm spending time working from a place that isn't home — vacationing on the shores of the Atlantic. I've been acclimated to particular habits while at home. Suddenly I don't have access to those, so adjustment is needed. Different co-working pals, different desk for taking video calls, different working session cadences.

It's been a refreshing reset that shakes the dust off of my normal routine. When I go back home at the end of the week I can return to my home office with a renewed appreciation and perhaps a couple improvements that can be made to make things better.

Makes me wonder why I haven't done something like this sooner — working from not home for a change.

As disorder decreases, the system's structure and organization disappears. Disorder is incompatible with life. For open systems, fortunately, it is not impossible that entropy can decrease; fortunately, it is not impossible that entropy can decrease; that is, order can be increased locally (in the organism) while decreasing within the total system (organism plus environment). This is precisely what is typical of living systems: they have the ability to create order out of chaos simply by being assured access tot a continuous flow of energy through the system (energy with low entropy as input and energy with high entropy — heat, for instance — as output). An amoeba “eats” order — that is, it ingests materials with more order (energetically speaking), which it utilizes to maintain and rebuild its own organization, and it expends heat (spreading disordered energy) to its environment. An entire ecosystem operates on the same principle: the ordered input consists of light from the sun, the disordered output is heat to the environment, ultimately to outer space.

The Garden in the Machine by Claus Emmeche

There's a card game I always wanted to play but never got a chance to until now — John Eternal's Donsol. The rules are simple yet open to interpretation. While playing it with family, there were multiple times where we asked, “Can I do this?” After much debate we decided upon new rules.

I am fascinated by this inflection point where a game goes from a received rule set to a personal one. When do house rules take hold? Are there instances where the received rule set is merely a personal rule set passed down to others?

Being out of your comfort zone can make you try new things. Since I'm away from my laptop running errands, I have to type out this post on my phone. For one it feels vastly different than typing at an actual keyboard. Not just physically but mentally as well. I wonder if synapses fire off differently when you're using only your thumbs instead, if you have different trails of thought because of that.

It costs one cup of coffee a month for me to publish to Write.as every weekday until the end of time. That translates to “until the end of AWS,” because I use a Python function running in Lambda that is triggered on a regular schedule by EventBridge. A simple serverless architecture that helps me worry about servers “less” and more about what I want the code to do — hold me accountable to publishing something on my blog every week day.

A cup of coffee a month isn't much (depending on where you go), but I wonder why I have to pay for a cup of coffee at all. Why can't I have this event-based, serverless function run every week day for free somewhere else?

This is where I came across Github Actions. I've written about it before where I used it to create blog posts when a Github repo issue is created. Recently I discovered that you can run a workflow as a scheduled event. That means that you can have a workflow that triggers a Python script to run in your repo every week day. Like a Python script that publishes to your blog?

What excites me about this is that the Python code can be simplified even further. No Lambda function handler nonsense, just Python scripting. Even if I wanted to write functions, I could have Github Actions invoke the function like I would if I were testing it locally. Thanks containers!

Hoping to get something together to share later. it might be a kludge, something Github Actions isn't supposed to be used for, but then again that's what I enjoy most about technology — finding ways to put it to use that are on the fringes of personal preference.