Nuevo Dominio para el blog de AUG Venezuela

Ya les dijimos que estábamos trabajando en varias cosas, como parte de la celebración de nuestra aprobación oficial como Adobe User Group.

Una de las cosas en las que hemos trabajando desde un principio es en crear un sitio que pueda centralizar lo más posible la actividad de nuestro AUG, de modo que la información sea más accesible y así más fácil de seguir por uds. Una de ellas es, por supuesto, adquirir un dominio y hosting propios, para tener más flexibilidad a la hora de hacer cosas y de mejorar la experiencia de usuario.

Es así como, gracias a nuestro patrocinador Antares, Agencia Interactiva, ya disponemos de hosting propio, cuya dirección es augvenezuela.com y donde continuaremos publicando contenido para el AUG.

 

Recuerda que tú puedes colaborar escribiendo artículos, ya sean tips, tutoriales u otro contenido interesante para el beneficio de todos los miembros del Adobe User Group Venezuela, sólo tienes que enviarnos tu artículo de acuerdo con estas instrucciones.

Nota: no es obligatorio pertenecer al Grupo de Usuarios Adobe Venezuela, a cualquier grupo de usuarios o siquiera estar relacionado a Adobe de alguna forma para poder postular artículos para el blog. Todo el conocimiento relacionado a la tecnología es bienvenido.

Aunque este blog se mantendrá abierto y disponible, no habrá más actualizaciones en él, para ver qué es lo nuevo, visita augvenezuela.com

Anuncios

Apple relaja sus restricciones de desarrollo ¿Flash en el iPhone?

we-love-apple-we-love-adobe Esta es la noticia del día, yo diría que del mes. Después de la polémica decisión de Apple, hace algunos meses, de restringir el desarrollo de aplicaciones para la Apple Store, dejando por fuera frameworks de terceros, como Adobe Flash (que acababa de lanzar su compilador para iPhone), Mono Touch, Unity 3D y otros, hoy ha dado un paso atrás, relajando las condiciones para desarrollo de aplicaciones para Apple Store. De este modo lo han anunciado:

[…] Based on their input, today we are making some important changes to our iOS Developer Program license in sections 3.3.1, 3.3.2 and 3.3.9 to relax some restrictions we put in place earlier this year.

In particular, we are relaxing all restrictions on the development tools used to create iOS apps, as long as the resulting apps do not download any code. This should give developers the flexibility they want, while preserving the security we need.

([…] Basados en sus comentarios [de los desarrolladores de aplicaciones para A.S.], hoy estamos haciendo algunos cambios importantes a nuestra licencia del Programa de Desarrolladores en las secciones 3.3.1, 3.3.2 y 3.3.9 para relajar algunas restricciones hechas anteriormente este año.

En particular, estamos relajando todas las restricciones en las herramientas de desarrollo usadas para crear aplicaciones para iOS, en tanto las aplicaciones resultantes no descarguen ningún código. Esto debería dar a los desarrolladores la felxibilidad que desean mientras preserva la seguridad que necesitamos.)

(resaltados obra del traductor)

Esto es todo un salto atrás respecto a la anterior política de Apple y un nuevo capítulo en la relación amor-odio entre la compañía de la Manzana y la Gran A.

Es de destacar que esta decisión no sólo afecta positivamente a Flash, sino también a otras plataformas de desarrollo, como las mencionadas más arriba. Y no puede ser más que una buena noticia para todos aquellos que desarrollan o quieren desarrollar aplicaciones para iPod, iPhone y/o iPad sin tener que aprender C, C++ u Objective C sólo para ello, ni qué decir para la portabilidad entre plataformas móviles.

Aún hay que esperar qué cola traerá esta noticia. Por supuesto habrá defensores y detractores, y es de esperar que nuevamente se levante alguna Flamewar, pero aún es pronto para decir más. De momento, sé de más de uno que debe estar desempolvando el compilador de Flash CS5 y haciendo pruebas desde ahora mismo 🙂

En cualquier caso, si deseas ver en detalle los nuevos cambios, puedes descargar el PDF oficial del iOS Developer Program License Agreement.

Happy Coding!

Actualización: Curiosamente Adobe no ha hecho mayores declaraciones al respecto, excepto por la publicada en su cuenta de Twitter:

“…We are encouraged to see Apple lifting its restrictions on its licensing terms, giving developers the freedom to choose what tools they use to develop applications for Apple devices….” — Adobe

Sin embargo, la actualización 11.0.1 de Flash CS5, del día 07/09/2010 (hace apenas dos días) incluye, entre otras cosas, soporte para crear aplicaciones a resolución completa para iPad, soluciones de ciertos bugs y mejoras de desempeño en el empaquetador para iPhone. Está claro que este anuncio de Apple no les ha caído por sorpresa 😉

