Flex Builder 3 Linux o Eclipse + Epiphany

16
Jul/08
0

Tras un montón de caidas de Firefox (La versión que trae Ubuntu), probé Epiphany pero al intentar ejecutar un proyecto en Flex Builder 3 (o Eclipse) abre una nueva ventana, una lata, por lo cual hice un pequeño script en python para abrir la página en una nueva solapa:

#!/usr/bin/env python
import sys
import commands
 
var = sys.argv
commands.getoutput('epiphany-browser -n %s' % var[1])

Esto se debe guardar como run-epiphany.py y con permisos de ejecución, luego dentro de las Preferencias de Eclipse (General -> Web Browser) deben agregar Epiphany a la lista, seleccionar el script como ejecutable y en los parametros agregar %URL%

Ojalá les sirva

Flash/Flex indexable en Google y Yahoo

2
Jul/08
1

Hace algún tiempo investigando si realmente eran indexables los SWF en buscadores ya que, para los que han visto el sitio de mi empresa: http://www.villagranquiroz.cl esta totalmente desarrollado en Flex, y últimamente casi todos los proyectos que estoy trabajando son en este framework, y el mayor contra era para páginas web (sistemas de información no importa ya que no es visible al público) pero hoy ha anunciado Google y Yahoo que han implementado un algoritmo que permite guardar la información contenida dentro de Flash (Botones, Texto, etc) que ya está en funcionamiento (probablemente la mayoría de los sitios están siendo indexados, por lo cual hay que esperar).

Una buenisima noticia ya que tenía pensado cambiar el sitio a ExtJS , una exelente herramienta para integrarla con PHP pero obviamente no le llega ni a los talones a Flex.

Más información: googlewebmastercentral

Flex: Paso de variables entre Módulos

25
Jun/08
6

Suponiendo que necesitamos pasar de una pantalla a otra el valor de un numero por ejemplo (puede ser un id dentro de la tabla), dentro de la aplicación principal deben agregar una variable para guardar esta información (el código siguiente no esta completo):
Inicio.mxml:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
     <![CDATA[
          public var id_modulo:int; // Esta es la variable donde guardaré el valor
            ......
     ]]>
</mx:Script>
             ....
</mx:Application>

Modulo1.mxml:
Ahora queremos que al hacer click en un botón "Siguiente" guarde el valor del id que necesitamos.

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
     <mx:Script>
          <![CDATA[
               private function Funcion_Click_Boton_Siguiente():void {
// Aquí guardamos nuestro valor en la aplicación principal,
// después lo obtendremos de la misma forma
                    Application.application.id_modulo = 10;
 
// Después de guardar, nos cambiamos al siguiente modulo
                    Application.application.CargaModulo("Modulo2");
               }
               ......
          ]]>
     </mx:Script>
     <mx:Button label="Siguiente" click="Funcion_Click_Boton_Siguiente()" />
</mx:Application>

Modulo2.mxml:
Ahora pedimos a la aplicación principal el valor previamente guardado y lo mostramos como una alerta cuando carga la aplicación, dentro de Application se define initialize para utilizar una función al momento de cargar un módulo.

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="CargarInicio()">
     <mx:Script>
          <![CDATA[
               // Necesario para poder utilizar el pop-up de alerta
               import.mx.controls.Alert;
               // Bindable se utiliza sólo si necesitan utilizar la variable
               // como valor en algún componente
               // Si no lo van a utilizar para eso, descartenlo
               [Bindable]
               private var id_a_utilizar:int;
 
               public function CargarInicio():void {
                    id_a_utilizar = Application.application.id_modulo;
                    Alert.show("Mi variable tiene el valor: " + id_a_utilizar);
               }
                ......
          ]]>
     </mx:Script>
....
</mx:Application>
Tagged as: ,

Ejemplo básico con Flex y AMFPHP

13
Jun/08
5

Este es un ejemplo bastante simple de lo que se puede hacer con Flex y AMFPHP, este incluye lo siguiente:

  • Envío y recepción de mensajes simples (Típico Hola Mundo)
  • Recepción de un arreglo y representación en un DataGrid
  • Recepción de un arreglo consultado desde una base de datos (MySQL) con Zend Framework
  • Enviar información de un "Formulario" para su inserción a una Tabla (MySQL)

Son bastante simples, no entra en detalle con el manejo de Faults o Excepciones.

Archivos: WebserviceAMFPHP  - PruebaBasica-Flex - SQL - PruebaBasica

