CJ Eller

Classical Guitar by Training, Software by Accident

This post goes out at 6:00pm. Where is the Sun in relation to where I am at that time? How does the Sun hit my home then? What shadows does the sun cast on the grass? It pains me to not know the answers to these seemingly simple questions; a pain that comes from being locked into digital time while analog time hums in the background. The sun's movements are like a television I leave on while I go about my day. Leaves me feeling out of sync with the world around me, more than I care to admit.

Be more mindful of the Sun. It sounds like a simple thing, but even the little observing I've done makes me realize how much there is to learn about how out of sync I've been. Only a month ago I learned where the Sun rose East in relation to our home. To figure that out just now — that feels embarrassing as a human being living on Earth. I want to be less embarrassed and more mindful.

Here's to getting in sync with the sun.

Belated thanks for the shoutout John Doe:

CJ Eller's post about analog hyperlinks reminded me of an article's fragment I came across a few weeks ago:

“If you experience something — record it. If you record something — upload it. If you upload something — share it.”

These days it feels like all valuable experiences must be recorded, otherwise, they have no value — like they never even happened. CJ Eller was spot on when he realizes (or reminds) the real value of human interactions — an analog hyperlink — even if they are not translated into bits flowing through the web.

I believe our constant need for sharing and getting feedback in today's world is a distraction, and that makes us lose sight of what is truly important.

What happens when you share an idea and don't get any feedback? Is a human connection possible?

I believe it is.

It took me a while to respond directly but all the while I carried your thoughts in my head — mulling over how “sharing an experience” can be reduced to uploading it to the internet for others to see and how that flattens said experience, how feedback doesn't tell the whole story of interacting with someone's writing, how I can read something and hold it in my mind without giving feedback (like this post) and think it over for days on end, how that experience is impossible to put in a “Like” button.

Is that not worth more than a single comment?

I just got my second COVID vaccination shot. The clinic was a repurposed community center in a rural town close to where I live. What impressed me was how thrown together the operation was —plastic folding chairs spaced out within a large room, volunteers directing cars to park at the church next door, supplies spread out under folding tables, nurses using tablets to sign people up for their second vaccine appointment.

As we waited in the observation room after getting the vaccine, I noticed an empty basketball court outside a window. Spread out on the court were children-sized tricycles. All I could think of were kids riding around on these tricycles, feeling a sense of freedom on that repurposed court just as I felt in the repurposed community center.

The whole situation is difficult to articulate, but I think Matt Webb gets close to it in this blog post about his own vaccination experience. Webb calls it a “cosy adhocracy”:

I mean cosy in the sense of Venkatesh Rao’s coinage domestic cozy: “Domestic cozy is in an attitude, emerging socioeconomic posture, and aesthetic. It’s homely. Satisfying.”

Just as there is cosiness in being at home with friends, eating together, soft furnishings, etc, there is also cosiness in community – in a neighbourhood. And so…

I mean adhocracy as in Cory Doctorow’s debut novel Down and Out in the Magic Kingdom (download here). In this future world, as described in this review, social structure is provided by adhocracies, self-organizing groups of individuals working together to accomplish common goals.

Cosy adhocracy has an aesthetic all of its own. Village fetes, street parties, the vaccine roll-out. That Great British Bake Off tent is tapping into some deep vibes.

The material culture of cosy adhocracy is trestle tables, lighting used by decorators repurposed to illuminate the street in the early evening, and bunting. It’s books of raffle tickets used to share out the drinks; it’s church halls and other reconfigurable spaces; it’s whatever people have in their sheds.

May we edge ever closer to that raw, human, cosy adhocracy.

Came across a great passage from Laura Dassow Walls biography on Henry David Thoreau:

Many have called his Walden house a “hermitage.” But pursuing this devotional path as a middle way, not out in the wilderness but on the edge of town — “just enough to to be seen clearly,” in the phrase of the philosopher Stanley Cavell — forced Thoreau, an intensely solitary introvert, to devise a public persona that could stand up to all the scrutiny and defend his private self from the glare of publicity.

Developing a presence on the web feels similar to this in-between of publicity and solitude that Walls uses to describe Thoreau's Walden home. How to do just enough to be seen clearly but defend the private self?