Etiquetas de Technorati: ,,,

Prepárate, vuelve Adobe Hispano

banner-728x90[1]  El mayor evento online en español sobre tecnologías de Adobe regresa en su segunda edición con un maratón de cuatro días de conferencias, de la mano de 20 expertos, de 11 diferentes países y, lo mejor, completamente gratuito.

¿Te interesa aprender sobre las tecnologías o productos de Adobe, quieres conocer a otras personas que están creando tendencias ahora mismo en el mundo tecnológico o simplemente quieres comprobar si es cierto que en el mundo hispano parlante hay otros que, como tú, están trabajando con Flex, Flash, Coldfusion, InDesign, Photoshop, After Effects, etc.? ¡Esta es tu oportunidad!

Así que ve preparando tus horarios del 13 al 16 de septiembre, chequea tu audífonos porque todo lo que necesitas es una conexión a internet y el Flash Player para ser parte de la segunda edición de Adobe Hispano.

Para conocer el link del evento, regístrate y lo recibirás un día antes de que comience.

Adobe Hispano es un esfuerzo de la comunidad Adobe Xpert (Colombia Adobe User Group), con la colaboración de otros AUG’s de Latinoamérica y España.

Para más información sobre el evento (conferencistas, FAQs, etc.) visita el sitio de Adobe Hispano.

Y para que te des una idea de lo que verás allí, te dejamos el programa de los cuatro días:

Fecha Nombre de la Charla Conferencista Horario (GMT -5)
Septiembre 13 Datos sin dolor y sin SQL con AIR Daniel Ramos (México) 11:00 am – 12:00 m
Septiembre 13 Personalizando componentes en Flex 4 Mariano Kiwo Carrizo (Arg) 12:00 m – 01:00 pm
Septiembre 13 Partículas con ActionScript 3 Rodrigo Duarte (Chile) 01:00 pm – 02:00 pm
Septiembre 13

Tracking de Google Analytics con Flash

Edgar Parada (México) 02:00 pm – 03:00 pm
Septiembre 13 Optimización extrema de SWF 2.0 Elder Vázquez (Perú) 03:00 pm – 04:00 pm
Septiembre 14 Edición NO destructiva con Photoshop Mariana Cabral (México) 11:00 am – 12:00 m
Septiembre 14 Documentos interactivos para Web y el iPad con ID José M. Ramos (Puerto Rico) 12:00 m – 01:00 pm
Septiembre 14 Usando Lightroom y Photoshop CS5 Rafael Concepción (EEUU) 01:00 pm – 02:00 pm
Septiembre 14 Creación de animaciones Flash con Illustrator Antonio Lirio (España) 02:00 pm – 03:00 pm
Septiembre 14 Optimización de trabajo con el nuevo Photoshop Marcelo Monzón (Argentina) 03:00 pm – 04:00 pm
Septiembre 15 Creación de Widgets con Flash Catalyst Iván Álvarez (México) 11:00 am – 12:00 m
Septiembre 15 Cine 3D con After Effects Luis Sosa (Rep. Dominicana) 11:00 am – 12:00 m
Septiembre 15 Flash Catalyst – Usando DataList LordAlex León (Canadá) 01:00 pm – 02:00 pm
Septiembre 15 Acrobat y la oficina sin papeles Diego Rodríguez (España) 02:00 pm – 03:00 pm
Septiembre 15 Workflow, muévete sin pérdidas entre suites Jorge Mochón (España) 03:00 pm – 04:00 pm
Septiembre 16 Mobile Web con HTML5, widgets y Dreamweaver Maximiliano Firtman (Argent) 11:00 am – 12:00 m
Septiembre 16 Aplicaciones multidispositivo Marcos Gonzáles (España) 12:00 m – 01:00 pm
Septiembre 16 5 situaciones en que ColdFusion te puede salvar la vida Michael Borbor (Ecuador) 01:00 pm – 02:00 pm
Septiembre 16 Jugando con datos en Spry Luis Felipe (Chile) 02:00 pm – 03:00 pm
Septiembre 16 Lo que tiene HTML5, lo que le falta a Flash Freddie Vega (Colombia) 03:00 pm – 04:00 pm

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í.

Diseño y Planificación Proyectos.

