jan.krutisch.de

make().break().crush().groove().body().move();

    Fort Europa

    The European Union is a fascinating construct. It has brought long standing peace to a region that never had more than a few decades of that at a time. It has brought together former enemies and has produced a young generation of Europeans with a complete disregard for borders and language barriers. I love this part with all of my heart.

    From very early on, though, Europe, as much as it was about togetherness for those who are on the inside, it was also about the otherness of those outside. Frontex, founded in 2004, is the latest bureaucratic manifestation of that. In 2005, one of my favourite rap groups, swedish “Loop Troop” (they later renamed themselves to “Loop Troop Rockers”), published an album and a single named “Fort Europa”, a strong statement of condemning this fortification of the European continent. More and more legislation, on the other hand, ate away at the human right of taking asylum, putting more and more of the burden on the victims, making it harder and harder to enter the EU as a refugee.

    The lesser of three evils

    So far, I’ve only written on my various other blog-like things about my departure from the Apple eco system. Probably about time to write a “proper” blog post about it, but this is not going to be that post.

    During the lest few days, I noticed that I became more and more frustrated with my current setup and this brought me back to the original reason why I liked my Apple Macs so much.

    The climate has changed

    I swear, I did try to write a “year in review” for 2019, but again, I was very much failing to compress a year with massive ups and downs (with a mild emphasis on downs, I think) into one cohesive blog post. So I think, what I’ll do instead is try to write several posts on the various themese that dominated 2019 and that will probably dominate 2020 as well for me.

    This first post is, well, you may have guessed it from the title, about our climate crisis. 2019 was, after the foreshadowing by the super hot summer of 2018, the year where nobody could (any longer) deny the existence of a climate crisis. Now, of course, I was aware of climate change for a long time. As a studied environmental engineer and with a somewhat solid base of knowledge in natural sciences, it’s not as if I could have escaped it in any way. In fact, during all of my time at university (1996-2002) this was already an ongoing discussion. Heck, my main work experience project was a thing called “climate network” (Klimanet), a website that educated public schools on how to save energy. My diploma thesis was working on solar chargers for rural Namibia, a project meant to aide rural communities in cutting down on gas lamps and open fires.

    Spring Cleaning in September

    This has been sitting around for quite some time but after a very hectic spring and a loooong summer, I’m now slowly ramping up my indoor activities.

    I’m planning on remodeling my living room / office for quite some time now and one of the reasons I haven’t done it yet that I have way too much “stuff” (in all forms and sizes) to gracefully move it from the living room to my bedroom and still have a livable place.

    For that reason, I need to get rid of a lot of stuff. As I despise working with platforms like Ebay classifieds for stuff like this, I’m trying something different: You can find all of my stuff I want to get rid of on my new “Spring Cleaning” web page. If this works, I will add a lot more stuff to that list.

    If you’re interested in something, let me know. There’s some really weird and interesting stuff in there.

    I’ll also probably will start to add some books to it.

    A new year, some new things

    Between the years I started to work on a “year in review” post but I couldn’t finish it. There are a couple of things I simply can’t write about that were so dominant throughout the last year that if I wouldn’t have written about them it wouldn’t have felt right. And still, no, sorry. So, yeah, 2017 had it’s ups and downs like every year, but I’m afraid the ups were largely drowned out by the downs. And unfortunately (the main reason I can’t really write about it) the most important downs were personal. But, of course, the state of the world has something to do with it. And, reflecting on my own behaviour and especially my media consumption while trying to write that retrospective, I realized that I needed to change things a bit.

    This thing called Depfu

    Ugh, I didn’t exactly blog much here lately have I? I did blog in this other place, though, and this other place, called Depfu, is our latest try to actually build our own product.

    Depfu helps teams that use Ruby and Rails to keep their dependencies up to date by creating Pull Requests on your Repos on GitHub with the updates that are coming in via rubygems.org. It is inspired by greenkeeper, which does the same thing for JavaScrip projects using npm.

    Today, Depfu is on ProductHunt. If you want to support us, me or Depfu (or ideally: All of them), you probably know what to do.

    This day is an experiment, as we have temporarily borrowed some really loud loudspeakers and want to create as much buzz as possible. If we can get that done, it will probably help us a great deal in bringing Depfu forward on the path to sustainability, which is, of course, our long term goal.

    The most stupid product review ever

    Ten days ago, I got myself a Pebble. Yes, a Pebble. In the light of the recent announcements of the now-ex-manufacturer of the Pebble, this sounds like one of the most idiotic ideas ever, and it probably was. The thing is, it was never as cheap to get one of these. I paid less than 100 EUR for a Pebble Time. And I was genuinely interested in the ecosystem. I’m not a watch person, for the most part, otherwise I probably would have gotten one earlier. And now, I’m wearing a Pebble for 10 days and even though reviewing it seems kind of pointless right now, as it is not a product with any sort of future (apart from a few faithful hackers trying to rescue the ecosystem), I think it might actually be interesting to share my findings, especially in the light of the company’s demise.

    Reverse Engineering the CRAFT synth sysex messages

    This may only be of interest to some of you, but it’s something I wanted to have documented somewhere, so that’s why I made a blog post out of it.

    I just got my Modal Electronics CRAFT synth, a surprisingly powerful little synthesizer that comes in a very interesting form factor.

    (Update: Today, the app(s) came out and I updated some information in the gist and in this article).

    What could possibly go wrong with a president Trump?

    Over the last few weeks, I had random conversations with people where the US presidential elections came up. On more than one occasion, someone brought up the typical “Well, Trump is a crazy person, but the American president doesn’t have that much power anyway, so what should go wrong. And by the way, Hillary is a Hawk and that might be really bad, too” line.

    By the way, this is a European perspective, but I assume it is something Americans have heard in conversations as well.

    Here’s a few reasons why I think this line of thinking is extremely lazy and dangerous:

    Finding a CPU Sinkhole in My App Using Chrome Tracing

    On thursday night, I planned to work a little on this big ember app I’m working on for a client. For some reason, even though my app was the only tab opened, Chrome had a pretty high CPU usage. Now, I know Chrome is generally good at that, but I was intrigued. My app can use quite a bit of your CPU at times, but just sitting there, idling around, this should not happen. Opening the Chrome task manager, I determined that indeed, it was my app that was causing the load.

    Jekyll within Rails, on Heroku

    There are several HOWTO’s on the web, there’s even a gem, but all of them are slightly outdated or not fitting for my use case, so here’s how I’ve integrated Jekyll into our Rails on Heroku setup for a small project.

    The goal was to use Jekyll for both the marketing homepage of the product and as a blogging engine. I also wanted Heroku to do the jekyll build process on publish and thus not having to check in the artifacts aka generated websites. There are some pitfalls that I came across, so that’s another reason for documenting it here.

    How I almost got run over by a car in 2003

    Today, I came across a great article by Bodo, a friend from Berlin that can be best summed up with a tweet from him:

    I couldn’t agree more - I myself had to learn this the hard way, though. I shared a bit of my own experience on twitter today, but I felt like this could use some more words.

    When the impostor syndrome ruins your decision making

    One day, I’m going to do a writeup of the technical restructuring I just did on probably one of my most important projects right now. Today is not that day, because I want to talk about the reasoning and the history of that rewrite instead, on a meta level.

    I’m currently building an open source library published to npm to parse and render a file format we’ve designed for Open Color Tools. We’ve built a first prototype using a YAML parser and doing some preprocessing, but the format quickly evolved into something that was essentially incompatible with YAML, so we needed a new solution.

    The Binary Toolbox (for JavaScript)

    The first time I tried my luck in parsing binary files within the browser must have been the Cloudtracker2 project, my (slightly out of date) try to make a good Protracker player/Editor for the web (It sort of lives on in the Halfplayer project if you’re interested). Parsing binary files in the browser is actually no longer a problem, but I thought it might be a fun exercise to write down some notes on what I’ve come across in one of my current projects, which involves intensive binary data munging on a much bigger scale than what I have tried so far.

    So, here’s the toolboxes contents:

    Additionally, we’re going to talk about file drag and drop, creating object URLs and other things.

    The Rails Architecture Fallacy

    Someone has been wrong on the internet. I hate it when that happens. And so I started to write a comment and then I thought to my self, hey, this is great blog post material, why should I waste it on someone who is wrong on the internet. So here we go. It reads like a comment on someone who was wrong on the internet at times, because that’s exactly what it is :)

    Today, I’ve stumbled across a blog post, via RubyFlow, which is boldly named Ruby on Pains by Facundo Spagnuolo. It is a melange of falsly applied pure OOD wisdom and (I can only assume) juvenile arrogance (Do I sould like an old fart already? I’m in my forties now, I have to sound like an old fart now), that made me a little angry and made me want to reply. Not sure this is a winning move, but I think my reply does contain some parts that bear repeating, so here we go.

    The other side of static vs. dynamic typing systems

    I’m currently working on a small web application that has to do a fair amount of munging binary data in the front end (meaning: JavaScript). One of the things it needs to do is inspect data packets, unpack them (from a simple 7/8 bit encoding scheme invented in the 80’s) and checksum them. The checksumming is done with a standard CRC32 algorithm. It took me a few hours to find a JavaScript library that uses the same polynomial as the counterpart of the app uses (which, luckily, is a widely used one, for example zlib uses it) and was usable within my Ember/Rails setup.

    I tested around a bit and had a setup that worked, until I started testing with bigger packets and suddenly, the checksums wouldn’t match anymore. As it turns out the fact that the library worked in the first place was by chance: It returns a signed 32 bit integer and my test setup in the beginning simply produced a checksum that didn’t have the sign bit set. In parallel, I verified the results with two tools: The Ruby zlib bindings (part of the stdlib) and the crc32 command line tool that comes with OS X. Both return unsigned integers.

    My 2015 in Review

    I’ve recently taken a look at my blog archive and it seems I never actually did a year-in-review blog post which was kinda surprising to me. 2015 was a year that turned out completely different from what I thought it would, so I thought, this year, it might we worthwhile to reflect on that a little. Also, I’m now slowly becoming somewhat of a senior (with my 40th birthday approaching way faster than I appreciate) and with seniority comes the privilege of sharing your thoughts whether others want to hear it or not. Haha.

    Anyway. Let’s start with a simple subject

    Having fun with pixels and lua

    The following text is somewhat like the long version of a lightning talk I gave at the most excellent Eurucamp. As I used a lot of animated GIFs in Keynote, it’s kinda hard for me to publish a working version of this presentation in any form. So this article must do.

    In her keynote at Eurucamp, Joanne talked about awe and how to combine coding with our passions.

    For me, one of the ways to get that extra kick is dabble in game programming. I’m bad at it, though. The reason is, I guess that I always lose myself in complexity and then all the fun and awe is lost. This is partly because I tend to over-complect both my thinking and my creations, but also partly because most tools do not keep you from doing that.

    A few weeks ago, around the time the amazing SoCoded happened, I stumbled over a thing called Pico-8. It is a so-called fantasy console, a sort of virtual machine or emulator of an imaginary console from the 80’s, designed and built by Joseph “zep” White from lexaloffle games.

    Pico-8 is wonderfully quirky, but it also has some very interesting technical limits, artificially but deliberately chosen by its creator.

    The Birth of a Radical

    Most people who would consider themselves “radical” in a specific sense usually didn’t become “radicals” overnight. It’s a slow process that can take years. And one day you find yourself wondering “how did this happen?”

    I’ve been wondering about this for quite some time now. Somehow, between 2010, when I started cycling to work every day, and today, I’ve become a radical. Not in the sense you might imagine if you’re a die-hard motorist, though: I drive conciously, often very asserting, and certainly a bit cheekily, but I try very hard to do this within the boundaries of our “road code” which has the very poetic name “StVO” or “Straßenverkehrsordnung”. The problems actually start right here: In contrast to the many many motorists I run into conflict with every day, I know the relevant parts of the road code very well. It’s a very common phenomenon as a cyclist in Hamburg to be yelled at for basically doing exactly what the law wants you to do. Or to be yelled at for telling a motorist that she or he just violated the road code in a very dangerous and reckless manner.