Finding Related Posts in Jekyll

LSI for Jekyll can get slow and did not produce satisfying results for my site. I therefore wrote my own little plug-in, hand-tailored for my needs, that does the same job quite well and quite fast.

Nested <use> inside SVG <symbol>

Nested <use> elements inside of SVG <symbol> elements do not seem to work in any browser that I have at hand. The only solution that I could think of was inlining the use elements with cheerio. That solution is admittedly awkward but at least it works.


Königsberger Klopse

Königsberger Klopse, Königsberg meatballs are the flagship of the prussian cuisine. The unusual mixture of minced meat with anchovies and capers turns ordinary meatballs in white sauce into something remarkable

Don't Use Warnings In Perl!

The Perl pragma “use warnings” is a major nuisance. But it is still part of the boilerplate code of many Perl module authors who are not aware to which extent they are harrassing their users and their users’ users by forcing them to become involuntary beta testers.


Crispy Veggie Potato Cakes

These veggie cakes are quickly prepared as a side dish or starter or a vegan main course. I cannot really tell what impact the abstinence from meat has to my body. I do however notice the gain in time during lunch, when I can opt out of the meat dishes from a more or less bloated menu. I could probably only save more time with a labeling obligation for dishes that violate the guest’s inalienable right of ownership over the edge of the plate with unsolicited balsamico essence graffiti.

Ad Hoc Web Servers the Easy Way

Displaying a bunch of html files in your own local web server is easier than it sounds. The package manager npm for the web application framework Node.js comes with a zero-configuration http server that can be started within seconds without.

Free the <h1>!

Contrary to popular belief, using multiple h1 tags in a page will not necessarily make it penalized by search engines. It can actually be advantageous to use only h1 headings.


The Kasperle Kitchen

What are the birthday wishes of a three-year-old? Both a “Kasperle” puppet theater and a kids’ kitchen were long-standing items on the list. Why not simply combine the two?


Gratinated Feta With Turkish Pide

Gratinated brined cheese with tomatoes, pickled hot green chillies, olives and garlic with Turkish flatbread (pide or pita) and good olive oil is one of my classic dishes. The recipe is prepared extremely fast, delicious, vegetarian, and an ideal companion for a glass of red wine.


Vitosha - A Boulevard Doing Away With Itself

Spring is coming to Sofia and it’s about time to have a cold beer outside in the sun. This has become difficult nowadays on Boulevard Vitosha, the new central pedestrian of the city because it is no longer tree-lined but covered with strange constructions of glass and metal, almost leaving no place for tables and chairs in the sun.

The imperia View Processor

The main motivation for developing the imperia view processor was frustration about the existing templating engines available for Perl at the time. None of them offered all of the features that I considered a must for the V in the imperia MVC framework. Some of the more important design decisions behind it are outlined below, giving you some insight into the anatomy of a modern template processor.

Simple Content Negotiation For Nginx

Content negotiation is a key concept for multi language web sites. For Nginx it is only available as a patch. But negotiating the language is a rather trivial task for most sites. Instead of patching the web server, a couple of lines of Perl code will also do the job.

Multilingual Web Sites with Jekyll

After waiting years on my TODO list I recently decided to tackle the project “web site”. Since I no longer work for Imperia I was looking for a light-weight alternative. I did not want to install PHP on my server, ruling out a lot of options. A colleague finally recommended Jekyll. Its simple semi-static approach reminded me of Imperia and I decided to give it a shot.

Freeze Sorting in AngularJS

Tables and lists can be sorted very easily and in a very flexible manner in AngularJS. However, lines being edited may move around up and down, when the property that is used for sorting is changed.


Simple Dynamic DNS

Most routers for home internet allow you to forward ports of your publicly visible IP address to internal IPs of your home network. In order to make that work, you first need to know your publicly visible IP. Most of the time, the router will fetch its IP from the ISP via DHCP, and the address is not constant. This is where countless dynamic IP services jump in, with the disadvantage that the names that they offer are mostly plain ugly ( and most of the time they will make you pay for everything but the most basic services. If, however, you are the admin of the nameserver of your domain you can easily set up your own solution.


Tar Option 'v' Considered Harmful

The utility tar should rather be renamed to vtar. Why the heck does almost everybody add the option v automatically? Is that in any way helpful? Or is it maybe even dangerous.

Gentoo Linux on a Dell Latitude E5400 Notebook

This guide should give you a complete walk-through for getting Linux to run on the E5400 laptop or others from the Dell Latitude E series. It is focussed on Gentoo Linux, and the Latitude E5400, but it is probably useful for other distributions, and other laptops from the Latitude E series, like E5500, E6400, and E6500.