Futuro


17
abr 12

SVG una tecnología en extinción

No Gravatar
SVG Logo

SVG Logo

Hace algunas meses atrás parte de algunas de las características que pensaba desarrollar en Celestic .. y que aún se encuentran pendientes, era crear una especie de pizarra que permitiera a multiples usuarios escribir o hacer anotaciones en tiempo real.. para ese entonces pensaba en solamente 2 opciones, canvas o svg.. incluso escribí algunas pruebas de diferentes librerías y al final estuve muy certa de utilizar RaphaelJS, eso sobre cualquier librería para canvas.

En ese momento, html5 no estaba muy difundido y las librerías de canvas estaban muy verdes para utilizar alguna, al final Celestic se detuvo un poco y decidí centrar el desarrollo en otro tipo de características.. Han pasado 3 años desde que tuve en mente si utilizar svn sobre canvas.. y hoy estoy a punto de cambiar de idea.

Las tecnologías cambian de la noche a la mañana, un día una nueva herramienta de desarrollo esta en la cima y otro día simplemente cae .. y lo peor es que nosotros nos preparamos tanto tiempo para aprenderlas .. que un día nos deja de servir y tenemos que empezar desde cero con algo totalmente nuevo.

La web cambia rápido .. ahora parece que flash ya no es una tecnología en la que valga la pena invertir.. hemos de aceptar que tuvo su gran momento, años de desarrollo y grandes comunidades dedicándose a perfeccionar los métodos de codificación.. para que al final no quede en nada.. “nada es eterno”.

Entonces creo que con SVG esta ocurriendo una situación similar.. los equipos de escritorio tienen soporte para SVG, los equipos móviles no lo tienen y si lo tienen es con especificaciones diferentes.. el SVG es una tecnología en extinción, los navegadores se estan especializando en pintar (render) canvas de manera muy rápida.. igualmente algunos browsers preparan su javascript para utilizar aceleración por hardware, lo que hace de canvas la nueva tecnología ideal para dibujar sobre la web.

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

10
abr 12

Habilidades a desarrollar en el 2012

No Gravatar
Developer skills

Developer skills

HTML5

El nuevo estándar en para desarrollo de sitios y aplicaciones web.. cargado de características que ayudan a mejorar la navegación y la experiencia de usuario tanto en componentes como en atractivo visual. La mayoría de los navegadores ya soportan html5 inclusive los navegadores para dispositivos móviles se puede decir que casi están al mismo nivel de los navegadores de escritorio.

Aplicaciones Móviles

Creo que esta moda aun no hay muchos desarrolladores adoptándola aunque si es muy importante por la cantidad de dispositivos móviles que se adquieren día a día.. Se puede empezar escribiéndo aplicaciones nativas con los SDK de iOS o Android ..  también se pueden desarrollar con frameworks que portan la aplicación a multiples plataformas.. o más sencillo que los demás escribir aplicaciones web que se adaptan al formato de los móviles.

Servicios Web basados en REST

A pesar de que REST no tiene un estándar y se continúa escribiendo una definición.. muchos servicios alrededor de la web utilizan este método para transportar información.. su sencillez y la falta de tipos de datos pueden ser un punto a tomar en consideración antes de elegirlo. Su implementación conlleva conocer los diversos tipos de peticiones y su consumo es tan simple que con pocas líneas se puede solicitar información a un servidor basado en REST.

Bases de Datos NoSQL

Se puso de moda a partir de que las redes sociales necesitaron manipular grandes volúmenes de información en tiempos muy cortos.. es importante considerar que NoSQL sería casi imposible utilizarlo para realizar consultas complejas, pero entre sus ventajas está la velocidad de respuesta ante millones de peticiones simultáneamente. Su uso implica aprender nuevos métodos para realizar búsquedas y está fuertemente ligado a la denotación JSON para su estructura y almacén de información.

JavaScript

