Tendencias


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

3
abr 12

RESTful API Frameworks en PHP

No Gravatar
REST vs SOAP

RESTful services

La semana anterior liberé la versión 0.4.0 de Celestic y una cosa que había prometido y que al final no logré hacer era escribir una API en REST para  utilizarla desde equipos móviles.. Bueno, al menos hay una versión preliminar pero decidí no subirla a los respositorios de código porque eran pruebas .. y es que durante varios días estuve investigando y probando herramientas para el desarrollo de esta API, al final no utilicé ninguno de estos frameworks y estoy escribiendo mi propia extensión para Yii la cual funcionará tomando datos de los modelos y exportando los resultados a json y xml..

Entonces al grano, esta es una lista de frameworks o librerías que podrían ayudarte a construir tu propia API en REST sobre PHP ..

FRAPI – Fue una de mis primeras opciones.. pero después de pocos minutos revisando como instalarlo y configurarlo lo abandoné porque al ver que tenía una parte de administración y otra de consumo me desanimé.. en realidad lo que buscaba era algo más simple.. Desde la interfaz de administración y también consola se pueden crear acciones (esto viene hererado del MVC donde solicitas a un controlador una accion específica que termina siendo un método a ejecutarse).

APIFY – Muy parecido a Frapi, incluso al descomprimirlo vemos una estructura de carpetas tipo MVC.. lo probé pero por alguna razón que aun desconozco nunca funcionó.. su documentación es muy escasa.. en realidad toma muchas cosas de Zend Framework y la librería base para crear REST se reduce a clases Request y Response.

Recess – No tuve oportunidad de probarlo a fondo, al igual que los demás utiliza el patrón de diseño MVC, su interfaz para el desarrollo del servicio esta basado en web a través del navegador. Creo que es de los mejores, pero tiene bastantes archivos y eso no me gustó mucho. Utiliza PDO y mapeo de basee de datos, punto negativo creo que son las consultas entre tablas anidadas.

Slim – No tuve ganas de probarlo, aunque a diferencia de los demás Slim no es un framework, sino más bien una librería o un set de librerías.. Me gustó cuando ví el código pero me desanimó el hecho de que utilizan sus propias rutas y la ausencia de activeRecords.

Tonic – También es una librería, es bastante simple para lo que buscaba y de las cosas que alcancé a probar pues de eso decidí mejor construir mis propias clases para generar REST, me dió la impresión de que me ahorra muy pocas cosas..

En general todos los frameworks y librerías son muy buenos para trabajar utilizando su propio esquema o estructura de carpetas.. Un punto negativo que tienen todos es que los que utilizan PDO y model mapping no es muy bueno con los join y las consultas complejas puede que sea un dolor de cabeza.. Ninguna utiliza un esquema de autenticación compleja como OAuth o al menos Basic Auth .. y si utilizan seguridad lo hacen mediante un parámetro extra que se envia por la url..

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

30
mar 12

La Web Tridimensional : WebGL

No Gravatar

WebGL Es una especificación estándar en desarrollo que permite mostrar gráficos tridimensionales acelerados por hardware en navegadores web sin necesidad de instalar software adicional al navegador (plug-ins).

En realidad es una API para javascript que permite usar OpengGL incorporado en los navegadores.[1]

WebGL utiliza un elemento de HTML5 llamado Canvas el cual permite mostrar gráficos 2D e imágenes de una manera dinámica, canvas consiste de una región dibujable definida en código HTML con los atributos de altura y espesor, el código javascript permite acceder a esa región a través de un conjunto completo de funciones de dibujo 2D, esto es lo que permite generar los gráficos dinámicamente. [2]

Esta especificación es gestionada por el consorcio de tecnología Kronos Group.

http://www.khronos.org/webgl/

Para comenzar hay unos muy buenos tutoriales para aprender a usar WebGL [3], que son referencia obligada para entender como funciona esta tecnología.

Para acelerar las cosas existe una biblioteca 3D en javascript llamada three.js, la biblioteca provee <canvas>, <svg> y render WebGL.[4] creada por mrdoob : https://github.com/mrdoob

