Archive for the ‘ software ’ Category

Recordar usuarios localmente con Shared Objects en Flex

Los Shared Objects son objetos gestionados por el Flash Player que sirven para almacenar datos en el disco duro de la máquina donde se está ejecutando una película Flash. Aunque no lo son, los Shared Objects pueden entenderse como los cookies del Flash Player, con la diferencia de que son mucho más poderosos que los cookies tradicionales en varios aspectos:

  • Los cookies expiran por defecto; los Shared Objects no expiran.
  • Por lo general, los cookies tienen un límite máximo de 20 por cada sitio web; los Shared Objects no tienen ese límite.
  • Por lo general, los cookies están limitados a un tamaño de 4kb cada uno. Por defecto, los Shared Objects tienen un tamaño de 100kb pero se les puede configurar un tamaño ilimitado.
  • Los cookies pueden ser transmitidos a un servidor vía HTTP. Los Shared Objects no pueden ser transmitidos a un servidor ni pueden ser compartidos entre aplicaciones de distintos dominios (por defecto, aunque se puede permitir), características que suponen una ventaja a nivel de seguridad sobre los cookies.

Otras características interesantes de los Shared Objects y los cookies que pueden ser consideradas como ventajas o desventajas dependiendo del punto de vista, son:

  • Los cookies pueden ser deshabilitados en su totalidad o para un sitio específico desde el navegador. Los Shared Objects escapan a esta configuración. Deben ser gestionados desde la aplicación, haciendo clic derecho sobre la película Flash y seleccionando la opción “Configuración” o “Settings”, o desde el Panel de configuración de Flash Player oficial de Adobe.
  • Los cookies pueden ser eliminados desde las opciones del navegador. Los Shared Objects permanecen cuando se ejecuta esta opción ya que no son cookies.
  • Los cookies, por lo general, almacenan datos de tipo texto. Los Shared Objects almacenan varios tipos de dato binarios, entre ellos: Array, ArrayCollection (de String), Boolean, Date, etc.

Esta tecnología es propia de Flash, está bastante madura a la fecha y su uso es tan simple como difundido. Los Shared Objects, junto con los cookies tradicionales, han sido motivo de pleitos legales en diversos países debido a lo intrusivos que pueden resultar cuando se utilizan de manera agresiva y desmedida en actividades como el rastreo de hábitos de navegación de usuarios con fines publicitarios. De hecho, en Reino Unido se han creado regulaciones que impiden la utilización de cookies y Shared Objects para rastrear hábitos de usuarios sin su consentimiento. Definitivamente, esta tecnología es mas poderosa de lo que aparenta y puede resultar sumamente útil en nuestras aplicaciones RIA. Particularmente, y debido al tamaño ilimitado que puede alcanzar un Shared Object, los considero una buena alternativa al momento de almacenar datos de formularios en aplicaciones sin conexión a Internet (offline) para su posterior envío al servidor (obviamente, cuando la conexión a Internet este disponible).
Sobre esto haré un ejemplo pronto.

Por ahora, les dejo un ejemplo de un buen uso (nada de intrusiones publicitarias, esta vez) de Shared Objects para almacenar los datos de autenticación de un usuario en una aplicación Flex. Lo interesante del ejemplo se encuentra en la clase LoginModel.

Dudas y comentarios son bien recibidos.

Juan Manrique.

Nota: Gracias a Daniel Terraza por darme pistas sobre Shared Objects en Flex.

Recordar usuarios con Shared Objects en Flex
Código

Información oficial sobre Shared Objects
Panel de configuración de Flash Player oficial de Adobe
Curiosidades de los Shared Objects

La imagen de Caracas es de aquí.

Anuncios

Arreglos en PHP

En programación encontramos lo que conocemos como estructura de datos, que nos permite almacenar en una sola variable varios datos, crear listas, estructuras de árboles, pilas, colas, etc..  En este artículo escribiré sobre los arreglos en forma de introductoria para un futuro artículo sobre listas en PHP.

