2019-07-15~7 min

List of Built-In Conditional and Mapped Types in TypeScript

TypeScript has a few very useful conditional and mapped types predefined, which aren't known widely enough. Here's a list of them with examples and explanations how they work for the more complex ones.

Read more
2019-07-15~5 min

Mapped Types in TypeScript

Mapped types, introduced in TypeScript 2.1, can significantly reduce typing effort. They can be hard to understand though, as they unfold their full potential only in combination with other (complicated) features.

Read more
2019-02-01~16 min

Lessons Learned Transitioning to Lead Engineer

After a year at Bitmovin, I got the opportunity to lead a team. In this blogpost I reflect on the most important lessons I learned during the first 4 months.

Read more
2019-01-05~21 min

An Indie Hacker's Story - Two Years of Developing a No-Fluff Dream Journal

Read more
2018-06-17~4 min

Coloring white Images with CSS filter

Recently I had to change the color of a white image. Since this image was rendered by a library, which did not allow replacing it by another one, it had to be done with CSS. Although there is a relatively simple solution to it, it proved to be quite a challenge to come up with that.

Read more
2018-05-10~13 min

Setting up a Reverse-Proxy with Nginx and docker-compose

Nginx is a great piece of software that allows you to easily wrap your application inside a reverse-proxy, which can then handle server-related aspects, like SSL and caching, completely transparent to the application behind it.

Read more
2018-04-04~8 min

Hosting Asp.Net Core Applications on Windows Server Core

Recently, I've found myself in the position of having to host an application on Windows Server. Having never managed a Windows Server before, I struggled to find relevant information, especially since most of it is written for a Windows Server with installed UI, and the default image on Azure is a Core image, without UI. This is mostly documentation for myself, but maybe you find it helpful too.

Read more
2018-02-18~2 min

Using Scripting to quickly execute repetitive Tasks

Sometimes I have to do a repetitive task for a project, that would take hours if done manually. Shell commands are normally the way to go, but I've always had a hard time learning them, and after I did, I forgot them quickly, because I need them very infrequently. So I found another solution.

Read more
2017-12-14~3 min

The Bliss of Automating my Server Setup

I have a VPS, on which a few of my side-projects are hosted. Recently, I had to set it up a few times, because I made it unusable (please don't ask me how, it was really stupid).

Every time this happened, it took me hours to set it up again. Granted, I don't know much about maintaining a server, and you can probably do it a lot faster than me, but you can never be faster than a script. So, after the second time, I finally decided it is time to automate that process.

Read more
2017-03-31~4 min

Building a Color Scheme Generator

After reading Practical Color Theory for People Who Code, I immediately thought that the process of generating the color scheme can be automated. This blogpost describes how it is done and how you can use it. The code can be found on Github.

Read more
2017-03-26~7 min

Learning Gulp for Website Minification

Recently I developed a static website for a company, and as it gets closer to the release date, I try to do everything to satisfy Google PageSpeed Insights.
At first, as a C# developer, I thought about developing a small console application, which takes a folder and minifies all contents inside it. Then I remembered that there are task runners that do exactly that kind of thing. So this is a short summary of what I learned.

Read more
2017-03-20~8 min

Immediate Font Fallback Rendering for Firefox and Webkit Browsers

Using custom fonts is easy, having excellent usability with them, sadly, is not. In this articles I'll explain the issues I encountered, and analyze the different ways to resolve them.

Read more
2016-07-13~4 min

Cached IEnumerable Implementation

Read more
2016-06-23~3 min

Implementing Soft-Delete in pure MySQL

Soft-delete, setting a deleted flag instead of actually deleting, is a great way to ensure the ability to recover accidentally deleted data by users for many applications.
Some technologies, like Ruby on Rails, have soft-delete baked in, so the developer doesn't have to do anything to use it.
Unfortunately, others don't have that, and for some it is quite difficult to integrate. I've tried it with Entity Framework 6. It worked, but wasn't nearly as clean as I hoped it would be.
So for the cases where its too much work to add soft-delete to the application, I've developed a MySQL script that adds it to the database, without having to change the application at all.

Read more
2016-03-31~4 min

Keeping Canvas (or any other Element) from rendering outside its Bounds in UWP

Canvas is a panel that enables absolute layouting. It therefore renders its children, per default, even if they are outside of its dimensions, as indicated by the documentation:

The children of a Canvas (if any) are still visible even if the Canvas has any of these conditions:
● Height or Width property of the Canvas is 0.

Sometimes this is not the desired behavior. For example, if the canvas is not the only UI element in your application, it would be pretty annoying if its children would overlap the other (more important) elements (like menus, data display and so on).

Read more
2016-03-09~8 min

Creating custom Shapes for UWP Apps

In WPF, creating custom shapes was as easy as extending Shape and overriding DefiningGeometry. In UWP, it isn't that easy.

In UWP, Shape does not have a DefiningGeometry property. But instead, the Path class is not sealed. This means it is possible to inherit from Path. So this is what we'll do.

Read more
2015-11-05~8 min

Ripple Effect in WPF

This article was sparked by a question on StackOverflow. At the beginning I thought that would be a trivial problem. Turns out it was a lot more difficult than expected.

Read more