demos

Demos de mrdoob

En esta biblioteca se incluyen funcionalidades para manejo de camaras (ortografica y perspectiva), funciones para manejar la geometria, el color, vertices, splines, matrices, luces, materiales, objetos (esqueletos, modelos, modelos animados, particulas, etc), renders (canvas, dom, svg, webgl), escenas, texturas y muchas otras mas : http://mrdoob.github.com/three.js/docs/48/#Camera

Y este es un ejemplo de un trabajo muy bueno usando esta tecnología Web3D.

http://www.ro.me/

Una cuestión interesante sobre WebGL es que es un estandar que ha sido adoptado para integrarlo en las nuevas versiones de los navegadores web de Google (chrome) y Mozilla (firefox) incluso de Apple (safari) pero no así en internet explorer de Microsoft pues menciona cuestiones de seguridad para no hacerlo. Por el momento WebGL sigue avanzado.

Nota:

“Los gráficos vectoriales escalables (svg) es una especificación para describir gráficos vectoriales bidimensionales estáticos o anímados en formato xml.” [5] 

Referencias:

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


[2]http://en.wikipedia.org/wiki/WebGL


[3]http://learningwebgl.com/blog/?page_id=1217


[4]https://github.com/mrdoob/three.js/


[5]http://en.wikipedia.org/wiki/Scalable_Vector_Graphics


[6]http://es.wikipedia.org/wiki/Khronos_Group

Imagen y demos:

http://mrdoob.github.com/three.js/


http://mrdoob.com/


http://alteredqualia.com/

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

16
mar 12

Mundos Virtuales

No Gravatar

Desde hace mucho tiempo me interesa el desarrollo de aplicaciones 3D supongo que fue por ver muchas peliculas de ciencia ficción en especial “El jardinero, asesino inocente” y Tron, también creo que por leer artículos de una revista que colecciono de hace mas tiempo, en especial un número de 1995 que habla sobre los próximos 100 años de la tecnología. En este número mencionan “En la sociedad del conocimiento, buena parte de nuestra vida transcurrirá en mundos sintéticos y hasta buscaremos pareja en ellos. Las computadoras imitarán el cerebro humano, habrá granjas moléculares, llevaremos tarjetas de crédito bajo la piel y unos microrrobots se encargarán de quitar el polvo a la computadora cuando la apaguemos” [1]

Los primeros acercamientos a esta area que tuve fue con un libro de 1997 llamado Realidad Virtual. Construcción de Proyectos de Joe Gradecki.

“Los mundos virtuales son lugares donde experimentamos nuevas realidades. Contienen todos los objetos que podemos ver y manejar. Nos permiten además, experimentar cosas que no son posibles en el mundo real” [2]

“Un verdadero programa de realidad virtual debe contener dos componentes:

  1. El punto de vista de un usuario en primera persona que debe realizar movimientos completos a voluntad en tiempo real.
  2. La capacidad de visualizar y modificar el entorno virtual en tiempo real” [3]

Con el tiempo pude realizar algo relacionado con los objetos virtuales cuando conocí VRML (Virtual Reality Modeling Language)

En español “Lenguaje para Modelado de Realidad Virtual” curiosamente su primera especificación fue publicada en 1995.

http://en.wikipedia.org/wiki/VRML

Silicon

Primer acercamiento a web 3d con vrml 1999

Después vinieron los Proyectos 3D con OpenGL , Mesa,  Blender, Maya y mas recientemente

3D Studio,  GLScene y actualmente NeoAxis pero afortunada o desafortunadamente en desarrollos de escritorio.

Los primeros mundos virtuales que conocí vivian en la web, en internet, así que va siendo hora que

continuemos con el principio. “El final es en donde parti” dice una canción de La Renga.

http://www.youtube.com/watch?v=ozC9hETOt2I

Así que desde hace tiempo he estado aprendiendo un poco sobre WebGL y en un futuro no muy lejano espero tener algunas aplicaciones.