Es el lenguaje para la web interpretado del lado del cliente por excelencia.. hace mucho tiempo parecía no valer la pena aprenderlo.. pero con la llegada de librerías como jQuery, Prototype o Mootools su desarrollo fue muy importante.. PhoneGap o Titanium que son frameworks o librerías para desarrollar aplicaciones móviles utilizan este tipo de lenguajes. Html5 está muy relacionado con javascript, inclusive se desarrolló Node.js que es un framework orientado a eventos para el motor javascript v8 de google.

Las pruebas unitarias

Este tipo de pruebas garantizan el funcionamiento correcto tanto desde el punto de vista estructural como funcional.. es parte de la difícil tarea de los arquitectos de software y a diferencia de las pruebas funcionales que se acostumbran llevar a cabo por los testers, en una temprana etapa de desarrollo de una aplicación, este tipo de pruebas permiten detectar errores en la lógica a desarrollar. La mayoría de frameworks en diferentes lenguajes ya incluyen sus propias implementaciones para realizar pruebas unitarias, no estaría mal aprender a utilizar un par de ellas.

UX/UI

Siempre este término ha estado relacionado con los diseñadores y hay diseñadores que creen que pueden crear interfaces atractivas, simples e intuitivas para los usuarios .. pero creo que ahí esta el error.. parte de desarrollar aplicaciones implica conocer cual es la mejor forma de utilizar los componentes o en que lugares sería mejor utilizarlos para los usuarios.. El uso de equipos móviles han logrado que muchos desarrolladores empiecen a dar pequeños saltos hacia este interesante mundo..

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

13
mar 12

Aplicaciones moviles – nativas vs web

No Gravatar
Aplicaciones nativas vs aplicaciones web moviles

Aplicaciones nativas vs aplicaciones web moviles

Ya desde el año pasado había estado dando pequeños pasos y haciendo pruebas de desarrollo para iPhone y Android, tratando de conocer las fuerzas y debilidades de estas plataformas, conociendo el flujo de trabajo y tiempos que podría tomar desarrollar una aplicación. Después de mis pruebas obtuve resultados y en la comparación fue cuando noté que es realmente caro desarrollar aplicaciones nativas para cada plataforma (iOS, Android, BlackBerry o Windows Phone).

Ahora con el auge de las aplicaciones web, el uso extensivo de javascript, css y estándares web.. veo una gran ventaja el desarrollar aplicaciones móviles web en lugar de aplicaciones nativas. Sé que este tema en la red es un debate de nunca terminar, pero no se trata de comparar ambas formas de desarrollo diciendo que una es mejor que otra.. Algunas aplicaciones hechas específicamente para los dispositivos móviles podrían portarse a una aplicación web y otras quizás no.. todo depende de la naturaleza de la aplicación y si o no debe de interactuar con el hardware.

Entonces que diferencias existen entre una aplicación nativa y una aplicacion web móvil ?

Las aplicaciones nativas realizan tareas específicas que podrían ser el uso de la agenda, grabar o reproducir música, tomar fotografías o utilizar el hardware del equipo al máximo para tener el mejor rendimiento en una aplicación.. como por ejemplo los juegos que necesitan muchos recursos para ejecutarse y disponen en su totalidad del procesamiento del equipo para funcionar. En cambio una aplicación web móvil es una pieza de software que simplemente dá acceso a herramientas de seguimiento visual, donde no es necesario interactuar con el equipo, por ejemplo los manejadores de tareas o aplicaciones donde solo se necesite ingresar información y ver resultados.

Y que tan fácil puede ser desarrollar una aplicación web para los móviles que sea compatible con cualquier dispositivo ?

Existen aplicaciones tales como Sencha, PhoneGap, Titanium, Rhomobile, ParticleCode, CoronaSDK, Mosync, etc… que se desarrollan como aplicaciones web o con una sintaxis muy similar y que al final se traducen las diferentes plataformas móviles.. claro, esto con algunas diferencias porque mientras unas aplicaciones traducen todo el código a código nativo, otras simplemente  crean una aplicación web y la dejan en un contenedor nativo que sería casi un browser personalizado. Este tipo de aplicaciones se conocen como aplicaciones Híbridas ya que utilizan ciertas características físicas de los equipos pero son básicamente aplicaciones web.

