Alpha's Manifesto

A black and white figure's thought-hive

Do androids dream of electric sheep?

Sobre las sutilezas de ser humano

Sheep

Tras haber visto Blade Runner que, desafortunadamente, nunca había visto, me produjo curiosidad la novela que le dió lugar. La película me generaba la sensación de todo un trasfondo que nunca se había mencionado, lo cual me daba a pensar sobre muchos elementos que podrían haber sido profundizados pero que, como muchas adaptaciones al cine, no terminan formando parte del producto final.

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

Flatland

A romance of many dimensions

Flatland CoverAyer terminé de leer Flatland, A Romance of Many Dimensions, de Edwin Abbott. Traducido al español como PlanilandiaUn Romance de Muchas dimensiones, es una obra prácticamente clásica entre los iniciados al mundo de la aritmética, geometría y la física. Más aún, le encontré muchos otros significados que en conjunto la hacen no sólo ilustrativa, sino muy profunda.

Planilandia nos retrata la vida en un reino homónimo a la novela, con mucho de sus historias, sus costumbres y su organización social. Todo está descripto desde el punto de vista de un cuadrado, que es alguien semi-burgués. No se trata de un noble ni se trata de alguien de clase baja, sino una clase media aceptable. Este cuadrado entonces nos relata su historia personal de lo que le ocurrió para dar un vistazo al mundo de cero, una, tres y cuatro dimensiones.

La redacción de la historia es muy atrapante, variando la velocidad de los eventos para darnos detalles en los puntos históricos y avanzar rápido cuando la tensión sube. Todo está muy bien explicado y todo tiene su razón de ser, permitiendo que nos identifiquemos de forma correcta con cada aspecto de la sociedad planilandiense.

Y justamente, ese es el otro punto que le veo mágico en cuanto a su profundidad: la historia presentada no es puramente un relato físico y matemático, o de historia de creencias y teorías, sino una crítica social muy poderosa. La sociedad de Planilandia cuenta con una cantidad de reglas que pueden parecernos absurdas, pero alcanza pensar sólo un poquito para comprender que esos aspectos están en nuestra propia humanidad. Como tal, el libro es una buena crítica de muchos valores que deberían revisarse, al sentirnos descontentos de lo que ocurre en la historia, también estamos cuestionando en cierta forma los valores de nuestro mundo presente.

FlatsLa única equivocación seria y válida que pude ver en contra del libro es que aparentemente nuestro personaje cuadrado es algo misógino. El mismo prefacio de la edición que leí ataca este tema y aclara que por un lado, en la época de Abbott esto era algo común y simplemente parte de la sociedad. Y, por otro lado, no podría cambiarse esto en el realato por el gran cambio que significaría: dejaría de ser esencialmente la misma obra. Como tal, le echan la culpa al cuadrado de ser algo sexista y se sigue adelante.

Fuera de ese detalle, la historia nos permite, a través del absurdo, considerar hechos como la separación de clases, la santidad de los rangos esclesiásticos, el sexismo, el racismo, la tolerancia, la política, la religión, la posición de la ciencia, y por sobre todo, que comprender algo no siempre se trata de tener nuevas razones, sino nuevas formas de pensar. Lo considero una obra muy buena, atrapante e imprescindible.

Le doy 5 zorrinitos, en forma de estrella, que seguramente habrían sido sentenciados a muerte.

Soy un zorrinito irregular.

The Lean Startup

Cómo los entrepeneurs de hoy usan la innovación continua para crear negocios exitosos

The Lean Startup es no sólo el título del nuevo libro de Eric Ries, sino además el nombre del movimiento que él inició intentando reestructurar la forma en la que se ve al entrepeneurship y a la innovación dentro del mundo que vivimos. Este movimiento tiene su sitio principal en el sitio de The Lean Startup.

The Lean Startup

Quizá más conocido por ser uno de los co-fundadores de IMVU, Eric Ries, quien es activo en su blog Lessons Learned y en su cuenta de twitter, intenta con este libro desmitificar al proceso de las startups y a toda la especulación que rodea al mundo de los entrepeneurs, y exponer procesos y maneras en la que se puede tratar con la gran incertidumbre en una startup.