Qué es un arreglo (Array)

Los arreglos son estructuras que existen en la gran mayoría de los lenguajes de programación y nos permiten almacenar más de un valor en una sola variable, esto quiere decir que podemos crear un arreglo de cualquier tipo de dato (entero, punto flotante, cadenas de texto, etc.) y en el agregar, modificar, buscar o eliminar sus valores.

Cuando se trabaja con arreglos es importante saber que estas estructuras siempre comienzan desde el valor cero (0), esto quiere decir que si un arreglo es de diez (10) valores para acceder a sus valores se debe comenzar desde el valor cero hasta valor -1.

Ejemplo de como declarar un arreglo en PHP:

<?php
      $arreglo = array();
?>

Tipos de arreglos

En PHP podemos utilizar tanto arreglos escalares como arreglos asociativos.

Arreglos escalares

Los arreglos escalares son aquellos en donde almacenamos valores normalmente de forma sucesiva y donde ninguno de sus valores estará asociado aun un nombre o clave (key) con cual podamos acceder a él. Para acceder a cada valor en este tipo de arreglos debemos especificar la posición en donde se encuentra el valor que queremos obtener..

Para agregar valores a un arreglo escalar lo podemos hacer de la siguiente manera

Ejemplo:

<?php
      $arreglo = array();
      $arreglo[] = 10;
      $arreglo[] = 9;
      $arreglo[] = 23;
?>

De esta manera cada vez que agreguemos un elemento en el arreglo siempre será colocado al final de el.  Ahora para obtener el valor debemos especificar su posición para obtener el valor almacenado.

<?php
      echo $arreglo[0]; // Imprime 10
      echo '<br />';
      echo $arreglo[1]; // Imprime 9
      echo '<br />'
      echo $arreglo[2];  // Imprime 23
?>

Arreglos Asociativos

Los arreglos asociativos son aquellos en donde cada valor tiene un nombre o clave (key) el cual asociamos a un valor con el cual podemos modificar, obtener o eliminar el valor asociado a esa clave.

Ejemplo:

<?php
      $arreglo = array( 'nombre' => 'Psycho', 'programador' => 'Si', 'blog' => 'URL' );
?>

Ahora para acceder los valores que asignamos al arreglo del ejemplo anterior lo hacemos a través del nombre o clave (key) que le asignamos a cada valor.

Ejemplo

<?php
      echo $arreglo['nombre']; // Imprime Psycho
      echo '<br />';
      echo $arreglo['programador']; // Imprime si
      echo '<br />';
      echo $arreglo['blog']; // Imprime URL
?>

Función var_dump()

Cuando se trabaja con arreglos en PHP y queremos saber el contenido que tiene un arreglo tanto asociativo como escalar es de mucha ayuda la función var_dump() en PHP para saber el contenido de un arreglo. Para ver como funciona y tener una idea más clara vean el siguiente ejemplo

Ejemplo


<?php
$arreglo = array( 'nombre' => 'Psycho', 'programador' =>  'Si', 'blog' => 'URL' );
var_dump($arreglo); // Imprime array(3) {  ["nombre"]=> string(6) "Psycho" ["programador"]=> string(2) "Si"  ["blog"]=> string(3) "URL" }

?>

Psycho es un programador de aplicaciones web que intenta en sus ratos libres compartir conocimientos en comunidades.  Esta interesado en que la comunidad tecnológica en Venezuela crezca y se integre.

¿Cómo obtener ganancias con aplicaciones en Flash?

Ganancias con Flash

Esta es una pregunta que nos hacemos los desarrolladores constantemente. Ahora con el Open Screen Project (desarrollo de una aplicación para diferentes entornos o dispositivos) y las compañías de dispositivos móviles apoyando el desarrollo de aplicaciones, nos enfrentaremos a situaciones desconocidas y difíciles de lograr para muchos en relación a nuestras aplicaciones, tales como distribución, cobro y periodos de prueba.