A su vez, existen frameworks para desarrollo de aplicaciones web que igualmente emulan apariencia y comportamiento de las aplicaciones nativas, tales como son: The-M-Project, jQuery Mobile, Sencha Touch, jQTouch, DHTMLX touch, SproutCore, etc.. solo que este tipo de herramientas no nos permiten utilizar las características del equipo y son aplicaciones netamente web que se montan en un servidor de aplicaciones y se sirven como sitios web.

En cuanto a las dificultades que podemos tener al desarrollar aplicaciones móviles con estas herramientas, pues para empezar es difícil que  existe una curva de aprendizaje que quizás será menos pronunciada que aprender el lenguaje nativo para desarrollar aplicaciones pero es tiempo al final de cuentas, fácil hasta el punto en que se comienza a pensar en componentes o funcionalidades específicas que aunque se pueden desarrollar en las aplicaciones web, puede que sea más complicado hacerlo o adaptarlo para todos los dispositivos y es ahí donde esta el reto (pensando en equipos móviles o tablets).

Que forma para desarrollar aplicaciones es más segura ?

Definitivamente contestaría que las aplicaciones nativas son más seguras ya que la información nunca es enviada a través de internet y siempre se mantiene en el dispositivo.. aunque también pensando de otra manera diría que una aplicación que funciona local no almacena respaldos por lo que la información esta propensa a dañarse..

Y que puede ser más costoso mantener ?

Igualmente ambos tipos de aplicaciones tienen sus pros y sus contras.. por un lado las aplicaciones nativas viven en los dispositivos móviles lo cual no genera ningún tipo de costo adicional al desarrollo.. Mantener este tipo de aplicaciones implicaría que quienes hayan descargado una versión, vuelvan a descargar la actualización.. Por otro lado, las aplicaciones móviles tienen un costo de mantenimiento para quienes las desarrollan ya que por su naturaleza deben vivir en un servidor en internet lo cual genera un costo anual.. En cuanto a las actualizaciones es mucho más fácil para quienes las utilizan ya que no necesitan descargar nada adicional, ya que todo ocurre de manera centralizada.

Aplicaciones nativas, híbridas o web para móviles compiten actualmente en el mercado.. cada una con sus puntos en contra y a favor.. yo recomendaría siempre evaluar los alcances, los recursos, los costos y tomar como punto de partida una aplicación web que es multiplataforma, en caso de que los requerimientos sean superiores o se tenga dificultades para utilizar este tipo de aplicación.. entonces lo mejor es dar el salto hacia aplicaciones nativas.

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

2
mar 12

NUI (Natural User Interface)

No Gravatar

Los dispositivos moviles como teléfonos inteligentes y “tables” han hecho popular el uso de atractivas interfaces “multitouch”, este tipo de interfaces estan extendiendose a otros dispositivos como mesas interactivas, cristales inteligentes y otros tipos de superficies, para permitir interactuar de una manera mas natural a las personas con la información. Con la aparición de Wii y Kinect que ha agregado el lenguaje corporal, los diseñadores y programadores han pensado en una gran cantidad de aplicaciones que en los próximos años cambiaran la manera en que nos comunicamos con las computadoras.

“En computación, una interfaz natural de usuario o NUI, es el termino comun usado por diseñadores y desarrolladores de interfaces de computadora para referirse a una interfaz de usuario que es efectivamente invisible, o se vuelve invisible con las intereacciones aprendidas sucesivamente por sus usuarios. La palabra natural se utiliza porque la mayoría de las interfaces de computadora utilizan
dispositivos artificiales de control, cuyo funcionamiento se tiene que aprender. una NUI se basa en que un usuario puede rapidamente hacer la transición de principiante a experto. Mientras que la interfaz requiere de aprendizaje, por lo tanto, “Natural” se refiere a un objetivo en la experiencia del usuario, que un usuario siente “como algo natural” mientras interactua con la tecnología” [1].

