30 Bits of Advice for 30 Years
Posted on from Frankfurt, GermanyI’m turning 30 this year.
Inspired by Kevin Kelly’s incredible 68 Bits of Unsolicited Advice, I collected bits of advice I’ve picked up over the years—mostly by people wiser than me.
I’m turning 30 this year.
Inspired by Kevin Kelly’s incredible 68 Bits of Unsolicited Advice, I collected bits of advice I’ve picked up over the years—mostly by people wiser than me.
The year is 1996. You feed your Tamagotchi, get a Squeezit and turn on the home computer. You’ve told your family they can’t do phone calls for the next hour. The dial-up modem makes beeping sounds. You’re online.
Yesterday you found this fly website about amateur radio, and you want to explore more—but how can you find related websites? Yahoo is slow and not really showing you what you’re looking for. Then you notice that this website is part of the “Amateur Radio Webring”. You click the arrow to the right and dive into another website about amateur radio.
Yesterday, while looking through a folder called old things lol glhf, I fell
into a rabbit hole of old abandoned projects—mostly websites and graphic
design, but I also found one or two Flash projects and compiled .exe
files.
And, while it was really fun remembering projects I’ve long forgotten, there was no structure, and it was often difficult to figure out what a project did and what it looked like—some even missed crucial data. This made me think about how I want to archive my projects going forward.
Every month, I’m sharing my current home screen. This is the one for November 2023.
In episode 097 of the Hemispheric Views podcast, the hosts discuss their app defaults, which has inspired some people to share their own.
I’ve used a lot of static site generators in the past, and they all have their own features and quirks, but most importantly, you have to architect your website to match what the framework expects.
Since yesterday, this website has been powered by my own SSG. It’s not meant to be reusable, it’s just normal code—parsing and generating files for this specific website.
And oh boy do I love it.
Have you every shared a link to a friend and wondered where the image preview
came from?
That’s the Open Graph Protocol, a set of HTML <meta>
extensions that can enrich a link, originally invented at Facebook.
This blog post describes how you can generate these images on build time in
the Astro web framework.
You probably don’t like email, not a lot of people do. That’s because you’re using it wrong.
Chances are that if you look at your inbox, it’s full of unsolicited marketing emails, log-in notifications or spam. Or you’re doing inbox zero and all that trash lives in your archive.
As everything else, email is subject (hah) to entropy. If you’re not careful, chaos will take over.
A few weeks ago, the hard drive (yes, I know) in my home lab died. It was a sad moment, especially because I ran Plex on it and rely on that for my music and audiobook needs.
The upside is that it gave me the opportunity to rethink my Plex setup. Hosting it at home is great for storage costs and control, but it’s hard to share with friends or access on the go, especially with a NATed IPv4, so I decided to move to the cloud.
The last two weeks I’ve spent quite some time on evenings and weekends to work on an iOS app. I won’t tell you what it is though, it’s way too early for that.
This is the first post in a series and this one is about technologies and tooling.
This is the second post of my series Automate.
On the Cortex podcast (which inspired the whole series), CGP Grey and Myke Hurley sometimes talk about their checklists; whole projects that can be invoked by a tap if needed. These lists are for things that are important to get right, but you do them not often enough to remember every step, examples are an Airport or a YouTube checklist. They mostly use OmniFocus for this, which can export and import projects as TaskPaper.
This is the first post of my series Automate.
In this post I describe how I created an Automator application, which will record the latest episode of a Spotify podcast, fill out metadata like title and description and generate a file for metadata for a podcast client to subscribe to.
I listen to a lot of podcasts every day, e.g. when doing chores or commuting. One of the shows I particulary enjoy recently is Cortex, where Myke Hurley and CGP Grey talk about their ways to be productive. Every year, they define yearly themes, which are a bit like new year’s resolutions, but instead of hard targets, they are more like directions in which you want to go. I highly recommend listening to the Yearly Themes Episode of 2019.
Yesterday we added unit tests for a component that uses the Intl API to a frontend project. Everything worked flawlessly on our local machines, but it failed on CI. The failing tests showed a number formatted in English instead of the expected German format.
A good architect maximises the number of decisions not made
— Robert C. Martin in Clean Architecture
Most web services I worked with use a MVC-style architecture, with a handlers
package and, if at all, a repository
package. While this may be great for small services, the handlers
package introduces a big problem: It mixes transport logic with business logic. This makes refactoring hard (imagine switching your HTTP framework) and therefore forces you to make decisions about these kind of things before even starting the project. So when I started a new project recently, I decided to use the hexagonal architecture (aka Ports and Adapters) and so far I’m really happy.
If you’re using Vim, you know that feel (if you aren’t, you can skip this
article): Everytime you open a project, you toggle
NERDTREE and
Tagbar (or similar). But you don’t
want to put that in your .vimrc
, because then they’d open every time, even
when you just want to quickly edit a file.
You’re deploying your Octopress blog via Git to GitHub Pages (or Heroku), but you don’t like Heroku and GitHub Pages are refreshing too slow and you really don’t want to use Rsync, do you?
Just deploy to your own server via Git.