Pain(less?) NGINX Ingress

Caution: As of March 2026, ingress-nginx will no longer receive new releases, bugfixes, or updates to resolve any security vulnerabilities that may be discovered. So you have a Kubernetes cluster and are using (or considering using) the NGINX ingress controller to forward outside traffic to in-cluster services. That’s awesome! The first time I looked at it, everything looked so easy; installing the NGINX ingress controller was one helm install away, so I did it. Then, after hooking up the DNS to the load balancer and creating a few Ingress resources, I was in business. ...

September 13, 2017 · 18 min · 3795 words · Daniel Martins

Five Months of Kubernetes

For the past year, Descomplica moved towards a more service-oriented architecture for its core components (auth, search, etc) and we’ve been using Elastic Beanstalk from the start to orchestrate the deployment of those services to AWS. It was a good decision at the time. In general, Elastic Beanstalk works fine and has a very gentle learning curve; it didn’t take long for all teams to start using it for their projects. Fast-forward a few months, everything was nice and good. Our old problems were solved, but - as you might have guessed - we had new ones to worry about. ...

September 14, 2016 · 8 min · 1612 words · Daniel Martins

A Week Of Docker

If you got here, the chances are you heard the fuss around Docker and how it’s supposed to change the way we deploy applications. According to the official website, Docker is… …a platform for developers and sysadmins to develop, ship, and run applications. Docker lets you quickly assemble applications from components and eliminates the friction that can come when shipping code. Docker lets you get your code tested and deployed into production as fast as possible. ...

August 15, 2014 · 7 min · 1488 words · Daniel Martins

Why Are Continuations So Darn Cool?

Continuations are the least understood of all control-flow constructs. This lack of understanding (or awareness) is unfortunate, given that continuations permit the programmer to implement powerful language features and algorithms. – Matt Might, in Continuations By Example The usual way to control the flow of execution of a computer program is via procedure calls and returns; a stack data structure is how high-level programming languages keep track of the point to which each active subroutine should return control when it finishes executing. ...

June 5, 2014 · 7 min · 1433 words · Daniel Martins

Functional Programming 101 - With Clojure

Here goes a simple yet interesting programming problem originally proposed by Mattox Beckman. After seeing Tejas Dinkar’s take on this problem using Haskell, I decided to give it a go with Clojure. You are Hercules, about to fight the dreaded Hydra. The Hydra has 9 heads. When a head is chopped off, it spawns 8 more heads. When one of these 8 heads is cut off, each one spawns out 7 more heads. Chopping one of these spawns 6 more heads, and so on until the weakest head of the hydra will not spawn out any more heads. ...

January 26, 2014 · 4 min · 737 words · Daniel Martins

Learning From Data - Course Review

Machine learning students and practitioners looking for a solid foundation on the subject probably heard about Learning From Data, a real Caltech course taught by Professor Yaser Abu-Mostafa and broadcast live, for free. As a contribution to this wonderful initiative, I gather here my impressions regarding some aspects of the course. Prerequisites Basic probability, matrices, and calculus. According to the course website, this is all you need to know. I would add programming to that list though, since it’s necessary to write some tricky programs in order to answer to some questions. ...

June 3, 2012 · 4 min · 756 words · Daniel Martins