Evol-Interfaz1

Evolución de las interfaces. [2

“En los años 1970s,80s y 90s Steve Mann desarrollo una serie de estrategias de interfaz de usuario utilizando la interacción natural con el mundo real como una alternativa a una interfaz de línea de comandos (CLI) o a la interfaz gráfica de usuario (GUI). Mann se refiere a esta obra como “interfaces naturales de usuario”, “Interfaces de usuario directas”, y ”Computación Libre de Metaforas” [1].

Evol-Interfaz2

Evolución de las interfaces. [2

Las interfaces naturales de usuario es un siguiente paradigma en la historia de la computación y es un tema de actualidad por lo que hay que estar atento a sus avances así como aprender lo suficiente para poder desarrollar las aplicaciones que se necesitaran para la tecnología que se avecina.

Referencias :

[1].http://en.wikipedia.org/wiki/Natural_user_interface

[2].http://channel9.msdn.com/Events/MIX/MIX09/C15F

Mas información

http://channel9.msdn.com/Events/MIX/MIX09/C13F
http://nuigroup.com/log/P8/
http://nuigroup.com/tv/P75/
http://channel9.msdn.com/blogs/larrylarsen/ces-2010-nui-with-bill-buxton

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

10
feb 12

Instituto para el futuro

No Gravatar

Estaba leyendo unos documentos del “Institute for the future” http://www.iftf.org/ y me encontre algo interesante para un nuevo post, pero …

¿Que es el IFTF?

“Intitute for the future (IFTF) es un “think tank“ creado en 1968 para ayudar a las organizaciones a planificar para el futuro a largo plazo. Fue fundado por Paul Baran, un pionero de los inicios de Internet y co-desarrollador de la conmutación de paqutes, el futurista Theodore Jay Gordon, y el co-inventor del metodo Delphi Olaf Helmer.

El instituto mantiene programas de investigación sobre el futuro de la tecnología, la salud y organizaciones. Se publica una variedad de informes y mapas, así como un blog sobre las tecnologías emergentes.”

En su página web se pueden encontrar información muy interesante sobre : Horizontes de la Salud, Horizontes de Tecnología, Pronósticos a 10 años (ó mejor conocidos como mapas de la década) entre otras.

 

Algunos de los muchos de documentos en su página que se me hacen interesantes son :

Reinventing Energy Futures: Four Visions : http://www.iftf.org/EnergyFutures

A Multiverse of Exploration: The Future of Science 2021 : http://www.iftf.org/futureofscience

The Human Internet: Where will the web take us in 2022? : http://www.iftf.org/TH2012ResearchAgenda

IFTF Announces Release of Domain-Specific Robotics Research : http://www.iftf.org/robotics2010

When Everything is Programmable Forecast and Technology Cards : http://www.iftf.org/node/3724

The Future is a Balancing Act: The 2011 Map of the Decade: http://www.iftf.org/2011mapofthedecade

 

Este sitio es un buen lugar para alimentar la mente de ideas, en un próximo post escribire algo sobre lo que he visto por aqui.

 

Mapa de la década

Mapa de la década

Imagen : http://www.iftf.org/node/3934

“think tank”

Se trata de una expresión inglesa muy utilizada en español, y que se ha intentado adaptar con distintas expresiones como comité de expertos,comité de de sabios,instituto de investigación,gabinete estratégico,centro de pensamiento,laboratorio de ideaso usina de ideasLos think tanks a menudo están relacionados con laboratorios militares, empresas privadas, instituciones académicas o de otro tipo.”

http://es.wikipedia.org/wiki/Think_tank

 

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

Qbit Mexhico Blog is using WP-Gravatar