En el momento que decidimos emprender una idea que consideramos provechosa y efectiva, ya sea por razones personales o de índole laboral, lo primero que debe hacerse es un Diseño donde se plasme todo lo que contendrá este Proyecto, Sistema o Plataforma. Para luego poder diagramar una planificación de ejecución; esto nos permitirá saber el dominio del trabajo que hemos desempeñado.
Si bien es cierto que para muchos es algo complicado y tedioso hallar la solución o metodología correcta para realizar desde un complejo Sistema de Administración Contable, hasta un simple algoritmo que permita calcular fórmulas tales como: La ecuación de 2do Grado, el Teorema de Pitágoras, la Ecuación Patrimonial de una Empresa, otros. Muchos no consiguen una solución para poder desarrollar un simple código que cumpla con su función; esto es por falta de estrategia, diseño y planificación.
En primer plano debemos detenernos a pensar en las reglas básicas de nuestro proyecto, esto esta comprendido por, obligaciones que debe realizar, datos que va a procesar (tanto internos como los externos), herramientas de trabajo, facilidades de labor. Las obligaciones serán todos aquellos procesos que podrá ejecutar el programa para devolver una serie de resultados. Los datos que debe procesar se dividen en internos, o los que ya el tendrá como predeterminado, y  datos externos siendo  aquellos que le proporcionamos al momento de realizar la operación, por ejemplo, si vamos a calcular el costo total de un producto, debemos colocar el costo neto del producto (este seria el dato externo), utilizando como regla de porcentaje el costo del I.V.A. (este vendría a ser el dato interno).
Las herramientas de trabajo serán aquellas aplicaciones que traerá el sistema para ahorrarnos trabajo, estos podrían ser: calculadoras, calendarios, recordatorio de notas, lector RSS, entre otros. Y por último, las facilidades de labor son las optimizaciones que va a poseer para que dicho Software sea más provechoso y productivo que los ya existentes, y así triunfar en el mercado.
  • UML
La respuesta a los problemas de conceptualizar ideas se llama UML. Se conoce por UML al Lenguaje Unificado de Modelado, y no es mas que un lenguaje que nos permite graficar la estructura de un sistema, para luego poder visualizarlo, estudiarlo, y organizarlo según sea necesario, inclusive podremos reestructurar en mejoras a futuro sin tantos problemas.
Esto nos dará como beneficio poder realizar la estructura de un Software eficiente, el cual podrá ser desarrollado en una gran variedad de lenguajes de programación, ya que aqui radica el problema para muchos, pensar cómo resolverlo con un lenguaje en específico, en vez de pensar en su proceso de coordinación y arquitectura interna. Para mayor información y profundizar el tema: http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado
  • Desarrollo de una Aplicación:
Luego de conocer un poco sobre lo que es Diseño y Planificación de Desarrollo, vamos a crear una simple aplicación que permita calcular el Teorema de Pitágoras.
« Paso 1
A razón de ya tener como premisa que debemos calcular el Teorema de Pitágoras, ya hemos establecido la función de nuestro algoritmo.
«Paso 2
Ubicar o crear la fórmula o proceso algebro-matemático que pueda resolver dicha ecuación.
Para esto sabemos que dicha ecuación es resuelta a través de la siguiente fórmula:
H = √(a² + b²)
« Paso 3
Luego de comprobar que el procedimiento de cálculo es correcto, debemos ubicar cuales son los datos que este va a trabajar. Tendremos que estructurarlo en Variables, tanto internas como externas, y en Constantes las cuales siempre llevan un valor fijo (como lo es el valor de π que equivale a 3,1416 si fuera necesario en este ejemplo).
Finalmente de haber alcanzado estos 3 pasos o etapas, podremos escribir un algoritmo que pueda realizar el cálculo, en cualquier lenguaje, ya que lo importante es su estructura y procedimiento, El lenguaje de programación se decidirá en función de cual sea el mas provechoso para dicho proyecto, más no debe pensarse en el antes de maquetar o Diseñar nuestro diagrama de Trabajo.
« Código PHP (Desarrollado por Rasmus Lerdorf):
<?php
$a = 5;
$b = 6;
$h = sqrt(($a * $a) + ($b * $b));
echo 'La Hipotenusa es igual a:'.$h;
?>
« Codigo Javascript (Desarrollado por Brendan Eich):
var a;
var b;
var h;

a = prompt("Ingrese el valor de A");
b = prompt("Ingrese el valor de B");

h = sqrt((a * a) + (b * b));

alert("La Hipotenusa es igual a: "+h);

« Codigo ActionScript 3 (Desarrollado por Macromedia):

var a:Number = 5;
var b:Number = 6;
var h:Number =  Math.sqrt((a * a) + (b * b));
trace("La Hipotenusa es igual a: "+h);

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

A %d blogueros les gusta esto: