June 12th, 2020The 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.
Continue reading...February 9th, 2019This 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.
Continue reading...January 5th, 2019This 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.
Continue reading...January 4th, 2019I 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.
Continue reading...November 15th, 2018Yesterday 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.
Continue reading...September 2nd, 2018
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.
Continue reading...August 14th, 2014If 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.
Continue reading...September 28th, 2013You’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.
Continue reading...