Image for post
Image for post
Photo by Aaron Yoo (Flickr)

I’ve used several MacBook Pros in the past years which all had one major flaw in common: the TouchBar. Sure, the butterfly keyboard caused its fair share of frustration, but at least it got better over the years and a broken keyboard can be repaired. The issues of the TouchBar, however, are more fundamental and can only be fixed by going back to proper keys.

Unintentional triggering

I bet it’s happened to all of us: one careless movement of your fingertips is enough to accidentally trigger a TouchBar action. …


Image for post
Image for post

Graal is currently on everyone’s lips and for good reason: as developers that deploy their software on top of the JVM, we are used to long startup times and high memory requirements. Graal’s native-image promises to solve both of these problems, enabling a new and exciting use case: real time serverless instances on platforms such as “Google Cloud Run”.

Prerequisites

In this tutorial we will take a simple http4s server application and walk through the Graal native-image configuration and build process. Start by checking out the sample code from the GitHub project taig/scala-graal.

Building the Scala app

At first we have to generate a far jar from our Scala app. This is done via sbt-assembly. The dependency has already been added to the project/plugins.sbt file, so proceed by kicking it off via sbt assembly which will generate ./target/scala-2.13/scala-graal-assembly-0.1.0-SNAPSHOT.jar. …


Image for post
Image for post

Als ich noch studierte, waren Android und iOS recht neue Plattformen, und die Begeisterung und Erwartungen waren groß. Wenn es in der Universität einen Programmier-Workshops gab, wurden fast immer kleine Android-Apps entwickelt. So habe ich meine ersten Schritte im Android-Ökosystem gemacht und das war wahrscheinlich auch der Grund, warum ich direkt nach dem Studium als Mobil Developer tätig wurde.

In diesem Artikel möchte ich über die frustrierenden Erfahrungen berichten, die ich mit dem Android SDK und Flutter gemacht habe. Einige der Punkte, die ich anspreche, gelten jedoch auch für das iOS SDK. Ich habe vor einigen Jahren aufgehört, als Mobile Developer zu arbeiten und hoffe, dass sich inzwischen viele Dinge gebessert haben. …


Image for post
Image for post

For a side project of mine, I initially leveraged headless Chrome to take care of rendering huge images as print templates. My application generated an HTML file with included stylesheets and passed it on to Chrome to take care of the rest. This was a great workflow in the beginning, but unfortunately became more and more of a burden as the project progressed.

In this article I will share my experiences working with headless Chrome and why I ultimately had to ditch it in favor of a more involved canvas drawing solution (java.awt.* in my case).

Pros

  • Easy to set up
    All you need to get started is the chrome executable in your environment and you can use it with your programming language of choice by executing shell commands. The official documentation does a great job on getting you started. …

Image for post
Image for post

In this article we are taking a look at the release behavior of open source projects. The underlying data is coming from the 1000 most popular GitHub projects (by stars). Only projects which are using the GitHub release feature are considered, because git tags do not necessarily indicate a release.

Furthermore, GitHub releases are only considered when they were published before the 1st of January 2020 and the projects issued at least 5 releases before that time.

After applying these constraints, only 529 projects out of the 1000 most popular GitHub projects made it into the data sources for this article. …


Image for post
Image for post

Using your local development machine as GitLab CI runner instead of the shared runners provided on gitlab.com comes with some compelling advantages:

  • Own runners don’t count towards the usage quota
    GitLab has the generous offer of 2000 free CI minutes per month for every group (not project). However, this limit is reached quickly during active development. So instead of purchasing additional CI minutes you might as well execute the CI jobs yourself.
  • Shared runners have very limited resources
    In the past, shared runners had 4GB of memory available, nowadays they are unfortunately limited to only 2GB. …

Image for post
Image for post

Our goal is to provide a value from 0% to 100% and have the element perfectly positioned, e.g. sticking to the top for 0%, sticking to the bottom for 100%, or being perfectly centered for 50%. At first glance this might seem trivial: position: absolute & top: 50% and we’re good to go. However, that leaves us with a few problems:

  • top: 100% pushes the element completely out of the viewport
  • top: 50% does not perfectly center the element, it just aligns it to the center

Transform to the rescue

You might already know the CSS transform: translate trick to center arbitrary elements horizontally or…


Image for post
Image for post

Back when I was in university, Android and iOS were still rather new platforms and everybody was excited about them. When there was some kind of coding workshop you almost certainly ended up building a small Android app. That is how I took my first steps in the Android ecosystem and probably also the reason why I became a Mobile Developer right after.

In this article, I want to share the frustrating experiences I’ve had with the Android SDK and Flutter. Some of the points that I address also apply to the iOS SDK. I stopped working as a Mobile Developer a few years ago and hope that many things have changed for the better. …


Image for post
Image for post

This tutorial explains how to create a bootable Windows USB in macOS without any additional tools. The instructions are absolutely foolproof, no terminal is required and the resulting USB drive can be used to install Windows on any machine and is not limited to “Boot Camp”.

Preparations

You need a USB stick with a capacity of 8 GB or more. All the data on the USB drive will be lost in the process, so make sure to save the data elsewhere before you continue.

Download Windows 10

In this step you have to download a rather old version of Windows 10. If you want to find out why this is necessary please refer to the section on the bottom of this article. …

About

Niklas Klein

λ

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store