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$$....

September 1, 2022

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....

December 12, 2020

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!...

May 20, 2020

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

The await/async concurrency pattern in Golang

Introduction First of all…happy new year! I decided after a while to come back online speaking about Golang. In this post, I will focus on parallelism and concurrency and how you can achieve the same behavioral pattern you can achieve with Node.js using await/async statements, without the difficulties (hopefully) of dealing with Single Threaded Event Loop and these primitives (that, btw, keep things really simple). Let’s start! A bit of confusion Concurrency and parallelism are two terms that are bound to come across often when looking into multitasking and are often used interchangeably....

January 2, 2020

GraphQL is the new black

Prelude GraphQL is an open-source data query and manipulation language for APIs and a runtime for fulfilling queries with existing data. GraphQL was developed internally by Facebook in 2012 before being publicly released in 2015 because - believe me or not - it was quite tricky for them dealing with their schema. It allows clients to define the structure of the data required, and exactly the same structure of the data is returned from the server, therefore preventing excessively large amounts of data from being returned....

March 5, 2019

A Golang Turing machine library

Preamble 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!...

January 19, 2019

My first UniKernel image for sequence prediction

Introduction Predicting the next item of a sequence over a finite alphabet has important applications in many domains. Since I always wanted to implemented something like that, while I was looking for an interesting approach I found this interesting idea based on tree. And you don’t deal with trees since a lot, be prepared because as usual it seams simple, but it not. Moreover, since I like Golang and I always wanted to try UniK, I decided to implement my version of the CPT using Golang and use this exercise as a source to build my first unikernel image....

November 30, 2018

How my Elman network learnt to count

Introduction This is actually a sort of back-to-the-future post because it’s related to something I completed one year ago: I built this Elman network and it learnt to count. What I shame, I forgot it, now it’s kind of its first birthday so let’s celebrate :D This is Elman, the best in class in adding int32 numbers. For everybody who already knows what I will talk about (what?!), here’s the Github repo....

November 13, 2018

Go Erlangen!

A little tool for a small city Here we are!! I recently moved to Germany to join the adidas - platform engineering team. This is a really small piece of GOde (:P) I wrote for Erlangen (my new place) citizens ^^ Needs You will only need an https://www.internationalshowtimes.com/ movie api key. You can get one quite easily by going here Scope You would simply like to be informed about new OV movies on air in cinemas from your shell…here we go!...

September 24, 2018