Journaling Journeys and CI Conundrums
In this issue
I've Forgotten More Than You'll Ever Know
Should Solo Developers Use Continuous Integration?
I've forgotten more than you'll ever know
- Unknown
The first thing I do in the morning when I open my Mac is start a new journal entry in Obsidian. I add to it whenever I see, read, or think of something interesting. Obsidian is tremendously powerful. I've been journaling like this since ~2020, and I have a lot of notes in there.
Today, I fell into a rabbit hole again. I was thinking about whether or not I should write down some "purpose" for this newsletter and perhaps even my blog. Who is this for, and who am I serving? Then I remembered Paul Graham's legendary blog post, Keep Your Identity Small, arguing not to. I quickly found the note about this in my Obsidian vault, and inside that note, I had also written down a link to a post by Derek Sivers about The Now Page Movement. In this post, Sivers encourages adding a "/now" page to your blog, where you state what you are into right now. I am trying to remember writing this down, but there it is. Obsidian didn't say when I wrote it, but then I thought - there must be a plugin for this!
A quick search later, and I am installing the Update Time on Edit plugin for Obsidian. After doing so I now have "Created:" and "Updated:" fields in the Front Matter of all my notes! I can tell that this note about Graham's post is from January 2021, and I updated it with the note about the Now Page Movement in September 2021.
Now I need a Now Page!
I have yet to conclude on any purpose or who to serve, but that's rabbit holes for you.
Should solo developers use continuous integration?
You might have heard about Continuous Integration/Delivery in software development. I'm referring to it as just CI, for shortness's sake.
CI is something that teams in companies use to automate their testing and release processes, catch bugs, and ensure they don't depend on single developers to make builds and releases. CI systems can be incredibly complex and expensive, and some software companies have teams dedicated to running and optimizing these systems.
For solo developers, is it worth the overhead?
The short answer is that you don't need this stuff. For indies, solo devs, or someone with a side project, the time saved isn't likely to add up to more than the time it took to do the CI setup. Independent developers usually build and upload a version from their laptop whenever needed, which takes little time.
There is a longer answer, though. Although you don't need it, it can still be advantageous. The first thing I do after creating a new project is set up the CI. Setting up CI is quick and easy these days, and if you've never done it before, I recommend doing so to learn how to do it. It doesn't take so long that it isn't worth the learning experience.
The other day, Apple announced that starting January 2024, your Apple Developer Program membership includes an Xcode Cloud subscription at no additional cost. Every small iOS developer now has a "free" CI system. This is huge news, so make sure you take advantage of it!
The benefits of CI are smaller for individuals than for teams, but they are more than worth it. You'll know that the project works on another machine or for someone else, and it'll tell you if you forgot to check in a file or made a test fail. If you want to develop using a beta version or some other IDE, you can do so on your machine without affecting your ability to release. All you need to do is git push, and it will get built correctly "in the cloud."
Earlier this fall, I wanted to make an update to an app of mine that I hadn't updated in a while. When I attempted to build the project, it spewed numerous errors. What was going on? The app was OK the last time I worked on it!
What had happened was the march of time and progress. While this project sat still, I had an updated Mac and a more recent version of Xcode. The code needed to be updated. Fortunately, I had set up CI on this project, so I could hop in there and try building on multiple older versions of Xcode until I found one that worked. After that, it was just a matter of downloading that working version, fixing all warnings, and updating all dependencies, and I was back in business!
You don't need CI, but for iOS developers in particular, it is now both simple to set up and free, and having it may be more helpful than you think.
-Steffen
P.S. You can reply to this email; it will get to me, and I will read it.