Making a Font That Doesn't Suck With TensorFlow "AI"

Click here to download the resulting font. Use it at 16px height.

FYI both fonts are scaled so that I can fit 42 lines of code inside IntelliJ maximized on my 1920x1080 screen. As the result, both fonts are rendering at 16px glyph height and with a 120% line height, meaning 3 gap pixels in between lines. As you can see, the default IntelliJ font antialiasing is turned on and it’s using GDI ClearType.

You can clearly see the different design intentions. For my font, I decided to sacrifice the space around diacritical marks and use rather flat descenders to make things easy to read. That’s why my font looks taller at the same glyph height: It has less whitespace above and below the letters. Also, I gave up on having nice round glyph shapes in exchange for a crisper fit into the pixel grid.

I hope nobody at IntelliJ is offended by my title choice. I love their IDEs, but I find their default font very challenging to work with. And it’s not just them. Every IDE on Windows (and the Terminal) defaults to using a blurry mess as the default font.

Why make yet another font?

Recently, I looked at old screenshots from Visual Studio 6 on Windows XP and I thought:

“Wow, that font looks so big and crisp and clear and readable!”

Stickgarn: Nm Fädenstärke Zu Mm Durchmesser Umrechnen

“Stärke 120/2 (40er Stärke)”

Was genau heisst das nun?

Das Garn besteht aus 2 Fäden mit jeweils 120 Nm. Dies sollte einem einfädrigen Baumwollgarn mit 40 Nm entsprechen.

Und welchen Durchmesser hat das Garn nun?

Jetzt wird es kompliziert, denn Nm ist eine reziproke Gewichtseinheit. Aber natürlich kann man das alles ausrechnen…

Samba Problem: The File Does Not Exist

Notepad says: “The file does not exist”. WordPad works. And I can clearly see the file in the Windows explorer.

Today, I’ve had to debug a really weird issue with the Samba 2.1 network protocol on Windows 10. Two nearly identical machines are accessing the same network share using the same Windows 10 version. Yet on one computer, accessing the network share works flawlessly, but on the other, it only works halfway.

When I opened the network share in the Windows explorer on both computers, the results looked exactly the same. When I opened a test text file in WordPad on both computers, it worked exactly the same. But when I try to double-click the text file, it will open in Notepad, which only worked on one computer but not on the other.

How Surround Sound for Headphones Works

“That’s clearly left !”

3D hearing is a learned skill where your brain deducts the direction that a sound is coming from based on clues such as:


  • inter-ear timing differences Which ear does it reach first?
  • inter-ear volume differences Is it louder on the left ear?
  • frequency envelopes Is the signal lacking high frequencies?
  • reflections Was the signal reflected by your ear shell?

WebGL Animated Grapheme - Demon Lord

Sougwen Chung dropped by our co-working space on Gran Canaria and one of her projects that I found fascinating were the animated grapheme called “Kinexuviae”.

Looking at them, I first thought “let’s pre-render my own set with 3ds max as animated gifs”, but then I wanted the letters to influence each other and their environment, so instead I went with WebGL and some noise textures.

>>> Click here try it out <<<

Low-flying Tie Fighter = Let's Go Biking in Tuscany

Have you ever dreamed about being a tie-fighter pilot and flying through the death star at breakneck speed while dodging obstacles? I found the closest real-life equivalent: Going through tuscany on a racing bicycle.

  • map of my favorite bike routes
  • KML downloads
  • fancy pictures
  • accommodation & food recommendations

How to Backup Google Mail for Your Domain (Free + Open Source)

I’m currently migrating a company from using Google Mail to an Office 365 hosted exchange server. Before getting started, I wanted to make a full backup of all mails of all users. Now there’s several commercial offers and also several shady-looking free tools to accomplish this task, but I didn’t feel comfortable trusting either one. So I built a very simple free and open source solution.

Zoo-locked - Mutually Exclusive Task Execution Using ZooKeeper

I’m currently preparing the spratshop.com architecture for a truly distributed set-up with multi-master database replication and automatic load-balancing between the nodes. The spratshop system uses C++ and Java for the back-end services and Rails for the front-end. We have a set of rake tasks that run hourly or daily to monitor, maintain and clean up the system.

In the intended multi-node deployment, these rake tasks will still need to be executed, but I cannot pin them all to a single node because otherwise the system would break as soon as that node has problems. As such, the best way is to run these maintenance cronjobs on every node, to make sure they will continue to execute even when nodes fail.

It's Finally Online !

I’ve had the first article for this blog lying around for close to a year now… and then life got in the way ;)

But today, I finally took the time to create a nice theme and get this blog online.