Categoría: Ideas

  • Steve Jobs dies

    Steve Jobs has passed away (2011)

    Steve Jobs dies Steve Jobs

    Translation from: Steve Jobs ha fallecido (2011-10-05)

    This afternoon the Apple official site published a release statement announcing the death of Steve Jobs at 56 years old. The Apple site shows a solidary picture (also shown in this post), which only says: Steve Jobs 1955-2011.

    I’m not an Apple fan (I like some of its products and I don’t like some others), but even when I don’t share a blind admiration for the brand or the company, I largely share, the admiration for the man who made of Apple the company that it’s today. Without any doubt, the Steve Jobs death is a sensitive lost for the technology industry, and in some way, is also a lost for the people who grew up feeling admiration and respect for Jobs tenacity, vision, and achievements.

    Surely a lot of people, podcasts, news shows and other media will dedicate a lot of time to talk about the Steve Jobs career, they’ll sorry for his death and show their respects, and this is totally ok, however, I think that more than feeling bad about his death we should celebrate his contributions to our daily life, learn from his successes and mistakes, in this way we can inspire our selves to carry out our own ideas and never leave them out, just like Steve did.

    Your time is limited, so don’t waste it living someone else’s life. Don’t be trapped by dogma – which is living with the results of other people’s thinking.

    Steve Jobs

    From Steve Jobs Stanford Commencement Speech 2005

    IT professional with several years of experience in management and systems development with different goals within public and private sectors.

    No Comment
  • Gamification & LinkedIn

    Gamification y LinkedIn

    Caso de éxito con Gamification o Gamificación

    Anteriormente, hablé sobre las generalidades de la gamification (ludificación, juguetización, jueguización o el término feo que prefiera), en ello expresé la definición y los objetivos que persigue, si usted NO esta familiarizado con el tema le recomiendo que lea la entrada anterior antes de continuar leyendo.

    Como parte de un proyecto en que el participé recientemente, estuve analizando el uso que daban algunas organizaciones y sus sitios web al concepto de gamification, y uno de los sitios que me pareció más interesante y sobresaliente en el uso del concepto, fue LinkedIn. Como muchos ya saben, LinkedIn es una red social orientada a las relaciones profesionales, y como parte de su funcionamiento, esta red social utiliza una serie de elementos que integran la idea de gamification en su diseño. Ahora echaremos un vistazo a algunos de ellos y a describir cómo funcionan y cuál es su propósito de la estrategia de Gamification y LinkedIn.

    Perfil

    Para hacer valiosa esta red de profesionales, tanto para sus usuarios como para LinkedIn, la información de cada miembro es requerida. Entre más información sea proporcionada por el usuario mayor beneficio obtiene la red en general. Cuando un nuevo usuario se registra, tiende a proporcionar solo la información mínima, normalmente dudando acerca de cuanta información proporcionar, esto aparentemente es debido sobre todo a la desconfianza de compartir datos personales, la falta de tiempo o la pereza por parte de los usuarios de la red.

    LinkedIn, echando mano de elementos de gamification y UX (User Experience), implementó una barra de progreso que apelaba al “sentido de terminar algo incompleto” para gentilmente sugerir y motivar a lograr un mejor porcentaje y así obtener más información del usuario, utilizando una estrategia en donde el aumento de porcentaje era fácil de obtener al principio, pero gradualmente se requería de mayor esfuerzo para llegar al 100% lo cual añadía un toque de diversión y reto que invitaba a proporcionar más datos.

    Eventualmente y de manera muy inteligente, LinkedIn se dió cuenta de que una de las desventajas de usar una simple barra de progreso, es que otros datos que surgen como consecuencia de los cambios en la vida laboral de los usuarios, como son nuevos puestos, nuevos cargos, nuevos certificados o avances en el nivel académico, no cobraban relevancia.

    Con lo anterior en mente se cambió el esquema de barra de porcentaje por una esfera que se llena cual copa con agua, la cual se conoce como eficiencia del perfil (profile strength). Dependiendo de que tanto se llena el círculo se asignan nombres a los “niveles de eficiencia”, logrando con ello ponderar TODOS los datos que se proporcionan y así mismo hacer que los miembros de LinkedIn se sientan más dispuestos a proporcionar y actualizar la información que se les solicita con un método poco invasivo y además sin dar pie a percatarse de que los usuarios están siendo “gameficados“.

    Pero incluso con los dos anteriores elementos de gamification, con los cuales el diseño estimula a los usuarios para que proporcionen información y así aumentar la fortaleza de sus perfiles, lo que se obtiene es una autodescripción de las cualidades del usuario, lo cual debería de poder ser verificable por otros medios. Para solucionar esto, se idearon las aptitudes y validaciones (skills and expertise), las cuales, aprovechando las ventajas inherentes de una red social, permiten a otros usuarios validar las habilidades y la experiencia, lo cual crea una visión más precisa del miembro en cuestión.

    Vistas

    Ningún perfil tiene mucho sentido si no está siendo visto. La red proporciona estadísticas a sus miembros acerca de cuantas veces ha sido visto su perfil en los últimos días.

    También muestra quienes han sido las últimas personas en ver el perfil. Esto no solo estimula el motivador de ser el “centro de atención”, si no que además alienta a hacer clic en el perfil de esas personas para potencialmente conectar con ellas.

    Actualizaciones

    Los usuarios de LinkedIn no solo comparten información personal y profesional, la mecánica de la red los alienta a compartir artículos, eventos, oportunidades de trabajo y otros tipos de información relacionada con la vida laboral de sus miembros; ofreciendo con ello, el número de vistas, sus respectivos likes y la posibilidad de seguir a los usuarios o grupos de interés, lo cual son técnicas de gamification por demás experimentadas por los usuarios habituales de redes sociales.

    Grupos

    Pertenecer a un grupo, aportar publicaciones y respuestas puede incrementar la potencial influencia del usuario como experto dentro de una comunidad. El número de miembros es un indicador para el “dueño” del grupo acerca de que tan exitosas son las acciones derivadas de organizar a un grupo de personas alrededor de cierto tema.

    Otros

    Durante mi investigación de LinkedIn y sus estrategias de gamification, encontré menciones de algunas que no he podido corroborar de primera mano, pero he visto mencionadas en diferentes lugares. Aparentemente han habido envíos de correos y mensajes con felicitaciones a algunos miembros por una variedad de “logros”, como son el ser uno de los perfiles más vistos según determinados criterios de tiempo y vistas o por ser miembro destacado con cierto número de artículos compartidos y vistas obtenidas a los mismos, así como algunos otros motivadores por el estilo que pretenden ser divertidos.

    ¿Conoce algunas otras técnicas de gamification utilizadas en otros sitios?, ¿utiliza gamification o piensa hacerlo?, ¿cree que vale la pena el uso de gamification? compártalo con nosotros.

    Otros enlaces que pueden ser de su interés:

    Subir un archivo con HTML5

    Arrastrar y Soltar HTML5

    IT professional with several years of experience in management and systems development with different goals within public and private sectors.

    No Comment
  • gamification o gamificación

    Gamification o Gamificación

    Jugando mientras trabaja, estudia, ejercita o usa la web

    Aquellos que hemos sido o somos gamers (personas que gusta de los juegos y/o video juegos) sabemos que la idea o concepto de gamificaction (en sus aún más feas traducciones al español: gamificación, ludificación, juguetización o jueguización) ha andado rondando por siempre (unas 3 décadas). Recordemos frases viejísimas como: !aprende jugando!, ¡adelgace mientras se divierte!; si alguien es de México y de mis años recordará aquellos clásicos comerciales con la frase: ¡Con juguetes Mi Alegría…aprendemos…y jugamos! (sí, el tono de canción en su mente es inevitable si sabe de que hablo). Ahora, si bien el concepto es viejo, el término se acuñó gracias a un programador llamado Nick Pelling en 2002, pero en la realidad el concepto ha comenzado a atraer la atención tan solo en años recientes.

    Últimamente me he encontrado con mucha gente que utiliza términos deslumbrantes como mecánica de juego, dinámica de juego o pretende establecer como algo complejo y laborioso la implementación del concepto, confundiendo la idea básica de gamification o gamificación con complejas campañas tecnológicas de marketing y big data. Lo anterior puede ser verdad y se pueden crear sofisticadas implementaciones de gamification, pero basado en mi experiencia involucrado en equipos desarrollo multimedia desde 1998, puedo decir que mucho sobre aplicar gamification es solo sentido común.

    Sin ser o pretender ser un experto en gamification, a continuación le comparto algunas ideas, términos y aproximaciones que he aprendido con el tiempo:

    ¿Qué es gamification?

    Hay montones de sitios donde puede obtener buenas definiciones sobre lo que es gamification (ludificación, juguetización o jueguización), pero para ahorrar el viaje a Wikipedia le traduzco lo que dice la misma en su sitio en inglés:

    Gamification es la aplicación de elementos del diseño y principios para juegos en un contexto que no es de juego. Gamification comúnmente emplea los elementos que se utilizan en el diseño de juegos en los denominados  non-game contexts en un intento de mejorar la participación de los usuarios, productividad de organización,  aprendizaje, contratación y evaluación de empleados, facilidad de uso y la utilidad de sistemas, ejercicio físico, violaciónes de tráfico, apatía de votantes, entre otros. Una revisión de  investigación sobre gamification muestra que la mayoría de los estudios sobre gamification encuentran efectos positivos en su implementación. Sin embargo, existen diferencias individuales y contextuales.

    ¿Entendió eso? Básicamente significa, hacer una tarea más interesante adoptando la lógica de un juego. La manera más simple sería otorgando alguna especie de premio por hacer alguna tarea. El premio puede ser tan obvio como un trofeo o tan vago y subjetivo como simplemente buscar ofrecer diversión mientras se hace una tarea definida. Pero desde luego hay mucho más que se puede hacer, especialmente cuando el comportamiento humano es considerado.

    Pero para cumplir con el cliché, aquí mi definición personal:

    Gamification es aplicar la metáfora del juego a tareas comunes u obligatorias para influenciar el comportamiento, dar mayor motivación e incrementar el involucramiento, la preferencia o la lealtad.

    ¿Los videojuegos sirven de algo?

    Durante algunos años fui jugador de World of Warcraft, un video juego muy popular con millones de usuarios, el cual me parece que es un gran ejemplo de cómo estos juegos se pueden relacionar con el mundo real. Dentro de World of Warcraft uno de los objetivos es hacer dinero. Este dinero se puede obtener de varias maneras, pero la mayor parte es haciendo quests (misiones). Como resultado de resolver las misiones se obtiene dinero, el cual el jugador utiliza para obtener diferentes cosas como comprar ropa, armas, materiales, mejoras, información para nuevas misiones, etc. (¿le suena esto familiar?), esto es lo básico de cualquier negocio y parte importante de la vida. Día con día los jugadores de World of Warcraft se la pasan fabricando bienes, ofreciendo servicios y cumpliendo misiones. En el mundo real hacemos lo mismo, ganamos dinero por obtener determinado logro; gastamos ese dinero en comprar nuevas cosas o lo invertimos en algo que nos permita ganar más dinero o hacer algo de manera más eficiente o cómoda.

    Una pregunta válida sería ¿por qué estos jugadores están tan dispuestos a pasar tanto tiempo haciendo lo que bien podrían hacer en la vida real? La respuesta es fácil: porque es divertido.

    Adoptando la idea

    Es importante aclarar en este punto que no todo es acerca de video juegos, no veremos en futuro inmediato a alguien deseoso de jugar el último juego de Microsoft Project o de Word (aunque nunca se sabe 😉 ). Lo que estamos intentando hacer es tomar ideas de los juegos e insertarlos en alguna tarea de rutina, para que dicha tarea no tenga que ser aburrida hasta la muerte.

    Con todo lo anterior en mente tengo que ser honesto, a pesar de la relativamente reciente popularidad de la idea de gamification, no todo el mundo sabe lo que es, no todos están interesados, pareciera que para llegar a escuchar y a comprender el término se requiere de algo de curiosidad, ganas de saber lo que está en boga o simplemente tener un poco de geekness. Todo esto hace que vender la idea en una organización no sea tan fácil como pudiera parecer (por lo menos no acá en el tercer mundo). Recientemente participé en un proyecto donde le solicitaron al equipo del cual formaba parte, proponer ideas “innovadoras” (otro término sobrevendido) para mejorar la propuesta tecnológica de una organización, como parte de esto eventualmente propuse la idea de incorporar alguna estrategia inicial y modesta de gamification dando algunos ejemplos con detalle general pero concreto, no como algo precisamente “innovador” si no como algo que únicamente pretendía poner “al día” la propuesta tecnológica implementada al momento. Sorprendentemente aunque la organización con la que trabajaba desarrolla tecnología, el 90% de los involucrados no sabía de que diablos hablaba (shame on you Infotec); tuve que explicar la idea a analistas, subdirectores, directores, consultores y desarrolladores sin demasiado éxito (nadie es profeta en su propia tierra, aunque me gusta pensar que di luz a algún alma perdida).

    Tengo que agregar que la palabra gamification se escucha rara en inglés y las traducciones al español suenan aun peor, imagine decir en la reuniones todo el tiempo ludificación, juguetización o jueguización, estas palabras no ayudan mucho a la venta del concepto, como fruto de la experiencia llegué a la conclusión de que para adoptar la idea más fácilmente, hay que usar palabras como Productividad, Cambios de Comportamiento, Motivación y Preferencia (o engagement si prefiere el termino de marketing).

    Puntos, Medallas, Trofeos, Tablas de Posición

    Como responsable de un proyecto hace tiempo, requería hacer un aseguramiento de calidad en una serie de contenidos para cursos, con mucha información por revisar y muy poco tiempo, le dije a los miembros de mi equipo, que las 2 personas que encontraran más errores se ganaban un café grande diario durante toda la semana siguiente. Repentinamente tenía un juego en marcha.

    Afortunadamente, no siempre necesitamos recurrir a premios físicos reales en todos los casos. El manejo de información que los usuarios le proporcionan a su organización, sitio web o aplicación móvil puede ser utilizado para otorgar premios en diferente forma, las más comunes son:

    • Puntos
    • Medallas
    • Trofeos
    • Niveles
    • Tablas de Posición
    • Retos
    • Logros

    En un sitio o sistema web, por ejemplo, el concepto es utilizado ampliamente para que sus usuarios hagan más dentro del sitio o estén más tiempo expuestos a determinada información. Algún sitio donde se hacen trámites, puede hacer del llenado de sus formularios algo más ameno dando alguna especie de puntaje o jerarquía relacionada con un progreso por cada paso completado. Un sitio de ventas puede dar trofeos o medallas por las reseñas que un usuario coloca acerca de algún producto.

    Estos ejemplos son ciertamente algo muy simple ya que solo buscan motivar más a los usuarios a llevar a cabo una tarea, y desde luego que dejan mucho más para explotar el concepto, pero son un buen punto de inicio para explorar los beneficios de gamification.

    No todo es dinero

    Un argumento extraño y limitado que me topé al proponer gamification, es que bajo la suposición de alguien, gamification se trataba de dar incentivos económicos en forma de efectivo, cupones o descuentos, lo cual no necesariamente es cierto, y caer en ese supuesto usualmente crea preocupación y hasta rechazo por parte de los patrocinadores de cualquier proyecto o cadena de producción (¿qué pasa con tus directores Infotec? :D). El dinero es un buen motivador para un usuario (siempre lo es), pero hay una palabra en inglés que encontrará mucho en los blogs y libros sobre gamification y que ya mencioné, esta es engagement, esto quiere decir que el dinero siempre lo motivará a hacer alguna tarea pero no necesariamente hará que se “enganche” o que disfrute con la misma.

    ¿Qué más?

    Si usted comienza a profundizar más en los temas de gamification, eventualmente se dará cuenta que hay mucho más que solo depender de incentivos y ciertamente mucho más que depender del dinero. Usted estará utilizando el comportamiento humano y el famoso cerebro reptiliano, es decir, usará a su favor algo que está dentro de la naturaleza humana, jugar. Usando gamification usted estará apelando a sentimientos de orgullo y necesidad de reconocimiento, con lo cual podría lograr incluso más que ofreciendo dinero.

    Para concluir

    Le dejo videos de algunos proyectos educativos donde apliqué gamification (algo viejos pero vigentes para entender el concepto) y algunas bibliografías que encontré útiles e interesantes:

    Libros:

    1. Why we do what we do: understanding self-motivation
    2. For the Win: How Game Thinking Can Revolutionize Your Business
    3. A Theory of Fun for Game Design

    Videos:

     Interactivo Prevención de Riesgos

    Interactivo Desarrollo Económico de México

    Juego de cartas para ayudar a aprender inglés HTML5

    Enlaces relacionados:

    Gamification Y LinkedIn

    U.S. Army – America’s Army (Cómo el ejército de E.U.A. ahora utiliza gamification para atraer nuevos reclutas)

    Mint (Empresa con aplicaciones fintech que utiliza gamification para las finanzas personales)

    IT professional with several years of experience in management and systems development with different goals within public and private sectors.

    3 Comments
  • Flash-VS-HTML-5

    Flash VS HTML5 (Parte 5, ahora sí la última parte….creo)

    Flash-VS-HTML-5

    Hace ya 3 años inicié una serie de entradas en este blog, en donde comparaba las tecnologías Flash y la entonces emergente HTML5, en aquel entonces atestigüé acalorados debates en diferentes foros y medios sobre las bondades y retos que estas dos tecnologías tenían enfrente, sin embargo hoy en día parece que tenemos claro para donde van las cosas, y aunque Flash se niega a morir y aun se puede encontrar a uno que otro nostálgico pero aguerrido defensor de esta tecnología (yo mismo fui entusiasta de Flash durante sus años de gloria), en este primer cuarto del 2015 se han colocado algunos de los clavos más firmes en el ataúd de Flash. Las malas noticias para Flash provenientes en esta ocasión de YouTube, Mozilla y de las mismas fallas de rendimiento y seguridad del plug-in Flash Player.

    Si es que alguien no lo sabe, Flash se propago ámpliamente hace más de década y media permitiendo a los desarrolladores web y multimedia crear gráficos, animación, video  y otras interacciones con el usuario que eran difíciles o imposibles para el navegador. Para que las creaciones en Flash pudieran ser visualizadas en los navegadores, tanto entones como ahora, se requiere de un plug-in llamado Flash Player, y es aquí donde comienzan los problemas para Flash (¿barbas a remojar para el plug-in de Java?).

    Con el poder de los navegadores incrementándose, la evolución de las capacidades de HTML5, la búsqueda del ahorro de recursos  y las nuevas propuestas que se suman en el camino, tenemos que los plug-in van de salida. El primer gran golpe para Flash fue el que dio el todavía vivo Steve Jobs desterrando a Flash del ecosistema del iPhone por ahí del 2010. Pero ahora tenemos tres nuevos golpes, aunque uno de ellos es engañoso y paradójicamente quizá le ofrezca un último asidero a Flash, veamos:

    Problemas de seguridad del Flash Player.

    Comenzando el año el Flash Player tuvo muchos problemas de seguridad, y la verdad sea dicha es el plug-in favorito de los black hat hackers lo que ha llevado incluso a sugerir a algunos expertos el que no se instale el plug-in a menos que sea totalmente necesario, el problema es que en poco mas de dos semanas Adobe tuvo que hacer tres parches de emergencia para peligrosos bugs, lo cual ha sido en realidad un problema constante durante la vida de Flash. Esto llevó a Adobe a tener que trabajar rápidamente con sus socios distribuidores iniciando el año, dígase Google y Microsoft, para corregir el problema tanto en Chrome como en Internet Explorer de primera mano, pero al final los usuarios tenia que hacer varias actualizaciones del plug-in dependiendo de los navegadores que utilizasen; el problema fue tan grave que incluso Mozilla Firefox desactivo definitivamente el plug-in hasta que hubiera una solución final.

    YouTube abandona el uso de Flash por default en sus videos.

    YouTube, el mayor proveedor de videos en Flash de la historia, anunció que dejaría de servir videos utilizando el plug-in para todos los usuarios que consumen su contenido en un navegador moderno, haciendo por default el uso de HTML5 y su tag . Richard Leider en el blog de la gerencia de ingeniería de YouTube hace una interesante referencia a las razones por las cuales no habían podido hacer de HTML5 su plataforma favorita de entrega de video hasta el momento y de como las cosas han ido evolucionando para HTML5 hasta el punto de poder cerrar brechas técnicas. Esto sin duda marcará la tendencia para otros sitios de video.

    Mozilla y su proyecto Shumway

    En febrero Mozilla y sus programadores activaron Shumway para la reproducción de videos Flash en la plataforma Amazon SIN el uso del Flash Player. El proyecto Shumway ha estado en desarrollo desde hace algunos años y lo que intenta, en pocas palabras, es poder reproducir contenido SWF y FLV sin utilizar el Flash Player, si esto se lograra de forma completamente eficaz y eficiente significaría (desde mi punto de vista) la muerte absoluta e inmediata del Flash Player, sin embargo, el proyecto Shumway no está terminado y aun requiere mucho trabajo, pero lo que ha logrado es bastante prometedor.

    Aquí es donde entra la paradoja y la esperanza para Flash, si bien algo como Shumway al final representaría la muerte inmediata del Flash Player, también significaría darle nueva vida al Flash Professional, la herramienta de creación de Adobe y probablemente a algunas otras que también crean contenido SWF y FLV. La herramienta de diseño y animación Flash Professional per se, sigue siendo bastante buena, trata de ir adaptándose a los nuevos estándares web mientras se mantiene relativamente más accesible que otras herramientas de animación y hoy por hoy aun no existe una herramienta tan buena como el Flash Professional dirigida a el HTML5 puro, el mismo Adobe lo intenta con su Adobe Edge Animate desde hace tiempo pero creo que aun no lo logran.

    IT professional with several years of experience in management and systems development with different goals within public and private sectors.

    2 Comments
  • User Experience

    Diseño de la Experiencia de Usuario (Parte 3)

    ux01

    En las entradas anteriores sobre la experiencias de usario (Parte 1 y Parte 2) hablé de lo interesante y ventajoso que puede ser el diseño de experiencia de usuario, pero aun siendo así, la verdad es que esta disciplina tampoco puede hacerlo todo ni es la medicina para todas los casos.

    El diseño UX  no viene en unitalla para todos.

    El diseño de experiencia de usuario no funcionará en todos los casos para toda la gente debido a nuestra condición humana en la que todos somos diferentes. Lo que funciona para una persona probablemente funciona de manera totalmente opuesta para otra, de modo que lo que el diseño UX puede hacer es únicamente procurar alguna experiencia específica para promover cierto comportamiento, pero NO puede fabricar, imponer o predecir con total exactitud una experiencia en si misma.

    El diseño de experiencia de usuario NO puede replicar de manera literal la experiencia de un sitio web o aplicación en otro sitio web o aplicación, las experiencias de un usuario siempre serán diferentes entre servicios y productos, es por eso que cuando se diseña algo, ese diseño es adaptado para buscar ciertos objetivos, valores o procesos de producción pero siempre en función de una iniciativa en particular.

    No existen métricas para evaluar al UX

    Desafortunadamente no hay ningún indicador que pueda señalar directamente el rendimiento o la calidad del diseño de la experiencia de usuario, esto solo lo podremos saber con la suma de múltiples factores como las clásicas estadísticas de vistas a páginas, porcentajes comparativos, tasas de conversiones de usuario, reportes ventas, colocación y otras evidencias enecdóticas, pero no existe ningún código o algoritmo que evalúe la experiencia de usuario, por lo que es importante que los diseñadores UX y los responsables de proyectos y cadenas de producción trabajen juntos con todos los indicadores al alcance bien documentados para comparar el antes y el después y así justificar la inversión en UX.

    UX no es usabilidad ni diseño gráfico.

     Todavía encuentro blogs, videos, comentarios, etc., donde se habla de usabilidad como sinónimo de experiencia de usuario, y si bien es cierto que la usabilidad juega un papel importante, NO son lo mismo. La usabilidad se refiere a la eficiencia  con la que una interface se relaciona con las acciones de un usuario, mientras que UX se refiere a lo que siente y piensa una usuario con respecto al uso de un sistema completo y como se comporta en consecuencia.
    UX = Labor multi-disciplinaria
    UX = Labor multidisciplinaria

    Algo parecido sucede a veces con el diseño gráfico, el cual desde luego tiene un rol preponderante, pero NO es UX. Es verdad que es importante que un sitio web o aplicación resulten estéticos, con uso inteligentes de contrastes, colores y comunicación visual, pero solo por nombrar un caso ¿qué pasa si para comenzar nuestro usuario es alguien que no puede ver?, ésta es solo una razón por la que otros factores también tienen un rol importante, como lo son por ejemplo la accesibilidad, la ciencia humana, la arquitectura de información, el análisis de contexto, el análisis y ejecución de pruebas, la mercadotecnia, la psicología, la correcta gestión del proyecto entre otros.

    Críticas al UX como profesión.

     No todo el mundo ve el valor de un diseñador de UX, la mayoría de los argumentos que he escuchado o leído giran en torno ha los costos adicionales involucrados, la redundancia con actividades de otras áreas y/o el miedo/pereza al cambio.

    Otra observación que algunos pueden tomar como crítica, y admito es un argumento interesante, es que los diseñadores UX no se pueden “crear de cero” como una carrera o disciplina aislada, si no que es más bien el resultado de una “especialización” de personas que han sido diseñadores web o desarrolladores quienes eventualmente deciden profundizar en los temas relacionados al UX, haciendo así indispensable un “background” en programación, desarrollo multimedia, etc. y sumarlo a conocimientos posteriores para efectuar un buen diseño UX. Usted ¿qué piensa de esta postura?

    No se puede negar lo innegable.

    Ya había hecho un guiño a esta situación, pero la reitero, una organización o proyecto con presupuesto realmente pequeño y personal limitado no puede invertir en un especialista UX por lo tanto el desarrollador solitario, o la compañía compuesta por dos amigos tendrían que integrar algunos (los que puedan) de los conceptos de UX como parte de sus actvidades habituales, lo cual es visto como desventaja por unos y ventaja por otros.

    ¿Más?

     Por el momento es todo lo que mi experiencia y memoria dan para mencionar, pero si a usted se le ocurre algo más no dude en comentarlo 😉

    Algunos enlaces de interés:

    Diseño de la Experiencia de Usuario (Parte 1)

    Diseño de la Experiencia de Usuario (Parte 2)

    El Enfoque Agile: Planeación

    Gamification y LinkedIn

    Estos son alguno libros recomendables para saber más:

    IT professional with several years of experience in management and systems development with different goals within public and private sectors.

    2 Comments
  • User Experience

    Diseño de la Experiencia de Usuario (Parte 2)

    ux01

    A lo largo de mi experiencia profesional trabajando en el mundo del desarrollo para Internet, me he topado con una enorme cantidad de discusiones y desacuerdos entre desarrolladores, diseñadores gráficos, project managers, clientes, jefes y un laaaargo etcetera de personas involucradas en el desarrollo de algún proyecto, de manera que muchos de ellos han sido renuentes a incluir procesos o personas explícitamente dedicadas el diseño de experiencia de usuario dentro de su organigrama de desarrollo o de personal, en otros casos, simplemente ignoran la existencia de tal disciplina (…así de triste).

    El problema principal con las personas renuentes o ignorantes acerca de la experiencia de usuario, es que una vez que se les plantea la inclusión del proceso de UX, por lo general lo ven como un proceso que alarga los ya apretados tiempos de entrega (lo cual es una afirmación coja), o bien, hay gente que argumenta que el UX se “encima” con pasos de metodologías ya existententes (suspiro…esos amados procesos coporativos escritos en piedra). Con todo esto ¿porqué implementar UX en nuestros proyectos de desarrollo?.

    ¿Qué o quienes se benefician del diseño UX?

    Si decimos en voz alta que cualquier sistema se beneficiaría de una sólida implementación de pruebas dirigidas a la experiencia de usuario, desde luego en pro de la satisfacción de este, seguramente encontraremos muy pocos o ningún argumento en contra y todos parecerán estar a favor de tan certera afirmación, pero en la práctica es ooootro cantar.

    Beneficios UX
    Beneficios UX

    En la realidad siempre hay recursos y tiempo limitados y muchas organizaciones tienden a concentrar sus esfuerzos en el proceso de elaboración o ejecución per se, dejando descuidadas las estrategias de planeación, adaptación y mejora. Pero incluso en esta situación el diseño orientado a al experiencia de usuario puede ser beneficioso y vale la pena hacer el máximo esfuerzo por incluirlo en las tareas habituales de planeación, ejecución, monitoreo, pruebas y calidad. En mi experiencia (y no sin batallar un poco) he podido identificar algunos casos que se pueden ver particularmente beneficiados del diseño UX:

    Sistemas complejos.

    Entré más complejo un sistema más relevantes se vuelven la planeación adaptativa, el aprendizaje, la organización, la arquitectura progresiva y validación de condiciones de satisfacción para la correcta creación y uso de nuestro sistema. Mientras que invertir en un equipo interdiciplinario de personas que se dedicarán al UX podría ser excesivo para la elaboración de una pequeña página de presencia que solo contendrá algunos datos de contacto, en otros casos tenemos que el desarrollo de sitios, soluciones empresariales, aplicaciones web o móviles innovadoras o mucho más elaboradas, en donde se requieren de múltiples opciones, vistas y herramientas, y que además pretenden llegar a cada vez más usuarios, son las situaciones  donde sin duda se verán ámpliamente los beneficios del UX.

    Aquellos sitios y aplicaciones que simplemente muestran información extensa con pobre organización, que no ofrecen métodos de búsqueda efectivos, que priorizan torpemente la información, que antepone agendas propias antes de las necesidades reales del negocio y/o el usuario,  que someten a sus usuarios a interminables formularios esperando que estos proporcionen información sin chistar y en una sola “sentada”, para finalmente brindar un servicio mediocre o malo, estarán proporcionando negligencia en cuanto a la experiencia de usuario y al final verán sumamente afectados el éxito, ganancias y/o longevidad de su producto o servicio. Son todos estos casos donde la UX cobra gran importancia para ayudar a prevenir o minimizar estas situaciones y lograr con ello que estos proyectos finalmente se perciban como eficientes, valiosos, exitosos y agradables tanto de ver como de utilizar.

    Proyectos con presupuestos moderados y start-ups.

    Sin duda las empresas pequeñas o las que apenas comienzan por lo general no cuentan con los recursos para contratar empleados dedicados 100% al la experiencia de usuario.

    Otro hecho que podemos ver constantemente es que las empresas pequeñas y medianas en el afán de mantener costos bajos y priorizar entregables para obtener recursos, se concentran más en el proceso de producción o ejecución que en el de planificación, investigación y análisis para mejorar y adaptarse a nuevas condiciones, es decir, estas empresas giran alrededor del lanzamiento de un producto final.

    Sin embargo, incluso estas organizaciones que pueden ser iniciativas pequeñas, pero que ya han logrado la venta de algún producto o servicio, comúnmente cuentan con una o más individualidades talentosas que son capaces de tomar diferentes roles en la organización según se necesite. Piense en ese programador, diseñador o persona entusiasta que ya está dentro de su organización y que por alguna razón parece tener cierta afinidad para crear cosas agradables y funcionales que son del gusto de clientes o usuarios. Ese tipo de talento es el que puede comenzar a entrenarse en los principios y procesos de la UX, y eventualmente comenzar a integrarlo al proceso común de desarrollo en la organización de manera incluso paulatina.

    Cabe mencionar que las filosfías Lean y Agile puden potencializar mucho el correcto uso de UX gracias a sus enfoques adaptativos, iterativos, enfáticos en el aprendizaje y enfocados a la entrega de valor real más que un estricto apego a planes y procesos.

    Empresas que desean reducir tiempos de entrega y costos.

    Así como lo lee, a pesar de la suspicacia que despierta en algunos la implementación del diseño UX (como mencioanaba al principio de esta entrada), la integración de este puede acortar eventualmente los tiempos de desarrollo e incluso los costos del mismo.

    Es verdad que con UX se deben agregar etapas adicionales a proceso de desarrollo que requieren de tiempo asignado, sin embargo en la teoría un diseñador UX realiza muchas de sus tareas paralelamente al trabajo que hacen los desarrolladores y diseñadores web, e incluso observará que mucho del trabajo que hacían estos ahora quedará en manos del mismo diseñador UX, también puede ocurrir que el trabajo que hacen un project manager, un scrum master, un product owner, un ingeniero de requerimientos, un arquitecto de información un analista de sistemas entre otros, puede verse realmente beneficiado y facilitado por el responsable del diseño UX, así potencialmente los costos causados por el bucle de revisiones y validaciones se verán reducidos y los otros miembros del equipo podrán pasar más tiempo productivo en su respectiva especialidad. Llendo incluso más lejos, la correcta y habitual implementación del diseño UX, al generar clientes más satisfechos eventualmente logrará traducirse en mayores beneficios para usted y su organización.

    Enlaces de interés:

    Diseño de la Experiencia de Usuario (Parte 1).

    Diseño de la Experiencia de Usuario (Parte 3)

    El Enfoque Agile: Planeación

    Gamification y LinkedIn

    Estos son alguno libros recomendables para saber más:

    IT professional with several years of experience in management and systems development with different goals within public and private sectors.

    3 Comments
  • User Experience

    Diseño de la Experiencia de Usuario (Parte 1)

    ux01

    La primera vez que programé fue por ahí en la década de los 90s, y entonces desarrollé muchas cosas, de las cuales algunas funcionaban y otras (la mayoría) no o por lo menos no como esperaba, así la mayor parte de lo que desarrollaba en esos años eran solo experimentos para mi deleite personal o para cumplir con alguna tarea escolar. Eventualmente algunos de estos experimentos personales se volvieron más o menos populares entre algunos de mis compañeros de clase, o para decirlo en palabras más capitalistas y emprendedoras, comencé a vender tareas (de las clases de programación y relacionadas) por encargo a algunos de mis compañeros, sin embargo, en las primeras ocasiones en que vendí tareas observé que mis “clientes” no entendían del todo (o en lo absoluto) como utilizar los pequeños programas que les entregaba y me resultaba bastante molesto tener que explicar cómo diablos se usaban, y considerando que tenía que parecer que ellos lo habían hecho, me resultaba un problema. Durante un buen tiempo me la pasé pensando en como podía lograr hacer que mis compañeros entendieran más rápido mis programas.

    En esos años su servidor era un ávido lector de comics, y entonces comencé a meditar en lo hábiles que eran los dibujantes y escritores de estas historietas para dar a entender cosas complejas con tan solo algunos trazos, algunas viñetas bien colocadas o algunos “globitos” con texto, !y entonces vino la epifanía!, rápidamente comencé a observar con más atención los libros ilustrados e historietas dirigidos a niños, adolescentes y adultos, después de un rato de planificación llegué a que debía cumplir con lo siguiente:

    1. Distinguir mis usuarios “tontos” de los “menos tontos” para determinar el grado de esmero para los siguientes pasos (no fuí para nada políticamente correcto).
    2. Asegurarme que mis compañeros explicaran BIEN que era lo que querían para comprenderlo sin ninguna duda (cosa nada fácil).
    3. Ser los más explícito pero breve que pudiera en todos los textos que presentaba (opciones, menús avisos, etc.).
    4. Así como hacían los comics, los juegos y esas raras computadoras de manzana de color, tratar de auxiliarme de colores para contrastar unos elementos de otros y si era posible usar imágenes que respaldaran a los textos (este punto era mi favorito).

    Palabras más palabras menos, esos fueron los pasos que diseñé para tratar que mis “encargos” salieran a la primera, mis compañeros-clientes molestaran menos y obtener un poco de dinero o alimento (tortas, churros, frutsis, .etc) en el proceso. Quisiera decir que todo fue felicidad y viento en popa, pero escribir mis pasos fue más fácil que seguirlos cabalmente, pero sí puedo decir que aunque la lata de mis clientes no desapareció, sí se redujo drásticamente. Muchos años después caí en cuenta de lo que había hecho de manera ingenua, empírica, simplona y corta de hecho tenía un nombre: Diseño de Experiencia de Usuario.

    ¿Pero qué es la Experiencia de Usuario?

    Si usted busca en la web encontrará muchas definiciones, pero para aportar algo con la propia, la “Experiencia de Usuario“, conocida en inglés como “Users Experience” y abreviada como “UX” es la manera en que una persona (un usuario) se siente acerca de su interacción con un sistema, tal sistema puede ser un programa de computadora tradicional, un sitio web, una aplicación web o una aplicación móvil entre otros, todo desde luego en un contexto de desarrollo actual.

    La anécdota personal con la que inicié este post fue una feliz coincidencia basada en algo de sentido común, pero en realidad hay gente verdaderamente dedicada al estudio en profundidad del diseño de sistemas pensado en el usuario como el elemento fundamental de cualquier sistema tecnológico, la persona que probablemente ha aportado más en este campo es el Dr. Donald Arthur Norman, un investigador de ciencia cognitiva, diseño y usabilidad.

    Donald A. Norman
    Dr. Donald A. Norman

    El Dr. Norman fue el primero en hablar de manera realmente científica y formal de la importancia del diseño de sistemas centrado en el usuario (user-centered design), lo cual es, en términos generales, la idea de que cualquier diseño de sistema debe estar basado en las necesidades reales del usuario (simple pero profundo cual frase de filósofo chino).

    ¿Porqué es importante la Experiencia de Usuario?

    Usted podría pensar: ¡Pues obvio, si me la paso matándome horas programando para tener contento al #$@&% usuario! pero como diría el Dr. Andrés Roemerno te creas todo lo que piensas“, para nadie en México (donde vivo) y en América Latina es novedad que por lo general estamos un tanto atrasados con respecto a muchas prácticas del primer mundo, donde todo este tema del desarrollo de sistemas centrado en la experiencia de usuario ya lleva un rato tomándose bastante en serio, pero en nuestra región es algo que apenas comienza a cobrar fuerza, es decir, apenas nos estamos dando cuenta de la importancia real de elaborar estrategias, alcances, estructuración, codificación y diseño enfocados realmente en el usuario.

    Antes de que alguien me tire tomatazos déjeme decirle algo, para ver si le resulta familiar, aquellos que llevamos tiempo trabajando en la industria del desarrollo hemos tomado decisiones basados en dos cosas principalmente:

    1. Los elementos e interacciones que construimos en los sistemas son basados en lo que nosotros creemos que funciona. Basamos la estética y la funcionalidad con muy poca idea de como el usuario final usará el sistema, es decir, diseñamos para nosotros mismos (¿dónde está ese documento donde se entrevistaron, evaluaron, cuantificaron, segmentaron a los usuarios finales y sus dispositivos?).
    2.  Todo se elabora en base a lo que el “jefe de alguien quiere ver”. Sucede que todo el trabajo que realizamos está en función del gusto de un individuo con un jerarquía mayor, ya sea de nuestra propia organización o dentro de la del cliente, sí, hablo de ese sujeto que por alguna razón cree ser experto en todo, poseer un sentido común superior y desde luego tener mejor gusto que todos (¿dónde está el documento que dice que ese stakeholder será el único usuario del sistema o si será usuario en lo absoluto?).
    Diagrama de la Muerte
    Diagrama de la Muerte

    Sin embargo, en los últimos años la Internet y por lo tanto la web ha evolucionado y crecido más en su alcance, los sitios en web se han hecho más complejos y con características cada vez más ricas, y por si fuera poco, hoy en día la gente tiene más medios para consumir información en Internet: teléfonos inteligentes y tabletas con diferentes tamaños y capacidades, más navegadores web junto con diferentes tipos de conexiones, y todo ello nos obliga a tener que utilizar estrategias más inteligentes para lidiar con nuestros clientes y usuarios.

    Opciones para el Usuario
    Opciones para el Usuario

    Otro punto importante es el tema de la accesibilidad, lo cual se refiere a el acceso universal de los servicios y productos basados en Internet para personas con necesidades diferentes (como débiles visuales por ejemplo) o bien para personas que no cuentan con buenos anchos de banda o que aún utilizan dispositivos viejos.

    Tomando en cuenta todos estos cambios, hemos podido observar que todos los productos y servicios que giran alrededor de la Internet y han sobrevivido a lo largo del tiempo son solo aquellos que han logrado adaptarse para seguir siendo útiles y agradables de usar. Así, la moraleja para los que desarrollamos es: todo lo que construimos hoy se convierte en la experiencia que deseamos para con los usuarios que usan lo que hacemos.

    Algunos enlaces de interés:

    Diseño de la Experiencia de Usuario (Parte 2)

    Diseño de la Experiencia de Usuario (Parte 3)

    El Enfoque Agile: Planeación

    Gamification y LinkedIn

    Estos son alguno libros recomendables para saber más:

    IT professional with several years of experience in management and systems development with different goals within public and private sectors.

    2 Comments
  • Reseña Adobe Edge Animate 1.5

    Adobe_Edge_Animate

    Desde hace un tiempo todas aquellas personas que coqueteaban con el desarrollo de contenido multimedia pero que no tenían un perfil técnico (o como diría un antiguo colaborador: “programan poquito”) en los últimos años se han visto afectados y frustrados debido a que algunas de las herramientas que ya habían adoptado para estas labores se han visto relegadas para ciertos fines. Por ejemplo, los diseñadores gráficos que hacían elementos web como banners y headers con pequeñas animaciones, se han topado con que los clientes quieren cada vez menos al contenido creado con Flash y si hoy usted desea hacer contenido rico, animado y dinámico con los nuevos estándares sin duda requerirá de conocimientos sólidos de HTML5, Javascript y CSS3. La buena noticia es que están saliendo herramientas, que aunque quizá no cambian esta situación, sí pueden ser alternativas que hagan el terreno un poco más plano.

    Adobe en sus esfuerzos por mantenerse como uno de los líderes en el mercado de herramientas destinadas a la elaboración de recursos gráficos e interactivos, lanzó hace casi 2 años una herramienta llamada Adobe Edge que pretendía ser algo así como la herramienta de autoría sustituta para Flash, lo cual no logró además de ser ampliamente criticada (yo fui uno de esos críticos mala leche), sin embargo Adobe no ha desistido y ha seguido desarrollando su herramienta, pero ahora con el nombre de Adobe Edge Animate, y no solo eso, si no que ahora este programa es parte de una suit de interesantes aplicaciones que juntas forman la “familia” Adobe Edge. Debo mencionar que mi experiencia con este software apenas se ha reiniciado, ya que lo probé cuando salió hace dos años y no me gustó, pero al ver que Adobe seguía trabajando en él, decidí darle otra oportunidad y probarlo nuevamente.

    ¿Pero qué es Adobe Edge Animate?, es una herramienta de desarrollo web basada en HTML5, Javascript-jQuery y CSS3 y por lo tanto hace al contenido que genera “compatible” con cualquier software que pueda interpretar HTML5 (en teoría), su UI es bastante similar a cualquiera familiarizado con las herramientas multimedia basadas en línea de tiempo,  Adobe Edge Animate tiene un “stage” o área de trabajo basada en el motor Webkit que permite colocar y crear gráficos (jpeg, png, gif, svg), colocar texto, previsualizar animaciones, tiene panel de propiedades y desde luego la línea de tiempo.

    Adobe_Edge_Animate02

    La línea de tiempo utiliza “keyframes”, que así somo en Flash, ayudan a generar el “tween” entre ellos automáticamente. También se puede utilizar la herramienta Pin para animar, cada Pin permite modificar las propiedades de un elemento en algún punto de la línea de tiempo sin tener que hacer el “keyframe” de manera manual, de esta manera, usted puede crear una animación desde donde está el “playhead” hasta donde esta el Pin con todo y keyframe en un solo paso. Otra características interesante es que se pueden copiar y pegar animación de un elemento a otro, es decir, si usted tiene un circulo que se mueve de derecha a izquierda, y tiene un triángulo estático pero desea que se mueva de la misma forma que el círculo, usted únicamente copia la animación del círculo (no el elemento) y la pega en el triángulo sin tener que crear o hacer algo más.

    También puede hacer un grupo de elementos y reutilizar este en otra animación, en otras palabras puede crear símbolos (para los acostumbrados a Flash), desde luego estos símbolos pueden tener animación interna. Aunque debo decir que hay algunos problemas de reposicionamiento cuando se cambia el tamaño de la página donde se está desplegando la animación y también cuando veo la animación en Safari, no he logrado encontrar una solución efectiva…aunque como menciono apenas estoy reutilizando la herramienta otra vez…o sea, soy novato en Adobe Edge.

    Triggers!, así es, Adobe Edge utiliza mucho el mecanismo de los “triggers” para indicar que hacer cuando se llega a un determinado punto de la línea de tiempo (stop(), play(), etc.) o bien se pueden aplicar a un elemento en el área de trabajo directamente para dar respuesta a ciertos eventos, como el click del ratón o el “touch” en una tableta, todo ello por medio de una ventana separada (pop-up) de código. Si hay algún veterano del AS2 todo esto le va a recordar a la manera en la que se insertaba código en las versiones 3, 4 y 5 de Flash hace unos 14 años :p .

    He de reconocer que Adobe mejoró bastante su Adobe Edge desde la primera vez que lo utilicé, el flujo de trabajo utilizando la herramienta Pin, las herramientas de “easing” para los elementos, el copiado y pegado de animaciones y algunos otros detalles, hacen de esta aplicación algo interesante para la creación de animaciones HTML5. La parte más decepcionante para mi es que al momento no soporta audio.

    Estas son mis primeras impresiones del programa, y todas ellas las saqué gracias a que elaboré una pequeñísima y muy simple presentación para ilustrar una charla que tuve en la Facultad de Ingeniería Mecánica y Eléctrica de la Universidad de Colima, en ella se puede apreciar como diferentes navegadores responden con diferente rendimiento, lo mas notable son las diferencia en velocidad de despliegue, calidad en el rendereo de imágenes png (que son las que utilicé) y algunos problemas de posicionamiento en Safari, el mejor resultado lo obtuve en Chrome, si alguien desea probar de lo que hablo y descargar este pequeño recurso para estudiarlo, modificarlo y/o destrozarlo adelante (coloco los archivos fuentes (requieren Adobe Edge Animate) y los archivos publicados, en 2 diferentes zips):

    Fuentes

    Publicados

    *Haga clic en el nombre:
    present01

    *Haga click en cada ícono central, de izquierda a derecha:
    present02

    Update. Hace un mes aproximadamente salió Adobe Edge Animate CC que sería la versión 2.0 del programa.

    IT professional with several years of experience in management and systems development with different goals within public and private sectors.

    2 Comments
  • HTML unknow

    ¡HTML5, HTML Living, HTML Next y el drama!…¿HTML6?

    HTML_unknow
    Durante las charlas que he tenido oportunidad de dar ante una audiencia o bien por alguna red social me he topado con algunos planteamientos que hacen referencias a HTML6 (OMG!!!!) o bien a HTML Living y/o HTML Next, a que HTML5 ya caducó (OMG again!!!) y otra serie de afirmaciones o preguntas que van de lo veraz a lo absurdo, pasando por verdades a medias. Para aclarar un poco la situación he decidido hacer esta entrada y describir lo que pasa:

    Algo de contexto.

    HTML5 ha sido una exitosa tecnología apoyada por muchas organizaciones con diferentes perfiles e intereses relacionados de diferente forma con el desarrollo web, como son empresas, universidades, organizaciones civiles,etc., pero el grupo más representativo y con mayor historia aunque no siempre el más influyente, ha sido el World Wide Web Consortium (W3C) el cual ha generado muchas recomendaciones para la world wide web, estas recomendaciones van dirigidas mayormente al desarrollo del HTML y tecnologías conexas. Sin embargo la W3C no ha sido el único grupo haciendo recomendaciones y trabajando constantemente para evolucionar el HTML y tecnologías relacionadas desde su perspectiva, otro de estos grupos el cual sin duda obtuvo gran relevancia es el Web Hypertext Application Technology Working Group (WAHTWG). Ambos grupos han sido importantes gracias a sus iniciativas y a sus miembros, los cuales incluyen entre otros a organizaciones tan influyentes como Google, Microsoft, Apple, Adobe, Mozilla Fundation y Opera Software.

    En el 2007 ambos grupos deciden unir fuerza y utilizar la especificación HTML propuesta por WAHTWG como punto de partida para continuar con el desarrollo de la especificación HTML, lo cual se conoció eventualmente como HTML5. Dado esto, todas las nuevas especificaciones se comenzaron a publicar de manera oficial por me dio de W3C, sin embargo el principal y único editor oficial con la facultad de publicación fue el miembro de WAHTWG, Ian Hickson.

    El ascenso de HTML5.

    Gracias al esfuerzo conjunto de ambas organizaciones y sus miembros HTML5 comenzó a hacerse popular, adquiriendo muchísima más relevancia extra gracias el exponencial crecimiento de dispositivos móviles y las ventajas técnicas que representa HTML5 sobre las alternativas dominantes hasta el momento. El punto quizá más relevante para la popularidad de HTML5 surgió gracias a las polémicas declaraciones del entonces CEO de Apple Steve Jobs, quien puso de manifiesto las desventajas de desarrollar para los nuevos dispositivos utilizando el entonces estándar de facto en la realización de implementaciones de rico contenido gráfico, Flash.

    Desde luego un factor esencial para el éxito de HTML5 es que W3C  incluye entre sus miembros  a aquellos que también son los fabricantes de los principales navegadores, y que estos tratando de apoyar la nueva especificación dieron soporte a HTML5 haciendo que Chrome, Explorer, Safari, Mozilla y Opera lo soportaran aunque con diferentes grados de avance en su implementación. Todas estas circunstancias favorecieron a que HTML5 pudiera tener nombre, presencia, crecimiento e incluso logotipo que lo identifica ante propios y extraños.

    El drama.

    Desafortunadamente no todo es felicidad, como sucede en todas las organizaciones (creo) existe desacuerdos  y complicaciones. Desde el 2011 se escapaba uno que otro rumor que giraba en torno a diferencias entre W3C y WAHTWG, sin embargo el punto de quiebre es cuando efectivamente estas organizaciones deciden separarse a mediados del 2012 e Ian Hickson publica una carta abierta donde explica el status de la relación entre ambos grupos. Pero ¿que pasó en realidad? bueno pues todo son versiones de diferentes fuentes y no puedo corroborarlo todo, pero si me permite resumiré todo lo que he leído en 3 puntos persistentes en la mayor parte de las fuentes consultadas:

    • W3C está más preocupado por la estandarización de HTML mientras que WAHTWG está más preocupado por la implementación de HTML. Esto significa que la W3C está priorizando más el orden y la consistencia de la especificación para que los fabricantes de navegadores y relacionados cuenten con una referencia más precisa y mucho más compatible, mientras que WAHTWG considera que lo más importante es dar más y mejores características innovadoras a HTML para ampliar la gama de posibilidades en la creación de todo tipo implementaciones.
    • Descontento del editor. Ian Hickson es una persona que sin duda se ha hecho de un nombre en la industria y comunidad web ya que ha trabajado para diferentes empresas de mucho peso y ha colaborado con el desarrollo de varias especificaciones importantes, actualmente como empleado de Google y anteriormente como único editor oficial de la especificación HTML5, parte de su trabajo consistía en analizar, corregir y conciliar las diferencias de las propuestas técnicas de la W3C y WAHTWG con respecto a la especificación, lo cual lo llevó eventualmente manifestar su inconformidad con las implicaciones y diferencias entre las propuestas y en tener que unificarlas. Otro factor de desacuerdo es la visión de Hickson acerca de irrelevancia de usar versiones en la especificación HTML, ya que desde su punto de vista no debería existir HTML4, HTML5, HTML6, etc., sino simplemente HTML con su intrínsica evolución.
    • Intereses y DRM. Hasta el día de hoy existe muchas críticas hacia la W3C, ya que varios grupos argumentan que la insistencia de este grupo por estandarizar HTML obedece principalmente al interés de las empresas más grandes que son miembros de la organización ya que buscan maneras de patentar y hacer desarrollos cerrados, lo que incluye la posibilidad de integrar DRM a la especificación. Algunas de las voces que suman ha estas críticas son la Free Software Foundation, Web Content Accessibility Guidelines Working Group (WCAGWG), la propia WAHTWG y su miembro Ian Hickson.

    Las consecuencias…HTML Living y HTML Next

    La especificación HTML5 ha tenido diferentes “deadlines”…2011, 2012, 2014, 2022, todos estos años han sido mencionados para terminar la especificación, pero la verdad sea dicha, nadie sabe a ciencia cierta cual será la fecha final o la versión buena, ni siquiera todas las agrupaciones mencionadas, ya que todo obedece a muchos factores incluyendo desacuerdos y reconciliaciones (sí, cual telenovela de quinceañer@s despechad@s).

    La última afirmación extraoficial es que W3C se ha fijado el 2014 para terminar la especificación HTML5 y desde ahí comenzará la especificación de lo que llama HTML Next o HTML5 Next. Por su parte,  WAHTWG ha comenzado con lo que llama la especificación HTML Living.

    ¿HTML6?

    Permítame aclaro esto de una vez por todas, hoy NO EXISTE ALGO QUE SE LLAME HTML6, lo que a algunas personas les ha dado por llamar HTML6 es precisamente al conjunto de los conceptos HTML Living y HTML Next, los cuales ningún navegador soportará todavía, HTML6 NO es un nombre oficial ni nada por el estilo, mañana tal vez, pero hoy por hoy no lo es.

    ¿Cómo nos afecta esto a los desarrolladores?

    !No lo sabemos!, antes de que cunda el pánico y corra a buscar libros y manuales de HTML Living y HTML Next, la realidad es que la última palabra la tendrán los fabricantes de navegadores que son los que decidirán a que especificación apoyar en su momento, pero tenga presente que las cosas en el mundo de la tecnología cambian muy rápido y a veces de manera inesperada, y que las empresas y las organizaciones son finalmente dirigidas por personas que pueden cambiar de opinión en cualquier momento, ¿alguien se acuerda del choque Blu-Ray VS HD-DVD, donde supuestamente ganó el BR? (aunque el verdadero ganador fue el streaming). Por otro lado, si quiere saber el peor de los casos, este sería que los desarrolladores tuviéramos que lidiar con dos especificaciones HTML.

    ¿Debería dejar de aprender HTML5?

    NOOO!! no cometa ese error, HTML5 sigue vigente y avanzando y aun si HTML Living y HTML Next ven la verdadera luz, ambas especificaciones partirían desde lo que hoy es HTML5, de manera que es todo lo contrario, hay que continuar aprendiendo HTML5.

    Todo por ahora, cualquier comentario, pregunta, aclaración o queja con gusto en los comentarios de este post o en @ManuGekko

    IT professional with several years of experience in management and systems development with different goals within public and private sectors.

    No Comment
  • Visita al Instituto Tecnológico de Tijuana

    Los pasados días 23 y 24 de Abril tuve el placer de estar presente en las instalaciones del Instituto Tecnológico de Tijuana donde tuve el honor de ser invitado para hablar de HTML5 y presentar nuevamente mi libro, Arrancar con HTML5, en este evento. Conté con la presencia de estudiantes de diferentes carreras y algunos de sus profesores con los cuales discutimos acerca de temas relacionados con la tecnología HTML5 y a sus perspectivas.

    Mi audiencia en la ponencia
    Mi estimada audiencia en la ponencia.

    Tengo que admitir que una de las charlas tuvo algunos grados extra de dificultad para mi ya que tuve que abordar el tema para a estudiantes con un perfil diferente a los que me suelo dirigir, ya que normalmente las audiencias con las que me relaciono tienen perfiles más técnicos y relacionados con ingenierías en sistemas, ingeniería en software, telemática, informática, etc., sin embargo en esta ocasión, conté con la presencia de estudiantes de administración, ingeniería civil y gestión empresarial entre otros. A pesar de estas diferencias logramos apreciar aspectos de la implementación de tecnologías como HTML5, y otras relacionadas, que poseen gran potencial en todos los campos profesionales y en donde desde luego se puede sacar un gran provecho de ellas.

    Con alumnos y profesores
    Con alumnos y profesores que me acompañaron.

    También tuve preguntas muy buenas por parte de la audiencia, donde desafortunadamente por motivos de tiempo al contestarlas tuve que ser muy breve, pero realmente sentí tentación de abordar ciertos temas más a fondo (aquel relacionado con HTML Living y HTML Next fue uno en particular).

    Sin más quiero reconocer y agradecer al Instituto Tecnológico de Tijuana y los organizadores de su 2da Feria del Libro por haberme invitado a formar parte de este importante evento y desde luego a Alfaomega Grupo Editor y su equipo de colaboradores, quienes hicieron posible mi participación, a todos ,gracias.

    IT professional with several years of experience in management and systems development with different goals within public and private sectors.

    No Comment
  • ¡Cuidado, aprenda el modelo de caja correcto!..Flexible Box Layout 2012

    CSS3

    He encontrado al momento de escribir estas líneas, que la mayor parte de los manuales, tutoriales y libros que explican el modelo de caja de CSS3, mejor conocido como Flexible Box Model o simplemente como Flexbox, hacen referencia a las especificaciones anteriores (2009 – 2011), por lo tanto y desafortunadamente muy buenos documentos al respecto han quedado sin actualizar con información obviamente atrasada. Es por ello que me parece oportuno prevenir a todos los que están interesados en HTML5 y concretamente en CSS3 pero aun no enterados,  para así estar atentos y no perder tiempo aprendiendo sintaxis que pronto quedarán obsoletas.

    ¿Por qué sucede esto?

    Siempre que hablo de HTML5 en general, trato de ser muy enfático en que los desarrolladores debemos estar al pendiente de cambios y mejoras en la especificación, ya que es algo que puede suceder en cualquier momento, esto pasa debido a que las organizaciones que se encargan de desarrollar las especificaciones tratan de mejorar activa y rápidamente toda esta tecnología de acuerdo a su criterio. Sí, esto a veces es una “lata”…díganmelo a mi que tuve que retrasar publicaciones por estos cambios, pero todo sea por estar al día…..

    ¿Cómo distinguir modelos viejos del último?

    Como ya mencioné, si usted hace una búsqueda en la web acerca del modelo de caja de CSS3, encontrará mucha información sin actualizar, pero un método fácil y rápido para distinguir el código que utiliza la versión del modelo actual de las versiones anteriores es:

    • Si usted observa en el código CSS3 display: box o bien alguna propiedad box-{*} entonces lo que ve es código que utiliza el modelo viejo 2009.
    • Si usted observa en el código CSS3 display: flexbox o una función flex() entonces lo que ve es código que utiliza el modelo viejo 2011.
    • Si usted observa en el código CSS3 display: flex y propiedades flex-{*} entonces lo que ve es código que utiliza el modelo actual 2012.

    Si es usted principiante tenga en cuenta que los navegadores utilizan bastante su correspondiente prefijo (-webkit-, -moz-, -ms-, -o- )

    ¿Cómo estar al día?

    La manera más efectiva, aunque ciertamente no la más amable con los principiantes, es leer la especificación oficial http://www.w3.org/TR/css3-flexbox/ con un poco de paciencia y curiosidad se logra entender sin tanto esfuerzo.

    Otras consideraciones…

    Hay que poner atención en que la última especificación puede publicarse en una fecha determinada, pero no hay garantía de que los navegadores soporten los cambios de inmediato ni de que lo hagan al mismo tiempo. El navegador que ha estado soportando más rápido los cambios que se hacen en las especificación HTML5 y CSS3 es sin duda Chrome, seguido por Firefox y Maxthon, pero como ya dije, hay que estar atentos.

    IT professional with several years of experience in management and systems development with different goals within public and private sectors.

    No Comment
  • Ovejas tecnológicas

    5 tipos de ovejas tecnológicas (¿es usted una oveja?)

    1. La oveja consumista (pero cool).

    Son las 7 a.m. llegan a cierto parque de la Ciudad de México un grupo de unas 5 personas, todos vestidos con calzado deportivo, calcetas, bandas, mayas y pants “de marca” cuyos materiales supuestamente tienen cierto tratamiento que permiten una mejor circulación de la sangre y además una correcta sudoración (según palabras de sus propios usuarios). Sacan y acomodan sus respectivos dispositivos “inteligentes” con sus audífonos, y les configuran algo.

    Algunos otros miembros del grupo acomodan el dispositivo que van colocar en su calzado, brazo, antebraso y/o muñeca para que el reproductor sincronice su ruta, su ritmo cardiaco y seleccione las música adecuada del playlist al ritmo en el que corren. Otros se aseguran de tener datos móviles en sus teléfonos inteligentes para poder postear toda la info. de su sesión deportiva a su red social preferida. Adicionalmente algunos ajustan una serie sujetadores para bebidas en su cintura y hombros.

    Habiendo yo llegado prácticamente el mismo tiempo que estas personas, para cuando todos estos rituales están listos, he logrado recorrer alrededor de 1 kilómetro, pero continuemos…

    Una vez que este grupo de personas comienza a correr, no es raro ver que alguno de ellos se detiene para verificar por que algunos de los dispositivos que llevan consigo (incluyendo la ropa “high tech”) no están funcionando como se esperaba. La vida no es perfecta (pienso :D).

    Las personas de este grupo en particular, se detienen al rededor de entre los 4 y 5 kilómetros, argumentando cansancio, algún dolor esporádico u otros simplemente se solidarizan con el compañero en desgracia y se detienen también. Cuando comienza a suceder esto, usualmente este grupo de personas emprende la retirada. Para entonces yo ya he recorrido entre 6.5 y 7.5 kilómetros aproximadamente.

    No me mal interprete, a mi también me gusta monitorear cuantos kilómetros hago y de vez en cuando molestar a algún amigo incluido en mi red social de corredores de colonia al hacerle notar que corrí más esta semana, dejo a su criterio si eso ya meeeheheheh 😀 califica para pertencer a las ovejas tecnológicas. Pero, si el uso de nuestros gadgets no solo no nos ayudan a cumplir lo que nos proponemos en un principio, sino que además nos alejan de ese objetivo, llenando sólo algún tipo de vacío en el psicológico, entonces nos hemos convertido en la oveja consumista.

    2. La marca (compañía) oveja

    ¿Qué me dice del 3D en películas y televisores? probablemente he visto unas 9 u 10 películas en este formato, y a excepción de una, me hubiera dado exactamente lo mismo ver el resto en el formato normal. Desde el 2010 la industría intentó por todos los medios introducir el gusto y el hábito por las pantallas 3D en las personas, de manera casi obsesiva, ofreciendo al consumidor tecnologías y lentes propietarios (que no podían utilizarce en marcas diferentes al del televior adquirido) para ver los dichosos contenidos en 3D.

    Todo esto se disparó  a raiz el éxito de la película Avatar dirigida por James Cameron en el 2009. La industría del cine de Hollywood ante la crisis de creatividad, que en mi opinión han sufrido en casi todo lo que va del siglo, intenta reciclar películas  y argumentos ya vistos hasta el cansancio pero adaptadas al “fabuloso” formato del 3D, pero con todo y su historia de Pocahontas reciclada, Avatar logra ser un verdadero éxito comercial.  Con esto la industría de la electrónica de consumo toma nota y en el CES del 2010 varios fabricantes de pantallas presentan su oferta de pantallas 3D.

    Los que únicos que consumieron estas pantallas son los early adopters y muchos miembros del tipo de oveja anterior, la oveja consumista. Por todo esto durante el 2011 y 2012 casi todas las marcas de televisores tenían su oferta de pantallas 3D (con lentes y sin lentes). Desafortunadamente para esta industria la adopción de pantallas 3D por parte de los consumidores no fue la que esperaban, y con ello la fabricación de estas pantallas descendió de manera dramática. Es por esto que a las marcas que apostaron por crear sus pantallas 3D sólo porque las otras marcas lo hacían se ganan el título de…(redoble de tambor)….las marcas ovejas.

    3. La oveja prejuciosa y la oveja oportunista

    Esta histora es de mis favoritas, y en ella ubico a dos tipo de oveja simultáneamente. En el 2012, en las semanas próximas a el día internacional contra el cáncer de mama, se crearon importantes campañas para prevenir este mal que aqueja a mujeres de todo el mundo, lo que está muy bien. Pero ¿qué pasa cuando el popular sitio de videos pornográficos PornHub decide tomar cartas en el asunto e intenta ayudar (algunos, dicen que “ayudar”) a la causa? Bueno, pues lo que ocurrió es que en un principio ninguna institución dedicada a la lucha de este mal quizo aceptar el dinero recaudado por la campaña emprendida por este sitio.

    La primera intención de PornHub era entregar el dinero reunido a la Fundación Susan G. Komen, pero un vocero de esta fundación declaró que esta no era socia de PornHub, que no recibirá donaciones de ellos y pidió que dejeran de usar el nombre de la organización durante la campaña. Eventualmente otras organizaciones sí aceptaron la aportación del popular sitio de videos para adultos y la campaña se repitión en años posteriores. Sin duda esto me hizo a plantear nuevas perspectivas, ¿las organizaciones deberían aceptar las donaciones de esta industria?¿Buscaba PornHub sólo más clics para su videos?. El veredicto es suyo, pero para estar listo a su desición final abrimos los tipos oveja prejuciosa para los grupos que no aceptarón dinero y el tipo oveja oportunista en caso que crea que PornHub solo se aprovechó de la situación.

    4. La oveja desconcertada.

    Este tipo de oveja es común y puede encontrarla en individuos, grupos, comunidades, compañías de todo tipo e incluso países enteros. Existe un fenómeno real en el cual algunas ovejas cuando están asustadas se paralizan, dejan de moverse e incluso llegan a morir de un paro cardiaco.

    ¿Recuerda a una famosa compañía llamada Blockbuster?, si usted es muy joven quizá solo le tocó ver los últimos suspiros de esta compañía en su país, si no le cuento. En los 80s un matrimonio emprendedor decidió hacer una tienda donde usted podía rentar películas 2 o 3 días por una fracción de su costo de venta, en lugar de comprarlas. Eventualmente en una hábil maniobra comenzaron hacer lo mismo con video juegos. La compañía ganó millones, pero al mismo tiempo surgía otra empresa con un modelo de negocio extraño, que rentaba películas por correo llamada Netflix (¡boom! :D)

    Blockbuster tuvo la opción de comprar Netflix, pero la rechazó. Netflix tuvo el atino de pivotear según cambiaba el mercado creando su modelo de streaming por Internet, desde luego Blockbuster no. Tiempo después Blockbuster intentó copiar el modelo de Netflix pero su reacción fue lenta, ya era demasiado tarde. Actualmente solo existen 4 o 5 tiendas de Blockbuster…..en Alaska. Con este ejemplo ilustro el tipo oveja desconcertada.

    Extra. En México existen compañías de medios que han creado contenidos (de dudosa calidad) para radio y televisión abiertas durante décadas llamadas Televisa y TV Azteca (Grupo Salinas). Las cuales hasta ahora han fallado en evolucionar con el mercado actual, perdiendo cada vez más competitividad ante otras opciones como el mismo Netflix o YouTube entre otros. Por el momento son ovejas desconcertadas, en el futuro y en México veremos si logran despertar o no.

    5. La oveja social y ciega

    Las personas que tenemos un tiempo usando internet sabemos que cuando hay un servicio gratuito, es el usuario de ese servicio, el que en realidad se vuelve el producto. Cuando los usuarios de una red social utilizamos la misma y enviamos fotos de lo que comimos por la mañana, cuando queremos mostrar lo felices que somos en familia y posteamos fotos de hijos, esposas, amigos etc., o cuando discutimos acaloradamente con alguien de un tema al que nadie le importa, defendiendo a un político, cantante o marca que de paso ni sabe y/o le importa nuestra existencia, lo que en realidad hacemos es pasar tiempo en la plataforma dándole mucha información a la misma.

    Esta información será utilizada para diferentes fines, el más común es dar elementos para que la red social nos muestra publicidad focalizada, lo que significa que veremos anuncios que tienen mayor probabilidad de interesarnos y reportar un número de tracción mayor a los socios de esa red social. Hasta ahí, si comprendemos eso como usuarios, quizá podamos aceptar esa situación e incluso sacar provecho de ella (así como este blog intenta sobrevivir proporcionando contenido útil, mientras que se sostiene gracias a los anuncios que se muestran y a las personas que los ven).

    El problema de las ovejas comienza cuando el usuario no comprende esta realidad y ofrece demasiada información y comienza a ser manipulado por la misma red social o por las personas que comprenden tan bien cómo funcionan las redes, que comienza a manipular la opinión de usuarios menos informados y más influenciables para beneficiar a alguna agenda.

    Este es un tema profundo, pero si usted es de esas personas que pasan mucho tiempo en redes sociales sólo consumiendo memes graciosos, contestando tests, compartiendo frases “sabias”, discutiendo demasiado sobre nada importante, y dando por hecho lo que se postea ahí sin cuestionar su propósito. Usted sin duda será víctima de intereses particulares que intentan manejar o predecir su comportamiento. Mi consejo es que cuestione todo lo que ve, todo lo que le dice su Youtuber favorito, y medite lo que comparte antes de hacer clic para que no se convierta en una oveja social y ciega.

    La pregunta obligada

    Seguramente hay muchos más tipos de oveja que a usted se le pueden ocurrir, pero el tema verdaderamente importante es: ¿Forma usted parte de las ovejas tenológicas?

    IT professional with several years of experience in management and systems development with different goals within public and private sectors.

    4 Comments
  • El problema de la educación

    La reflexión

    Hoy en día muchos de nosotros ya conocemos la triste situación en la que se encuentra la educación básica en muchos países del mundo, particularmente en los países de América Latina, varios de nosotros hemos sufrido los pesares causados por sindicatos ventajosos y corruptos que tienen en sus filas a maestros malos, pseudomaestros, o incluso buenos maestros que se ven atrapados en circunstancias imposibles. Todo esto es desde luego grave, pero creo que estamos más que diagnosticados de lo mala que es nuestra situación a nivel de educación básica, puede echar un vistazo a documentales como De Panzazo o Waiting for Superman que abordan el tema respecto a México y Estados Unidos respectivamente, aunque usted no viva en ninguno de estos países puede que encuentre puntos en común con estos casos.

    Pero…¿que pasa en la educación superior?, todos hemos escuchado de profesionales que terminan conduciendo un taxi o haciendo hamburguesas, y no es que ser taxista o voltear hamburguesas tenga algo de malo o indigno, es simplemente que ser taxista o cocinero no es el objetivo de invertir 4 o 5 años de la vida de un individuo, ni por supuesto tampoco el de los gastos y esfuerzos familiares y gubernamentales que el paso de una persona por una institución de nivel superior implican. Entonces, ¿qué diablos pasa? ¿por qué sucede esto?…me he encontrado que la mayoría de la gente argumenta que el respectivo gobierno “no genera los puestos de trabajo necesarios”, creo que esta afirmación tiene su cuota de verdad, sin embargo esa no es la única razón ni la más exacta, le propongo algunas reflexiones más que quizá saltan menos a la vista pero están ahí:

    La actualización de planes de estudio y sus contenidos es demasiado lenta.

    Si me permite, ejemplificaré con una experiencia personal. Mis años de universidad se ubicaron entre los años 1995 y 2000, años que coincidieron con el gran ¡boom! de Internet, en esos momentos el plan de estudios de mi carrera (Ingeniería en Sistemas Computacionales) tenía lo que llamaban en mi universidad “tronco común”, lo que significaba en términos generales, que compartía asignaturas comunes con estudiantes de otras ingenierías, es decir, los estudiantes de Ingeniería en Sistemas en mi universidad debían cursar y aprobar obligatoriamente asignaturas como Estática, Dinámica, Termodinámica entre otras. Mi alma mater en esos años contaba con la llamada “Biblioteca de Ciencias”, que a pesar del pretencioso nombre,  no era nada más que una pequeña biblioteca que además de algunos libros, contaba con una red de más o menos 30 computadoras conectadas a Internet, a lo que se sumaban recursos almacenados en algunas decenas discos compactos, que debo reconocer que en esos años, y considerando que hablamos de una universidad mexicana, todo eso era TODO un privilegio, ya que fue la primera universidad con algo así en toda América Latina.

    Descrito el escenario, le expongo la realidad con la que me he enfrenté, gran parte de esas materias de tronco común orientadas más a Ingeniería Mecánica, no solo nunca me han sido prácticas en lo que respecta a la Ingeniería en en Sistemas, si no que interferían con lo que realmente estaba aprendiendo gracias a la infraestructura universitaria, es decir, en esos años gracias al acceso a Internet y a algunas buenas amistades, yo ya estaba aprendiendo lo que eran los navegadores y su funcionamiento, como se construían las páginas, comencé a aprender HTML, aprendí lo que eran formatos de compresión de imágenes y audio, tuve mis primeros contactos con Flash y su ActionScript entre muchas otras cosas, todo era realmente nuevo y básico, pero sumamente interesante para mi.

    Desafortunadamente mi desempeño académico nunca se vio evaluado con respecto a esto, pero sí por la resolución de problemas de termodinámica, estática, dinámica y otros, que honestamente solo despertaban mi curiosidad de vez en cuando, ya que esos problemas de física aplicada, ante mis ojos, palidecían a lado de hacer un programa capaz de enviar un archivo de un lugar del mundo a otro, o de combinar mi gusto por el dibujo con programas gráficos y código de programación. El resultado al final fue que mis siempre buenas notas hasta el momento, se convirtieron en notas más bien mediocres y a veces malas, poca gente más allá de un par de amigos, sabían o notaban mis pequeños pero constantes progresos en el uso del extraño HTML, en el uso de nuevos paquetes gráficos, y en otras curiosidades del momento. Muy pocos profesores y estudiantes se daban cuenta de la revolución que estaba teniendo lugar debajo de nuestra nariz, ya que nadie en ese momento me dijo que a pesar de todo, lo que estaba aprendiendo se convertiría en el pilar de toda mi etapa laboral y profesional hasta el día de hoy.
    La moraleja de la historia es que las instituciones de educación superior, deben de estar mucho más enteradas de lo que realmente está pasando en el mundo y deben adaptarse rápidamente a el, más aun cuando nos referimos a carreras de ciencias aplicadas. Los giros de timón que se están dando en las industrias existentes, y la velocidad con la que aparecen nuevos mercados y oportunidades se miden en meses y semanas, mucho de lo que enseñan las universidades NO SIRVE si tardan 1, 2 o 3 años en actualizarlo, y suman aun más tiempo decidiendo si lo hacen o no, el resultado será una falta de competitividad tremenda.

    Falta de visión por parte de instituciones, estudiantes y profesores.

    Tenemos una variedad de factores que causan situaciones difíciles de sortear, por un lado sin duda existen las crisis económicas regionales, nacionales y mundiales, la falta de incentivos gubernamentales y los indices de corrupción (inserte su indice de corrupción nacional aquí), pero quizá lo más grave que padecemos en muchas partes del mundo, en especial en América Latina, es la falta de visión. Muchos estudiantes hoy en día siguen teniendo una perspectiva en la que deben cumplir con los requisitos que solicita hoy una institución de nivel superior para graduarse, bajo esta idea, una vez graduados eventualmente una empresa o institución los contrataría con un sueldo “razonable” y así podrían hacer carrera dentro de esa misma empresa o institución, donde ascenderían poco a poco; lamento decirle a todos aquel que aun cree eso, que hoy en día, los casos así son MUY POCOS, esas situaciones quizá fueron más comunes, apróximadamente, de los años 80s hacia atrás (al menos en lo países con mínima estabilidad), pero esa situación ya NO es la realidad más dominante el día de hoy. Por otra parte tenemos a los profesores, estos sin duda son algo importante y necesario, pero ¿cuáles son las razones por las que un profesor imparte cátedra en este momento?, en los casos más benignos, tenemos a los profesores que dan clase por legítima vocación, tenemos a aquellos que  gustan de compartir su experiencia y conocimiento de campo pero que al mismo tiempo ejercen su profesión de manera paralela; la parte poco conveniente son sin embargo, los casos en que los profesores que ofrecen clases hoy en día lo hacen porque no encuentran (o no buscan) una mejor opción, porque no les gusta asumir riesgos y algún amigo o pariente encontró manera de ofrecerles un puesto humilde pero seguro, o porque simplemente no les interesa ejercer. Me da la impresión de que la mezcla de todas estas situaciones han hecho que nos olvidemos de los principales objetivos que debemos alcanzar.

    El OBJETIVO PRINCIPAL de la educación superior NO es convertir a sus alumnos en maestros de sus propias aulas, tampoco en graduar a gente que se dedicará a actividades completamente ajenas a sus estudios, el PRINCIPAL OBJETIVO es preparar a personas para poder CREAR Y MEJORAR bienes y/o servicios, ya sean materiales o intelectuales, que colaboren al desarrollo de su sociedad vía el uso de sus conocimientos. Para terminar este punto permita hacerle algunas preguntas, ¿qué es lo que pretende verdaderamente usted, su escuela y sus profesores, haciendo lo que hacen actualmente?,¿cuántos de sus compañeros o profesores están intentando inventar algo nuevo?,¿cuántos intentan mejorar alguna práctica o proceso?,¿cuántos están intentando crear una empresa?,¿cuántos están intentando registrar una patente?

    Creación, derechos y patentes.

    Esto está muy relacionado con el punto anterior, pero ahora me refiero no solo a las personas que actualmente están activas dentro de los sistemas educativos sino también a los que ya somos fruto de ellos. A muchos países nos falta crear, crear en todo el sentido de la palabra. Como mencionaba al principio de esta entrada, escucho continuamente a muchas personas de diferentes nacionalidades decir la frase “es que el gobierno no crea los empleos suficientes“, personalmente creo que esa postura es inexacta, los gobiernos son responsables de GENERAR LAS CONDICIONES ADECUADAS para crear empleos, pero no son directamente responsable de crear el empleo per se. Lo explico mejor, si deseamos que una empresa nos contrate, primero alguien debe crear esa empresa, y una empresa se crea en función de algún producto o algún servicio. Posiblemente ya puede ver a donde voy, en efecto los gobiernos deben fomentar la creación de empresas (¿qué tan bien lo hacen?…ese es otro asunto), pero los gobiernos muy rara vez innovan nuevos productos o nuevos procesos, proporciona las reglas para que una empresa entre a un mercado y ayudan a regular al mismo, pero, ¿qué pasa si nosotros las personas simplemente no creamos nada, ni la idea, ni la tecnología, ni el servicio, ni el producto? la respuesta es simple, ninguna empresa nacerá sin algo de eso, la cadena simplemente se rompe desde su primer eslabón; si eso sucede entonces una comunidad queda a expensas de unas pocas empresas (continuamente nacidas en otro lugar), y a que estas quieran tener presencia en nuestra comunidad, las personas que viven ahí solo puedan a aspirar a los puestos que estas deseen ofrecer, a veces estas empresas caen en cuenta de que se vuelven tan importantes para la economía de esa comunidad, que debido a la falta de creación de competencia, comienzan a presionar al respectivo gobierno para tener mayores privilegios, de lo contrario se van ¿Le suena esto conocido?. En fin, si no mantenemos un índice aceptable de creación, innovación, y por lo tanto competitividad, podemos crear círculos viciosos que bien podrían ser virtuosos.

    Y no solamente es crear algo, también hay que aprender como proteger y fomentar la creación, aunque actualmente las formas de hacerlo son polémicas no sobra aprender y enseñar un poco sobre derechos de autor, registro de marcas y patentes. Mucha gente tiene variados e interesantes puntos a favor y en contra respecto a las patentes, pero el hecho es que hoy por hoy son un indicador bastante bueno del estado económico y el nivel de vida de país. Si desea dar un vistazo a algunos de los resultados de los últimos estudios publicados por la World Intellectual Property Organization para averiguar como están las cosas en su país, le comparto los siguientes enlaces:

    http://www.wipo.int/export/sites/www/freepublications/en/economics/gii_2012.pdf

    http://www.wipo.int/ipstats/es/statistics/country_profile/

    http://www.wipo.int/ipstats/en/wipi/figures.html

    Ni son todos los que están, ni están todos los que son.

    A lo largo de mi carrera me he encontrado con personas que están más que calificadas para hacer un trabajo de nivel profesional pero no cuentan con educación formal, tristemente también con muchos que cuentan con todas las credenciales de nivel licenciatura, maestría y doctorado, pero en la práctica no cuentan ni con las mínimas habilidades para solucionar problemáticas apropiadas para las habilidades que presumen sus títulos. También podemos hablar de las personas que abandonan sus carreras porque descubren que disfrutan o hacen mejor otra cosa, o simplemente no les gusta lo que estudiaron.

    Esto indica desde luego, que existe un gran problema en nuestros sistemas educativos básicos y de nivel superior, que está alejando a las personas con habilidades, vocación o talento de la educación formal, o quizá están ubicándolas erróneamente o dejando pasar a demasiadas “poco adecuadas”, lo que no sería tan grave de no ser porque todo eso significa que se le quitó la oportunidad a alguien que la hubeira aprovechado mejor y que no se hubieran desperdiciado recursos que probablemente ya no se recuperarán. Podríamos pensar que esto es caso del tercer mundo, pero no es así, también en lo países desarrollados sucede, vamos a ahorrarnos los casos malos y pensemos en algunos casos famosos y positivos, tenemos que el fundador de Microsoft, Bill Gates, dejó su carrera universitaria truncada, el caso en que Steve Jobs fundador de Apple también abandonó la universidad, un caso más actual es Mark Suckerberg fundador de Facebook, que al igual que los anteriores dejó de lado su carrera universitaria.

    Me parece que los expertos tienen cosas por analizar sobre este punto.

    Conclusión.

    Hay muchos retos nuevos ante nosotros actualmente, y las colegios superiores han logrado mucho, tienen muchas cosas buenas y sin duda son un baluarte de la educación y de las sociedades modernas en general, pero al igual que todas las cosas vivas que buscan sobrevivir, deben saber trasformarse y reinventarse para poder hacer frente a esos nuevos escenarios, los cuales exigen nuevas formas en el pensar y en el actuar para poder enfrentarlos con prontitud y eficacia.

    Lo dejo con uno de los videos más reveladores que he visto en Internet en su versión para el 2011:

    IT professional with several years of experience in management and systems development with different goals within public and private sectors.

    2 Comments
  • La mejor aplicación VPN que he utilizado al momento: TunnelBear

    Hace ya unos 2 o 3 años que tenía conocimiento de los nuevos modelos de negocio que permitían escuchar música y ver programas de televisión, películas, etc., de manera totalmente legal, por los cuales tenía una enorme curiosidad por probar. Mi curiosidad por estas iniciativas combinadas con mi alta inconformidad por los contenidos de mi entonces contratada compañía de cable, los malísimos contendidos de televisión pública, y todo por supuesto, ensalsado con malos y excesivos comerciales de malos productos o malos políticos, programas repetidos hasta el hartazgo y el sobre explotado formato del reality show, me llevaron a buscar cobijo en estos servicios, probarlos y toparme con sorpresas muy gratas.

    Algunos de los servicios que he probado y con los cuales me he quedado con una buena experiencia son Hulu, Spotify, Pandora, Netflix entre otros. Sin embargo el primer obstáculo con el que me enfrenté al querer probar estos servicios, fue que la mayoría de ellos estaban limitados a atender solo algunas zonas geográficas, es decir, no estaban disponibles para mi país. Por fortuna, la experiencia ya de algunos años me llevó a implementar una solución rápidamente.

    La solución es conceptualmente simple, lo único que hice fue unirme a una VPN (Virtual Private Network), es decir, en términos llanos uní a mi computadora a una red virtual creada en un país donde el servicio que me interesaba efectivamente sí estaba disponible. Pero no todo fue (o es) fácil, ya que aunque la técnica es esencialmente sencilla, los problemas principales oscilan en:

    • Encontrar una VPN en el lugar indicado y que permita el acceso a ella.
    • Ancho de banda suficiente para un buen rendimiento, tanto en la VPN como nuestra conexión local.

    Otro problema presente para algunas personas es,  para decirlo con honestidad, la falta de conocimiento técnico, ya que no les es fácil aplicar esta solución. Es justamente aquí donde la aplicación TunnelBear puede ser de gran ayuda, y reduce la brecha entre los más y los menos avispados en este tema.

    TunnelBear es uno de los mejores programas VPN que he utilizado, proporciona acceso a una VPN de una manera brillantemente simple, con lo cual el usuario obtiene acceso a sitios y servicios restringidos geográficamente, la aplicación se instala como cualquier otra, con opciones de configuración muy sencillas, lo único que se requiere es dar de alta una cuenta en su servicio, el resto lo hace la aplicación por si misma.

    Una vez instalado TunnelBear y al ejecutarlo se nos presenta una interfaz que permite seleccionar la ubicación que deseamos entre Reino Unido (UK) y Estados Unidos (US),  otra opción para prender y apagar la conexión a la VPN, también muestra una gráfica que monitorea el consumo de ancho de banda que se ha hecho.

    Hasta ahora mi experiencia con TunnelBear ha sido muy buena. La aplicación ofrece opción gratuita limitada, y opción de pago sin límite, la cual me parece que vale la pena, mis streamings se ven bien y sin problema.

    Un punto con la red VPN de TunnelBear que también puede ser importante en algunos escenarios, más allá de su uso para el entretenimiento, es la seguridad adicional que provee. Los datos que entran y salen de nuestra conexión estarán más seguros cuando viajan por esta VPN, lo cual hace de TunnelBear una alternativa con respecto a otras aplicaciones como Tor o Hotspot Shield.

    Si le es posible pruébelo y comparta su experiencia.

    IT professional with several years of experience in management and systems development with different goals within public and private sectors.

    No Comment
  • Upload A File With HTML5 / Subir un archivo con HTML5

    Subir un archivo con HTML5

    Upload A File With HTML5 / Subir un archivo con HTML5

    El objeto XMLHttpRequest

    El objeto XMLHttpRequest ha sido actualizado varias veces desde que fue definido como parte del esfuerzo WHATWG’s HTML utilizando la tecnología de Microsoft; entonces tuvimos la especificación original XMLHttpRequest Level 1 como parte de la W3C, también tuvimos la especificación actualizada XMLHttpRequest Level 2, y ahora tenemos la últma version de este documento conocido como XMLHttpRequest Living Specification. Podemo resumir sus ventajas en los siguientes puntos:

    • Permite subir y bajar archivos como flujo de bytes (stream bytes), archivos binarios de gran tamaño (BLOBs) o formularios de datos.
    • Tiene manejadores de eventos de progreso, errores, aborto, comienzo, y fin de operaciones.
    • Peticiones inter dominio (cross-domain or CORS)
    • Nuevos tipos de respuestas para JSON
    • Es parte fundamental de la HTML5 File API specification

    Es importante recalcar que antes de HTML5 y la nueva versión del objeto XMLHttpRequest se requería recurrir a tecnología de lado servidor para poder realizar una operación que permitiera subir un archivo, es decir no era posible subir un archivo nativamente del lado cliente. Tecnologías como AJAX  y Flash hacían lo propio para tratar de hacer esto posible pero con serias limitaciones, por lo que XMLHttpRequest viene a cubrir este antiguo problema de gran manera. Existen otras características adicionales que acomapañan XMLHttpRequest  Level 2 , si desea conocer más puede recurrir a  la especificación oficial.

    La mayoría de las veces utilizo código y comentarios en inglés, espero que esto no le resulte demasiado inconveniente, si tiene alguna duda la contestaré a la brevedad.

    Comenzando

    Lo primero que haremos es definir la interfaz de usuario para esta pequeña implementación comenzando por las etiquetas HTML, el código es muy sencillo y solo contempla algunos elementos de formulario, y algunos div que solo sirven para dar una mejor presentación auxiliandose de CSS3. No analizaré en este post lo que respecta a las hojas de estilo utilizadas ya que no es algo necesario para el funcionamiento del ejemplo.

    <!DOCTYPE html>
    <html>
     <head>
     <title>Upload File</title>
     <meta charset="iso-8859-1" />
     </head>
     <body>
    <div id="wrap">
    <div class="field">
    <ul class="options">
     <li>
     <input type="file" id="myfile" name="myfile" class="rm-input" onchange="selectedFile();"/></li>
     <li>
    <div id="fileSize"></div></li>
     <li>
    <div id="fileType"></div></li>
     <li>
     <input type="button" value="Subir Archivo" onClick="uploadFile()" class="rm-button" /></li>
    </ul>
    </div>
    <progress id="progressBar" value="0" max="100" class="rm-progress"></progress>
    <div id="percentageCalc"></div>
    </div>
    </body>
    </html>

    El código anterior se explica casi por si solo, pero resumamos lo que tiene:

    • Un input de tipo file que servirá para seleccionar el archivo que se desa subir.
    • Un div que servirá para imprimir el tamaño del archivo seleccionado.
    • Un div que servirá para imprimir el tipo MIME del archivo seleccionado.
    • Un botón que disparará el proceso para subir el archivo elegido.
    • Una barra que indicará el progreso en el proceso de subida del archivo (nuevo elemento HTML5).
    • Finalmente un div donde se mostrará el progreso en formato de porcentaje.

    La función selectedFile()

    Cada vez que selecciona un archivo con el elemento file,  también dispara al evento onchange el cual llama a la función selectedFile(). En esta función suceden cosas interesantes, para empezar se hace referencia a una colección de archivos instanciada por un objeto nuevo en HTML5 llamado FileList, los objetos que obtenemos como miembros de las lista de FilesList son objetos File. En este caso obtendremos las propiedades size y type desde el objeto File recuperado.

    Aprovenchando la información que proporciona la propiedad size, dentro de la función se calcula y se muestra en megabytes o kilobytes el tamaño del archivo que se ha seleccionado. Con la propiedad type se obtiene el tipo MIME del archivo seleccionado, el cual se muestra en el div correspondiente.

    function selectedFile() {
    var archivoSeleccionado = document.getElementById("myfile");
    var file = archivoSeleccionado.files[0];
       if (file) {
           var fileSize = 0;
           if (file.size > 1048576)
              fileSize = (Math.round(file.size * 100 / 1048576) / 100).toString() + ' MB';
           else
              fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + ' Kb';
    
           var divfileSize = document.getElementById('fileSize');
           var divfileType = document.getElementById('fileType');
           divfileSize.innerHTML = 'Tamaño: ' + fileSize;
           divfileType.innerHTML = 'Tipo: ' + file.type;
    
        }
    }

    La función uploadFile()

    Esta es la función que hace un mayor uso de las nuevas posibilidades de XMLHttpRequest , y es la que se encargará de disparar el proceso principal del lado cliente.

    function uploadFile(){
     //var url = "/ReadMoveWebServices/WSUploadFile.asmx/UploadFile";
     var url = "/ReadMoveWebSite/UploadMinimal.aspx";
     var archivoSeleccionado = document.getElementById("myfile");
     var file = archivoSeleccionado.files[0];
     var fd = new FormData();
     fd.append("archivo", file);
     var xmlHTTP = new XMLHttpRequest();
     //xmlHTTP.upload.addEventListener("loadstart", loadStartFunction, false);
     xmlHTTP.upload.addEventListener("progress", progressFunction, false);
     xmlHTTP.addEventListener("load", transferCompleteFunction, false);
     xmlHTTP.addEventListener("error", uploadFailed, false);
     xmlHTTP.addEventListener("abort", uploadCanceled, false);
     xmlHTTP.open("POST", url, true);
     //xmlHTTP.setRequestHeader('book_id','10');
     xmlHTTP.send(fd);
    }

    Inicialmente tenemos una variable url que usaremos para indicar donde está la página o servicio web que recibirá la petición de esta página para hacer el proceso indicado en el servidor; enseguida tal y como se hizo en la funcion selectedFile() se hace referencia al objeto File miembro FileList obtenido.

    En la cuarta línea hay algo novedoso y muy útil, me refiero al objeto FormData,  este objeto permite instanciar vía JavaScript un formulario web, es decir, es como si usted colocara con etiquetas HTML un formulario, o bien puede hacer referencia a uno ya existente asignándolo a un objeto FormData. Sin duada esto es de gran ayuda ya que significa que ahora usted puede crear un formulario y alterar los valores que envía de manera dinámica. Para adjuntar valores a un formualrio instanciado o referenciado con FormData se utiliza el método append(archivo, objeto), de esta manera en la quinta línea se agrega nuestro objeto File con el nombre de archivo.

    Este es el fragmento de la función que abarca lo planteado:

    //var url = "/ReadMoveWebServices/WSUploadFile.asmx/UploadFile";
    var url = "/ReadMoveWebSite/UploadMinimal.aspx";
    var archivoSeleccionado = document.getElementById("myfile");
    var file = archivoSeleccionado.files[0];
    var fd = new FormData();
    fd.append("archivo", file);

    Manejadores de eventos

    Continuando con el resto de la función, podemos observar que finalmente instancía el objeto XMLHttpRequest  y se asigna a la variable xmlHTTP, enseguida procedemos a la siguiente novedad, me refiero a la posibilidad de crear los nuevos eventos que forman parte de XMLHttpRequest  Level 2 gracias al objeto upload. Los eventes que se agregan en este caso son:

    • loadstart. Evento que se dispara cuando inicia el proceso para subir el archivo.
    • progress. Evento que se dispara cada vez que hay un avance en el proceso que sube el archivo.
    • load. Evento que se dispara cuando la transferecia se completa.
    • error. Se dispara si el proceso falla con error explícito.
    • abort. Se dispara si el usuario interrumpe o la conexión de interrumpe.

    No son los único eventos disponibles, consulte la especificación oficial para mayor información.

    Los manejadores de eventos se declaran en el siguiente código:

    var xmlHTTP= new XMLHttpRequest();
    //xmlHTTP.upload.addEventListener("loadstart", loadStartFunction, false);
    xmlHTTP.upload.addEventListener("progress", progressFunction, false);
    xmlHTTP.addEventListener("load", transferCompleteFunction, false);
    xmlHTTP.addEventListener("error", uploadFailed, false);
    xmlHTTP.addEventListener("abort", uploadCanceled, false);

    Las funciones que se llaman en cada evento son las siguientes:

    function progressFunction(evt){
        var progressBar = document.getElementById("progressBar");
        var percentageDiv = document.getElementById("percentageCalc");
        if (evt.lengthComputable) {
            progressBar.max = evt.total;
            progressBar.value = evt.loaded;
            percentageDiv.innerHTML = Math.round(evt.loaded / evt.total * 100) + "%";
        }
    }
     
    function loadStartFunction(evt){
        alert('Comenzando a subir el archivo');
    }
     
    function transferCompleteFunction(evt){
        alert('Transferencia completa');
        var progressBar = document.getElementById("progressBar");
        var percentageDiv = document.getElementById("percentageCalc");
        progressBar.value = 100;
        percentageDiv.innerHTML = "100%";
    }
     
    function uploadFailed(evt) {
        alert("Hubo un error al subir el archivo.");
    }
     
    function uploadCanceled(evt) {
        alert("La operación se canceló o la conexión fue interrunpida.");
    }

    La función progressFunction es la que actualiza tanto la barra de estado como el porcentaje que indican de manera gráfica y numérica el avance del proceso, el resto de las funciones únicamente despliegan un mensaje apropiado para el caso.

    Código comentado

    Si ha observado el código presentado habrá notado algunas líneas comentadas, eso es debido a que este es el código base para hacer algo un poco más complejo, pero decidí dejar esas líneas porque pueden ser una referencia útil para alguien:

    //var url = "/ReadMoveWebServices/WSUploadFile.asmx/UploadFile";

    La línea anterior es una llamada a un servicio HTTP .Net en lugar de a una página.

    //xmlHTTP.upload.addEventListener("loadstart", loadStartFunction, false);

    Esta línea llama a una función que muestra un mensaje cuando inicia el proceso, la cual comenté porque después de ejecuar varias veces el código me pareció molesto.

    El código completo

    Así luce la implementación completa del código, no describo el código CSS3 ya que es irrelevante en lo que respecta a la funcionalidad, pero comparto una imágen que muestra como se ve ejecutándose:

    <!DOCTYPE html>
    <html>
        <head>
            <title>Upload File</title>
            <meta charset="iso-8859-1" />
                                        <link rel="stylesheet" type="text/css" href="estilosUploadFile.css" />
            <script type="text/javascript">
     
                  function selectedFile() {
                    var archivoSeleccionado = document.getElementById("myfile");
                    var file = archivoSeleccionado.files[0];
                    if (file) {
                        var fileSize = 0;
                        if (file.size > 1048576)
                            fileSize = (Math.round(file.size * 100 / 1048576) / 100).toString() + ' MB';
                        else
                            fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + ' Kb';
     
                        var divfileSize = document.getElementById('fileSize');
                        var divfileType = document.getElementById('fileType');
                        divfileSize.innerHTML = 'Tamaño: ' + fileSize;
                        divfileType.innerHTML = 'Tipo: ' + file.type;
     
                    }
                  }     
     
                function uploadFile(){
                    //var url = "http://localhost/ReadMoveWebServices/WSUploadFile.asmx?op=UploadFile";
                    var url = "/ReadMoveWebServices/WSUploadFile.asmx/UploadFile";
                    var archivoSeleccionado = document.getElementById("myfile");
                    var file = archivoSeleccionado.files[0];
                    var fd = new FormData();
                    fd.append("archivo", file);
                    var xmlHTTP= new XMLHttpRequest();
                    //xmlHTTP.upload.addEventListener("loadstart", loadStartFunction, false);
                    xmlHTTP.upload.addEventListener("progress", progressFunction, false);
                    xmlHTTP.addEventListener("load", transferCompleteFunction, false);
                    xmlHTTP.addEventListener("error", uploadFailed, false);
                    xmlHTTP.addEventListener("abort", uploadCanceled, false);
                    xmlHTTP.open("POST", url, true);
                    //xmlHTTP.setRequestHeader('book_id','10');
                    xmlHTTP.send(fd);
                }       
     
                function progressFunction(evt){
                    var progressBar = document.getElementById("progressBar");
                    var percentageDiv = document.getElementById("percentageCalc");
                    if (evt.lengthComputable) {
                        progressBar.max = evt.total;
                        progressBar.value = evt.loaded;
                        percentageDiv.innerHTML = Math.round(evt.loaded / evt.total * 100) + "%";
                    }
                }
     
                function loadStartFunction(evt){
                    alert('Comenzando a subir el archivo');
                }
                function transferCompleteFunction(evt){
                    alert('Transferencia completa');
                    var progressBar = document.getElementById("progressBar");
                    var percentageDiv = document.getElementById("percentageCalc");
                    progressBar.value = 100;
                    percentageDiv.innerHTML = "100%";
                }   
     
                function uploadFailed(evt) {
                    alert("Hubo un error al subir el archivo.");
                }
     
                function uploadCanceled(evt) {
                    alert("La operación se canceló o la conexión fue interrunpida.");
                }
     
            </script>
        </head>
        <body>
            <div id="wrap">
                <div class="field">
                    <ul class="options">
                        <li>
                            <input type="file" id="myfile" name="myfile" class="rm-input" onchange="selectedFile();"/>
                        </li>
                        <li>
                            <div id="fileSize"></div></li>
                        <li>
                            <div id="fileType"></div></li>
                        <li>
                            <input type="button" value="Subir Archivo" onClick="uploadFile()" class="rm-button" /></li>
                    </ul>
                </div>
                <progress id="progressBar" value="0" max="100" class="rm-progress"></progress>
                <div id="percentageCalc"></div>
            </div>
        </body>
    </html>

    No descibo el CSS3 porque es irrelevante en términos de funcionalidad, pero comparto una imagen que muestra como luce la implementación en el navegador y un enlace al CSS3 estilosUploadFile.zip.

    También comparto el HTTP service que utilicé para este ejemplo (el código de lado servidor, archivo de backend o cualquier otro nombre que ud. prefiera 😃) pero esto no será de mucha ayuda amenos que utilice exactemente el mismo stack que yo utilicé en su momento. En otras palabras, si usted es el tipo de personas que solo quiera copiar y pegar….jejeje bueno…quizá no está listo para hace esto todavía. Aquí está el tan solicitado archivo WSUploadFile.zip

    Es todo por ahora amigos, espero que esto les sea de utilidad.

    Algunos buenos libros que pueden ayudarle en su viaje por HTML5:

    IT professional with several years of experience in management and systems development with different goals within public and private sectors.

    37 Comments