WebGL: Es una especificación estándar que está siendo desarrollada actualmente para mostrar gráficos en 3D en navegadores Web.

Los mejores ejemplos en Chrome Experiments http://www.chromeexperiments.com/tag/webgl/

 

Referencias :

[1]: Muy Interesante Especial Los próximos 100 Años. P 27.
[2,3]: Realidad Virtual Construcción de Proyectos. Joe Gradecki. 1997 AlfaOmega. P 2. y P 3

Mas Info : http://www.popsci.com/archive-viewer?id=S812DHiH7dUC

Bonus :   The Popular Science Archive Explorer

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

7
mar 12

Trabajando en el entorno de MAC

No Gravatar

           Este post es la continuación de uno que publique con anterioridad “Si te cambiaste a Mac esto te puede servir”, este menciona caracteristicas para que te familiarices con en el entorno de Mac, como son escritorio, el botón inicio, instalar un programa, etc.. En este veremos las características de los menús y algunos comandos que puede utilizar sin necesidad de ir directamente al menú.

Características y comandos de cada Menú:

Menú Apple: Esté menú le permite a los usuario cambiar la configuración de la computadora, apagar equipo, forzar el apagado y mucho más.

Comandos de este menú:

  • Shift-Comando-Q: Cerrar sesión
  • Shift-Alt-Comando-Q: Forzar el cierre de sesión.

En este menú puede cambiar la configuración predeterminada del escritorio:

  1.    Ir al menú apple, elige preferencias del sistema para abrir las preferencias del sistema.
  2.    Haz clip en el botón escritorio y Salvapantallas.
  3.    Haz clic en la ficha escritorio; en el panel izquierdo se enumeran las distintas carpetas desde la que puedes elegir una imagen.
  4.    Haz clic en imágenes de Apple para seleccionarla. Verás la imagen predeterminada en el panel derecho junto con un grupo de otras imágenes.
  5.    Haz clic en cualquier miniatura para cambiar de manera instantánea la imagen del escritorio. Puedes hacer clic en otras imágenes para probarlas.
  6.    Ahora selecciona Naturaleza en el panel izquierdo. A continuación, haz clic en cualquiera de sus miniaturas para colocar una fotografía de tipo naturaleza en tu escritorio. Haz lo mismo para Abstracto.
  7. Cuando estés satisfecho con tu elección, cierra la ventana Preferencias.

Menú de la aplicación: Contiene los menús de la aplicación que estés utilizando en ese momento. El nombre de la aplicación aparece en negrita al lado del menú Apple.

Menú Finder: En este menú accedes a todas las aplicaciones de la mac como son carpetas, disco duro , escritorio, CD, archivos, de igual forma en el Finder puedes organizar archivos y carpetas como lo desee, buscar archivos, eliminar cosas que no quieras y mucho más.

  Comandos de este menú:

  • Shift-Comando-Suprimir: Vaciar la papelera
  • Alt-Shift-Comando-Suprimir: Vaciar la papelera sin confirmación
  • Comando-H: Ocultar Finder
  • Alt-Comando-H: Ocultar el resto de aplicaciones

Espero les sirva, en el siguiente pots la continuación…

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

28
feb 12

jQuery Mobile lo bueno y lo malo

No Gravatar
JQuery Mobile

JQuery Mobile

Desde mi blog la semana pasada hacía una reseña sobre 3 diferentes alternativas para desarrollar aplicaciones web para teléfonos móviles (iPhone, Android, Blackberry, Windows Phone, etc) .. al final decidí quedarme con jQuery Mobile por la sencillez y rápida curva de aprendizaje.. además que estaba trabajando en un prototipo de proyecto que no debía tomarme más de 3 días desarrollarlo. En fin, el propósito de este artículo es mostrarles de que manera funciona esta librería.. las carencias que encontré y las virtudes que pueden ayudar a escribir aplicaciones móviles en casi cuestión de horas.

Como funciona

