2013

Better Package Management

You are managing your Python packages using pip and requirements.txt spec files already. Maybe, you are even pinning them too—that’s awesome. But how do you keep your environments clean and fresh?


Alexander Klöpping in Silicon Valley

Over the last three weeks, the Dutch broadcaster VARA has been airing three special episodes of DWDD University: a documentary Alexander Klöpping made about Silicon Valley.


2012

Pin Your Packages

In building your Python application and its dependencies for production, you want to make sure that your builds are predictable and deterministic. Therefore, always pin your dependencies.


Open Sourcing: the Ultimate Isolation

Reflecting on how I build software lately, I noticed a pattern. I tend to write libraries in absolute isolation, as if they were open sourced and the world is watching along.

In this post I try to explain why this works so well for me.


Introducing RQ

Introducing RQ

Today, I’m open sourcing a project that I’ve been working for the last few months. It is a Python library to put work in the background, that you’d typically use in a web context. It is designed to be simple to set up and use, and be of help in almost any modern Python web stack.


vim-flake8: Flake8 for Vim

Just a quick post to let you know that I discarded my vim-pep8 and vim-pyflakes Vim plugins yesterday in favor of vim-flake8.


Introducing Times

Lately I’ve been getting sick of working with datetimes and timezones in Python. The standard library offers many different conversion routines, but does not prescribe a best practice way to deal with them. Luckily, Armin Ronacher did in his article Dealing with Timezones in Python.


2011

Thank you, Steve

Thank you, Steve

This night, I woke up to the news that Steve Jobs passed away. I did not expect to be this touched by the news, although it was to be expected.


Chords + Lyrics

It’s been quite a while since I took the time to update this blog. Many things have happened in the meanwhile, though. The most important happening for me is that I launched an iPad app and I founded a company called 3rd Cloud last week.


A git-flow screencast

A git-flow screencast

Dave Bock created a nice video on using git-flow.


2010

Survey: Python vs Ruby Test Ecosystems

Survey: Python vs Ruby Test Ecosystems

In this post I call out for participation in a survey that I quickly put together this evening to get a better overview of the most-used unit testing, spec and code coverage tools for both Python and Ruby.

Suffice to say that I will blog about any interesting results or conclusions that I will draw from this survey.


How I boosted my Vim

How I boosted my Vim

A few weeks ago, I felt inspired by articles from Jeff Kreeftmeijer and Armin Ronacher. I took some time to configure and fine-tune my Vim environment. A lot of new stuff made it into my .vimrc file and my .vim directory. This blog post is a summary describing what I’ve added and how I use it in my daily work.


A whole new blog

A whole new blog

Finally, I’ve made the move to a static blog engine! I’m using nanoc now. nanoc is a very flexible and customizable static site generator, written by Denis Defreyne. As with all static site generators, nanoc lets you write your source files in a simple markup language. However, nanoc is much more flexible and customizable than most of the others out there. Let me show you a sneak peak of its internals.


An upgrade of gitflow

Last week, I silently tagged gitflow 0.2. These are the most important changes since 0.1.


Unexpected side effects in Python classes

Today, I lost several hours while debugging a language implementation detail in Python that I did not know of and that really feels counterintuitive and dangerous to me.


gitflow 0.1 released

After the overwhelming attention and feedback on the Git branching model post, a general consensus was that this workflow would benefit from some form of proper scriptability. This post proposes the initial version of a tool I called git-flow.


Building Git from scratch on Snow Leopard

When you try to build Git from scratch on a Snow Leopard machine, you may have ran into the following problem:


A successful Git branching model

A successful Git branching model

In this post I present the development model that I’ve introduced for all of my projects (both at work and private) about a year ago, and which has turned out to be very successful. I’ve been meaning to write about it for a while now, but I’ve never really found the time to do so thoroughly, until now. I won’t talk about any of the projects’ details, merely about the branching strategy and release management.


2009

Auto-generate classes for your Core Data data model, revisited

A few months ago, I wrote about automatically generating classes for your Core Data entities and how to automate Xcode using users scripts, such that, when your model changed, you only needed to run your custom script again and your intermediate model files would reflect the new situation.


Automatically generate classes for your Core Data data model

When designing a Core Data data model for your Xcode projects, you can choose to create Objective-C object wrappers for your entities, so that you can profit from type-safe code. The normal, tedious, workflow for this is that you select each entity from the model designer, select all of its attributes and relationships, Ctrl-click it and from the contextual menu first select “Copy Obj-C 2.0 Method Declarations To Clipboard”, paste it into the appropriate class header file, then do the same thing for the method implementations in the class implementation file. Waaaaaay too much work. Not to mention the manual copy-pastes are really hard to keep in sync once you start adding functionality to these class files, since you don’t want to overwrite those additions, but you want to keep replacing everything else.


NSManagedObjectContext extensions

The Core Data framework rules, and its API is really really powerful. But really, why does the Core Data API require us to write so much boilerplate code? Simple things need to be simple.


NSPredicateEditor tutorial

NSPredicateEditor tutorial

Cocoa offers a nice visual editor for editing NSPredicate objects templates, called NSPredicateEditor. The NSPredicateEditor can be set up using code or in Interface Builder, which is preferable for simple use. The setup is fairly easy once you know how to do it. In this tutorial, we’ll be building a simple predicate editor example which shows the basic functionality of the predicate editor.