Recientemente, Adobe publicó en Labs el proyecto Melrose, servicio que soporta la distribución y monetización de aplicaciones creadas para correr en AIR y donde el desarrollador obtiene el 70% de las ganancias, teniendo un precio mínimo de $2.99 para aplicaciones en venta. Por el momento existe una prueba privada del sistema y podemos apuntarnos para ser notificados de su salida.

¿Queremos vender esa gran aplicación y no queremos esperar por Melrose?

Desde la caída de la economía mundial, la industria de los videojuegos ha sido la más beneficiada por la disminución de gastos en otras áreas. Las personas prefieren invertir en esta clase de entretenimiento que, en la mayoría de los casos, es mucho más económico que cualquier otro.  Sumado a esto, las redes sociales y la vida tan agitada que se lleva actualmente crean la necesidad de tener dispositivos móviles que nos permitan seguir conectados con nuestro entorno.  Un juego promedio para un dispositivo móvil cuesta $2 y muchos se soportan mediante publicidad. Esto nos lleva a cobrar por un servicio, crear aplicaciones que se distribuyen gratuitamente, dando la idea de estar completas, colocando procesos o contenido que sólo puede ser disfrutados realizando pagos, usando, por ejemplo la integración de PayPal con aplicaciones hechas en Flex y AIR.

Actualmente, todos los dispositivos con Android 2.2  son capaces de correr Flash/Flex en sus navegadores de internet y AIR como aplicaciones. En los próximos meses esto no será una situación exclusiva de Android; la mayoría de los fabricantes de dispositivos móviles se unirá a esta iniciativa.

Una opción rápida podría ser inscribir los juegos en concursos donde los premios son de $20.000$30.000 a repartir entre los mejores juegos en Android.

¿Redes sociales?

Adobe ofrece Social, unaherramienta que facilita la integración de aplicaciones con las redes sociales mas importantes, aunque esta no es la única manera de realizar dicha integración ya existen librerías que interactúan con el respectivo API de las diferentes redes. Todo depende hacia donde se quiere llevar la aplicación y el tiempo de entrega.

Dos ejemplos de compañías exitosas en la venta de juegos son Zynga (estimado de $270 millones en 2009 en múltiples plataformas) y Tapulous (estimado $1millon mensual por un solo dispositivo).

En conclusión,  la plataforma Flash no sólo está orientada al desarrollo de experiencia de usuario dentro de un navegador o en el escritorio; no son sólo animaciones que pueden ser espectaculares; es una manera de obtener ingresos que, si se aprovechan adecuadamente, pueden representar grandes ganancias.

Autor: Rafael Ochoa.

Consultor de “Rich Internet Applications”, escribo para RIA212.com y AUG Venezuela.

twitter: rafaelochoa

flickr: rafaelochoa

Imagen: gettyimages

La Técnica Pomodoro y el software

Para aquellos que, como yo, son presa fácil de cualquier foco de distracción durante la realización de nuestras actividades diarias (en especial si son realizadas frente a una computadora), existe una técnica de lectura obligada y uso recomendado, ideada por un desarrollador de software (¿quién mejor que un colega para conocer exactamente nuestros problemas?) de nombre Francesco Cirillo y que está basada en un reloj de cocina en forma de tomate: la Técnica Pomodoro.

La Técnica Pomodoro fue ideada para ayudar en la concentración individual de las personas, por lo que impacta positiva y notablemente en la productividad individual. Esta técnica, que sorprende por su simplicidad y lo efectiva que puede llegar a ser, fue descrita por Cirillo en documentos que difundió abiertamente en varios blogs, hasta que, finalmente, estableció en un merecido sitio web.

Metas de la Técnica Pomodoro

Como se puede leer en el libro oficial:

“El objetivo de la Técnica Pomodoro es proporcionar una herramienta sencilla para mejorar la productividad (la tuya y la de tu equipo), que sea capaz de hacer lo siguiente:

  • Aliviar la ansiedad vinculada a la expectativa
  • Mejorar la atención y concentración al reducir las interrupciones
  • Aumentar la conciencia de tus decisiones
  • Aumenta la motivación y mantenerla constante
  • Reforzar tu determinación a alcanzar tus metas
  • Afinar el proceso de estimación, en términos cualitativos y cuantitativos
  • Mejorar tu proceso de trabajo o estudio
  • Reforzar tu determinación a seguir por ti mismo de cara a situaciones complejas”

Un vistazo a la Técnica Pomodoro

Una forma de resumir la Técnica Pomodoro es la siguiente:

  • Establecer las tareas del día antes de comenzar con cualquier actividad: copiar en una hoja cada una de las actividades que deben ser realizadas durante el día, ordenadas según la prioridad.
  • Hacer el primer pomodoro:
    • establecer la alarma del reloj de cocina en 25 minutos,
    • escoger la primera actividad,
    • trabajar en ella hasta que suene la alarma del reloj
    • marcar con una “x” la actividad para indicar que se realizó un pomodoro
    • tomar un descanso de 5 minutos.

Lo anterior se conoce como un “pomodoro” típico, aunque se pueden hacer ajustes a los intervalos de tiempo para mayor comodidad a medida que se familiariza con la técnica. Un pomodoro es la unidad básica de medida en la técnica. La marca que se realiza a la actividad servirá posteriormente para la autoevaluación.

  • Cada 4 pomodoros, realizar un descanso más largo: de 15 a 20 minutos, en los cuales Cirillo recomienda aprovecharlo para levantarse de la silla, tomarse un café, revisar el correo, dar un paseo rápido o simplemente descansar pero sin realizar ninguna actividad compleja que pueda distraer tu mente durante los próximos pomodoros del día.
  • Completar una actividad: hacer pomodoro tras pomodoro hasta terminar la actividad. A simple vista, se podrá observar cuántos pomodoros fueron necesarios para realizar la actividad. Luego del descanso correspondiente, se debe seleccionar la siguiente actividad en la lista diaria y aplicar la técnica nuevamente hasta el final de la jornada.
  • Registro y introspección personal: al final de la jornada, todas las actividades completadas junto con los pomodoros que fueron necesarios en cada una deben ser registrados en algún tipo de base de datos que permita observar el desempeño propio durante la realización de las actividades; esto con la finalidad de ayudar en la estimación de tiempos propios y la toma de decisiones en términos de la auto-observación y el conocimiento del desempeño propio. Para llevarle un poco la contraria a Cirillo, aquí tienen un modelo de hoja de registros.

El reloj de cocina en forma de tomate

Si bien Cirillo, como explica en el libro, considera que la mejor manera de aplicar la técnica es con un reloj de cocina convencional, tal como aquel en forma de tomate que lo inspiró a esbozarla, hay una lista de programas que no solo emulan el comportamiento de estos relojes sino que cuentan con funcionalidades muy convenientes que facilitan la aplicación de la técnica.

En el sitio oficial de la Técnica Pomodoro se puede conseguir, entre otros recursos, las hojas de trabajo necesarias para la aplicación de la técnica, la versión digital oficial y gratuita del libro donde se explica detalladamente, artículos sobre experiencias de personas que la han aplicado, conferencias realizadas, el software relacionado y hasta las direcciones de contacto de Cirillo, quien desde hace un buen tiempo ofrece talleres sobre la adopción de esta técnica en equipos de trabajo.

La intención de este artículo no es ofrecer una guía resumida sobre la Técnica Pomodoro sino más bien dar una idea general que motive a su profundización, ya que contiene una gran cantidad de consejos mentales que son los que, a la larga, hacen muy efectiva.

Juan Manrique.

Anuncios
A %d blogueros les gusta esto: