<!DOCTYPE html>
<html>

  <head>
  <meta charset="utf-8">
  <!-- (1) Optimize for mobile versions: http://goo.gl/EOpFl -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <!-- (1) force latest IE rendering engine: bit.ly/1c8EiC9 -->
  <meta http-equiv="X-UA-Compatible" content="IE=edge">

  <title>Alfie.cat</title>
  <meta name="description" content="October 1986, Tacita de plata. I was born naked, wet and hungry. After that, I became a software engineer. I make stuff. My favourite shapes are spades, hearts, diamonds, clubs and hamburgers.
" />

  <meta name="HandheldFriendly" content="True" />
  <meta name="MobileOptimized" content="320" />
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
  
    <meta name="twitter:card" content="summary" />
    <meta name="twitter:site" content="@alfonsojimenez" />
    <meta name="twitter:title" content="Alfie.cat" />
    <meta name="twitter:image" content="https://alfie.cathttps://alfie.cat/assets/images/author.jpg" />
    
    <meta name="twitter:description" content="October 1986, Tacita de plata. I was born naked, wet and hungry. After that, I became a software engineer. I make stuff. My favourite shapes are spades, hearts, diamonds, clubs and hamburgers." />
    
  
  
  <meta property="og:site_name" content="Alfie.cat" />
  <meta property="og:title" content="Alfie.cat"/>
  
  <meta property="og:description" content="October 1986, Tacita de plata. I was born naked, wet and hungry. After that, I became a software engineer. I make stuff. My favourite shapes are spades, hearts, diamonds, clubs and hamburgers." />
  
  <meta property="og:image" content="https://alfie.cathttps://alfie.cat/assets/images/author.jpg" />
  <meta property="og:url" content="https://alfie.cat/" >
  <meta property="og:type" content="blog" />
  

  <link rel="canonical" href="https://alfie.cat/"/>
  <link rel="shortcut icon" href="/assets/images/favicon.ico" type="image/png"/>
  <link rel="stylesheet" href="//brick.a.ssl.fastly.net/Linux+Libertine:400,400i,700,700i/Open+Sans:400,400i,700,700i">
  <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
  <link href="https://fonts.googleapis.com/css?family=Anton" rel="stylesheet">

  <link rel="stylesheet" type="text/css" media="screen" href="/css/main.css" />
  <link rel="stylesheet" type="text/css" media="print" href="/css/print.css" />
</head>


  <body>

    <!-- header start -->

<a href="https://alfie.cat" class="logo-readium"><span class="logo">ALFIE.CAT</span></a>

<!-- header end -->


    <!-- content start -->

    <div class="page-content">
      <div class="wrapper">
        <header class="blog-header">
    <h1 class="blog-title"><img src="/assets/images/author.jpg" alt="Alfonso Jiménez" /></h1>
    <h2 class="blog-description">October 1986, Tacita de plata. I was born naked, wet and hungry. After that, I became a software engineer. I make stuff. My favourite shapes are spades, hearts, diamonds, clubs and hamburgers.
</h2>
    <div class="custom-links">
      
        
            <a class="icon-twitter" href="https://twitter.com/alfonsojimenez"  title="Follow me on twitter"">
              <i class="fa fa-twitter"></i>
            </a>
            &nbsp;&nbsp;·&nbsp;&nbsp;
        
      
        
            <a class="icon-linkedin" href="https://linkedin.com/in/alfonsojimenez"  title="LinkedIn"">
              <i class="fa fa-linkedin"></i>
            </a>
            &nbsp;&nbsp;·&nbsp;&nbsp;
        
      
        
            <a class="icon-angellist" href="https://angel.co/alfonsojimenez"  title="Angellist"">
              <i class="fa fa-angellist"></i>
            </a>
            &nbsp;&nbsp;·&nbsp;&nbsp;
        
      
        
            <a class="icon-github" href="https://github.com/alfonsojimenez"  title="Fork me on github"">
              <i class="fa fa-github"></i>
            </a>
            &nbsp;&nbsp;·&nbsp;&nbsp;
        
      
        
            <a class="icon-instagram" href="https://instagram.com/alfonsojimenez"  title="Follow me on instagram"">
              <i class="fa fa-instagram"></i>
            </a>
            &nbsp;&nbsp;·&nbsp;&nbsp;
        
      
    </div>
</header>


