This happened over 9 years ago, so I think it's safe to tell the story now.

When my wife bought our first restaurant, she set up a corporation (GmbH) for the new business. However, our lawyer was lazy, or slow, or something, and for our start of business the registration of the GmbH had not yet been approved by the local court. No registration, no firm, no business loan could be paid out. With a 7-figure purchase price due that day.

No problem, says the bank, we'll book the purchase from your private account, even though our account balance was more like 3 figures and not 7. We'll increase your overdraft limit until the GmbH gets registered. 

So to this day I have a screenshot of electronic banking with an balance that day of minus one million Euros. 

We thought that was pretty funny until we tried to buy groceries and our bank card got denied. We had to call the bank again to increase our limit a bit more so we could eat.

As announced at, now produces monthly archive pages. If your sever is up to date, the archive will be automatically saved under /users/username/year/month/index.html when you publish (or re-publish). My May archive is

If you're styling, there's a new divArchivePageTitle to add to your style sheets. 

Nothing real exciting, just starting to style my story pages. I'm not much of a designer, but I'm good at copy-and-paste (in this case, from the Lanyon theme I use on my main blog). I added Lanyon's css files plus a css file of my own to the template.

Click-to-edit still works. And while digging around trying to find how the %text% macro in the template is assembled, I now know it's on the client side (in chat.js), not the server. 

The past few weeks I've been trying out, the new blogging software by Dave Winer. You can either try it out at his site (you just need a Twitter ID to log in) or you can install the server on any system that can run Node. Being a server guy I of course installed my own (on a cheap 3,50€/mo VPS), and used it to write my last few blog posts. 

I like it because because it's simple. And simple. Simple to write with, simple to work with.

It's simple to write with. You just open the editor page and type. To update your text, you just click on it and type. There are some simple formatting options, but nothing that gets in the way. When you update, though WebSocket magic anyone reading your post immediately gets the update.

And on the server it's simple to work with. There's no database, just files in open formats readable as text, JSON, OPML, RSS, HTML. Formats you can use for other purposes if you are so inclined. Even the HTML files for each post contain the JSON for the post, which I first thought was redundant but now see is brilliant. It's like the web page contains it's own DNA and can re-create itself. 

These open formats allow one to do things with the output that go beyond the server. For instance, I copy the output of my server to an S3 bucket at, which can probably handle the load better than my cheap VPS. smile It’s not yet coupled to my main blog on Jekyll (right now I’m using copy and paste), but I imagine it wouldn’t too much cleverness to achieve that.

I hope someday to be able to use as a blogging central, with the ability to send my posts to my blog, or Twitter, or Facebook, or Medium, or wherever, but keeping my original posts for myself. I'll let those big silos show my work, but not own it. 

This is how our son stays out of trouble on weekends. At 16 in Germany he can fly solo, but yet not drive a car.blush

Last year I converted my Wordpress blog to Jekyll. My 16 years of blogging are now saved as text files which Jekyll renders into static HTML, which I then push to GitHub where the blog is now hosted. I mentioned then that I took Jekyll some 3 minutes to render my 3000 or so blog posts, which is kind of a drag since the default is to rebuild the entire site every time even a small change is made. 

Actually, the latest version of Jekyll improved build times considerably. It can now build my 3000 pages in about a minute. But when making changes, that's still too long to wait.

However, using a trick, I can now build those 3000 pages in 4 seconds. The trick seems pretty obvious to me, but I've not seen it written up anyplace, so hence this post.

The trick, of course, is to not build all 3000 pages. For older posts use jquery to load in parts of the layout that might change, but leave the HTML file alone. For me, those parts are the sidebar and the recent posts. I build HTML snippets for those divs and load them in like:

$( "#sidebar" ).load( "/includes/sidebar.html" );

Right now, on the Jekyll side I don't want it to rebuild posts from before 2015. I've put all those ins a _posts/older subdirectory and added an exclude: directive in my _config.yml:

exclude: [_posts/older]

On the HTML side, ever since I started blogging, even way-back-when with EditThisPage, my posts have been sorted by date. I need to tell Jekyll not to erase the pages I've chosen not to rebuild (and it's too bad _config.yml doesn't understand wild cards)

keep_files: [archives/1999, archives/200, archives/2010, archives/2011, archives/2012, archives/2013, archives/2014 ]

At least "archives/200" covers an entire decade in one entry. smile

And that's it. When I do want to rebuild to entire site, I can comment out those two directives and let 'er rip. And being hosted at GitHub, you can see all my gory source files in the source branch at

I was dreamin' when I wrote this, forgive me if it goes astray…

When I lived in Minneapolis, I used to think we were cooler than everyone else because we had our own resident musical genius. That's not true of course, but he made us seem cool. And even after he was rich and famous, he stayed in Minnesota. Most of the time, anyway.

And now in Europe, even before last week I could say I'm from Minnesota "where Prince is from", and for a few moments I'm hip and cool. At least until we change the subject.

And maybe, even though I was just a casual fan, that's why his death has saddened me. I've lost a piece of home. Ich habe ein Stück Heimat verloren.

To this day, I keep a copy of Dirty Mind (1980) on any mobile device I use. It's an imperfect album. It's sparsely produced, it almost sounds like a demo. And the lyrics, well, Prince was the artist for whom the term "explicit content" was invented, and they distract from the music. But it's tight. Every note, every beat, on every track hits. Just listen to the 2nd side (this was back when albums had sides), with Uptown-Head-Sister-Partyup, beginning to end. It still blows me away.

(My favorite track, though, is on the first side, When You Were Mine. Mr. LoveSexy turns into a bat-shit-crazy ex. Both funny and sexy as hell.) 

Our house turns 20 years old this year. And every spring the same thing happens. The ants come into the kitchen for a few weeks. Then they disappear.

Ours is a good, solid German house, made of brick. But we live out in the country, and out in the country one has to deal with critters and creepy-crawly things. The doors and windows are tight, but there is obviously a crack in the outside wall to the kitchen. Every spring the ants wake up, get hungry, come inside the wall, and then maybe behind the cabinets, and find an entry to the kitchen.

Every year they find a new entry. I've heard that ants have collective intelligence, and that it's probably passed down from generation to generation. They are probably more intelligent than we, since every year we forget that the ants are coming. And then it takes us several days to find their point of entry.

Since we can't think like ants, we have to wait until a whole bunch of them have come in so we can see their trail. Then we get out the ant spray, secure the entry, and wait a few days see if they find a new entry and come back.

They usually don't. The spring weather gets warmer, and I presume the ants then find it easier to find their food outside rather than risk encountering ant spray inside. But they have the knowledge of how to get into our kitchen, and their offspring will use that knowledge next year, to find a new entry.

Here is this year's point of entry, and our weapon of choice. We're planning on renovating our kitchen this year. Maybe we'll find that crack in the wall and get it patched.

Third post! And now the addNewObject function seems to work! I just have to get the require right. Pretty easy to force errors. Kind of like the HSV defense today. So what happens now? Relative path to s3.js in the require? Or, say what, absolutely no require? The require is not required? So it seems. No require it is! Or isn't.

Not as broken as HSV played today. Everyone below them wins, they lose, red card to Adler, and Ekdal is injured again. Argh! disappointed

So, I've broken this two times, let's see if I can do it a third time! But then that's enough.