An easy Vim IDE setup: using Vundle

Are you bored of messing up with your own custom .vimrc which is eventually broken or difficult to maintain?. Well, there are lots of projects in order to have a vim plugin environment well setup, I’ll just show one of them. I’m following the steps you can see in install instructions:

  1. First, let’s get Vundle:
mv ~/.vim ~/.vim.beforeVundleBackup
mv ~/.vimrc ~/.vimrc.beforeVundleBackup
mkdir ~/.vim && mkdir ~/.vim/bundle/
git clone ~/.vim/bundle/Vundle.vim

With that, you already have the bare minimum to work with Vundle.

       2. Follow this to get a proper font:

If your using iTerm2 basically you need to download the file and load preset from the iterm2-color-solarized folder.

Captura de pantalla 2017-05-27 a las 8.42.20.png

Import both: “Solarized Dark” and “Solarized Light” and you can decide later which one is more convenient.

In iTerm2 make sure this is your terminal type (more info):

Captura de pantalla 2017-05-27 a las 9.07.01.png

     3. Now it’s time to get the vimrc:

wget && mv vimrc.vim ~/.vimrc

     4. Now runvim +PluginInstall +qall

And that’s all, now your Vim should look like this:

Captura de pantalla 2017-05-27 a las 9.10.37

Now you already have a pretty good vim setup and you’ll be able to install new plugins easier.

e.g I can install a SML plugin just adding this to the .vimrc:

Just remember to run this every time you run a plugin:

vim +PluginInstall +qall

Implication, conditional, equivalence and biconditional: NL and code

This blog post is my attempt to explain these topics: implication, conditional, equivalence and biconditional.

I’ll also try to discuss examples both in natural language and code.

I’ve studied them in Mathematical Language subject and Introduction to Mathematical Thinking.


In natural language we often hear expressions or statements like this one:

If Athletic Bilbao wins, I’ll take a beer

Continue reading Implication, conditional, equivalence and biconditional: NL and code

Forks: wsdl2html_ivmos y wallahack_ivmos



¿Qué hacer si tus pull requests no son aceptadas pero no quieres que esas aportaciones queden perdidas en ramas de tu fork? En mi opinión, para eso precisamente son los forks y es una de las ventajas del software libre. Lo suyo es probar primero una pull request, tratar de aportar al proyecto, es lo más práctico ya que el coste de mantener tu propio fork es considerable. Sin embargo a veces no es posible hacer que tus cambios lleguen al proyecto original y las razones pueden ser varias. Es algo que me ha ocurrido recientemente con dos pull requests:


Esta pull request entre otras cosas añade soporte a la utilidad wsdl2html para que se pueda autogenerar documentación en html a partir del proyecto. En este caso entiendo perfectamente porqué la pull request no se aceptó. Mi aproximación es muy específica para el caso de uso que me interesa: generar comentarios de un proyecto Java en el cual el WSDL se genera con JAX-WS en lugar de escribirse directamente. Genero los comentarios a partir de esos ficheros Java, lo cual es no es una forma útil si trabajas directamente con el WSDL.


Esta otra pull request sin embargo es bastante más triste. Sencillamente el autor nunca me contestó. Extendí la utilidad Wallahack, que permite consultar Wallapop haciendo scrapping de forma que puedes escribir scripts que busquen resultados periódicamente. Por ejemplo usé este fork durante un tiempo para detectar anuncios nuevos de ordenadores antiguos. La diferencia principal entre mi fork y el proyecto principal es que puede parametrizarse y tiene un par de arreglos que lo hacen usable.

En ambos casos no tengo suficiente tiempo ni interés para darles más evolución, por ello sigo la convención de renombrar sencillamente a {originalName}_ivmos.


What should I do if my pull request aren’t accepted and I don’t want those changes to be lost as branches in your fork? IMHO, that’s actually the reason forks make sense and a main advantage of open source. You should try a pull request, with the needed effort to make it successful as maintaining your own fork can quite a pain. However sometimes it’s not possible and your pull request is not accepted. That’s something I’ve seen at least 2 times I’m telling you about:


This pull request is a branch which adds support to wsdl2html project. In this case I understand perfectly why the PR wasn’t accepted. My approach is very specific to the use case I had: generating comments from a java project where WSDL was generated with JAX-WS instead of being written manually. I generate the comments from those java files, which is an approach that does not make sense if you have worked directly with the WSDL (comments should be there).


This other PR is sad though. It was simply never answered. I extended Wallahack, which is a java tool which queries Wallapop web so that you can write scripts that poll periodically for results. For example, I used it to check whether new old computers had been posted recently.

In both cases I don’t have time to invest more time on them, that’s why I follow the convention of renaming the forked project to {originalName}_ivmos instead of using a new fancy name.

Product Hunt Madrid | Tuenti & Fever | Campus Madrid


Product Hunt Madrid es un evento de descubrimiento y crítica de productos y servicios digitales. Los productos se presentarán desde tres perspectivas: las decisiones de diseño tomadas, el stack tecnológico y el modelo de negocio. De esta forma la comunidad tecnológica de Madrid aprenderá cómo funcionan los mejores productos digitales del mundo.

Hace una semana estuve contando lo que hacemos en Tuenti con mis compañeros Laura Andina (UX) y Luis Javier Álvarez (Product).

Conté cómo trabajamos los equipos de ingeniería y algunas lecciones que hemos aprendido estos años.


Product Hunt Madrid is an event where Product Managers, Engineers and Designers show their products: how they’re built and how they build them. Products are presented from three views: key design decisions, tech stack and business model. This way Madrid community can learn from the experience of successful digital products.

One week ago I talked about Tuenti product with my mates Laura Andina (UX) and Luis Javier Álvarez (Product).

I talked about how we work in Engineering team and a few lessons we’ve learned these years.

Ikusth: Android threads dependency graph generator


Tras una temporada dedicada especialmente a depurar deadlocks relacionados con nuestro componente XMPP decidí construir Ikusth. Básicamente realiza lo que solía hacer con boli y papel, escribe el grafo de dependencias con las hebras y recursos implicados.

Más información en la publicación que escribí para el blog de desarrollo de la compañía:

Proyecto en Github:



After some time debugging a few deadlocks related to the XMPP component we have I decided to build Ikusth. It basically does what I used to do on paper, write the dependency graph of the threads and resources involved in a deadlock.

More info in the blog post I wrote for my company dev Blog:

Project in Github:


Introducción a WebRTC y VozDigital


La semana pasada impartí el workshop “Introducción a WebRTC y VozDigital” en las oficinas de Tuenti para The Evnt (@TheEvnt).

A continuación los slides, el repositorio GitHub con el material y el vídeo de la sesión. Espero que sirva de ayuda a quien pase por aquí buscando dar sus primeros pasos con WebRTC.


Last week I gave the workshop “Intro to WebRTC and VozDigital” in the Tuenti offices for The Evnt (@TheEvnt).

Here you have the slides, the Github repo with the material and the recorded video of the session (spanish only sorry). I hope it can be valuable for those trying to learn WebRTC.

reboot 2013

I didn’t post a single thing on 2012 :-S

The days of the long blog posts are gone for most of us, microblogging and social networks killed them.

Actually, I thought about closing this blog but as there’s some content which is reached every day, I’ve just updated it with a better theme and I’ll try to add content every month. It won’t be just about computing as the days when I only cared about that are gone too. 2012 was great and 2013 is being exciting too, but this time I’ll share a bit more about it on the internet.


“CSS Pocket Reference”, Fourth edition, By Eric A. Meyer; O’Reilly Media;

CSS Pocket Reference

 Eric A. Meyer , also author of other CSS books like CSS: The Definitive Guide tries to provide a good tool for  the daily CSS work.

The book features the following parts:

  • 1. Basic concepts.
  • 2. Values
  • 3. Selectors.
  • 4. Property Reference.

As a pocket reference it is, don’t expect learning CSS from this book but a quick reference for your daily work. You’ll find a few references to chapters of CSS: The Definitive Guide. This edition is updated to CSS3. Continue reading “CSS Pocket Reference”, Fourth edition, By Eric A. Meyer; O’Reilly Media;