<main class="content" role="main">
    <div class="cf frame">
      
        <article class="post" itemscope itemtype="http://schema.org/BlogPosting" role="article">
          <div class="article-item">
            <header class="post-header">
              <h2 class="post-title" itemprop="name"><a href="/2012/11/05/backend-dinamico-en-varnish.html" itemprop="url">Backend dinámico en Varnish</a></h2>
            </header>
            <section class="post-excerpt" itemprop="description">
              <p>Llevamos unos meses usando Varnish Cache como frontend para nuestras aplicaciones. El rendimiento está siendo fantástico, liberando al backend de mucho workload. Como backend, usamos un cluster de Apache con autoscaling en Amazon EC2. Para enroutar peticiones al cluster usamos ELB (Elastic Load Balancing), que ofrece un endpoint con IP...</p>
            </section>
            <div class="post-meta">
              <time datetime="05 November 2012">05 November 2012</time>
<!--            <span class="post-tags-set">on <span class="post-tag-">, <a href="/tag/"></a></span></span>-->
            </div>
          </div>
        </article>
      
        <article class="post" itemscope itemtype="http://schema.org/BlogPosting" role="article">
          <div class="article-item">
            <header class="post-header">
              <h2 class="post-title" itemprop="name"><a href="/2012/03/04/instalar-android-40-ics-en-exopc.html" itemprop="url">Instalar Android 4.0 ICS en ExoPC</a></h2>
            </header>
            <section class="post-excerpt" itemprop="description">
              <p>Ya han sido varias las personas que me han preguntado cómo instalar Android 4.0 Ice Cream Sandwich en una ExoPC Slate. El procesador que la tablet posee es un Intel Atom Pineview-M N450, perteneciente a la segunda generación de cores de Intel Atom (45 nm), que soporta un conjunto de...</p>
            </section>
            <div class="post-meta">
              <time datetime="04 March 2012">04 March 2012</time>
<!--            <span class="post-tags-set">on <span class="post-tag-">, <a href="/tag/"></a></span></span>-->
            </div>
          </div>
        </article>
      
        <article class="post" itemscope itemtype="http://schema.org/BlogPosting" role="article">
          <div class="article-item">
            <header class="post-header">
              <h2 class="post-title" itemprop="name"><a href="/2011/12/29/memoization-en-ruby.html" itemprop="url">Memoization en Ruby</a></h2>
            </header>
            <section class="post-excerpt" itemprop="description">
              <p>Un ejemplo práctico muy usado cuando se intenta enseñar recursividad es una función que calcule la secuencia de Fibonacci. Una solución trivial en Ruby podría ser la siguiente:
def fib(n)
  n &lt; 2 ? n : fib(n-1) + fib(n-2)
end

</p>
            </section>
            <div class="post-meta">
              <time datetime="29 December 2011">29 December 2011</time>
<!--            <span class="post-tags-set">on <span class="post-tag-">, <a href="/tag/"></a></span></span>-->
            </div>
          </div>
        </article>
      
        <article class="post" itemscope itemtype="http://schema.org/BlogPosting" role="article">
          <div class="article-item">
            <header class="post-header">
              <h2 class="post-title" itemprop="name"><a href="/2011/12/08/la-importancia-del-foco-y-ser-constante.html" itemprop="url">La importancia del foco y ser constante</a></h2>
            </header>
            <section class="post-excerpt" itemprop="description">
              <p>A menudo comenzamos proyectos en nuestra vida, tanto personales como profesionales, tanto por placer, por vitalidad o por ánimo de lucro. A priori es sencillo empezar algo, pero menos fácil es mantenerlo y aún más complicado es acabarlo*. Evitar procrastinación La procrastinación es la mayor traba para el abandono de...</p>
            </section>
            <div class="post-meta">
              <time datetime="08 December 2011">08 December 2011</time>
<!--            <span class="post-tags-set">on <span class="post-tag-">, <a href="/tag/"></a></span></span>-->
            </div>
          </div>
        </article>
      
        <article class="post" itemscope itemtype="http://schema.org/BlogPosting" role="article">
          <div class="article-item">
            <header class="post-header">
              <h2 class="post-title" itemprop="name"><a href="/2011/11/28/volver-a-escribir.html" itemprop="url">Volver a escribir</a></h2>
            </header>
            <section class="post-excerpt" itemprop="description">
              <p>Ya hacía tiempo que no escribía, al menos en público. A pesar de que este humilde blog lleva online desde 2004, apenas he escrito una decena de posts en los últimos 2 años. Se me hace raro responder a la pregunta de ¿tienes un blog?. No voy a entrar en...</p>
            </section>
            <div class="post-meta">
              <time datetime="28 November 2011">28 November 2011</time>