Notas:

  • WebserviceAMFPHP y PruebaBasica son Proyectos que pueden importar a Flex Builder 3
  • Deben configurar la ruta de donde se encuentra el WebserviceAMFPHP dentro de config.php en este mismo
  • Para no tener problemas, dejar estos proyectos dentro de los htdocs del webserver (recomendado Zend Core) para que la ruta web sea: http://localhost/PruebaBasica y http://localhost/WebserviceAMFPHP

Ojalá les sirva.

Google Gadgets + Ubuntu 8.04

4
Jun/08
0

Google Gadgets para Linux!! Por casualidad me he encontrado con este proyectaso, siguiendo las "reglas" de linux, obviamente es Open Source y tendrás que compilarlo, por lo cual acá pondre las instrucciones para compilarlo en Ubuntu 8.04 (ojalá Canonical lo agregue al repo oficial), quiero dejar en claro que estoy escribiendo esto a medida que lo voy instalado.

  1. Bajar el código fuente de la página del proyecto: http://code.google.com/p/google-gadgets-for-linux/
  2. Luego instalar las librerías necesarias para la compilación:
  3. sudo apt-get install qt4-dev-tools libcurl3 libcurl4-openssl-dev libqtwebkit-dev
  4. Comenzar a compilar:
  5. ./configure
    make
    sudo make install
  6. Ejecutar el sidebar (quedará como fondo de escritorio, el export es porque esta instalado en /usr/local/lib, para no utilizarlo hacer el configure así: ./configure --prefix=/usr):
    export LD_LIBRARY_PATH=/usr/local/lib
    ggl-gtk -s -bg

Se verá algo asi como esto:

Google Gadgets Linux Notas:
El proyecto esta en desarrollo por lo cual no es estable, lo más importante es que mantiene el API de Google Gadgets por lo cual podrás utilizar los que puedes descargar desde: http://desktop.google.com/plugins/ o desde la misma aplicación
Recomiendo crear un script shell (.sh) para ejecutar esta aplicación, y también agregar este a los scripts de inicio de Gnome (Sistema -> Preferencias -> Sesiones)

Flex AIR + Framework SQLite ( SQLiteConnector )

26
May/08
0

Para trabajar fácilmente con algún SQL estoy acostumbrado en PHP a utilizar Zend Framework, específicamente Zend Db, y como el espectacular Flex AIR tiene soporte para SQLite había que utilizarlo, pero buscando en internet no hay un framework para realizar este tipo de operaciones, por lo cual tuve que desarrollar algo que uso en Flex Media Player, y como este es GPL acá dejo una pequeña explicación de como utilizarlo:

Descargar Código

