Alpha's Manifesto

A black and white figure's thought-hive

Failed experiments and what I’ve learned from them

Hey, I messed up but at least I learnt from it!

Failed experiment

In a preparation for a post that I’m going to write, I’ve prepared some code examples, and of course, making sure they work correctly. I spent nearly all of last week trying to find out what was wrong with my code, and when I did it, it was something really stupid. I don’t consider myself very stupid, so why did this happen? Let’s reflect a bit.

(Read more →)

Death to Singletons!

Singleton.Instance.SelfDestruct();

Evil Singleton

No, I’m not talking about those that can’t find someone to be with. You’re ok in my book.

One of my favorite question to ask at technical interviews is “Can you tell me advantages and disadvantages of the singleton pattern?” I get varied responses, but while almost everybody can think of the advantages, nobody mentions the problems that come along with it. I’m going to quickly explain what singletons are and then roast them good.

(Read more →)

Testability vs. simple design

Testing requires decoupling

Shooting down dependencies

You may know I’m a proponent for simplicity. I believe that if a particular feature can be achieved with a single if statement, then that’s all that needs to be done. I’m also a proponent of testability, that all code should be easily testable so that we can make sure that it works. As it turns out, these two don’t usually go hand in hand. (Spoiler alert: that’s not true.)

(Read more →)

Faceted searches with MongoDB and mongoose

Generating facet search results

mongo-faceted logo

Some people in Latin-America may remember an old Yupi ad where a woman was complaining on how difficult using the internet was. “It’s so difficult. So complicated! There must be something better.” (In Spanish, of course.) Cheesy as it sounds, Händel Messiah’s “Hallelujah” sonorously invaded the screen. Don’t believe me? See for yourself.

That’s how I felt when I was investigating what’s the best approach to achieve faceted searches in MongoDB. But I found something better. Let me show it to you.

(Read more →)

Desacoplando $scope

Tomando la sopa por el mango de la cuchara

$scope soup

Muchos desarrolladores de AngularJS dependen de $scope para la implementación y testing de la lógica de sus controladores. Esto genera problemas de performance y de diseño, pero gracias a una serie de artículos y una prueba de concepto, he puesto en práctica en what-now lo que podría ser la solución.

(Read more →)

What-now: graficando dependencias

No se resuelve con un par de líneas

what-now-dependencies

Desde hace un par de semanas estoy trabajando en lograr que el proyecto de what-now grafique dependencias entre tareas: si  una tarea depende de otra, una línea debería conectarlos. Esta tarea básica fue muy simple, pero lo desafiante fue lograr que se graficaran de forma que las líneas se cruzaran entre ellas lo menos posible.

Aquí contaré sobre este logro y sobre lo que aprendí en el proceso.

(Read more →)

Comentarios sobre The State of Responsive Web Design

Opiniones propias sobre muchos problemas mencionados

Acabo de terminar de leer un artículo largo y genial de Smashing Magazine, llamado The State of Responsive Web Design. Como el título lo indica, habla sobre el estado actual del diseño de webs responsive y sus pros y contras. Mucho mejor aún, habla de los distintos problemas a superar y la forma en la que la tecnología de hoy nos permite hacerlo. Pero no es una introducción al tema, sino que abarca todos esos problemas que aún no tienen soluciones definitivas. Totalmente novedoso.

Sin embargo, como bien dicen al final, esto no es ni el comienzo, y sobre las cosas mencionadas tengo mucho que mencionar. Quería dejar mis comentarios por aquí.

(Read more →)

Auriculares y conversores digitales-analógicos

La búsqueda del sonido perfecto

Siempre fue de mi filosofía que si uno pasa mucho tiempo en una determinada actividad, debe hacer toda la inversión posible para que sea muy disfrutable. Es muy parecido a la Ley de Amdahl: siempre conviene invertir en mejorar las partes más grandes y, como aconsejan muchos sistemas de productividad, solucionar los problemas más graves primero.

En mi caso, la cuestión era relativa a la música. Prácticamente todo el tiempo estoy escuchando música, así sea mientras trabajo, mientras me divierto, mientras leo algo, o simplemente de fondo mientras hago algo más. Tener una buena experiencia mientras escucho música iba a ser, entonces, para mi un cambio muy grande en la forma en la que puedo apreciarla.

Para aquellos que no conozcan mis gustos musicales, se trata de estilos de música en donde realmente se hace un uso continuo de la banda de frecuencias disponibles. Pasando por el heavy metal y el metal sinfónico, terminando en el power metal, el electro dark y el dubstep. Este es el tipo de música (aunque no los únicos) en donde ser escuchados con buena y con mala calidad dejan ver dos obras completamente distintas, y como siempre digo “hechas para ser escuchadas a alto volumen”.

(Read more →)

Universal Principles of Design

Referencia de conceptos básicos de diseño

Universal Principles of Design es un libro más que recomendable sobre conceptos de diseño en general: no se limita ni al software ni al diseño de productos físicos. De hecho, ni siquiera se centra tanto en el diseño como en los conceptos que están detrás de los buenos diseños, a quienes les da la atención principal.

(Read more →)

Responsive Web vs. Mobile Web

¿Qué son y cuándo usar cada uno?

Pantallas y tamaños

Ahora que el mundo web se ha acelerado de forma increíble, CSS3 y HTML5 son más y más poderosos cada día. Una de las características que trajo CSS3 son media queries, que habilitan un nuevo tipo de sitio llamado responsive web. ¿Qué es esto y cómo nos afecta?

(Read more →)