My little software warehouse


Mar 30

A concurrency experiment

There are some scenarios where the order matters Let’s say that you have an api that can receive “actions” to be performed on a given endpoint. Think about you buying something on Amazon and then changing your mind and revoking your order. You don’t want those two actions to be swapped, otherwise the cancellation will be refused (the order you want to cancel do not exists …



Dec 11

Fast messaging with nats and go part 2

This is the second of a follow up serie of the talk Fast messaging with Nats and Go I gave at golab 2018. The first part can be found here What can we do with nats? Pub sub As you can probably guess, given that Nats is a pure pub / sub system, we can easily implement pub / sub. Please remember that a nats publisher does not assume the audience.


Oct 27

Fast messaging with nats and go

This is the first of follow up serie of the talk Fast messaging with Nats and Go I gave at golab 2018. The slides of the talk can be found here: What is Nats Nats is a messaging system hosted under the CNCF umbrella, which is an open source software foundation dedicated to making cloud native computing universal and sustainable. It’s my place-to-go while looking for software related to …


Oct 26

A new chapter

It’s been a while It’s more than a year since my last blogpost which incidentally (or not) it happened right a month before the birth of my second child. In the past year I lost a lot of sleep, and now I am kind of getting back to normality (which means new side gigs :-)). My interests moved from Android and mobile in general to Go and distributed systems, which is what I am probably …



Apr 30

Android okhttp and websockets

Websockets Rest http calls are the most common interaction between Android apps and remote servers. However, there are some scenarios where the interaction is better handled via a persistent connection: think about a chat, or a multiplayer game where data flows in both directions and the server needs to push data to the clients and to be aware of which client are connected. This kind of scenario …



Aug 27

Android mvp testing

MVP is Model View Presenter .. which is a pattern that is very popular among Android developers nowdays. I don’t intend to write (yet) another guide about MVP in Android, because others have done a better job, for example: Antonio Leiva’s introduction to MVP Hannes Dorfmann’s introduction to Mosby Fernando Cejas’ post on clean architecture A lot have been said about MVP …


Jun 20

How to a timer

Ok, I must confess the title is built to draw people’s attention, because you know, nowdays everything is done in a reactive fashion. RxJava is superhelpful, but if we forget the ecosystem our apps are running into, we risk to forget the proper way to implement certain tasks in Android. Why do we need a whole post about timers? Recently, I had to implement a countdown timer in Android.


Apr 20

Happines is relative

Using relative layout is bad .. or at least they say so. The truth is, it is relatively easy to build complex layouts using RelativeLayouts, but this ease of use comes with a cost: in order to provide that kind of flexibility, RelativeLayout does two measurement passes. There are a lot of talks and posts explaining that if you have nested relative layouts, you’ll end up with many measurement …


Jan 1

Cached rest requests with rxjava

Disclaimer: In this post I am trying to cover a proper approach to a common problem. I am still in the process of wrapping my head around RxJava so what I write here might not be the best way to solve the problem. Cached requests with RxJava Lately I’ve been trying to develop a rest backed app using RxJava. I must admit that once you get in the proper mental mood, RxJava almost feels like …