Alpha's Manifesto

La madriguera de una insignificante figurita blanquinegra.

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.

Naked password

yeaaah, venga esa complejidad!

De los rincones recónditos de User Experience en StackExchange y una pregunta de cómo incitar a los usuarios a poner passwords fuertes, me entero de la existencia de Naked Password, un plugin de jQuery que en sitios informales (muy informales) incentiva a los usuarios a usar passwords complejos, de forma… digamos… “natural”. Pueden probar el demo en su misma página.

Dicho sea de paso, otras buenas respuestas fueron:

Soy un zorrinito de poca complejidad.

Link del día: UI Layout Plugin

Del mundo de jQuery nos vuelve a caer un plugin de buena utilidad, bajo el nombre de UI Layout Plugin. Este plugin nos permite manejar dinámicamente el layout de nuestra página, permitiendo interacciones complejas o pantallas con mucha información para ser mostradas de forma dinámica.

Está claro que no siempre esto es deseable, pero para esos momentos en donde la interfaz debería complicarse para permitir variadas acciones sin interrumpir el curso normal de lo que estaba pasando, quizás hasta permitiendo una interacción rica y compleja antes de continuar con el intento original, incluso sin perderlo de vista, imagino que ese es el uso más interesante que este plugin nos puede ofrecer.

Soy un zorrinito modificable.

Link del día: Documentación jQuery extra-oficial

Me encontré con dos fuentes de documentación extra-oficial de jQuery, con lo cual, por supuesto, pueden estar desactualizados y hasta incorrectos. Pero lo interesante de ellos es que nos ofrecen una navegación un poco distinta que la que la documentación original nos ofrece.

Es el caso, por ejemplo, de Visual jQuery (actualmente en 1.2.6), que nos permite navegar la documentación de forma jerárquica, sin perder el nivel de dónde estábamos. Además, encontré que es muy orientado a ejemplos, con lo que es fácil llegar al punto de lo que hace cada cosa y cómo se utiliza.

jQAPI es un caso parecido, y parecería que la navegación es aún más fácil en este caso, incluyendo búsqueda HTML5 y todo. Me pareció que este tiene explicaciones más detalladas y ejemplos más completos.

Soy un zorrinito javascript.

Link del día: Videos Adaptables

De la misma forma que hace poco hablamos de Adaptive Images, hoy tenemos una propuesta parecida para videos, llamada FitVids (también de parte de la gente de CSS Tricks). Más que una configuración del lado del servidor, FitVids se trata de un plugin de jQuery que nos permite hacer el tamaño de los videos fluidos, ajustados al máximo de su contenedor, permitiendo que las cajas de los videos sean también fluidos con el diseño de la página.

Hay un video de demostración, y mejor aún, la misma página es la demostración de su funcionamiento, en donde podemos cambiar el tamaño de la ventana y ver cómo el video se escala de forma proporcional. Haciéndolo un par de veces logré hacer crashear el plugin de Flash en Chrome, pero estoy seguro que eso es un problema relacionado con el navegador y con el plugin, no con el funcionamiento del plugin en sí.

Según cuentan, ya soporta una buena cantidad de proveedores de video populares (por supuesto, Youtube y Vimeo son los dos primeros de la lista), con lo cual ya debería ser útil para el 99% de todos nosotros.

Soy un zorrinito adaptativo.

Link del día: jQuery File Upload

Me crucé con este plugin hace tiempo y lo quería probar pero no he tenido la oportunidad de hacerlo todavía. Este plugin envuelve básicamente toda la funcionalidad de subir archivos a un servidor, mostrar barras de progreso, permitir drag & drop, aparte de la clásica búsqueda de archivos desde cuadros de diálogo, selección múltiple y sin usar Flash.

También: posibilidad de cancelar el upload, preview de imágenes, formulario estándar si no hay JavaScript habilitado, extensible, y por supuesto, open source.

