The 8 Queens Problem with Arduino and Adafruit 8x8 Matrix display

Using an Arduino and an 8x8 matrix display from Adafruit (with I2C backpack), we display all the solutions to the classic 8-Queens problem (see http://en.wikipedia.org/wiki/Eight_queens_puzzle ) A solution to the 8 Queen problem is where 8 queens are placed on a chess board so that no queen can take any other queen. » @stormingrobots | youtube.com

21 de junio de 2012 · 1 min · 56 palabras · Nacho Cano

LEGO Turing Machine

This is a short documentary about the LEGO Turing Machine built by Jeroen van den Bos and Davy Landman at Centrum Wiskunde & Informatica (CWI), Amsterdam (Netherlands). They built it for CWI’s exposition ”Turings Erfenis” in honor of the centenary of Alan Turing’s birth on 23 June 1912. Alan Turing was a brilliant mathematician who helped define the theoretical model of the computer as we know it today. He was a visionary, one of the few people of his time who recognized the role the computer would play for humanity. The Turing Machine (1936) is an adequate model of a computer. It can do anything the computers of today or tomorrow can do. ...

21 de junio de 2012 · 1 min · 119 palabras · Nacho Cano

Code vs. power consumption

I’ve been wondering for some time whether the power consumption of an ATmega varies depending on the code it is running. Obviously, sleep modes and clock rate changes have a major impact – but how about plain loops? » jeelabs.org

16 de junio de 2012 · 1 min · 40 palabras · Nacho Cano

Linux: The 0.01 Release

”This is a free minix-like kernel for i386(+) based AT-machines,” began the Linux version 0.01 release notes in September of 1991 for the first release of the Linux kernel. ”As the version number (0.01) suggests this is not a mature product. Currently only a subset of AT-hardware is supported (hard-disk, screen, keyboard and serial lines), and some of the system calls are not yet fully implemented (notably mount/umount aren’t even implemented).” Booting the original 0.01 Linux kernel required bootstrapping it with minix, and the keyboard driver was written in assembly and hard-wired for a Finnish keyboard. The listed features were mostly presented as a comparison to minix and included, efficiently using the 386 chip rather than the older 8088, use of system calls rather than message passing, a fully multithreaded FS, minimal task switching, and visible interrupts. Linus Torvalds noted, ”the guiding line when implementing linux was: get it working fast. I wanted the kernel simple, yet powerful enough to run most unix software.” ...

16 de junio de 2012 · 1 min · 166 palabras · Nacho Cano

El Top 7 de dilemas que enfrentan los desarrolladores de hoy

Tu jefe lo quiere para ayer, pero más vale que cumpla con los standards de mañana. Los clientes quieren todas las características que se puedan imaginar, pero no te atrevas a confundirlos dándoles todos los botones que desee. Tus compañeros programadores quieren que documentes tu código, pero ellos simplemente responden ”tl;dr” (Too Long; didn’t read) a cualquier cosa que escribes. Así como la tecnología evoluciona, también lo hacen los dilemas que enfrentan los desarrolladores. Cada elección, desde la plataforma hasta el almacenamiento de datos, incluyendo a cuánto control darle a los usuarios, está cargada de preguntas. Y gracias a la nube, el crecimiento de la tecnología móvil y la acelerada vanguardia, pareciera como si el mundo de la programación enfrentara una nueva elección – y dilema – a un ritmo creciente. ...

16 de junio de 2012 · 1 min · 133 palabras · Nacho Cano

Sócrates y el efecto Dunning-Kruger

El efecto Dunning-Kruger se puede expresar de la siguiente manera: los peores trabajadores/estudiantes/participantes son los que menos conscientes son de su propia incompetencia. Toma su nombre de un estudio de 2003 que realizaron Dunning, Kruger y otros con estudiantes universitarios con respecto a los resultados de sus exámenes. Después los resultados han sido reproducidos en varias ocasiones, por ejemplo con estudiantes de medicina a la hora de evaluar su capacidad para realizar entrevistas de diagnóstico, con administrativos evaluando su rendimiento o con técnicos de laboratorios médicos calibrando su nivel de dominio del trabajo. ...

14 de junio de 2012 · 1 min · 95 palabras · Nacho Cano

La falacia del Programador Perdido

La semana pasada desayuné con un polémico artículo de Enrique Dans titulado ”El Programador Perdido”, en el que lamentaba la falta de buenos programadores en España. Programadores con cabeza y riñones suficientes para sacar adelante un proyecto ganador en una industria global y competitiva como Internet. Si quieres encontrar un buen programador, básicamente sólo tienes que hacer una cosa: pagarlo. Pero esa presunción –como las comparaciones con la supuesta calificación y estatus de los programadores extranjeros- es errónea y estereotipada. Después de más de 10 años trabajando en la industria del software, tanto en España como en eso que llaman Silicon Valley, yo conozco otra verdad. Una verdad incómoda. ...

12 de junio de 2012 · 1 min · 111 palabras · Nacho Cano

Client-Side vs. Server-Side Rendering

Yesterday Twitter announced that it was moving away from client-side rendering back to server-side rendering in order to improve page load time. Today I found myself having to defend my position that server-side rendering will almost always be faster. I figured I’d blog about it. I want to point out a couple things. First, I’m talking specifically about render performance and page speed. There might be other compelling advantages to thick-clients; I’m talking about performance. Secondly, I’m going to get on a high horse here and say that it worries me that developers think client-side rendering is faster. This is basic and fundamental knowledge about how the web and browsers work. Maybe I’ll be proven wrong. If I am, I’ll admit it. It’ll be embarrassing because it means that I don’t know the fundamentals. But I’ll be glad to have learned (which is why I blog). ...

4 de junio de 2012 · 1 min · 148 palabras · Nacho Cano

OAuth - Open Authorization Protocol

Cuando en 2006 los ingenieros de twitter estaban tratando de implementar OpenID para permitir a los desarrolladores de aplicaciones acceder a su API sin que los usuarios tuvieran que introducir sus credenciales en la propia aplicación, se dieron cuenta, por un lado, de que OpenID no era la solución que necesitaban y, más importante aún, de que no existía ningún estándar que permitiera hacer algo parecido. Comenzaron entonces a trabajar en la implementación de OAuth, que pronto fue apoyada por otras empresas como Google. Hasta que por fin, en octubre de 2007, se publicó OAuth 1.0. Aunque no fue hasta agosto de 2010 que no se aprobó como estándar RFC 5849. Pero, ¿cómo funciona OAuth y cómo soluciona el problema de que el usuario tenga que introducir sus credenciales en una aplicación de un tercero para acceder a otro servicio? ...

4 de junio de 2012 · 1 min · 142 palabras · Nacho Cano

Deuda técnica

¿Qué desarrollador de software nunca ha estado una semana programando a toda velocidad, casi sin saber que hace, ya que la fecha de entrega está cerca y todo tiene que estar terminado ”para ayer”? ¿Quién no se ha encontrado en la situación de saber que está programando una chapuza, pensando que otro día lo mejorará, y ese día nunca llega? ¿Quién alguna vez, al ver una porción de código fuente no ha exclamado indignado: ¡qué narices hace este código! o ¡quién leches lo ha programado!? A todo este código lo solemos calificar como chapuzas, apaños, ñapas, mierdecillas¦ Su problema es que, por lo general, se va extendiendo de forma exponencial y acumulándose a lo largo del desarrollo de un proyecto. Y en consecuencia tenemos como resultado un código fuente que es muy difícil de mantener, extender y reutilizar; y un aplicativo que funcionalmente tiene problemas. ...

4 de junio de 2012 · 1 min · 147 palabras · Nacho Cano