Eric cuenta en su libro que las startups pueden existir en varios entornos distintos, incluso en grandes organizaciones, pero todas tienen algo en común: intentan innovar en entornos con gran incertidumbre. En base a eso, y en base a las historias que se han escuchado de éxitos, él nos cuenta cómo evitar ser uno de los tantos fracasos (esos de los que nunca se cuentan anécdotas) e introduce herramientas para trabajar y disminuir esa incertidumbre, utilizando toda la rigurosidad del método científico en cuanto a resultados, procesos y producto.

Muchas de las ideas y herramientas que él introduce no son nuevas — y él así lo reconoce — pero unificadas pueden ser una forma poderosa y segura de enfocar el trabajo a resultados, y de saber que vamos por el camino correcto, algo que debe saberse cómo asegurar. Su aporte es justamente esa: lograr integrar varias metodologías de campos dispares para tener métodos fiables cuando el ambiente de trabajo no lo es.

Everything that does not contribute to the final result is a form of waste.

Herramientas como lotes pequeños (small batches), cajas de arena (sandboxes) para experimentación, métricas segmentadas, la regla de los cinco “porqués” (the five Whys), reuniones de decisión de cambio vs. perseverancia (pivot or persevere meetings) y otras tantas que él nos explica cómo aplicar, y nos muestra como se pueden utilizar en una buena cantidad de industrias. Muchos ejemplos vienen del mundo del software, muchos de la industria automotriz, y de áreas más variadas como la educación, así asegurando que estas son útiles de forma multidisciplinaria. Otros ejemplos vienen de startups pequeños y otros de empresas grandes o gobiernos. Historias interesantes y cautivadoras sobre como IMVU llegó a ser cómo es hoy desde el fracaso que fue en sus primeros años, cómo Groupon comenzó con solo un blog hasta convertirse en la empresa multinacional que hoy conocemos, cómo Toyota quiso cambiar el mundo con técnicas anti-intuitivas para la industria en la que compiten y tantas otras historias forman parte de las enseñanzas basadas en casos reales y con lecciones que aprender.

Executing the wrong plan correctly from start to finish is the perfect way to achieve failure.

Este, a ser sincero, es un muy buen libro y deja claro un método muy simple que puede aplicarse en prácticamente cualquier aspecto de nuestra vida. Sólo le critico ser un poco repetitivo, en pos de asegurarse que el lector comprenda la importancia de algunas prácticas, y dejar cuestiones abiertas a la discusión (por ejemplo, el manejo del conocimiento y del aprendizaje en grupos multitudinarios). Sin embargo, este ensayo es un comienzo en este movimiento aún inexplorado, y como tal, es ya un primer paso muy avanzado.

Le doy 4 de 5 zorrinitos, bien ganados.

Soy un zorrinito entrepeneur.

La Guía del Autoestopista Galáctico

¡No se asuste!

Guía del autoestopista Galáctico

¿Qué puedo decir realmente que sea nuevo de esta obra semi-clásica? Casi nada, excepto que acabo de terminar de leer este libro. Fue un libro y una historia realmente cortita, y de un tipo de ciencia ficción que yo no conocía.

Digamos, estoy algo acostumbrado a la ciencia ficción dura, en donde los elementos que hacen de este mundo un mundo más avanzado están explicados con tan nivel de detalle que uno deja el libro por momentos y se pregunta por qué no tenemos de esos ahora. Desafortunadamente, mis historias no reflejan eso. Douglas Adams fue para mi la primera vez que me alejé un poco de eso y encontré una ciencia ficción algo más light, compensando con algo de suspenso y mucha comicidad.

Desde las situaciones bizarras a los personajes excéntricos y desalineados, esta historia realmente es de culto. Estoy esperando a ver la película dentro de poco y redimirme un poquito más con la historia del cine y la lectura (porque vengo algunos milenios atrasados), pero esta fue una buena experiencia de redención.

No por ser light en sus explicaciones la historia deja de ser impreisonante en sus conceptos, puesto que nunca se juega nada menos que la historia del universo, independientemente del personaje que esté involucrado. Y como historia, tiene cosas que nos dejan. Una de mis frases favoritas del libro, en donde unos filósofos se quejan de la creación de la máquina más inteligente jamás construida:

¿Qué sentido tiene que nosotros nos quedemos levantados casi toda la noche discutiendo la existencia de Dios, si esa máquina se pone a funcionar y os da su puñetero número de teléfono a la mañana siguiente?

Realmente fue disfrutable, y apunto a leer más historias de Adams en el futuro.

Le doy 4 (4.5 podríamos decir) de 5 zorrinitos, bien ganados.

Soy un zorrinito que sabe en dónde está su toalla.

jQuery Novice to Ninja

Manos a la obra desde lo más básico

jQuery Novice to Ninja

Acabo de terminar de leer el libro jQuery Novice to Ninja, de la editorial SitePoint y de los autores Earle Castledine y Craig Sharkie. Debo decir que el libro ha sido una buena elección de lectura.

Para empezar, el libro asume que el lector tiene pocos conocimientos de jQuery y de JavaScript en general, lo que hace que cualquiera, con niveles de conocimientos básicos de programación web, pueda hacer utilización de él. A pesar de eso, el libro no es lento en la forma en la que va presentando conceptos, y para aquella gente que no está divertida con la teoría y quiere poner manos a la obra: el libro está completamente planteado desde un punto de vista práctico y manos a la obra. De hecho, el libro viene con código fuente gratuito que podemos descargar para que se convierta en los ejercicios que el mismo libro propone, dándonos en los capítulos las soluciones y las explicaciones, y permitiéndonos replicar para asegurar nuestro conocimiento.

Pensé al principio que comenzar desde conceptos básicos sería un mal signo, porque seguramente estarían permitiendo malas prácticas filtrarse para explicar determinadas características, pero este libro probó que yo estaba equivocado: siempre se refuerzan las buenas prácticas (y se explica por qué) y el libro hace un esfuerzo considerable por mostrarnos la buena importancia del progressive enhancement, del cual seguramente escribiré más adelante.

Efectivamente, el libro termina en las facetas más avanzadas de jQuery, incluyendo Theming y Plugins. A estos dos les dedica muy poca longitud y detalle, en comparación al resto de las temáticas. Plugins fue cubierto, de forma implícita, en el resto del libro cuando hablaba de namespacing y scoping (también buenas prácticas) y theming fue algo que básicamente no se tocó. También se cubrió ligeramente jQuery Mobile. Estas últimas parte fueron un poquito decepcionante por lo corto de las explicaciones, pero aún así estuvieron presentes.

Notesé que el libro es sobre jQuery y no sobre JavaScript, por lo que si esperaban ver patrones avanzados de JavaScript y modularización, programación funcional, currying y cosas así… este no es su libro. Aún así, para alguien que se dedica a desarrollo frontend y especialmente alguien que quiere entrenarse en esta librería, utilizando buenas prácticas y manos a la obra, es un libro esencial.

Le doy 5 zorrinitos.

