Lo que no se sabe que no se sabe
Manejo del conocimiento, parte 2
Temo por cualquiera atrapado entre lo que sabe y lo que todavía no sabe que no sabe.
– Cecil, Pilot (Welcome to Night Vale)
Tiempo atrás hice un post sobre consejos que yo tenía para iniciarse en la práctica de la programación, pero sobre aspectos que no tenían que ver con la tecnología. (“Consejos para un no-programador”). Hoy, uno de esos conceptos volvió a mi recargado, y quisiera elaborar sobre él: no saber que no se sabe.
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.
Flujos de trabajo en git
Los más comunes y el historial de cambios que generan
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.
Ember.js
Trabajando con el hamster de JavaScript
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.
Productividad: no cortes la cadena
Las técnicas de John Resig y mis resultados
Hace mes y medio (uf! cómo vuela el tiempo), Andrés Mochini compartió un artículo con la técnica de productividad del mismísimo John Resig, la famosa técnica de comenzar un hábito para los proyectos personales y no abandonarlo. Prometí probarla y ver qué tal me acomodaba, y aquí están los resultados.
Desacoplando $scope
Tomando la sopa por el mango de la cuchara
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.
What-now: graficando dependencias
No se resuelve con un par de líneas
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.
Updates what-now: deployments automáticos en Heroku
La travesía y el resultado final
Desde hace un tiempo estoy intentando lograr que mi aplicación what-now se instale automáticamente en Heroku ante cambios realizado en su código. Este artículo cuenta sobre la travesía de descubrir por qué no me resultó tan simple como uno esperaría, y cómo terminó el proceso final en una manera que me resultó aceptable. Creo que es un buen resultado para reutilizar en otros proyectos, y tanto mejor que algunas recomendaciones que he visto por ahí.
Presentando: What now?
A todo-list with a twist
Como excusa para probar d3.js, yeoman, travis, heroku, y con el propósito de hacer algo interesante, me propuse el desarrollo de what-now, un listado de tareas para hacer (típico to-do list) pero con un desafío extra: mostrar las tareas dependientes de otras y mostrar el camino crítico para la resolución del “proyecto”.
Explicaré aquí mis investigaciones hasta el momento, mi progreso, el plan para más adelante y lo que he encontrado.
ng-pattern-restrict
Limitando la entrada del usuario según una RegEx, AngularJS style
En una situación en particular, necesité limitar los valores que un usuario puede ingresar en un campo HTML, para evitar que pudieran ingresarse valores incorrectos. Si bien esto no es recomendable desde el punto de vista del UX, eso es lo que yo necesitaba (requerimiento). Pensé en desarrollar un componente genérico que hiciera esto por mí, y así nació ng-pattern-restrict, para AngularJS.
Aquí tendrán más información de cómo utilizarlo, cómo funciona y en dónde obtenerlo.