Luego de 4 años, he decidido mejorar la apariencia del sitio sobretodo para dar soporte a dispositivos móviles, un sector de visitantes en constante aumento y que se estaban perdiendo de todo lo que el sitio ofrece. El diseño es algo sencillo y recuerdo a uno que tenía hace varios años, el fondo lo mantuve ya que mucha gente me dice que le gusta, solo que actualicé los logos y dispositivos que aparecen.
Ahora el tema es de diseño adaptable (responsive) y debería funcionar sin problemas en Firefox, Chrome, IE8 o superior, todos los navegadores de Android, iPhone, entre otros. Para la prueba de crossbrowsing, la hice mediante la herramienta Remote-Preview que permite navegar en una página y mostrarla en varios dispositivos al mismo tiempo, permitiendo ver detalles o bugs en ciertas plataformas, pero haciendo el recorrido del sitio solo 1 vez, pronto os daré mas detalles de esta herramienta en una futura entrada del blog.
Lo interesante de este re-diseño, fue inspeccionar errores y detalles en todo el sitio, fue interesante ver errores de la migración a WordPress que hice hace 7 años y nunca me había dado cuenta. Además, al recorrer el sitio, recordé experiencias y herramientas que antes usaba.
En fin, espero que sigan visitando la página y si desean conocer las tecnologías usadas, pueden leer la sección de herramientas utilizadas en este sitio.
A todos los usuarios de teléfonos con Android, siempre les doy recomendaciones para usar Cyanogenmod, una modificación del sistema operativo que incluye mejoras y optimizaciones para mejorar la experiencia de uso en el dispositivo. Entre sus ventajas existe una poco conocida: la posibilidad de ubicar tu teléfono y eliminar todos los datos en caso de pérdida. Algo muy útil en caso de robo, pérdida del teléfono por descuido, entre otros.
Para ello, solo debes entrar la configuración del teléfono y luego en la sección de cuentas, allí veras la opción para crear una cuenta de Cyanogenmod y listo. Luego podrás acceder a sitio de las cuentas de Cyanogenmod y tu dispositivo debe aparecer listado.
Opciones del dispositivo con Cyanogenmod
Entre las opciones puedes ver Ubicación, donde la aplicación web se conecta remotamente con el teléfono y a través del servicio de localización te muestra su posición en Google Maps (el teléfono debe tener activada la opción de ubicación precisa, de lo contrario no funciona). De esto modo, en caso de pérdida del dispositivo, sabrás su ubicación exacta y puedes intentar recuperarlo.
Punto en el mapa donde se encuentra ubicado el teléfono
El otro servicio disponible es el de Borrado remoto, para cuando des por perdido tu teléfono y deseas que el ladrón no tenga acceso a tu información, al eliminarla por completo. También esta opción es útil para borrar toda los datos antes de instalar otra ROM.
Aunque son funcionalidades simples, son añadidos extra que posee esta ROM, ademas a diferencia de servicios similares, es gratuito y respeta la privacidad de los datos, pues según ellos, toman poca información y no es comercializada a terceros.
Espero que haya sido útil esta información y que no tengan que utilizarla algún día.
Desde hace unos días, Facebook activo la opción reproducción automática de los videos en la página principal, algo incómodo para mis gustos porque me gasta ancho de banda, empieza a sonar de pronto, entre otros. Y como supongo que a algunos de ustedes tampoco les gusta, les explico a continuación, cómo desactivar la opción para la versión web.
Primero debemos ir al menú de configuración ubicado en la parte superior derecha de la pantalla.
Luego seleccionamos la opción de video, en el menú ubicado a la izquierda:
Finalmente cambiamos la opción a Desactivado para evitar la reproducción automática de video:
¡Listo! Ya los videos no se reproducirán en tu timeline, ahorrándote ancho de banda al abrir esta página.
Hace unas semanas, elaborando un sistema interno para Oja.la tuve la libertad de escoger la plataforma a desarrollar y como este año me había decidido a realizar una aplicación web escrita 100% en Javascript empecé a investigar sobre como empezar con la plataforma MEAN (Mongo, Express, Angular y NodeJS), para quienes no la conocen, es como LAMP (Linux, Apache, MySQL y PHP) pero orientada a usar JS tanto en frontend como en el backend. Investigando conseguí MEAN JS, un framework para desarrollar bajo esta plataforma.
Instalación
Al momento de iniciar el proyecto, no sabía utilizar Express ni Mongo, respecto a NodeJS sólo había hecho unos experimentos sencillos para ver como funcionaba, pero ya tenía experiencia en AngularJS y herramientas como: Yeoman, Grunt, Bower y NPM. Por ello, la instalación de este framework me pareció muy sencilla: clonar el repositorio y luego mediante bower instalar todas las dependencias automáticamente. Solo realicé algunos cambios para evitar actualizar versiones no estables de librerías (no me gusta actualizar en pleno desarrollo para evitar incompatibilidades con funcionalidades ya escritas) y eliminar cosas innecesarias para el proyecto (como autenticación usando redes sociales).
Esqueleto inicial
La forma en como está estructurado me ha gustado mucho, la separación del backend y frontend se hace notable. Respecto a Express, la estructura es muy sencilla, principalmente se divide en las carpetas: models (los objetos que permiten se comunican con la BD), controllers (donde se guarda la lógica del proceso), routes (maneja las rutas de las peticiones del servicio web), views (las vistas a mostrar desde el servidor, las cuales son diferentes de las vistas generadas en el frontend).
En la parte pública se trabaja como cualquier aplicación de Angular, se crean carpetas por cada módulo a desarrollar, por defecto vienen incluidas 2: auth y system. La primera es el módulo de autenticación que trae MEAN.io para permitir identificarse utilizando redes sociales y la segunda, donde va la aplicación como tal. También se incluyen los archivos para manejar las dependencias del proyecto usando npm, bower y se incluye un archivo de Grunt.
Este último, trae configuraciones para montar un servidor: de desarrollo, pruebas y producción. Cada uno de ellos tiene su propia configuración, permitiéndote trabajar con diferentes bases de datos, bibliotecas comprimidas solo en la versión de producción y pruebas. Me pareció raro que no incluía la tarea grunt-ngmin, pues permite facilitar la compresión de archivos JS de AngularJS.
Logo de Mean.io, chévere que sea una chica ninja
Desarrollo
El desarrollo de la aplicación se me hizo fácil gracias a esta plantilla base, si nunca has desarrollado una aplicación bajo este modelo, te recomiendo iniciarte con MEAN.io. Lo único extraño es que generalmente en otras plataformas el código de backend es diferente al de frontend, permitiendo determinar fácilmente la ubicación del código que estas viendo, como aquí todo es JS a veces debes mirar la ruta para ver si estas en frontend o backend, además, probablemente llames a los modelos de Express y Angular con el mismo nombre, confundiendo a veces la apertura de archivos.
La desventajas que vi con esta plataforma fue: la poca documentación debido a su poco tiempo de disponibilidad e incompatibilidad para navegadores antiguos (Android 2.3, IE 8, entre otros), sé de la disminución de la cuota de mercado de estos navegadores, pero aún existen clientes/usuarios que lo utilizan y en el ambiente empresarial se les debe dar soporte. Y finalmente, no me gustó mucho trabajar con MongoDB, es muy chévere almacenar los objetos en JSON y la lectura se hace rápida, pero no sé si es por mi años utilizando BD relacionales pero la falta de restricciones de diseño o tanta libertad de almacenar lo que se desee allí, me parece que puede crear daños en la integridad de datos en el futuro. Tal vez porque estoy acostumbrado a manejar toda la validación de la data en la BD y no en la aplicación, me pareció inseguro que con MongoDB toda la validación se hace en la aplicación (si me equivoco, por favor me lo aclaran en los comentarios).
Recomendaciones
Te recomiendo utilizar Mean.io si deseas hacer una aplicación bajo esta plataforma en poco tiempo, realmente es sencilla de usar si tienes experiencia desarrollando aplicaciones web con Javascript. Probablemente la curva de aprendizaje para un novato sea fuerte pero vale la pena el esfuerzo. Si deseas algo mas sencillo o simple (sin sacrificar calidad), puedes probar Mean.JS un fork realizado por el autor de Mean.io para mejorar algunos problemas de diseño de la plataforma.
Actualización al 17/10/2019: El proyecto ha migrado a su fork MeanJS, realizado por el mismo autor del proyecto.