<!--            <span class="post-tags-set">on <span class="post-tag-">, <a href="/tag/"></a></span></span>-->
            </div>
          </div>
        </article>
      
        <article class="post" itemscope itemtype="http://schema.org/BlogPosting" role="article">
          <div class="article-item">
            <header class="post-header">
              <h2 class="post-title" itemprop="name"><a href="/2010/10/29/fcron-and-non-interactive-apt-get-install.html" itemprop="url">fcron and non interactive apt-get install</a></h2>
            </header>
            <section class="post-excerpt" itemprop="description">
              <p>This is a very short post, but it might be useful for someone with the same problem. I was trying to install fcron on a remote machine via an automated script, but apt-get install couldn’t finish because a dialog using whiptail came up. It wasn’t the common prompt asking yes...</p>
            </section>
            <div class="post-meta">
              <time datetime="29 October 2010">29 October 2010</time>
<!--            <span class="post-tags-set">on <span class="post-tag-">, <a href="/tag/"></a></span></span>-->
            </div>
          </div>
        </article>
      
        <article class="post" itemscope itemtype="http://schema.org/BlogPosting" role="article">
          <div class="article-item">
            <header class="post-header">
              <h2 class="post-title" itemprop="name"><a href="/2010/09/07/mourinho-y-la-teoria-del-torneo.html" itemprop="url">Mourinho y la teoría del torneo</a></h2>
            </header>
            <section class="post-excerpt" itemprop="description">
              <p>Lo importante no es ganar sino participar, es el consuelo para perdedores por excelencia. 27 de Abril de 2010, Camp Nou. El Inter de Milán contra todo pronóstico elimina al FC Barcelona en las semifinales de la Champions League. José Mourinho, técnico del Inter por aquel entonces y émulo de...</p>
            </section>
            <div class="post-meta">
              <time datetime="07 September 2010">07 September 2010</time>
<!--            <span class="post-tags-set">on <span class="post-tag-">, <a href="/tag/"></a></span></span>-->
            </div>
          </div>
        </article>
      
        <article class="post" itemscope itemtype="http://schema.org/BlogPosting" role="article">
          <div class="article-item">
            <header class="post-header">
              <h2 class="post-title" itemprop="name"><a href="/2010/07/30/5-tips-for-working-from-home.html" itemprop="url">5 tips for working from home</a></h2>
            </header>
            <section class="post-excerpt" itemprop="description">
              <p>I have been working in my pyjamas since more than two years ago. I mean by this that I have been working remotely from home. Now you may be thinking, I could never do that, and yeah, you are right, this kind of job is not made for everyone. It’s...</p>
            </section>
            <div class="post-meta">
              <time datetime="30 July 2010">30 July 2010</time>
<!--            <span class="post-tags-set">on <span class="post-tag-">, <a href="/tag/"></a></span></span>-->
            </div>
          </div>
        </article>
      
    </div>

    <nav class="pagination" role="navigation">
      
        <a class="newer-posts" href="/page2">&larr; Older posts</a>
      
      <span class="page-number">Page 1 of 2</span>
      
    </nav>


    <!-- 
     -->

</main>

      </div>
    </div>

    <!-- content end -->

    <!-- footer start -->

<footer class="site-footer">
  <a class="subscribe" href="/feed.xml"> <span class="tooltip"> <i class="fa fa-rss"></i> Subscribe!</span></a>
    <div class="inner">
      <section class="copyright">All content copyright <a href="/cdn-cgi/l/email-protection#751810351419131c105b161401">Alfonso Jiménez</a> &copy; 2004 - 2019 &bull; All rights reserved.</section>
      <section class="poweredby">Made in Barcelona</section>
    </div>
</footer>

<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  ga('create', 'UA-86858998-1', 'auto');
  ga('send', 'pageview');
</script>

<!-- footer end -->

    <script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="/assets/js/jquery.fitvids.js"></script>
<script type="text/javascript" src="/assets/js/index.js"></script>
<script type="text/javascript" src="/assets/js/readingTime.min.js"></script>
<script>
(function ($) {
  "use strict";
  $(document).ready(function(){

    var $window = $(window),
    $image = $('.post-image-image, .teaserimage-image');
    
      $window.on('scroll', function() {
        var top = $window.scrollTop();

        if (top < 0 || top > 1500) { return; }
        $image
          .css('transform', 'translate3d(0px, '+top/3+'px, 0px)')
          .css('opacity', 1-Math.max(top/700, 0));
      });
      $window.trigger('scroll');

      var height = $('.article-image').height();
      $('.post-content').css('padding-top', height + 'px');

      $('a[href*=#]:not([href=#])').click(function() {
        if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
         && location.hostname == this.hostname) {
          var target = $(this.hash);
          target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
          if (target.length) {
            $('html,body').animate({ scrollTop: target.offset().top }, 500);
            return false;
          }
        }
      });

  });
}(jQuery));
</script>



  </body>

</html>
