Accesibilidad y el futuro de la web

"La web es un diario", este iba a ser el titulo del post. Tenemos negritas, titulos, imagenes, pie de pagina, etc (creo que el concepto se entiende). Sigo pensando que las paginas webs fueron pensadas como un gran diario, lleno de incompatibilidades de interpretes y con animaciones al buen estilo Harry Potter.

Pero la web evoluciono, y tambien lo hicieron sus interpretes.

En terminos de evolucion, no me refiero solamente a tecnologias, sino a como escribimos el codigo de una web hoy en dia. Si nos vamos un poco para el pasado, se me vienen a la cabeza tablas y links parpadeantes (esos si que estaban de moda), pero hoy tenemos semantica, si semantica.

Explicadolo rapido y facil seria el "porque" o el "significado" de las cosas que hacemos. Digamos que un encabezado no será mas un texto que actua de encabezado, sino que es un encabezado propiamente dicho, como una entidad. Esto nos ayuda a tratar de entender que no todo es texto, imagenes y estilos, sino que existe un proposito.

La accesibilidad tambien fue pensada y evoluciono, basicamente, ahora existe. Con la accesibilidad me refiero, a personas con capacidades reducidas como no videntes por ejemplo. Hoy en dia un no vidente puede entender nuestra web, mediante diferentes recursos, sino mirate este link http://www.w3.org/WAI/intro/aria y enterate de lo que se viene haciendo desde el 2014.

node.js y el tercer eslabón de la cadena

Hace bastante que vengo escuchando sobre node.js, y simplemente me parecía algo demasiado nuevo como para probarlo.
Probablemente en el día, debo escuchar de 3 o 4 tecnologías, lenguajes o frameworks nuevos que debería probar, sin embargo, hace demasiado tiempo vengo escuchando node.js.

Decidí probar de que venia y sinceramente genero un pequeño butterfly effect en mi. Es que hasta hace unos dias, veia a JavaScript como un lenguaje dentro del cliente y no como algo que puede estar del lado del servidor.

La idea de terminar con un stack LAMP, es simplemente maravillosa.
Y es que hace poco pude leer en un blog, lo que algunos llaman las 3 etapas o eras de la web:

La primera consistio en lo primero que conocimos como HTML estatico. Subíamos diferentes htmls, y sobreescribiamos cada vez que queríamos hacer un cambio.

La segunda, fue la era LAMP. Linux, Apache, MySQL y PHP (aunque tambien aplica a Python ;) en donde se persiste en una base, el contenido es servido mediante un http server y el lenguaje de codificacion es PHP.

Y la tercera, en donde estamos hoy, en donde se utiliza JavaScript no como un lenguaje del lado del cliente, sino como un servidor web.

Empiezo a creer que hay una tendencia en migrar cada vez mas el stack tecnológico al cliente y sacar la mayor carga del lado del servidor. ¿Sera de esta manera?

Inception

Volviendo de a poco a escribir, quisiera comentarles como estuvo el taller de Inception que se brindo el 18 y 19 de Marzo en Grupo Esfera. El taller fue facilitado por Ariel Ber y Alan Cyment, y la verdad es que fue muy rico en cuanto a contenidos.

A mi entender hacer una Inception es un muy buen punto de partida para cualquier proyecto/startup, ya que facilita la comunicacion entre el grupo que va a estar comprometido, fijando prioridades sobre ciertos puntos clave que tiene un proyecto como Alcance, Tiempos, Calidad del Producto, etc.

Es bueno que se genere al principio ya que una de las actividades de la Inception es discutir que es lo que cada uno tiene en mente cuando se hablo de la idea del proyecto, y con esto hacer surgir dudas dentro del equipo que mas adelante deberan ser resueltas.

Un buen concepto de que es una Inception seria... "Eliminar lo implicito para generar lo explicito." Acá dejo las fotos del taller:

Roadmap de Inception Deck

Problemas al inicio

linea-de-tiempo-del-proyecto

You're flying! How?... Python!

Estos últimos días estuve tratando de realizar un desarrollo web “productivo” (con lo de productivo me refiero a no solo jugar con el lenguaje, sino que además hacer un deploy de la app en un entorno productivo). Hace bastante tiempo que estoy familiarizado con el desarrollo de aplicaciones en Java y Python, pero esta vez quería probar algo simplemente diferente. Navegue por las aguas de PHP, tratando de utilizar Symfony nuevamente, me acorde porque era que no me había gustado la primera vez. El caso es que symfony tiene una gran cantidad de configuraciones, los errores son poco amigables y siempre pensé que PHP debería ser más fácil.

Luego escuche que Kohana, proponía un codigo bastante seguible, y ademas era bastante minimalista. Además de esto, kohana utiliza herencia “real” y PHP 5. Luego de jugar bastante, me topé con un problema, la documentación. Algunos ejemplos no eran claros o estaban desactualizados (hay una gran diferencia entre ko2 y ko3). Por lo que mi motivación con este framework disminuía poco a poco.

Particularmente, me gusta bastante aprender nuevos lenguajes, pero con el tiempo me he dado cuenta de que tienen que tener una mezcla exacta entre practicidad y buena documentación. Cuando digo buena documentación no me refiero solamente a poner un glosario de las funciones del lenguaje o del framework, sino a exponer ejemplos y ejercicios. Alguna vez probaron el Rails For Zombies? Dios…es simplemente excelente. No solo posee un video introductorio, sino que además podemos interactivamente codear y practicar algunos ejercicios que brinda el tutorial.

Edgar Dale una vez expuso el cono del aprendizaje, demostrando la importancia de practicar sobre leer en el aprendizaje.

Es por eso que encuentro difícil de encontrar un lenguaje como Python, o mejor dicho su framework web Django. No es simplemente comodidad, sino que desde el principio, Django, empieza con un tutorial muy práctico de cómo hacer un Blog. Toca las partes más importantes de este framework. La documentación está abierta a comentarios por los usuarios de la comunidad y aclaraciones MIENTRAS SE LEE (esto es simplemente excelente). Además, detalles como anchors en los títulos de cada tópico, permite leer y encontrar más fácil ciertos temas. Pero sin duda Django cuenta con una buena comunidad de programadores, la cual expone apps open-source para ver cómo se pueden encarar determinados problemas comunes. Otra cosa que me llama la atención de Django es que tiene un web-server integrado (solo de prueba) para probar las aplicaciones lo cual es excelente.

Sinceramente, tendría que observar como se comportaría un framework como este en una app grande, pero sin duda es la mejor herramienta que encontré para desarrollar aplicaciones pequeñas/medianas.

import xkcd

No te olvides del import antigravity! ( solo para curiosos )

Por lo poco que estuve viendo, Grails posee un estilo bastante parecido a Django, pero sinceramente no lo he podido probar a fondo todavía.

Adaptate al negocio o muere en el intento

Volviendo un poco a escribir, hoy quisiera hablar un poco de cómo empresas líderes en el mercado pueden caer en bancarrota sin ningún problema. Si uno se detuviera a pensar, lo primero que se preguntaría seria ¿Cómo es posible que con tanto dinero una empresa quiebre?, en mi opinión la causa principal se puede encontrar en la siguiente premisa “adáptate al negocio o muere en el intento”.

Un caso de estudio es la empresa Blockbuster. Todos recordamos ese ticket azul con letras amarillas tan conveniente que nos invitaba a alquilar películas. En un principio, realmente era un buen negocio, alquilar películas estreno en DVD, pero luego el negocio fue cambiando lentamente. Esto quizás se debe a que sitios como YouTube no solo ofrecían ver videos online, sino que además permitía a los usuarios poder subir los suyos. Cuando YouTube fue adquirido por Google, el sitio inevitablemente tuvo una aceptación masiva en los usuarios. Pero pensándolo mejor, uno podría decir “YouTube no es un sitio para ver películas, solamente son videos subidos por usuarios”. Esta idea sería la musa inspiradora de Netflix. Esta empresa ofrece, mediante una cuota mensual, ver películas y series via streaming-online, no hay que rebobinar ni “devolver” el video.

Netflix vs Blockbuster

Lo que antes era ir al Blockbuster y buscar la película que queríamos para darnos cuenta que ya estaba alquilada, hoy es conectarse a Netflix y mirarla cuando queramos, sin la preocupación de tener que regresarla.

El modelo Netflix tambien, puso en jaque a la pirateria. Torrents y descargas de peliculas se convirtieron en una tarea sumamente complicada si la comparamos con simplemente ver una pelicula en netflix con subtitulos y en buena calidad.