Home-as-a-service

Prelude Today I’m gonna talk about how you can leverage Traefik2, k3s, Cloudflare, and RaspberryPI to get the best out of your…apartment. After the image, I’ll go through the setup of everything needed! Why Traefik2 For those of you who never heard the word Traefik before, here it is: Traefik is an open-source Edge Router that makes publishing your services seamless. I already made some experiments in the past (look at my two-pieces series I run VSC in the browser and I am just fine - Part I and My team run VSC in the browser and they are just fine - Part II) and I’ve always been fascinated by the way Traefik just works. And… it’s written in Golang! Since I recently had to deal a lot with SSO and k8s (I finally made my raspberry cluster with pi4 and k3s, a more specific blog post is coming), I wanted to extend my experience with Traefik moving to the 2nd version of the tool and leveraging IngressRoute. Moreover, I used Google and Traefik2 Middleware to forward requests and authenticate them using my Google account. The cool thing is that if you already own a domain, a Google account, and a k3s cluster (both running on-premise at home and in cloud if they didn’t end up fired), you can get everything described in this article for free! 🥳 ...

March 24, 2021 · 10 min

How to: create a fleet of container-based-go-lambda with one command

Introduction As you might know, at the re:Invent AWS recently announced the capabilities of running Lambda by getting the code directly from a docker image you provide, as illustrated here. Moreover, they also announced the Amazon ECR Public and Amazon ECR Public Gallery that you can reach at https://gallery.ecr.aws/. And this was pretty much my reaction: What you might need to know before begin First of all: keep calm, because there’s already a Github Repo to build an entire fleet of microservices - with their respective ECR-based repository - with only one command from the shell. Hopefully, you can get up and running by simply opening a shell, cloning my repo, change the AWS_PROFILE_NAME at the top of the Makefile to point to your profile, and run: ...

December 12, 2020 · 6 min

I hacked my blog to let AWS Polly create podcast over it

Prelude Hi guys, after a series of back-to-the-future-I-didn’t-have-time-to-write-new-things… I’m back. What happened in the last months… ok, covid19 put the whole world in trouble, I bought an apartment, I opened a company and I resign my contract. Really. Nothing. Special. But TODAY - I wanna talk about a project I have since a while, and I worked on a boring Sunday afternoon: I hacked my blog to let Polly read it for you! 😎 😎 😎 ...

November 26, 2020 · 13 min

My team run VSC in the browser and they are just fine - Part II

Introduction This is a repost of an old article :) In the first part of this series - I run VSC in the browser and I was just fine - I wrote many stupid things around the possibility of having a VSC server instance running inside AWS over a simple, immutable, ec2 instance. The template {that can be easily deployed by a Lambda function [that can be easily deployed behind a route53 record (that can be easily placed as the endpoint of a custom Slack action)]} let you start your IDE and code from wherever you would like to. In this second part, I wanna talk about how to extend the same idea to serve a Team of developers. Yes, like the one below. ...

October 22, 2020 · 15 min

I run VSC in the browser and I am just fine - Part I

Introduction This is a repost of an old article - that actually also inspired my talk of the last year at FullStackConf2019 :) Serverless and managed things are the best choices if you don’t want to deal with infrastructure (3 2 1: fight) buuuuut…even immutable things are not so bad for this purpose - at least, if they are immutable for real 🤣 Today I wanna talk about a useful way to run an instance(s) of VSC server in AWS and code from everywhere (yes, even your iPad): let’s start! ...

September 21, 2020 · 10 min

A Golang Turing machine library

Preamble This is a repost of an old article :) In 1962, Hungarian mathematician Tibor Radó introduced the Busy Beaver competition for Turing machines: in a class of machines, find one which halts after the greatest number of steps when started on the empty input. Even if it could seem trivial, the Busy Beaver competition has implications in computability theory, the halting problem, and complexity theory. I decided to use GoLang to implement a Turing machine library and accomplish three goals: first, having a Turing Machine model to play with for learning purpose; second, learning how to use interfaces and the factory pattern, other then testing package to test my code and let it be more flexible for future enhancement (at least I hope!); third, implement some Busy Beaver setup and verify that the model works with well known executions. If you want to discover more about Golang, 60’s math games and beavers, go ahead with reading :D! ...

May 20, 2020 · 9 min

Jails: confining the omnipotent root

Preamble Recently I became nostalgic and fascinated with stuff from the past, so I decided to create a Vagrantfile to work with FreeBSD1. Why FreeBSD? Because as a developer, I really like Docker and I started looking in the past to find its historical birth: in fact, as a concept, Docker is no so recent as you think, and I think it exists also because of the works of some other bigs from 80’, such as Poul-Henning Kamp2. Starting from its work and using a FreeBSD installation I did some experiments with jails, to understand better what they really are, how they works - how can you create what it will look like a vintage container - and why you should use them in a FreeBSD environment - at least, to learn something new. ...

April 19, 2020 · 10 min

T.H.I.N.K: is all about problems, not data

Intro Mute post Bye

February 10, 2020 · 1 min

?(DRY(KIS(afe)S)) => CF(ALB+TLS+SM);

Intro If you work with AWS, you might be involved in building infrastructure to enable some of your customers (both internal and external) to use a particular service, or just to try one of the hundreds open-source application available on Github. Furthermore, most of the ML/AI tools are shipped in docker containers and the philosophy -> if it runs on docker, it runs everywhere has been spread up to the highest level of management (nice, but… sometimes dangerous 😅 ed. ) And it’s pretty much true, buuuuut… ...

February 1, 2020 · 11 min

A monadic reasoning around function composition in Golang

Introduction Function composition is something we as developers do every day, more or less. This concept come from Mathematics: if you search on Wikipedia, you find out that function composition is an operation that takes two functions \(f\) and \(g\) and produces a function \(h\) such that \(h(x) = g(f(x))\). In this operation, the function \(g\) is applied to the result of applying the function \(f\) to the input \(x\). That is, the functions \(f: X \rightarrow Y\) and \(g: Y \rightarrow Z\) are composed to yield a function that maps \(x\) in \(X\) to \(g(f(x))\) in \(Z\). ...

January 16, 2020 · 10 min