Alpha's Manifesto

A black and white figure's thought-hive

ATPS: Angular, Protractor, Travis, SauceLabs

Quick guide to get these bad boys cooperating

Juggling with continuous integration

A few days ago I got the combination of Angular + Protractor + TravisCI + SauceLabs working together. There are a few quirks into making this work, but nowhere I found a comprehensive description to jump all the obstacles. Here I’ll describe what I did to get there.

(Read more →)

MOOC: Android Dev Part 1

That little green trash can

Android

Yes, I continue to go on courses. Now I just finished the Android Development Part 1 (or “Programming Mobile Applications for Android Handheld Systems: Part 1”), dictated by the University of Maryland.

As usual, let me give you a quick review of what it was about, what you need to get into it and what you can get out of it.

(Read more →)

How TDD pays off

A success story from the side of the doubtful

Software engineers, amirite? They keep blabbing about this fancy-pantsy weird wibbly-wobbly stuff nobody understands and they just want to keep things complicated. They want to test things even before they are done and then develop the app. Are they insane? And it even takes more time, so it’s a waste of money.

Well, my little friend-that-does-not-adhere-to-software-methodologies, they are right on what they do. And it does pay off. Let me tell you why.

(In here also: an update on the mongo-faceted project.)

(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 →)

Ember.js: queueHttpResponder

Solucionando incompatibilidad entre httpResponder + Ember 1.4.0+

Hace un tiempo encontré una incompatibilidad bastante grande entre los sistemas de Ember.Testing y httpRespond, que impedían a muchos programadores testear sus sistemas de forma automática sin necesidad de un servidor de pruebas. Más adelante explicaré qué fue lo que generó este problema, por qué es un problema grave y el workaround que trabajamos con algunos colegas y algunos miembros del equipo de Ember.

(Read more →)

Flujos de trabajo en git

Los más comunes y el historial de cambios que generan

git tree

Desde la última vez que dí una actualización sobre what-now ha pasado un tiempo considerable. Mi intención original era ser más consistente con estas actualizaciones, a modo de diario de desarrollo, pero varias cosas me detuvieron. Por un lado no quise convertirme en spam o publicidad de un producto que ni siquiera vale la pena, y por otro lado, no siempre tengo algo interesante que contar.

Ahora sí lo tengo, de forma que procederé a contar qué aprendí en estos últimos meses, comenzando por los flujos de trabajo de git.

(Read more →)

Ember.js

Trabajando con el hamster de JavaScript

Ember

En los últimos meses he estado trabajando con Ember.js, una experiencia nueva para mi. EmberJS es de esos frameworks únicos porque tienen una visión propia de cómo debería funcionar una aplicación, y si bien esto tiene sus desventajas, es ventajoso en otros aspectos también.

A continuación contaré como fue este encuentro, y un vistazo general a cómo se estructuran las aplicaciones en EmberJS.

(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 →)