Leonardo numbers

Because Fibonacci numbers are quite abused in programming, a similar concept. My first impulse is to describe them in recursive way: But this is not very efficient to calculate them, as for each is calculating all the previous ones, recursively. Here memoization works beautifully Taking into account that it uses more memory, and that calculating the Nth element without calculating the previous ones is also costly. I saw this on Programming Praxis, and I like a lot the solution proposed by Graham on the comments, using an iterator. The code is really clean.

Compendium of Wondrous Links vol IX

Welcome back to this totally non-regular compilation of interesting reads. Enjoy! A Pixel Artist Renounces Pixel Art. A module of Python utilities aiming to complement the standard library. Boltons Named Pipes in Unix. Pipes are a really powerful tool. I’m each day more convinced that the biggest problem that an developer faces today is the internal expectations and unfair comparison. Productivity vs Guilt and Self-Loathing.   On secretly Terrible Engineers Curiously enough, in my current job, one of the first things my manager said to me was: “your interview was brilliant, but here’s a… Read More

ffind v0.8 released

Good news everyone! The new version of find (0.8) is available in GitHub and PyPi. This version includes performance improvements, man page and fuzzy search support. Enjoy!

Optimise Python with closures

This blog post by Dan Crosta is interesting. It talks about how is possible to optimise Python code for operations that get called multiple times avoiding the usage of Object Orientation and using Closures instead. While the “closures” gets the highlight, the main idea is a little more general. Avoid repeating code that is not necessary for the operation. The difference between the first proposed code, in OOP way and the last one The main differences are that both the config dictionary and the methods (which are also implemented as a dictionary) are not… Read More

John Siracusa’s OS X reviews

Today John Siracusa announced that he won’t be making more OS X reviews. Typically journalists or reviewers don’t announce that they stop doing something. They just stop doing it, and maybe explain it after someone asks them. But John’s reviews were something truly special, and a lot of people on the tech world has lamented the announcement. I think that the Mac community has always been quite vibrant and passionate, allowing detailed discussion. Crossing the line of obsession sometimes. In other tech worlds, the discussion is more cold and rational, even aseptic…. Read More


The importance of Spock as an icon of the XX century cannot be overstated. Let me go back for a second. When I was a child in Spain, access to Star Trek was pretty limited. There were no reruns of the original series. I think it only was emitted during the 70s in Black and White. The Next Generation was broadcasted with a four or five year delay. And it stopped for several years just at the end of the third season. It took me years to know what happened with Picard and… Read More

Compendium of Wondrous Links vol VIII

More great reads! About code creation It seemed like a good idea at the time. How tech decisions done at some point in time can have a big impact much much later. Unfortunately, this is unavoidable, developing software is based in dealing with imperfect information all the time. Fear Driven Development. Dealing with different languages is difficult in programs (and otherwise). Seven Laws of Sane Personal Computing. Great compilation of Python libraries that deserve to be widely used. Debug like Sherlock Holmes. One of my favourite ways of thinking on debug is: “Once you eliminate the… Read More

TV interface

Isn’t it quite absurd that we haven’t nail this yet? We recently heard about all the great advances in terms of image quality, 4K, bending screens… Yet controlling a TV feels clunky and awkward. Even worse, given the never ending increase in devices connected to the TV (DVDs, Blu Rays, AppleTVs, consoles…) the usage of different remote controls is painful, unless a Universal Remote is used. But even in that case, the process itself of selecting the activity is weird, for very common operations. For example, if you want to play a movie… Read More

Compendium of Wondrous Links vol VII

Here we go again… This time I’m loosely grouping them, it has been a while and there are so many things! The best programming advice I ever got, which actually is about the worst advice, being reverted. The social dynamics of code review. While code review is very useful, is also important to put the stress on the proper parts. As feedback in general, it needs to be constructive and tactful. The Future of Programming. This is an incredible way of giving a presentation, and the best of all, the form adds a lot to… Read More

Future as a developer and the ever changing picture

A few weeks ago I came by a couple of articles my Marco Arment that share the theme of the current status of accelerated change within the development community as a way of stressing up, and being difficult to be up to date. After all, one gets tired of learning a new framework or language every size months. It gets to a point where is not funny or interesting anymore. It seems like two different options are presented, that are available for developers after some time: Keep up, meaning that you adopt rapidly each new… Read More