Having a Blog Makes Me Do Things

A couple of weeks ago I downloaded an OPML file of 1,000+ blogs to follow, which I only did because I thought I might get ideas of things to write about. I ended up writing about minimal blog feeds, how NetNewsWire handled the OPML file, raylib, linear algebra in game dev, and then I worked on a game in raylib (which I only did to write about).

A few years ago I started reading books about writing including Bird by Bird [amazon affiliate link] by Anne LaMott, On Writing [amazon affiliate link] by Stephen King, Art & Fear [amazon affiliate link] by Orland and Bayles, The Artist’s Way [amazon affiliate link] by Julia Cameron, and most recently, Writing Down the Bones [amazon affiliate link] by Natalie Goldberg. These books have been the backbone of my podcast about writing and have generated a lot of posts on this blog (Here’s a mashup of the ideas of Lamott and Cameron). If I didn’t blog, I would not have read them, which would have been a shame, because they are great and very applicable to writing code.

Obviously, not everything I do is just for this blog. Most of what I do is not. But, having this blog has made some use of the exhaust I spew by wanting to try things out. I used to stop myself by saying that I should focus on fewer things (which I did, and that was good), but now the thing I am focussed on is writing, and this blog is making it beneficial to do things that don’t seem to have much point.

Rewrite of Blogging follows doing based on Old, Flawed Work is the Jumping Off Point

Old, Flawed Work is the Jumping Off Point

In my podcast yesterday, I shared my final lesson-learned from Art & Fear [amazon affiliate link], which was that flaws are useful in making art. I always end the podcast with a writing tip, so you to look over your early work and find pieces where you didn’t live up to your intention.

This blog is nearly 20 years old, so I have a lot of old, flawed posts. For the rest of the week, I’m going to look for posts that had a good idea, but didn’t do a good job of expressing it.

Here is the process that I’m going to apply:

  1. Find a post that feels like it has no point, just a bunch of related ideas. (I have a lot of these)
  2. Figure out the single message or takeaway I wanted to convey.
  3. Remove everything that isn’t part of that message.
  4. Reorder the text to make it clear what the point of the post is as soon as possible.
  5. Title it to support that message.
  6. Add whatever else it might need to convey that single message.
  7. Make it more specific to my intended audience: software developers and managers.

It’s what I try to do now in new posts. I outlined this approach in Write While True Episode 5: Audience and Message.

Write While True Episode 27: Writing is Ordinary

This is the fourth and final episode in a series I’m doing about the book Art & Fear [amazon affiliate link] by David Bayles and Ted Orland.

In this, the final episode of the series, I’m going to tell you what they think you need to be in order to be an artist.

Transcript

Taking a Successful Break

I just finished a break where I traveled for four weeks to see family and friends in places I used to live (in NYC and New England). My intention was not to completely stop working, but that all of my projects would become much lower priority.

Here are some things that worked for me.

  • Banking content: I didn’t want to have to write every day and podcast every week, but I did want to keep the publishing schedule going. To do that, I pre-recorded five podcasts before I left and wrote many blog posts. I still wrote quite a bit during the break and did have to edit and post the podcasts, but it was much less work than normal.
  • Setting expectations: Before I left, I made a podcast about how I was taking a break and what my strategy was. I also set meeting expectations with my partners and clients.
  • Having a generation strategy: To make it a lot easier to make five podcasts in a couple of days, I did a four part series about lessons I learned from Art & Fear.
  • Lowering the bar: My goal in each podcast is to share something that is helping me in my writing with a clear takeaway. If I had that, I didn’t worry about the length.
  • Shutting off sometimes: Part of my trip was meant to be a real vacation, and during that time, I completely shut off.
  • Prioritizing relationships: I never turned down a chance to see my family or friends and made sure that my wife and I had plenty of time together as well. Everything else had to fit in between that.
  • Having fewer obligations: I do more projects alone or in partnerships that are trying to build modest businesses that can withstand me being away from it. My client work is more advisory and easy to schedule.

As I spoke about in my podcast, I did this exact same trip in 2021 and it completely derailed me. I did not set expectations correctly with a client and had to do a lot more work than I wanted to. I had to pare back everything to just work I was obligated to do and then kept that pattern for more than a year until I could get control again.

This time, using the strategies above, I was able to have the break I wanted and also keep projects going enough so that I could easily pick them back up when I returned.

Another Story from an Early Programmer

A few years ago I had dinner with someone who became a programmer in the 1950’s. Today I had a chat with someone who became a programmer in 1970. Here’s a paraphrase of her story.

I was an accountant, and my boss asked me to price a computer and database for the sales team. I talked to a distributer and he gave me a price for the computer, software, and services of about $10,000, which was within our budget.

Before I made the purchase, I made sure it could do what we needed, and I said that the computer would need to be able to calculate logarithms. The salesperson said that this computer could only do addition, subtraction, multiplication and division. To do what I needed, I would need an IBM 360 (which cost a lot more).

This didn’t sound right to me, so I bought a programming book and learned enough to know that (a) computers were going to be a big thing (b) the people working in it right now didn’t know what they were talking about (c) I could do well because I understood it immediately.