I just received about four boxes of books from a friend. They needed them out of their home and we happily obliged to take them. I started pouring through a book a professor recommended me about five years ago and never got to until now — Herman Hesse's The Glass Bead Game. There are countless others volumes within those boxes that I'd like to read.

I find myself picking up a couple and placing them on my desk, skimming through a couple before digging back into The Glass Bead Game. The only thing I can compare it to is having many tabs open on your browser — if only tabs looked as elegant as disheveled book covers upon your desk, each with bookmarks of different shapes cast within their pages.

And this reminds me of a quote of Umberto Eco's that is printed on the cover of Andrew Hurley's translation of Borges' Collected Fictions:

Though so different in style, two writers have offered us an image for the next millennium: Joyce and Borges. The first designed with words what the second designed with ideas: the original, the one and only World Wide Web, The Real Thing. The rest will remain simply virtual.

This view of Borges as the World Wide Web, nay the realWorld Wide Web, took me by surprise. At first I dismissed Eco as being hyperbolic, but the more time goes by, the more I read Borges, the more I read in general, the more I believe it. Borges' encyclopedic mind is the product of logging into that analog web that existed way before the digital one did, immersed in books. The World Wide Web as product of the original World Wide Web of analog, of books.

While I may not be able to live in the stacks like Borges did, perhaps I can emulate him in choosing to log into that other web more often.

Last Friday I didn't get to writing a new post. This means that my publishing program spits out the contents of the post from the previous day. Not an intentional repetition like those Tumblr shrines of singular images, but a repetition nevertheless.

My mind floats towards solutions to this issue — changes to the underlying publishing program, changes to the underlying writing routine. But my thoughts also drift towards not even considering this an issue. If a Tumblr blog with the same picture of Dave Coulier every day, why does repeating a single post have to be a problem? For all I know, the repetition of a post could be the first time someone sees it. For all I know, the repetition of a post could take on new meaning. For all I know, I don't know why repetition should be an issue.

I'm reminded of an article from The Atlantic by John Barth, aptly called “Do I Repeat Myself?”:

Once upon a time, perusing a book about the Egyptian Middle Kingdom, I noted that some twelve centuries before Homer, in about 2000 B.C.E., the scribe Khakheperresenb was already voicing what I like to call Khakheperresenb’s Complaint: “Would I had phrases that are not known,” the scribe laments, “in new language that has not been used not an utterance which has grown stale, which men of old have spoken.” I used to comfort my students (and myself) with the reflection that for all we know, two or three millennia of sea and sunrise metaphors might be like the first few million stars in our galaxy—a mere drop in the bucket!—while at the same time acknowledging that Khakheperresenb’s feeling of having arrived late to the party is not to be dismissed.

[...]

If I could time-travel back to the Egyptian Middle Kingdom, I would console Khakheperresenb with the familiar paraphrase of Walt Whitman: “Do I repeat myself? Very well then, I repeat myself.” Or André Gide’s comforting remark, “Everything that needs to be said has already been said. But since no one was listening, everything must be said again.” Originality, after all, includes not only saying something for the first time, but re-saying (in a worthy new way) the already said: rearranging an old tune in a different key, to a different rhythm, perhaps on a different instrument. Has that been said before? No matter: on with the story!

I fixed a technical problem I was having at work. Sure, I'm relieved, but the most frustrating part of it all is that I didn't have the satisfaction of knowing what the problem was exactly. All I did was remove cruft to start back at square one. No idea what cruft was the culprit. It just works now.

Something I've been trying to get better at is accepting that sometimes you won't know why something is now working. Not from a lack of wanting to understand, but from an acknowledgement that, no matter how much you dig, you won't understand. And that's okay.

There's a part in the video I shared yesterday where MPJ says that his mantra as a software developer used to be:

It's my job to bang my head against problems until I succeed.

But he soon realized that success might not be the end point. Sometimes problems can't be solved, can't be understood, can't be grasped. It was only until he removed that “until I succeed” part did he reach a healthier relation to his craft.

It's my job to bang my head against problems.