$(‘#zorrinito’).soy();

Colección de libros sobre UX

Libros obligatorios de lectura sobre UX

Otra de las joyitas rescatadas de los foros de User Experience, es la pregunta sobre libros de lectura obligatoria de user experience y diseño de interfaces. El listado es más que completo y sorprendentemente vasto.

Este es el listado de libros, según la cantidad de votos de la respuesta que lo contiene (asumo que podríamos decir, más aceptado a menos aceptado):

Más que suficiente para entrenarnos en este aspecto.

Soy un zorrinito lector.

Hagakure

El Camino del Samurai

Terminé con mi lectura actual, en este caso, el Hagakure. Hagakure Kikigaki (葉隠聞書) es el libro de origen japonés que habla, desde uno de los miembros del clan Nabeshima, sobre cuál es el camino del verdadero Samurai, basándose en una recopilación de historias y anécdotas que llegaron a Yanamoto Tsunetomo, siendo él mismo un samurai.

El libro en sí no tiene una estructura particularmente fácil de seguir, pero de alguna forma deja leer entre líneas cuál es el mensaje del camino del Samurai. En muchos punto las anécdotas recavadas se contradicen una a otra, y no tiene demasiado contexto sobre ellas. Esto significa que estaríamos mejor leyendo una versión anotada, seguramente con aclaraciones culturales e históricas que provean ese contexto necesario.

Yo comentí la equivocación de leer una versión que encontré libre en internet, específicamente una que ofrece el sitio de JudoInfo en su sección de descargas. Esta versión en particular, si bien está formateada de una forma aceptable, es una muy mala traducción al inglés del texto original, y en muchos puntos es simplemente incomprensible. Como extra, se convierte en una lectura bastante cansadora, por las gramáticas raras, la mala utilización de ciertas palabras y la repitición extrema de otras, la poca separación de conceptos y los textos largos de hombres matando a otros sin razones claras. Nuevamente, todo esto puede solucionarse con una buena traducción y una buena edición.

Me agrada mucho lo que el libro tiene que decir sobre el camino del samurai. Yo sabía que el código de honor era muy estricto, pero no había imaginado que llegaba a este punto, y de hecho, si uno toma la enseñanza básica de vivir sólo el día del presente buscando ser útil a su amo, el código de honor fácilmente se desprende de esas enseñanzas. Cometiendo el pecado de sobre-simplificar el significado del camino del Samurai, el hecho de considerar la muerte como algo inminente y determinarse a obtener resultados inmediatos es una forma de vida que estos hombres seguían.

Lo encuentro como una lectura muy interesante, y esperaba que dejara en mí una marca especial. No fue tan profunda por la mala experiencia de la lectura, pero el principio fundamental ha quedado en mi persona. Ciertamente, es una lectura que recomendaría.

Le doy 4 de 5 zorrinitos.

Soy un zorrinito samurai.

Web Application Design Patterns

Una librería de referencias de patrones de usabilidad

20120221-041526.jpgBueno, son las 4 AM y no puedo dormir. Acabo de terminar de leer el libro que venia leyendo lentamente desde hace tiempo ya, llamado Web Application Design Patterns, de Pawan Vora.

El libro en sí tiene el título muy bien puesto, porque realmente de eso se trata. Es una colección de patrones de diseño orientados a la usabilidad y la interfaz gráfica de las aplicaciones web. Para los que ya lo sabemos, recordaremos que los patrones son, como su palabra lo indica patrones. Son características en común y no soluciones definitivas ni detalladas de como aproximarse a una situación en particular.

Hablando de patrones en software, generalmente se los identifica de una forma muy común y muy particular. Cada patrón tiene un nombre que lo identifica, un problema particular que resuelve y una descripción de la solución básica a la que aproxima. La compilación de patrones que Vora hizo en este caso hace muy buen tributo de ese esquema y lo mejora en varios aspectos.

El libro se divide en varios capítulos que atacan temas comunes que merecen la atención en el desarrollo y la usabilidad de aplicaciones web, los cuales son:

  • Formularios
  • Autenticación de usuarios
  • Página principal de la aplicación
  • Navegación
  • Búsqueda y filtrado
  • Listas
  • Rich Internet Aplications
  • Aplicaciones Sociales
  • Internacionalización
  • Accesibilidad
  • Diseño visual
  • Librerías de patrones

Le doy crédito especial por la inclusión de esa última sección, en donde se definen las características que una librería de patrones (como este propio libro) debería tener, y se basa en varias librerías actuales en uso y recopiladas anteriormente por estudios al respecto.

En todas las secciones se muestran ejemplos, tanto de implementación como de uso real de esas características. Una gran mayoría de las veces se fundamentan los beneficios de estos patrones con estudios (las referencias están todas incluidas y detalladas al final del libro). Al mismo tiempo, están todos los conceptos explicados de una forma lo suficientemente detallada como para ser comprensible, lo suficientemente abstracta como para ser reusable y lo suficientemente clara como para ser entendida por no-programadores o diseñadores.

Una distinción que en este libro no se hace y me gustaría agregar como apreciación propia es que los patrones, como ya comenté, son soluciones a problemas determinados. No hay que confundirlo con buenas prácticas que, aunque cercanas, siempre conviene aplicarlas. El caso de los patrones es distinto, y de hecho, parecería ser imposible aplicar la totalidad de los patrones a cualquier sitio web. Ni siquiera los que están entre los ejemplos (Google, Apple, Mint, Facebook, Yahoo!, Basecamp, eBay, Amazon, y una larga lista de etcéteras) cumplen con la mitad de los patrones mencionados.

Volviendo al libro, lo recomiendo mucho como un libro de referencia. Está redactado como tal y no es una lectura ligera, pero vale la pena. 4 zorrinitos.

UPDATE 22/02: Tras pensarlo un poco más me dí cuenta que este libro no cubre una característica que si bien no está muy relacionada con la usabilidad, sí está relacionada con la experiencia del usuario, y ciertamente son patrones aplicados en web applications. Lo encerraría bajo la categoría de Performance, e incluiría cosas como caching de nivel aplicación, caching de nivel usuario, AJAX, conexiones persistentes, preprocesamiento de resultados. Son todas cosas que aplican como patrón a resolver un problema en particular en una situación en particular, siendo lo suficientemente abstractos como para ser aplicados en una variedad de casos. Posiblemente sería más difícil encontrar ejemplos (porque muchos sistemas no cuentan cómo es que funcionan por dentro), pero creo que sería bueno haberlos cubierto.

Soy un zorrinito usable.

Pro ASP.NET MVC3 Framework

Pro ASP.NET MVC 3 Framework by ApressAcabo de terminar de leer Pro ASP.NET MVC3 Framework, un libro de Apress, escrito por Adam Freeman y Steven Sanderson. En pocas palabras, el libro es muy bueno, no exageradamente detallado pero buena aproximación para quiénes quieran ganar un nivel principiante/intermedio en la plataforma. Determinadas características han quedado afuera, y por supuesto, detalles de la implementación del framework también. Eso habría sido material para una buena cantidad de otros libros. Este en particular está muy orientado al ejemplo práctico, y es ideal para afianzar teoría con pequeños snippets de código que la hacen práctica. Cubre algunos aspectos relacionados a esto para darle un buen contexto y es una buena opción por su precio, pero no es suficiente para el que quiera entrar demasiado profundo en los interiores de la plataforma.

El libro se divide en tres grandes partes. La primera parte, llamada Introduciendo ASP.NET MVC 3, es una explicación muy a vuelo de pájaro de qué es MVC, cómo es la aproximación de Microsoft a él y unos ejemplos básicos para demostrar la organización de una aplicación MVC. Se habla un poco de inyección de dependencia, haciendo uso de Ninject, pero su aplicación es de lo más básica y no justamente asociada a las buenas prácticas, aunque como primer paso, es bueno. Habla de DDD y de TDD, ayudado de Moq, desde un punto de vista tan superficial que no hacen impacto en el resto del contenido, pero siguen estando ahí.

La segunda parte del libro, ASP.NET MVC3 en Detalle, comienza a hablar del sistema de ruteo, de cómo se enlazan a él los controladores y las acciones, el uso de filtros (casi tocando AOP para controladores, pero no mencionándolo), uso de controladores propios, autorización, generación de un engine propio de vistas, uso de helpers, vistas parciales, acciones hijas, templates de modelos, binding de modelos, validación, AJAX, y el uso de jQuery. En estos últimos dos puntos debo hacer una aclaración: la forma en la que se implementa AJAX es todavía muy Microsoft-oriented, del estilo de hacer una receta y que todo funcione de forma mágica. Se queda muy corto para customizaciones y aplicaciones reales con lógica de cliente compleja, pero recordemos que este libro es sobre ASP.NET MVC, no sobre JavaScript. Aún así, es un buen comienzo para profundizar en otro libro.

La tercera y última parte, Entregando Projectos ASP.NET MVC 3 Exitosos, cubre varios puntos extras no exactamente de a la plataforma pero relacionados. Uno de ellos es la seguridad. Se le dedica un capítulo entero a determinados tipos de ataque y forma de evitarlos. Como los otros temas tangenciales, no es una guía definitiva, pero un buen punto para comenzar. Otro capítulo está dedicado a la autenticación y la autorización, sin mucho detalle y sin mucho ejemplo esta vez, pero pasos básicos que nos permiten conocer varias opciones distintas para las distintas situaciones que debamos afrontar. El último capítulo de esta parte se enfoca en el deployment y la generación de paquetes de instalación. Nuevamente, no contiene mucho detalle.

El libro en general es bueno como introducción y bueno como ejercicio de aprendizaje. Es detallado en el comienzo y light al final, con lo cual sus 836 páginas en realidad son un resumen de mucho más que podría cubrirse. Es un balance apropiado, con lo cual recomiendo su lectura. Le otorgo unos 4 zorrinitos.