Las aplicaciones web básicamente trabajan 2 capas que son el procesamiento de datos, algo que siempre ocurre del lado del servidor y la presentación de la información que es lo que el servidor regresa a los navegadores en un formato de meta etiquetas (html) .. pues bueno, jQuery Mobile agrega una capa extra que sería como una especie de manejador de eventos que se encarga de escuchar todas las pulsaciones que hacemos sobre los enlaces y botones de formularios para luego solicitar al servidor su proceso vía ajax .. La verdad es que la lógica de como funciona es muy simple porque todo ocurre mediante callbacks.. Si llegan a ver algunos ejemplos de como son estas aplicaciones desarrolladas con jQuery Mobile verán transiciones de entrada y salida entre las páginas y pues esto es el resultado de esas peticiones administradas vía ajax.. Y como todo lo que se hace con javascript, jQuery Mobile se puede parametrizar para que tenga el comportamiento que deseamos.

La tecnología que emplea

Es importante mencionar que esta librería y así he decidido llamarlo porque no creo que llegue al nivel de framework.. su uso esta basado totalmente en HTML5 .. ese nuevo estandar de desarrollo web que se está poniendo de moda.. y CSS3 que vienen a ser como el estilista del HTML5.. entonces si defino a jQuery Mobile diría que es una combinación de mucho HTML5 que utiliza inteligentemente metadatos en las etiquetas, canvas para dibujar algunos botones y CSS3 para administrar la capa visual (esquinas redondeadas, gradientes lineares, sombras y más)…

Una buena recomendación

Si estan interesados en empezar a desarrollar aplicaciones móbiles nativas, creo que antes deberían de entrarse un poco en el uso de este tipo de herramientas para desarrollar la visión del diseño de como son las aplicaciones móbiles, ya que la naturaleza de este tipo de aplicaciones requiere de otro tipo de destrezas relacionadas más que todo con usabilidad que al final es la parte visual y lo que más interesa a los usuarios. Con esto no estoy tratando de decir que las aplicaciones móbiles web son mejores que las nativas.. claro que no!! sería imposible hacer la comparación, pero en el caso de que se necesita escribir una aplicación en tiempo record que sea multiplataforma.. lo más obvio sería utilizar jQuery Mobile o cualquier otra herramienta para este propósito y bueno, eso sin mencionar que el costo monetario es mucho muy inferior.

Lo que hay que tener en cuenta

Es bueno recordar que las aplicaciones móbiles no deben ser complejar, el contenido debe invitar a los usuarios a navegar y al mismo tiempo a constuir un mapa de enlaces en la mente para que sepan como utilizarla casi inmediatamente. Eso significa que no se deben de pensar en interfaces complejas o en componentes que puedan confundir a quienes la usen. Jquery Mobile tiene como elementos básicos los componentes de formularios (input, select, checkbox, radio y button).. otros elementos serían las listas, barra de navegación y es todo.. igual que con jQuery hay desarrolladores externos que estan escribiendo plugins como por ej. datepickers o uploaders que son necesarios y no estan incluidos en la librería.

Utilizarlo con moderación

Creo que antes de decidir su uso o no.. deberían de tomar uno de los ejemplos de la página de ayuda y ver si es compatible con los dispostivos en los que pensarían utilizarlo.. por. ej. yo utilizo un Android 2.3 donde las imágenes y animaciones no son tan fluídas.. lo he probado en un iPhone 3GS y lo ví un poco torpe con las animaciones.. con el iPhone 4 se vé de maravilla al igual que con una tablet android con 3.0 y tampoco tuvo problemas..

Al final la aplicación que escribí es un ligero CRM con un enfoque hacia seguimiento de ventas.. si!! tarde 3 días en el desarrollo, aun es una versión beta y fue rápido hacerlo porque tras el código estuvo una arquitectura MVC.. si me animo quizás suba el código a github y luego al laboratorio de Qbit para que aprendan un poco sobre jQuery Mobile.

Y para finalizar el resultado final en un teléfono LG Optimus Black.. nada mal eh..!!

Mobile CRM

Mobile CRM

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

