Follow me @Tmeister

Archive for January, 2007

Para variar, Nuevo look :)

Posted by Tmeister On January - 30 - 2007

Si son lectores de este blog, ya habrán notado que me gusta cambiar el diseño muy seguido. :P

Para no variar y seguir sobre la misma linea. aquí esta un nuevo look.

El pasado diseño dejaba poco espacio para la información de los post ya que era un template de 3 columnas. Y de tamaño fijo.

Ahora basado en el diseño de Arcsin. Como esta estipulado en el footer ;) llega este nuevo tema que ahora es de un tamaño fluido ademas de ser mucho mas fácil de leer.

A ver cuento me dura el gusto y decido cambiarlo jeje.

En fin.

Nos estamos viendo.

[AWI] Amfphp WordPress Integration

Posted by Tmeister On January - 29 - 2007

English translation, at the bottom

Hace un par de días comencé a trabajar sobre un nuevo proyecto. Su nombre oficial es AWI (Amfphp WordPress Integration).

El propósito de AWI es hacer servicios para Amfphp, los cuales servirán de “gateway” entre Flex/Flash y WordPress, para así poder hacer GUI’s sobre estas 2 plataformas de desarrollo.

Como comente al inicio, este proyecto lo comencé apenas hace un par de días. Y espero dedicarle un par de horas al día, por lo menos ( O lo que el cuerpo aguante :) ), ademas de esto decidí hacer de este un proyecto abierto, se que es un proyecto pequeño, pero que mas da, veamos cual puede ser el resultado.

Por el momento el proyecto consta solo de 4 servicios y estan en estado alpha, por el momento, solo leen algunas propiedades de WordPress.

Ademas de contar con los métodos para tomar la información normal del blog, Post, Comentarios, Categorías, BlogRoll, etc. Tal vez también se integre todo lo referente a la administración del mismo aun no lo se.

Si alguien esta interesado en participar pueden encontrar el proyecto hospedado en GoogleCode

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

Los archivos los pueden descargar en

http://code.google.com/p/awi/downloads/list

Para ver los métodos hasta el momento puede entrar a

http://klr20mg.com/amfphp/browser/

bajo el apartado WordPress.

Si alguien tiene comentarios, ideas, etc son bienvenidas.

– English –

Two days ago i began working on a new project officially called AWI (Amfphp WordPress Integration).

The objective to reach is to make services for working on Amfphp, which will be like a “gateway” between Flex/Flash and WordPress, and building GUIs on those two platforms.

like i said at the beginning, this project started two days ago, and i will spend at least a couple of hours a day, as well as beginning this project, it will be open source, i know it is a little project but doesn’t matter, we’ll see the impact and the results.

Currently it has just 4 services in alpha status, they access a few properties from WordPress.

As well as to have the methods for taking the normal data from the blog, posts, comments, categories, blogroll, etc, maybe i will add features about the management but i still dont know.

If anybody is interested and want to collaborate, the project is hosted in GoogleCode:

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

You can download the files from:

http://code.google.com/p/awi/downloads/list

The methods written currently could be reached at:

http://klr20mg.com/amfphp/browser/

under the WordPress section

Any help, ideas, comments would be appreciated.

cheers 8)

[Tutorial] Flex2 y Amfphp (RemoteObject)

Posted by Tmeister On January - 28 - 2007

Hace poco mas de un mes se anuncio el lanzamiento de la versión 1.9 alpha de amfphp, esta versión por fin soportaba AMF3 y con ello interactuar totalmente con Flex2. Y el pasado viernes se lanzo la versión beta 2, Así que es hora de que nos vayamos enterando de como funciona esta nueva versión =)

1.Descargar e Instalar Amfphp 1.9 beta 2.

Descarga el archivo zip de amfphp 1.9, descomprimelo y sube el folder amfphp a algún lugar de tu servidor, el mejor sitio seria el directorio principal de tu sitio. Para comprobar que todo esta correcto haremos la vieja pero siempre efectiva comprobación. En tu navegador escribe la dirección que apunte hacia el archivo gateway.php

Si el folder de amfphp se encuentra en el folder raíz de tu sitio entonces la dirección seria:

http://www.tusitio.com/amfphp/gateway.php

Si todo sale bien debes de ver un mensaje como este.

“amfphp and this gateway are installed correctly. You may now connect to this gateway from Flash.

Note: If you’re reading an old tutorial, it will tell you that you should see a download window instead of this message. This confused people so this is the new behaviour starting from amfphp 1.2.

View the amfphp documentation

Load the service browser”

2. Crear nuestro primer servicio.

HelloWorld.php

<?php
 class HelloWorld
 {
 	public function SayHi()
 	{
 		return "Hi there. =)";
 	}
 }