I think accepting the mystery of solutions, not fully knowing how to solve something as part of your success, is part of that healthier relation to the craft of software & engineering.

I fixed a technical problem I was having at work. Sure, I'm relieved, but the most frustrating part of it all is that I didn't have the satisfaction of knowing what the problem was exactly. All I did was remove cruft to start back at square one. No idea what cruft was the culprit. It just works now.

Something I've been trying to get better at is accepting that sometimes you won't know why something is now working. Not from a lack of wanting to understand, but from an acknowledgement that, no matter how much you dig, you won't understand. And that's okay.

There's a part in the video I shared yesterday where MPJ says that his mantra as a software developer used to be:

It's my job to bang my head against problems until I succeed.

But he soon realized that success might not be the end point. Sometimes problems can't be solved, can't be understood, can't be grasped. It was only until he removed that “until I succeed” part did he reach a healthier relation to his craft.

It's my job to bang my head against problems.

I wonder if this also aligns with accepting the mystery of certain solutions, admitting to not fully understanding how something was fixed, taking credit for it like some ego-inflated developer. Perhaps that is part of that healthier relation to the craft of software & engineering that MPJ was talking about.

Have you ever clicked on a banana peel? You know, clicked “Delete” on something you didn't mean to delete? That was me today with some production resources. Poof. An entire AWS VPC gone. Thankfully this wasn't used by anyone, but it left me back at square one for a project I've been working on. Now I'm encountering bugs I never encountered before, having to push back deadlines, feeling stressed out. An unproductive day due to a single click. It's not even the grandest of gestures — just a muscle twitch of the index finger. But oh how much can go wrong with but a twitch.

Of course I feel like I am catastrophizing, but I am not experienced in the world of engineering and am taking it personally. I can't help but feel terrible. Perspective will let me grow from this experience though. There will be days like this.

I am reminded of a video I watched 2 years ago that resonate with this feeling more now than when I watched it initially. Maybe it will resonate with you too.

There's this neat software projected called Termible which creates terminal apps that you can add to your website. Just a little bit of JavaScript is all you need to get started. The application of such an application is quite fascinating:

[Termible allows users to] instantly interact with your product (a CLI tool, REST API, programming language, etc.) from the terminal without installation or even leaving the page.

A software terminal is already a bit of an abstraction. Scott Hanselman does a great job of explaining this:

The word Terminal comes from terminate, indicating that it's the terminating end or “terminal” end of a communications process. You'll often hear “dumb terminal” when referring to a text-based environment where the computer you are sitting next to is just taking input and showing text while the real work happens at the other end in a mainframe or large computer.

TTY or “teletypewriter” was the first kind of terminal. Rather than a screen you'd have a literal typewriter in front of you. When you type on it, you're seeing the text on a piece of paper AND inputing that text into a computer. When that computer replies, you'll see the typewriter automatically type on the same paper.

When we refer to a Terminal in the software sense, we're referring to a literal software version of a TTY or Terminal. The Windows Terminal is that. It's really good at displaying textual output. It can take input and pass it on. But the Terminal isn't smart. It doesn't actually process your input, it doesn't look at your files or think.

If a terminal displays textual output back, what's really doing the heavy lifting? As Hanselman further explains, it's the shell:

A shell is the program that the terminal sends user input to. The shell generates output and passes it back to the terminal for display.

How do I find out what shell my terminal is using? Apparently it's an environmental variable I can call upon.

echo $SHELL

If you run that above command on the Termible terminal on their home page, for example, it'll return that the terminal is using a bash shell. So we have a software terminal using a software shell.

And how does that terminal/shell pairing run on a browser in the first place? How does it become so easy that you can just add JavaScript to your site? Through the power of another abstraction called Docker. As Wikipedia explains (because I couldn't do it justice),

Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels. Because all of the containers share the services of a single operating system kernel, they use fewer resources than virtual machines.

And that abstraction is probably hosted by a cloud provider, yet another abstraction, so that one can add some JavaScript fairy dust (an abstraction) to have a virtual terminal sitting on their website.

These layers of nested abstractions never cease to leave me utterly dumbfounded in wonder. It's no wonder then that someone who likes to have his head in the clouds wants to engineer them as a profession.