Usually rotary modules for CNC routers and the software used to create the tool-paths for such modules assume that you are using perfectly cylindrical material. It is often much easier to start from differently shaped material since for example square shaped wood blocks are far more common (and cheaper) than cylindrical ones. Therefore I want to present in this article my approach to break these cylindrical limitations.

Let’s first look at this problem a little bit theoretically, using this owl model as an example. …

After some experiments with the Snapmaker 2.0 CNC module using wood, I decided it would be fun to try with soapstone instead and I’m quite happy with the result.

Here are some details about how I achieved the result.

The 3D design for the ring has been done in Blender using two circles with a Screw modifier and a Curve modifier applied to them.

I love data, and while I am well aware that Google is using my location history for their own purposes, I’ve had location history activated for many years now, so I have a lot of data to play with. And while the visualizations on Google Maps itself are nice, I like to be more flexible. In this article I want to tell you how to get your full Google Location History and transform it into something useful, and give you some ideas what you can do with this data.

Getting your data

Your first stop is at Google Takeout to download your Location…

A travel report of our vacation in the Valle del Cauca in November of 2015.

Ein Reisebericht von unserem Urlaub im Valle del Cauce im November 2015.

Day 1 (2015/10/31)

From Vienna to Cali

Not much to say about this day and therefore not many photos either. Just a long day of travelling from Vienna to Amsterdam to Bogota to Cali and then finding a taxi to take us to the hotel.

Von Wien nach Cali

Über diesen Tag gibt es nicht wirklich viel zu sagen und daher auch nicht viele Photos. …

We’ve been making our own Kimchi for the past few years. It makes for a nice in-between snack and goes well with a lot of different dishes. Here’s the recipe we’ve improved and revised with each attempt. The measurements are very approximate as we usually taste and adjust as we see necessary.


(for about a year of Kimchi supply)

2 Napa Cabbages
1 Radish
500g of Carrots
500g of Caigua (optional, but we love them in Kimchi)

Kosher salt

~100g of Garlic
Gochugaru (Korean hot pepper flakes)
Cooked rice (a little bit of stale rice from the previous day is fine)
Fish sauce

We tasted a lot of different fruits during our vacation in Colombia in 2015.

Während unseres Kolumbienurlaubs in 2015 haben wir sehr viele verschiedene Früchte gekostet.

Guanabana / Soursop / Sauersack / Annona muricata

A travel report of our island hopping tour on the Galapagos islands in February of 2014.

Ein Reisebericht von unserer Inselhopping-Tour auf den Galapagos Inseln im Februar 2014

Note: this story is part of multiple posts, trying to preserve my most valued collections and content from Google+
Anmerkung: diese Geschichte ist Teil von mehreren Posts, mit dem Ziel meine liebsten Sammlungen und Inhalt von Google+ zu retten

Day 1 (2014/02/12)

Getting there (Part 1) — From Vienna to Munich

Each vacation starts with the boring part of actually getting to your destination. Without direct flights available from Vienna to Madrid we had to…

Since the Firebase team launched Cloud Firestore last week, one question/problem that keeps popping up on Stackoverflow is the result of there being two different ways to retrieve data that have to be handled slightly differently. So after answering several of those questions I though it would be a good idea to put together this short article.

The samples I’m using are in JavaScript, but the behavior is essentially the same for all the other SDKs as well, and I have relevant links at the end.

Getting a single document

Retrieving a single document from Cloud Firestore is done with the following steps.

  1. Create…

Polymer 2.x/3.x brought the standards-compliant ES6 class-based syntax for defining Web Components. This works well for most modern browsers and ES6 has a lot of other nice features (like arrow functions) to make your JS code cleaner and more fun to write.

But if you need to support older browsers like IE 11 you will have to compile your code to ES5 which comes with performance drawbacks for modern browsers compared to running ES6 on them directly.

The ideal approach is to use differential serving to serve the ES6 version to modern browsers and a fallback ES5 version to older…

The Polymer Summit 2017 in Copenhagen was over far too quick. It was a great and fun event with a lot of inspiring talks and interesting conversations in the breaks and during the after party.

In this post I will try to summarize my highlights and takeaways from this summit. There are also a couple of links that go into deeper details for the various topics, and I will be exploring some of those topics more closely in the future, which will most likely result in more articles.

Polymer 3.0

Gerwin Sturm

Business applications and web developer, Google Developer Expert for Web Technologies until 2017, World traveller

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