22
feb 12

¿Frecuentas cibercafés?, ten cuidado, podrías ser objeto de un ataque.

No Gravatar

En la actualidad el acceso a internet en los hogares ha crecido de una manera considerable, sin embargo aún hay muchas personas que por distintos motivos, asisten a estos lugares que son públicos, es posible que a veces los usuarios se expongan a algunas amenazas informáticas, situación que plantea un importante desafío para los dueños de estos recintos en materia de seguridad, ya que esto fomenta que la información delicada, como son contraseñas de banco, puedan caer en manos equivocadas, o incluso en nuestras cuentas de Facebook, Twitter, suplantando información, haciéndonos pasar un mal rato.

Primero veamos algunas herramientas usadas para obtener información de una computadora, y por qué es importante, tener mucho cuidado en computadoras públicas.

Programas:

Los programas más peligrosos, para nuestra seguridad son un tipo de virus llamado spyware. Entre ellos se destaca el inocente pero cansado hardware (despliega ventanas una y otra vez con publicidad); los keybloggers o Keylogger (utilizados para robar contraseñas y nombres de usuarios); y los dialers, que discan números internacionales de teléfono sin que uno lo solicite.

Dispositivos externos:

Keylogger es un dispositivo específico que se encarga de registrar las pulsaciones que se realizan en el teclado, para posteriormente memorizarlas en un fichero o enviarlas a través de internet.

USB, este dispositivo si se introduce a una maquina infectada, puede que llevemos al “enemigo”, a casa, y ser propensos a un ataque, siempre hay que realizar una limpieza de estos dispositivos, para asegurarnos, de que no tendremos dolores de cabeza después.

La prevención es la herramienta más poderosa que podemos tener para no ser un potencial “blanco de ataque”, y aquí te dejamos algunos puntos aunque simples, muy importantes, para una navegación segura, para tu información.

1. No debe usarse una PC de esta clase para ninguna operación comercial, bancaria, financiera o de cualquier otro tipo que involucre patrimonio. Si no se tiene computadora es mejor hacer la cola del banco que hacer el trámite en línea en una máquina a la que cualquier persona tiene acceso.

2. En caso de ser urgente usar un café internet, por ejemplo en unas vacaciones, y que por una razón de fuerza mayor se necesite, no hay que usar el teclado, la pregunta es ¿Cómo no usar el teclado, si es necesario para poder introducir usuario y contraseña?, bueno la respuesta está en usar el teclado en pantalla, es verdad que existen muchos programas que pueden imprimir pantallas de lo que se realiza, pero son mucho menos eficientes, para usar el teclado en pantalla. En XP, Vista y 7 se lo convoca por medio del atajo de teclado Windows+U (la tecla Windows está entre Ctrl y Alt , a la izquierda, y tiene el bien conocido logo de este sistema operativo). ¿Cómo se lo usa? Arranque el teclado en pantalla, que quedará siempre en primer plano, haga clic en la caja de la contraseña, número de tarjeta de crédito o cualquier otro campo de datos sensibles que deba completar y use el ratón para completar esos datos en el teclado virtual.

Todos los sitios de banca online tienen su propio teclado en pantalla, además. Úselo siempre, sin excepción.

3. El teclado en pantalla también debe usarse para ingresar no solo la contraseña del banco o el número de la tarjeta de crédito al hacer una compra online (actividades que no deben realizarse en una PC pública, a menos que sea absolutamente indispensable, como ya se dijo), sino también para todos los servicios que requieran registrarse. Si no deseas de que le roben su cuenta de Hotmail o accedan a su calendario en Google, por citar sólo dos, no utilice el teclado físico para ingresar contraseñas; apriete Windows+U e inicie el teclado en pantalla.

