Memoization in the Wild

Overview Memoization or memoisation is a method used to optimize programs. Usually, at least in my experience, it’s one of the first topics introduced when dynamic programming algorithms are being discussed. With a quick google search you can find the Wiki or a trillion other blogs about it - most will show the canonical example - the “hello world” of the topic - that is, using memoization to optimize a recursive implementation of a function that generates the n-th Fibonacci number (or sometimes a function computing factorials).
Read more

'Chicken' Nugget Hierarchy

This is my (the only?) ranking: Spicy dino-nuggets Spicy nuggets Dino nuggets Nuggets Keep in mind I’ve been a “most of the time non-meat eater” for a few years now, so maybe I’ve got it wrong when talking about the real meat nuggets…For my other veggie friends out there, I’m a fan of Nuggs (if you’re into the substitute thing). They’re the closest I’ve had to real, good old after school freezer nuggs (I’m an adult, I swear, just ask my hairline).
Read more

Computing Pi by Throwing Darts

In celebration of pi-day, let’s look at a method of computing pi using random numbers that is often presented in probability, statistics or other classes, as an elementary example of using random sampling and / or simulation. In my case, the first time I remember seeing / hearing about this example was in a probability class, however we didn’t actually write any code to try it, we just looked at the idea.
Read more

¿Qué Hace Mi Empresa?

Aviso: eso ha sido un trozo de texto que escribí para practicar mí español, no tiene nada que ver con FarSounder oficialmente. Introducción En mi empresa, se llama FarSounder, hacemos un sistema de Sónar para los buques y los yates. El objetivo principal de este sistema es buscar cosas que sean peligrosas delante de la nave y bajo el agua. Hay un sensor que se pone en la proa, que está dirigido hacia delante, por supuesto.
Read more

Triplet Counting Algorithmic Puzzle

We’ve all got a little more time on our hands lately due to social distancing and COVID-19 (unless you have young children). I’ve been partly entertaining myself by learning new programming languages and frameworks, and also with some programming puzzles on sites like HackerRank. I found one problem I ran into recently particularly interesting, and I enjoyed figuring it out (read: drove me crazy for a bit). This post is a write up of the problem and the solution that I ended up with.
Read more