jQuery File Upload parece ser una de esas joyitas que nos dan un problema muy común ya solucionado.

Via Creativos Online, y alguien que lo compartió en Google Reader (perdón, pero ya no sé quién fue!).

Soy un zorrinito con soluciones.

Link del día: Script Src

Sacando esto del cajón de las aplicaciones que no hacen nada pero son útiles, me encontré a ScriptSrc, una aplicación que mantiene las últimas versiones a varios frameworks y librerías comunes, como jQuery, mooTools, extJS, YUI, etc. Por supuesto, los scripts no están alojados en este propio servidor, sino que ellos nos dan el link al CDN correspondiente que lo aloja, permitiéndonos linkearlo directamente.

Y aunque hay un poco de discusión sobre si realmente conviene usar CDNs o mejor archivos pequeños en nuestro propio host, hay ciertas ventajas y desventajas. Las ventajas son ineludibles, las desventajas no lo son tanto.

Soy un zorrinito distribuido.

Link del día: JSONSelect

Para aquellos que hayan trabajado con jQuery (o con otras librerías JavaScript) sabrá que la sintaxis para usar los selectores es prácticamente algo mágico, que hace muchísimo más simple nuestro trabajo.

Alguien pensó que sería muy buena idea poder seleccionar datos en esa forma desde una estructura en JSON y, justamente, creó JSONSelect. Esta pequeña librería todavía se encuentra en una etapa muy experimental, muy poco madura, pero ya podemos ver determinadas demostraciones en vivo funcionando.

Cuando tenemos un sistema que diseñamos nosotros y elegimos transmitir la mínima cantidad de datos posibles, no tiene mucho sentido la aplicación de esta técnica. Pero si necesitamos dejar muchos datos del lado del cliente (y por qué no, decidamos hacerlo en JSON), o estemos usando servicios de terceros que nos den una estructura algo compleja, puede que JSONSelect nos haga muy fácil, intuitivo y legible la forma en que estamos accediendo a determinados de esos datos.

Soy un zorrinito selectivo.

Link del día: John Resig, más personal

Hace un tiempo Josh Resig, famoso por ser el creador de JQuery, anunció en su cuenta de Twitter que estaría brindando una especie de “conferencia de prensa”, una rueda de preguntas y respuestas en Reddit, específicamente en este thread.

Ahí podemos conocer un poco más de lo que él piensa sobre distintos temas, desde que le encantan los memes del Rage Guy hasta las propuestas que estaba pensando en plantear para la reestructuración del estándar del DOM. Podemos saber qué máquina usa y qué software hasta qué cosas estudió en la universidad y cómo hace para concentrarse en su trabajo.

Es el tipo de oportunidad de tener a un caso de éxito bien cerca para preguntar y escuchar respuestas. Desafortunadamente me enteré de esto cuando ya había ocurrido, pero habría estado interesante poder hacer un par de preguntas, no?

Soy un zorrinito preguntón.

Link del día: Simulador de iPad

Gracias a @Woork me enteré de este Simulador de iPad totalmente hecho en CSS y JS. Si lo prueban un poco se darán cuenta que la mayoría de las aplicaciones no están implementadas todavía, pero hay cosas que sí están implementadas y pueden probarse hoy, por supuesto, de la misma forma que funcionaría en un iPad real:

  • Moverse sobre las distintas pantallas (pueden usar el mouse o las teclas de dirección del teclado)
  • El botón de Sleep
  • El botón de Power
  • Sostener los iconos y cambiar su posición
  • Borrar aplicaciones
  • Safari
  • Lock/Unlock
  • Búsqueda

Es mucho y anda muy bien para ser un poco de JavaScript.

Fuera de eso, cabe aclarar que el creador de este simulador, Altyrne, tiene un blog en donde actualiza muy regularmente sobre sus experimentos con navegadores, JavaScript, HTML5 y CSS3, aparte de jQuery, animaciones, etc.

Soy un zorrinito JavaScript.