4. Es complicado mantener nuestra propia computadora libre de virus, ¿qué puede esperarse de un equipo utilizado por cientos de personas al mes? La actitud correcta es dar por supuesto que esa PC tiene toda clase de infecciones y amenazas y, por lo tanto, actuar en consecuencia. Por ejemplo, no es ninguna buena idea enchufar un pendrive en un equipo público. Si de todos modos tiene que hacerlo (de nuevo, hay veces en que no queda más remedio), use el interruptor para protegerlo contra escritura; algunos carecen de este switch, lamentablemente. Si, peor, debe sacar datos de una PC pública, desactive la reproducción automática en Windows. Claro que esto es más fácil de decir que de hacer.

En XP Profesional, use Inicio> Ejecutar gpedit.msc + Enter . Una vez dentro del Editor de Políticas de Grupo , busque Configuración del Equipo> Plantillas Administrativas> Sistema y active la función Desactivar reproducción automática en Todas las unidades . Observe que hay que activar algo que desactiva; sí, es enrevesado.

En Vista y 7 la función está ahora (por fin) en el Panel de control bajo el nombre de Reproducción automática .

5. Parece obvio, pero evidentemente no lo es. Cierre la sesión de correo, chat, Facebook, Twitter o cualquier otra que haya iniciado en una computadora pública antes de retirarse. No alcanza con cerrar el navegador (es decir, el Internet Explorer, Firefox, Safari o equivalente); debe cerrarse la sesión iniciada en el servicio. De otro modo, por medio de cookies (ver punto número 6) la sesión queda abierta y cualquier persona podría entrar en esa cuenta, incluso sin mala intención. Por idéntico motivo, nunca, ni siquiera en sus propias máquinas, use la opción de Mantener conectado o No cerrar sesión que ahora ofrecen algunos servicios.

6. El único pequeño problema de la regla punto número 5 es que para facilitarnos las cosas los browsers actuales pueden configurarse para que recuerden las contraseñas y otros datos que ingresamos en los formularios. Así que, además de nunca aceptar que el navegador recuerde contraseñas cuando se lo pregunte, debe hacer lo siguiente: después de cerrar la sesión en el servicio que haya estado usando y antes de irse, en el Internet Explorer vaya a Herramientas> Opciones de Internet> Contenido> Información personal> Autocompletar y borre los formularios y las contraseñas.

En el mismo cuadro, pero en la pestaña General, elimine cookies y archivos en la sección Archivos temporales de Internet. En la versión 8 y 9 del Internet Explorer esto está simplificado, como desde hace rato lo hace Firefox ; alcanza con ir a Seguridad> Eliminar el historial de exploración.

En Firefox , como dije, toda esta operación es más sencilla: basta apretar Mayúsculas+Ctrl+Supr y elegir los elementos por borrar.

Es particularmente importante eliminar también cookies y archivos temporales. En manos de un experto, estos archivos pueden revelar contraseñas, nombres de usuario y otros datos sensibles.

7. ¿Va a chatear en una PC pública? OK, no hay problema, siempre y cuando verifique antes que el mensajero no está guardando un registro de todo lo que escriben usted y sus interlocutores. En el caso del Windows Live Messenger esto se controla por medio de Herramientas> Opciones> Mensajes> Historial de mensajes. Por supuesto, y como en cualquier otro servicio, “Recuerde cerrar sesión antes de retirarse”.

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

15
feb 12

Sí te cambias a Mac, esto te puede ayudar

No Gravatar

Este post está dedicado a las personas que utilizan Windows y están iniciando a trabajar en el entorno de Mac, cuando las personas cambian de sistema operativo y solo están familiarizadas a aquello que siempre usaron de forma tan común, como el escritorio, el botón inicio, instalando un programa, a veces cambiar radicalmente nuestra perspectiva de un mundo informático, nos hace sentirnos desconcertados,y puede que en algunos casos nos desesperemos, para ello te publico esta guía para que empiezas con el pie derecho utilizando Mac.

A pesar de que en Mac OS X es un sistema operativo que está orientado a hacer las cosas simples, es habitual que nos “perdamos” un poco al no reconocer características con las que estamos habituados a trabajar en Windows.