?>

Si ya habías trabajado con una versión vieja de amfphp te darás cuenta que $this->methodTable se ha eliminado de la estructura de la clase.

$this->methodTable era utilizado para asignar las propiedades de las funciones, sobre todo la descripción, y la forma de acceso, esto ultimo para saber si se podría acceder a la función de forma remota o solo local.

En esta nueva versión como dije antes $this->methodTable dejo de usarse. Ahora esta nueva versión de amfphp asume que todas las funciones pueden accederse remotamente a menos que el nombre de la función comience con guion-bajo “_” o la función sea declarada como privada, esta ultima opción solo esta disponible en php5.

Un ejemplo HelloWorld2.php

<?php
 class HelloWorld
 {
 	public function SayHi()
 	{
 		return "Hi there. =)";
 	}
 	private function connectDB()
 	{
 		//PHP5
 		//Solo se puede ejecutar desde la misma clase
 	}
 	function _localMethod()
 	{
 		//PHP4
 		//Esta funcion tambien sera accesible desde la misma clase unicamente
 	}
 }
?>

3. Configurar Flex2 para trabajar con amfphp

Debemos crear un proyecto básico en Flex.

project1

project2

Ahora necesitamos crear un archivo de configuración para que flex sepa donde buscar nuestros servicios de amfphp.

Para ello creamos el archivo services-config.xml con la siguiente estructura

<?xml version="1.0" encoding="UTF-8"?>
<services-config>
	<services>
		<service id="amfphp-service" class="flex.messaging.services.RemotingService" messageTypes="flex.messaging.messages.RemotingMessage">
			<destination id="amfphp">
				<channels>
					<channel ref="amfphpId"/>
				</channels>
				<properties>
					<source>*</source>
				</properties>
			</destination>
		</service>
	</services>
	<channels>
		<channel-definition id="amfphpId" class="mx.messaging.channels.AMFChannel">
			<endpoint uri="http://www.klr20mg.com/amfphp/gateway.php" class="flex.messaging.endpoints.AMFEndpoint"/>
		</channel-definition>
	</channels>
</services-config>

La única linea que nos interesa y que debemos modificar es la siguiente:

<endpoint uri="http://www.klr20mg.com/amfphp/gateway.php" class="flex.messaging.endpoints.AMFEndpoint">

Modificando la ruta hacia donde esta nuestro archivo gateway y guardandolo en el folder raíz de nuestro proyecto.

Una vez que tenemos nuestro archivo, dar click derecho sobre el nombre del mismo e ir a propiedades. Se abrirá una ventana de propiedades, obviamente, seleccionamos del menú izquierdo la pestaña “Flex Compiler” y en la linea de “Argumentos adicionales de compilación” -s services “services-config.xml” y damos click en “Ok”

project3

Ahora ya estamos listos para trabajar con amfphp 1.9 y Flex.

4. Probando la conexión

Lo primero es subir nuestro servicio “HelloWorld.php” el cual creamos en el paso 2.

Este servicio debe de estar dentro del folder amfphp/services, dentro, puedes crear folders anidados sin ningún problema en este caso lo colocare en la carpeta Tutorials/HelloWorld.

Creamos una pequeña interfaz la cual constara de un un par de LinkButtuns, un TextArea contenidos dentro de un panel cuyos botones ejecutaran los métodos remotos de amfphp.

Algo así

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<!-- Funciones que controlan los eventos del RemoteObject -->
	<mx:Script >
		<![CDATA[
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			public function onMethodResult(event:ResultEvent):void
			{
				out_txt.text = "Result "+event.result
				out_txt.text += "\nDataType "+ typeof(event.result)
			}
			public function onServiceFault(event:FaultEvent):void
			{
				out_txt.text = "Fault "+event.fault
			}
		]]>
	</mx:Script>
	<!-- Declaracion del RemoteObject y sus metodos -->
	<mx:RemoteObject
		id="helloService"
		source="Tutorials.HelloWorld.HelloWorld"
		destination="amfphp"
		fault="{onServiceFault(event)}"
		showBusyCursor="true"
	>

		<mx:method
			name="SayHi"
			result="{onMethodResult(event)}"
		>
		</mx:method>

	</mx:RemoteObject>
	<!-- Layout general-->
	<mx:Panel x="0" y="0" width="250" height="200" layout="absolute" title="Amfphp-RemoteObject">
		<mx:LinkButton x="178" y="135" label="Fault" click="{helloService.invalidMethod.send()}"/>
		<mx:LinkButton x="108" y="135" label="SayHi" click="{helloService.SayHi.send()}"/>
		<mx:TextArea x="7" y="7" width="216" height="121" id="out_txt"/>
	</mx:Panel>
