Fruity Green Lentils Oriental Style

Fruity Green Lentils Oriental Style

Lentils can be combined with pretty much everything. The combination with fruit has been on my list for a long time already. I wanted to go with pomegranate seeds that I could not dig up, however. So I tried it with the goji berries that have been lying around in my pantry for at least a year.

Bulgarian Yogurt

If an aliment should ever be elected as the legitimate representative of the country of Bulgaria, it will certainly be yogurt. The legend tells that once upon a time, Bulgarian horsemen carried milk as a food ratio in leather bags that eventually gave a home to a lactobacillus bulgaricus — more precisely lactobacillus delbrueckii subspecies bulgaricus. The bacterium subsequently returned the favor by metabolizing good Bulgarian milk into the first Bulgarian yogurt in history.

Cologne-Style Black Bread

Cologne-Style Black Bread

The succulent black bread of my hometown Cologne is one of the foods that I miss the most in Bulgaria. Fortunately, you can easily bake it at home, as long as you manage to dig up the ingredients (or suitable replacements). The ones that are hard to find in Bulgaria are dark molasses, buttermilk and rye grist.

Dead-nettles in pancake with egg

Red Dead-Nettles in Pancake

A few days ago, my garden all of a sudden was shining in lush purple. The plants were quickly identified as red dead-nettles (lamium purpureum). Great! However, the lawnmower packed up, just when I tried to get rid of the weeds and I do not own a goat. Fortunately the plant turned out to be fully edible for humans too. Mission accomplished!

Lerna Mono Repos with Internal Dependencies

Mono repos are very popular nowadays for bundling a collection of related JavaScript libraries in one single repository. Figuring out how to handle dependencies between multiple packages inside that repository was a little tricky for me. This is how I got it working.

Number Comparison Without Overflow

When dealing with numbers that come from untrusted sources, you should always expect that these numbers may not fit into the integer data type that you are using. Such number overflows may cause subtle bugs or security problems in your code.

The Gory Details of URL Validation

I currently work on a web application that allows users to supply a link to their homepage. Such links have to be validated client-side with JavaScript (actually Typescript/Angular) and with Perl on the server-side. But what should be accepted as a valid homepage link? And what is the right approach to analyze the provided URLs?

Angular - Bootstrap Modals With Ngrx Effects

While displaying a Bootstrap modal dialog in Angular is fairly simple, doing so inside an NgRx effect is a little tricker. This post walks you through all necessary step to get the job done inside a simple Angular counter application.

Postfix, Amavis, and ClamAV Extremely Slow

I was recently experiencing longer and longer delays for incoming mail delivered by Postfix to Dovecot. In the end, it turned out to be a simple permission problem: ClamAV was not able to read Amavis' files, and obviously waited for a timeout for every single mail.

Stolen key

How To Use Google Maps API Keys For Free

The use of a Google API Key can be restricted to a configurable set of host or domain names. But does this protect (ab)use of the key by others? Not really.