Category: Coding

  • Rails: How To Migrate S3 Providers Via ActiveStorage Mirroring

    So you want to switch S3 object storage providers in your Rails application.Here’s how you do it! Random context: If you’re building companies in Europe like me, it seems to be a common thing to switch cloud providers – they’re mostly not as good as AWS, and with new offerings coming out regularly, it often…

  • Using Hetzner S3 Object Storage in Rails

    Hetzner recently launched their S3-compatible object storage. Like many other Hetzner services, their object storage offering looks really interesting because it’s significantly less expensive than the competition, especially AWS – the initial pricing suggests it’s ~4x cheaper for storage, and ~50x (!) cheaper for traffic. Let’s look how you can use it in Ruby on…

  • From Clojure to Ruby

    Back in 2017, when dinosaurs roamed the earth and I got my first coding job, I was super excited about Clojure. And what’s there not to be excited about? It’s super fast, it’s concise, and it’s a lisp. But now I’m coding in Ruby. Why? Superficially, Ruby and Clojure are similar (bear with me): They’re…

  • Become a Full-Stack Person

    Let’s look at how most software is developed. I’m not talking about those shiny SaaS products like Slack. Those were built for developers, by other developers. No, I’m talking about the large underwater iceberg of boring software running enterprises, governments, hospitals and nuclear reactors. Real-world software. Software outside the Silicon Valley tech bubble. How does any such…

  • The (Un-)Natural Progression of Machine Learning

    Machine Learning is everywhere. Unfortunately. Most industries aren’t ready for it. We tend to ignore the natural progression of software. To illustrate this, let’s look at an example: Written communication. In the beginning, there was no software. There were only paper letters, typed on a type writer and sent off via snail mail. Communicating was…

  • Don’t Be an Engineer, Be a Producer

    I’m currently reading Range by David Epstein [1]. I was deeply impressed by the section about Gunpei Yokoi, the guy at Nintendo who was the driving force behind the NES and Game Boy. I have fond memories of the Game Boy; everyone who was a kid in the nineties does. This awesome thing you could hold in our hands,…

  • Abstracting Light Switches: How to Solve Real Problems

    Zigbee-enabled light bulbs. Wifi-connected air purifiers. Autonomous thermostats. The smart home. Great technology. And just like with machine learning and blockchain, we humans don’t quite know yet what to do with it yet. Similar to those technologies, the smart home offers solutions for non-existent problems. Now I can control my light bulbs from an app…

  • We need more Hackers

    The Hacker’s First Project When I was a kid, I wanted to code my own website. I was already using Dreamweaver to crank out static HTML web pages but this was different. I needed to learn PHP to create a website which would earn passive income for the rest of my life. Very important! The…

  • Thread-safe queues in Clojure

    Imagine the following: You have a pool of workers. Each worker should get an item from a queue and process it. Using “workers” from core.async Great! How do we launch those workers? Let’s use core.async for that, specifically go: By the way, core.async has a fixed-size thread pool of 8 workers, but that’s stuff for another post. Every time dotimes runs with…

  • The Correlation Project

    As a coder, concentration and mental focus become very important. Writing code is a very brain-intense activity which makes daily fluctuations of mental focus very obvious. I already noticed this while studying medicine. Luckily, studying medicine is not an activity which requires a lot of brain activity (it’s more about being organised). When I started…