Tiles

Wednesday, July 24th 2024

I am sharing one early project in my Ph.D. that I could not get published. I think it is kind of cute and it would be a shame if I’d just delete it. It’s a way to overlay spatial locations by non-overlapping grid cells which are aligned only on one axis. The other axis is free so as to better capture the point cloud’s outline. Reviewers sort of liked it but rejected our submissions because the produced partition does not have well-defined properties, such as optimal outline-tracking, minimum number of cells, lower bound on covered locations, etc. I came up with this algorithm after attending a computational geometry class, where similar 1D scanning algorithms are used to find, e.g., line intersections (“sweep line”). We evaluated the algorithm with quality metrics on real data and found that it led consistently to fewer cells1, but interestingly the match to the point cloud’s outline can become worse than on a normal grid with smaller cells.

Read more

Travel with Spotify

Friday, February 15th 2019

When I travel I like to get a feeling for the music from the place I will visit. Who are the romantic singers one should know? What was the popular boyband in the 90s? For a recent trip I copied artist names from a Wikipedia page into the Spotify search, and that clearly doesn’t scale.

Prior Art

There are several playlists from Spotify for kind of this purpose (“The Needle”), but they give me popular music in that place, ie. what people listen to. It’s not necessarily from there nor a good summary.

Then there are playlists from Every Noise that may come close, like Finnish EDM, but they are grouped by genre. Someone from Italy could make Finnish EDM by accident and show up in that playlist.

Read more

Glitch

Sunday, April 1st 2018

You probably came across some visuals that can be categorized as Glitch Art. For instance, it’s heavily used in Pony Island as you modify the code and break out of the haunted arcade machine.

I generally like this style a lot and wanted to find out what needs to be done to glitch some images of classic art. As somebody already did it for the PNG format, I focused on JPEG.

How does one go about it? I figured it’s easiest to overwrite the file content here and there (a technique known as databending). So naturally, first I looked for some specs of the JPEG file format. There is no free authoritative source, as far as I know, so you puzzle everything together using a hex editor and the internet.

Read more

Correct Calculator

Thursday, November 2nd 2017

Bugs are a long-standing problem in the software industry: Invisible characters crash iOS Messages. FaceTime enables microphone before the call starts.. An integer underflow causes Gandhi to be super-aggressive in the original Civilization. There are many more examples.

One way to achieve code correctness that was always mysterious to me is formal verification: You prove logically that the code does what you claim. (NB: It’s not the only nor the best nor most efficient way to achieve the goal.) Coq is a proof assistant that can help with this. You define functions, and lemmas that define properties of that functions, which you then prove.

Read more

symdiff: prevent dead css

Monday, May 4th 2015

Some time ago I wrote a gulp plugin to enforce clean CSS in your frontend build. The idea, which I have from Github, is to break said build when the sets of classes in CSS and templates are not equal. This way you make sure you’re always actually using the styles you define and keep the amount of classes in your templates to a minimum.

I find it very useful and as of time of writing some 230 people on Github agree with me. The plugin has a few limitations though:

  1. Gulp only
  2. vanilla CSS only, which is not too much of an issue, but still
  3. HTML only, possibly with Angular

This lead to the situation where I wasn’t sure if I could use my own software because in the next project I used Handlebars templates. Oops. And what if I chose React/JSX?

Read more

underlin.es

Sunday, March 15th 2015

You know all the CSS generators like CSSmatic or CSS arrow please? I was looking for something similar, but for Medium-style text underlines (using background-image) and, strangely, unable to find it. So here it is: underlin.es.

It’s called “underlin.es” like it was hosted on underlin.es, but it’s not. Originally I had the intention to, but at 1:30 AM I just wanted to get it done.

Read more

Diploma

Friday, February 22nd 2013

My thesis project: A semantically-aided user assistance system for a composite information visualization system.

Read more

FurPle

Friday, February 22nd 2013

Back from the days in university: In a two-week seminar we built an app for Microsoft’s giant screen-as-a-table. The idea is to make furniture planning possible without physically moving furniture.

Read more

Tophat 2K

Friday, February 22nd 2013

Back from the days in university: In the seminar for haptic interaction we (Fabian Prager, Christopher Bellmann and me) built a tangible user interface that ought to help with private car sharing. Done with an Arduino of course.

Read more