</mx:Application>

vamos a ver parte por parte.

<mx:RemoteObject
	id="helloService"
	source="Tutorials.HelloWorld.HelloWorld"
	destination="amfphp"
	fault="{onServiceFault(event)}"
	showBusyCursor="true"
>

	<mx:method
		name="SayHi"
		result="{onMethodResult(event)}"
	>
	</mx:method>
</mx:RemoteObject>

En este tag como se puede ver creamos nuestro RemoteObject los parámetros son:

id : El nombre con el cual haremos referencia
source: el path a partir del folder amfphp/services, donde se encuentra nuestro servicio en el servidor,
destination: el identificador seteado en el tag <destination> del archivo services-config.xml
fault: El método que sera ejecutado al momento de que ocurra un error.
showBusyCursor: Mientras dure la ejecución del método remoto flex mostrara el cursor de ocupado

Dentro del tag RemoteObject debemos agregar los métodos a los cuales vallamos a acceder desde Flex y definir la función que se ejecutara cuando el método se haya ejecutado con éxito.

Esto lo hacemos definiendo el tag <mx:method>

<mx:method
	name="SayHi"
	result="{onMethodResult(event)}"
>
</mx:method>

los parámetros son:

name: El nombre del método que se ejecutara, que es el mismo que tenemos en nuestro servicio.
result : asignamos la función que se ejecutara cuando el método remoto se ejecute.

Por ultimo, debemos ejecutar dichos métodos desde nuestra interfaz, en este ejemplo se ejecutan mediante un LinkButton

<mx:linkbutton x="108" y="135" label="SayHi" click="{helloService.SayHi.send()}">

Al momento de dar click enviamos la petición de ejecución del método SayHi que esta definido dentro del RemoteObject helloService, simple cierto? ;)

Este es el resultado final.

[FLASH]http://klr20mg.com/flex/tutorials/helloworldamfphp.swf,250,200[/FLASH]

Aqui estan los archivos completos del proyecto. helloworld-amfphp19.zip

Con esto podemos comenzar a trabajar y a aprovechar todas la ventajas que amfphp nos ofrece.

Cheers. 8)

AMFPHP 1.9 Beta 2, Con codificación/decodificación nativa

Posted by Tmeister On January - 26 - 2007

Leyendo el blog de Patrick Mineault. Veo el anuncio del release de la versión 1.9 Beta 2 de AMFPHP y lo mas sobresaliente de este release es que ahora la codificación/decodificación de AMF es ahora nativa de PHP. Haciendo el proceso entre 50 y 200 veces mas rápido según escribe Patrick.

Aquí esta toda la información al respecto.

Habrá que probarlo

Enjoy.

Llego el 2007

Posted by Tmeister On January - 1 - 2007

Por fin, el año 2006 se fue, ya era hora :) por que digo esto? Bueno en el ámbito personal digamos que no fue mi mejor año. Pero esto es cosa del pasado.

Ahora que nos trae el 2007?

Lo primero que me viene a la mente es, El Release de Apollo, sin duda, como lo he comentado en post pasados, el Release de apollo cambiara totalmente la “definición” de las RIAs dándole mucho mas opciones a los desarrolladores.

Otra de las cosas interesantes sin duda sera el lanzamiento de FLASH 9 con su ActionScript 3. Espero que los componentes sean mas parecidos a los de FLEX :P , y que ahora si se tenga un soporte solido para HTML. :D .

En el ámbito profesional refiriéndome específicamente a Desktoptwo aka DT2, esperamos poder hacerlo opensource y así dar la oportunidad de que cualquiera que este interesado pueda crear lo que le plazca sobre DT2.

Ahora hablando de lo personal espero umm solo salud…. lo demás, lo demás siempre llega :) , ademas de que este año sera el ultimo año de mis 20s, finalmente llegare a los 30 :P pero eso sera hasta el 2008 jeje.

No me queda mas que desearle a todos un Feliz Año 2007.

Acerca de mi
Enrique Chavez

Enrique Chávez también es conocido como @Tmeister es un desarrollador, emprendedor, poeta y loco.

Geek autodeclarado y apasionado de todo lo que tiene que ver con tecnología y desarrollo.

Cuenta con una experiencia de más de 7 años en el ramo del desarrollo, creando, sobre todo, aplicaciones web en la empresa Sapotek.

A finales del 2008 crea, junto con 3 colegas, la consultoría llamada AureaCode, enfocándose a brindar servicios de desarrollo web en todas sus variantes.

Si necesitas algún tipo de información o consulta por favor no dude en escribir.

View Enrique Chávez's profile on LinkedIn

Carlos Enrique Chavez Garcia's VisualCV

RSS Feed

Links Patrocinados