La utilización es sencilla, primero deben crear un objeto del tipo SQLiteConnector y suponiendo que ya se creo una base de datos SQLite con la tabla Prueba que tendrá las columnas Nombre y Apellido:

 
// Debemos crear una instancia de la clase
// definiendo en el constructor el archivo
var conn:SQLiteConnector = new SQLiteConnector("base_de_datos.sqlite");
// Si deseamos insertar datos
conn.DoSQL("INSERT INTO Prueba VALUES('Andrés', 'Villagrán')");
// Si deseamos obtener un valor
var nombre:String = conn.FetchOne("SELECT Nombre FROM Prueba");
// Si deseamos obtener un arreglo con los datos
var datos:Array = conn.FetchArray("SELECT * FROM Prueba");
// Para mostrar los datos
for(var i:int = 0; i &lt; datos.length; i++) {
trace("Nombre:", datos[i]["Nombre"], "Apellido:", datos[i]["Apellido"];
}

Espero que les sirva.

Flex Media Player r3

25
May/08
0

He subido el código y el instalador de Flex Media Player revisión 3, recordar que no es versión final es solo para prueba, para descargarlo ir a la página del proyecto:

http://code.google.com/p/flexmediaplayer/

FlexMediaPlayer-r3

Novedades:

  • Shuffle!! (Por ahora obligatorio, pronto opcional)
  • Cover Display con Reflejos!

Hacer doble click para escuchar, si se pone play sin seleccionar una canción se caerá, necesitas Adobe AIR para ejecutar el instalador.
Nota: Si utilizas Windows Vista debes ejecutarlo como Administrador, en la proxima versión no ocurrirá esto.

Flex Camp Chile

24
May/08
0

Actualmente estamos comunicándonos con gente de Adobe ya que estamos Organizando un Flex Camp para Chile (y el primero en Latino América), idealmente el evento se realizará en el 4to trimestre del 2008, por lo cual queda bastante tiempo para organizar algo bien grande y claro está, con una gran asistencia.

Adobe, dependiendo de la asistencia nos enviaría un relator de la empresa y además de regalos para los asistentes, por ahora necesitamos saber la gente que está interesada, la forma de hacerlo es registrándose en nuestro grupo en Google: http://groups.google.com/group/flexhispano cuando se tenga más información del evento se registrará en nuestro grupo.

Como un pequeño adelanto, estamos intentando tener como patrocinador a la Universidad del Bío Bío y obviamente los organizadores somos Villagrán & Quiroz

Ejemplo Flex + AMFPHP + Zend Framework + MySQL

15
May/08
0

El siguiente ejemplo permite la creación de servicios web utilizando AMFPHP ,  Flex y Zend Framework para la conexión a la base de datos MySQL.

Lo primero es configurar services-config.xml  a la dirección que se conectará nuestro cliente, por lo tanto debemos modificar lo siguiente:  

<endpoint uri="http://andres.villagranquiroz.cl/gateway.php" class="flex.messaging.endpoints.AMFEndpoint"/>

Luego de esto, debemos configurar al compilador que utilice esta configuración:Botón derecho sobre el Proyecto -> Preferencias -> Flex Compiler -> Additional compiler arguments y agregar -services "services-config.xml"

Con esto ya estamos listos para comenzar el desarrollo, solo destaco lo importante, lo demás pueden verlo en el código.Lo primero que se debe hacer es crear el servicio web dentro de (ver detalles en el ejemplo):/amfphp/services/nuestro_servicio/nuestro_servicio.php

Ahora podremos visualizarlo en el Webservice Browser que contiene AMFPHP (también debe ser compilado con services-config.xml), pueden revisar el mio: http://andres.villagranquiroz.cl/browser/index.html e intentar ejecutarlos.

Recomiendo utilizar Zend Framework para la conexión con la base de datos, en el ejemplo existe un archivo de configuración (config.php) para MySQL, para más información de la utilización de Zend_Db pueden ver la documentación del Framework o revisar la introducción que he preparado aquí: http://andres.villagranquiroz.cl/files/2008/03/01-php-java.pdf posiblemente tengan problemas con PDO_MYSQL ya que lo más probable es que no tengan instalado, recomiendo instalar Zend Core que tiene Apache + PHP y extensiones (incluye PDO) + MySQL, pueden encontrarlo en http://www.zend.com

Volviendo a la interfaz en flex:Primero debemos especificar los Métodos a los cuales queremos conectarnos de la siguiente manera:

<mx:RemoteObject id="remObj" showBusyCursor="true" source="EjemploAMFPHP.prueba_mantenedor" destination="amfphp" fault="faultHandler(event)" >

<mx:method name="Ingresar" result="ingresarHandler(event)" />

<mx:method name="Modificar" result="modificarHandler(event)" />

<mx:method name="CargarDatos" result="cargarDatosHandler(event)" />

<mx:method name="Eliminar" result="eliminarHandler(event)" />

</mx:RemoteObject>

Hemos definido los métodos y sus "Manejadores" (Handlers) los cuales tratarán la respuesta que nos da el Servicio Web luego de llamarlo, ejemplo:

private function ingresarHandler(event:ResultEvent):void {

Alert.show(event.result.toString(), "Resultado");

LimpiarFormulario();

}

Para llamar a los Métodos del Objeto Remoto:

remObj.getOperation("CargarDatos").send();

remObj.getOperation("Ingresar").send(nombre.text, apellido.text); // Si necesita parametros

Para ver el código deben importar a Flex Builder los proyectos o simplemente descomprimirlos y revisarlos.

Ejemplo en Linea - Código Fuente

Flex Hispano / Remote Object AMFPHP + Flex

15
May/08
1

 

He creado el Grupo FlexHispano en Google, en el cual espero que podamos compartir nuestros conocimientos e ideas y también fomentar esta grandiosa tecnología, la dirección donde pueden visitar el grupo es:

http://groups.google.com/group/flexhispano

Pueden hacer consultas sin la necesidad de estar registrados.

Por ahora me encuentro tabajando en un Ejemplo con AMFPHP, Zend Framework (Especificamente Zend_Db) y MySQL para ejemplificar los objetos remotos en Flex, lo más probable es que esté disponible durante la tarde del día Jueves 15/05/2008