So, she left her job and went back to college to learn programming, starting with FORTRAN (spoiler alert: it supports logarithms). She ultimately had a career as a programmer and manager, retiring early.

In Space, No One Can Grow Your Debt

Yesterday, I mentioned that Voyager’s software isn’t lost yet and is still running. I had explored some of the reasons that was a couple of years ago in Long-lived Computational Systems. Since today is the 54th anniversary of the lunar landing, I’ll stay on the space theme.

In Tech Debt Happens to You I wrote that

[…] the main source of tech debt [is] not intentional debt that you take on or the debt you accumulate from cutting corners due to time constraints. [It’s] the debt that comes with dependency and environment changes.

So, maybe that’s why Voyager could run for so long. Its hardware is in space, so it’s shielded from environmental concerns that would eventually corrode unmaintained metal. And no one can change anything else about its hardware.

I don’t know how much control NASA has over Voyager software updates, but with such low bandwidth and high latency, it could not change much. This affects debt in two ways. The first is that you can’t add more, but the second has to do with how your current debt grows.

Since the cost of software debt is the interest payment that comes when you try to change the software, if you never change anything, your debt has no additional cost.

Note: The title of this post is a play on the promotional tagline for Alien. For more thoughts see Alien Movie Review: Display Technology.

Software is Losable

When I listed what I thought of the Great Works of Software, I also offhandedly listed some great works of art: The David, Beethoven’s 5th, and Pride and Prejudice. One of the reasons I think of them as great is because they are old and still relevant. We haven’t lost interest in them, and also, we haven’t lost them.

Pride and Prejudice can be reproduced exactly as it was when it was first written in all the ways we care about, but we could have lost it early on if Jane Austen hadn’t published it. We still have The David after 500 years, but we could possibly lose it forever. We have already lost the first performance of the 5th, but we could make something similar from the music sheets.

In this way, software is most like music. We have source documents, but the real thing is inextricably tied to hardware. We play recordings or perform music just like we run programs—on hardware. The hardware and the performance is big part of what we think the software is. A book is also delivered on hardware, but we don’t consider the paper or the Kindle or the Audible file part of the work.

All of this makes software losable, because if we lose the ability to run the software, we have lost it.

On my list of the five great works of software, three of them are in active maintenance. We still have the other two (browsers and spreadsheets), but the originals by Tim Berners-Lee and Dan Bricklin are frozen in time and harder to run.

VisiCalc was written for the Apple II in 1979. I don’t know if you can run that version, but Dan Bricklin claims that the executable for the PC will still run on modern Windows under DOS (because Microsoft believes New Versions Should be Substitutable). I am sure you could get a DOS emulator even if a modern one can’t run it any more. We haven’t lost it yet.

There is a version of Berners-Lee’s WorldWideWeb client on GitHub, it was written for a NeXT machine. I don’t know how to run it, but there is at least one NeXT emulator that might be able to, so it’s also possibly not lost yet.

It’s not a “great work”, but I have run My First Real Program on a PET emulator because it was small enough to commit to memory. Almost all programs I have written between then and when I started working professionally are lost because they were tied to floppies that I didn’t keep.

The possibly longest continuously running software, Voyager, is very far away, but not lost yet.

A Life’s Work

I just saw a retrospective of the work by the artist Gego at the Guggenheim in NYC. It runs until September 10, 2023 and worth a visit. Gego (Gertrud Goldschmidt) was a German-born architect/engineer who fled the Nazis and settled in Venezuela in 1939. She started making art in the 1950’s and was prolific until her death in the 90’s. The Guggenheim is dedicating several floors of the rotunda to showing the breadth of her work.

A photo showing several floors of the inside of the Guggenheim museum in NYC with Gego's work on display.

Many of her works are wire sculptures (or as she described it, sculptures of transparent space), but there were several other series on display as well. For example, there are watercolors she made to help plan her work, which also explored the reticular theme, but in a different medium. The other thing I noticed was how much of her work was either untitled, titled identically, or simply enumerated with a year and count. She was too busy making and exploring to stop and name everything.

As I descended the spiral, seeing so much of Gego at once, I couldn’t help think of the advice in Art & Fear to explore Thousands of Variations of an idea as an artist.

Nebulas July 2023 Update

A couple of years ago, I wrote about designing a game that is the opposite of Asteroids. Last week, I found raylib, a C library for making games and decided to try making it (I also renamed it Nebulas).

Here’s what I have so far.

  • You are a triangle ship in the center of a starfield, which can help with navigation.
  • You can rotate (LEFT and RIGHT) and thrust (UP)
  • Space is infinite in all directions. You are always at the center of the screen.
  • There are nebulas in space around you moving.
  • You can go into them and suck their energy into your ship

Here’s a video of my progress so far:

Next

  • The color of the nebula is a clue to what power your ship gets from it. (e.g. Red is thrust)
  • The color of the ship is which gas you are currently using.
  • I will show tanks for each color so you can see how much you have of each gas.

The game is to survive as long as possible, conserving your gases. As long as you survive, you can explore.

Write While True Episode 26: Making Makes a Maker

I decided to do a four-part series on the lessons I learned from Art & Fear by David Bayles and Ted Orland.

This week, in part three, I want to talk about a quote about what art means to the maker.

Transcript