Wisdom from the Internet, content that influenced how I think about software (and life).

Finding needles There has never been as much information easily accessible to anyone as right now. The ease of publishing your own writing leads to new problems: The question is no longer where do you find content about a topic but what content is good and worth your time? To help you find the needle in the biggest haystack ever, here is my personal list of good content that influenced me....

December 3, 2020 · 3 min · 611 words · Philip Heltweg

IYAGI - postcards from friends

Screenshots Login Intro slides Intro slides Setting up the user language Setting up the user language Profile view Write a letter List of your letters Letter feed See your own letter Comment on other letters

March 30, 2020 · 1 min · 35 words · Philip Heltweg

Machine learning basics: Machine Learning by Stanford University (Coursera) review and notes

The popularity of machine learning, data science and related disciplines is exploding and with it the amount of courses, books, block posts etc you are exposed to. I recently finished the relatively old but highly rated course Machine Learning by Stanford University on Coursera and wanted to take the chance to offer my review and notes I took. The course Although the course is old enough to be referred to as “classic” by quite a few descriptions I have read it is timeless in the sense that most good introductions are....

March 14, 2020 · 3 min · 503 words · Philip Heltweg

Analyzing twitter: Import tweets with NodeJS and the twitter API

A tweet in the database is worth two in the API Working with tweets from the twitter API probably means importing data into your own database - the standard API does not provide historical data (only the last seven days) and has various rate limits. So regardless of the final goal in this blog we’ll explore importing tweets from the API into a database for future use. All done with NodeJS, written in Typescript and utilizing MongoDB as data store....

October 25, 2019 · 4 min · 846 words · Philip Heltweg

Deploy an app into your personal cloud

As the final step in this long series of blogposts we are going to deploy a simple webapp in a docker container to my personal cloud. For context here is the personal cloud setup with Traefik/Let’s Encrypt (Run a personal cloud with Traefik, Let’s encrypt and Zookeeper). In previous blogposts I also described how I built the app (Build a PWA in docker). App deployment The deployment runs the docker container....

September 4, 2019 · 2 min · 294 words · Philip Heltweg

Build a docker image on gitlab ci and publish it to google container registry

In previous blogposts I explained my concept of a personal cloud for my own projects (Kubernetes for Sideprojects) and how I set it up (Run a personal cloud with Traefik, Let’s encrypt and Zookeeper). I also showed how I packaged a PWA project with docker (Build a PWA in docker). With all those ingredients ready to go the last hurdle to solve is building the docker image automatically as well as publishing it to a private container registry so I can deploy it to my cloud from there....

September 3, 2019 · 3 min · 455 words · Philip Heltweg

Deploy to google kubernetes engine using gitlab ci

In a previous blogpost I showed how I build and publish docker images on gitlab ci (Build a docker image on gitlab ci) Make sure to read that post first for an overview and permission setup. Update the kubernetes service with the new docker image You can easily set up a deploy step using google’s own cloud SDK docker images. Note the service account with the permissions to change the kubernetes setup is saved as “GCLOUD_K8S_KEY” variable here....

September 3, 2019 · 1 min · 173 words · Philip Heltweg

Build a progressive web app in docker with nginx to deploy to kubernetes or docker swarm

With my personal cloud setup based on kubernetes done (you can read about it here: https://heltweg.org/posts/run-a-personal-cloud-with-traefik-lets-encrypt-and-zookeeper/) it is time to actually deploy the first project into it. The easiest application to deploy is a pure client side single page application, packaged in a docker container with a webserver like nginx to deliver the files. Packaging the application into it’s own container allows us to build a standardized container that can be run locally for testing or deployed to docker swarm and kubernetes....

August 24, 2019 · 3 min · 434 words · Philip Heltweg

Run a personal Cloud with Traefik, Lets encrypt and Zookeeper

Kubernetes ingress with Traefik As mentioned in my last blog post I want to focus on a provider neutral setup for my own cloud, using technology that is not bound to any cloud offering whenever possible. While google cloud offers load balanced HTTP ingress by default it is apparently very expensive in comparison to running small nodes and I have heard only good things about using Traefik for kubernetes ingress....

August 16, 2019 · 5 min · 1016 words · Philip Heltweg

Kubernetes for sideprojects: Hardware is dead

Why invest in a personal cloud It has never been easier to host your personal side projects. Tools like surge.sh or Heroku make it painless to run your code. And if all else fails the old reliable “drag and drop files to a ftp” is always there - so why invest time into setting up your own personal cloud with kubernetes? My goal for technology is typically to find a setup that gets boring to work with because I know it well and can focus on delivering new functionality....

August 15, 2019 · 4 min · 719 words · Philip Heltweg