¿Dónde está el menú Inicio y su contenido?

  • En Mac no existe un equivalente exacto a menú de inicio. En el dock (es un elemento de interfaz gráfica de usuario que permite a los usuarios iniciar, cambiar y monitorizar aplicaciones, en tu Mac es la barra inferior), puedes guardar las aplicaciones a las que accedes comúnmente. La configuración de impresoras, red, etc. está en Preferencias del Sistema.

Personalmente, trabajo de la siguiente forma: Utilizo Spotlight o Quicksilver para encontrar la aplicación que necesito lanzar, por lo que no necesito iconos de todas las aplicaciones instaladas. Sin embargo, en el dock sólo dejo aquellas aplicaciones que conviene tener en el escritorio porque trabajo con ellas “arrastrándoles” objetos, como Photoshop, iTunes, Safari…

¿Dónde está el “Panel de control”?

  • En Mac se llama “Preferencias del Sistema”, hay un acceso directo si pulsas el logo de la manzanita de la barra superior del escritorio, o el icono de las ruedas dentadas en el dock.

¿Cómo expulso una unidad?

  • Para montar una unidad no tendrás ningún problema, cualquier dispositivo montado correctamente aparecerá en el escritorio. Para expulsarla, simplemente lleva su icono hacia la papelera. Tranquilos, no significa que se borrara, o se formateara tu dispositivo, si observas al seleccionar una aplicación el icono de la papelera se convierte en el signo de “expulsar”.

También es útil saber que si seleccionamos varios documentos que queremos borrar, y una unidad, el sistema hará lo que toca para cada caso: Si son documentos los borrará, y si son unidades los desmontará.
¿Cómo instalo una aplicación?

  • En Mac, las aplicaciones no se “instalan” tal y como se hace en Windows. Los programas para Mac OS X son, en apariencia para el usuario, un simple icono. En realidad, profundizando un poco, dicho icono es una carpeta especial con permisos de ejecución y que contiene una estructura de archivos definida por el sistema operativo y que contiene lo necesario para que la aplicación funcione de manera adecuada.

En Mac, no existe un “registro del sistema”, debido a lo anterior. Las aplicaciones utilizan una carpeta llamada “Application Support” para guardar los archivos de configuración del usuario. Para instalar una aplicación, nos bajaremos los programas habitualmente en formato .dmg. Haciendo doble click sobre dicho archivo, se nos montará una nueva unidad en el escritorio, que contiene la aplicación. Lo único que tendremos que hacer es arrastrar esta aplicación donde queramos guardarla (normalmente en Aplicaciones).

¿Como desinstalar una aplicación?

  •  Para desinstalar una aplicación, llevaremos su icono a la papelera. Si no queremos guardar la configuración personalizada que nos habrá creado la aplicación para nuestro usuario, podemos borrar la carpeta con su nombre que se encuentra en (nuestro_nombre_usuario)/Librería/Application Support.

¿CTRL+ALT+SUPR en Mac?

  • Para forzar a algunas aplicaciones a cerrarse en Windows usábamos esto, en Mac pulsamos ALT+CMD+ESC. Aparecerá una lista con las aplicaciones abiertas y podrás cerrar la que deseas individualmente. El sistema o resto de aplicaciones no se verán afectados.

¿Cómo cambio la aplicación predeterminada para abrir algunos tipos de archivos?

  • Abrimos las propiedades del archivo, pulsando botón derecho sobre el archivo con la extensión a tratar, y “Obtener Información”. Luego buscamos la zona “Abrir con…” y elegimos con qué queremos que se abra. Si pulsamos el botón “Cambiar todo”, cambiaremos cualquier archivo con esa extensión, y no sólo el que estábamos seleccionando.

Estas son la aplicaciones más comunes que utilizamos en el entorno de Windows pero al compararlo con la Mac  notamos una increíble diferencia.

“Suerte y bienvenido a un nuevo mundo informático”

Más información en:
http://www.applesfera.com/apple/screencast-switchers-el-escritorio

http://es.wikipedia.org/wiki/Spotlight
http://www.chozadigital.com/?p=4151

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

Qbit Mexhico Blog is using WP-Gravatar