This happened over 9 years ago, 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. No problem.
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.
The past few weeks I’ve been trying out 1999.io, the new blogging software by Dave Winer. You can either try it out at his site my.1999.io (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 1999.papascott.de, which can probably handle load better than my cheap VPS . 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 1999.io 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. :-)
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 it 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 in a _posts/older subdirectory and added an exclude: directive in my _config.yml:
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. :-)
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 https://github.com/papascott/papascott.github.io
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 my current mobile device. It was my first Prince record. 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.)