domingo, 31 de octubre de 2010

Refrán - William G. McGowan

La única práctica gerencial que ahora es constante es la práctica de acomodarse constantemente al cambio

William G. McGowan

viernes, 29 de octubre de 2010

Growler Lib - Ejemplo


Please upgrade your Flash Player
This is the content that would be shown if the user does not have Flash Player 6.0.65 or higher installed.


Aqui les dejo el AIR para que puedan ver como funciona el growler, los codigos del ejemplo estan dentro del air, se le puede hacer clic derecho VIEW SOURCE.

Codigo Main

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
   xmlns:s="library://ns.adobe.com/flex/spark" 
   xmlns:mx="library://ns.adobe.com/flex/mx" 
   width="100%" height="100%" 
   xmlns:www="http://www.flex-tutorial.fr/2009"
   left="10" right="10" bottom="10" top="10"
   >

 <fx:Script>
  <![CDATA[
   import mx.graphics.GradientEntry;
   
   import net.developyourdream.growler.Growler;
   import net.developyourdream.growler.growlers.GrowlerTypeUbuntu;
   import net.developyourdream.view.growler.GrowlerTypeCustom;
   import net.developyourdream.view.growler.GrowlerTypeCustomTwo;
   

   protected function basicSkinClickHandler(event:MouseEvent):void
   {
    var growler:Growler = new Growler;
    growler.dispach();
   }
   
   protected function ubuntuSkinClickHandler(event:MouseEvent):void
   {
    var growler:GrowlerTypeUbuntu = new GrowlerTypeUbuntu;
    growler.width = 200;
    growler.theTitle = myTitle.text;
    growler.message = myMessage.text;
    growler.dispach();
   }
   
   protected function customSkinClickHandler(event:MouseEvent):void
   {
    var growler:GrowlerTypeCustom = new GrowlerTypeCustom;
    growler.theTitle = myTitle.text;
    growler.story = myStory.text;
    growler.message = myMessage.text;
    growler.gradientFillColors = [new GradientEntry(Math.random()*0xFFFFFF,NaN,0.8),new GradientEntry(Math.random()*0xFFFFFF,NaN,0.8)];
    growler.dispach();
   }
   
   protected function custom2SkinClickHandler(event:MouseEvent):void
   {
    var growler:GrowlerTypeCustomTwo = new GrowlerTypeCustomTwo;
    growler.dispach();
   }
  ]]>
 </fx:Script>

 <fx:Declarations>
  <!-- Place non-visual elements (e.g., services, value objects) here -->
 </fx:Declarations>
 <s:layout>
  <s:VerticalLayout/>
 </s:layout> 
 
 <mx:Image source="../../../assets/image/LogoLargo.png"  width="400"/>
 <s:Label text="TITLE" />
 <s:TextInput id="myTitle" text="Develop Your Dream Lib" width="100%"/>
 <s:Label text="STORY" />
 <s:TextInput id="myStory" text="Este campo solo es para el CUSTOM GROWLER" width="100%"/>
 <s:Label text="MESSAGE" />
 <s:TextArea id="myMessage" width="100%" text="A los growlers del lib no se ajuntan al texto por lo tanto se le debe especificar su WIDTH y HEIGHT. &#13;&#13;Para lograr que los growler se ajusten dinamicamente se pueden hacer GROWLERS CUSTOM extendiendo de la clase GROWLER, se calcula el tamaño de los hijos y se sobre escribe el metodo updateDisplayList. &#13;&#13;Ejemplo: CUSTOM SKIN 1."
 />
 <s:Group width="100%" height="100%">
  <s:layout>
   <s:TileLayout/>
  </s:layout>
  <s:Button label="Lib Basic Skin" click="basicSkinClickHandler(event)"/>
  <s:Button label="Lib Ubuntu Skin" click="ubuntuSkinClickHandler(event)"/>
  <s:Button label="Custom Skin 1" click="customSkinClickHandler(event)"/>
  <s:Button label="Custom Skin 2" click="custom2SkinClickHandler(event)"/>
 </s:Group>
 
</s:Group>

Para crear un Growler Básico, se crea una instancia y se puede mostrar con el metodo dispatch().

El método dispach solo se usa cuando estamos seguros que el growler esta listo para mostrarse, en mejores palabras una ves que se le coloca el Width y el Height y se le setea los parámetros bien sea propio o personalizados.

Flex Growler Lib

Flex Growler Lib

Flex Growler Lib, es una librería para flex para crear popups tipo gtalk, messenger, o cualquier tipo de alerta de sistema o notificación de cualquier tipo. Actualmente solo sirve en AIR, pronto le colocaremos la capacidad que salgan en aplicaciones con flash player, para lograr los mismos resultados dentro de un browser.

La librería es totalmente open source y se puede descargar en el siguiente link http://gitorious.org/develop-your-dream/growler-flex-lib

Tambien les dejo el link a la libreria para que se la descarguen:


Aqui esta una imagen de como se ven los growlers.

Ejemplo:




lunes, 18 de octubre de 2010

Flex Pivotal Tracker Lib - Documentacion

La documentación de la librería se hará mientras se desarrollan las clases, esto quiere decir que a medida que salgan funciones dentro de las clases se colocara la explicación de la misma, los parámetros a usar, y que retorna cada función.
A todos los métodos de las clases se les pasan tres funciones fijas donde solo 1 de ellas es obligatorio pasarla, las otras 2 no si no se quiere manejar las mismas, estas funciones son:
  • Result Function (Obligatoria): esta función devuelve la petición de la librería, en otras palabras si pedimos un ActivityFeed.(cualquier tipo de método) esto enviara un ActivityFeedEvent. 
  • Error Function: siempre llamara a una función de tipo ErrorEvent y dentro de ella contendrá un ErrorVO con el detalle del error generado.
  • Security Function: siempre llamara a una función de tipo SecurityEvent y dentro de ella contendrá un SecurityVO con el detalle de segur generado.


Retrieive User Token

getUserToken
Esta librería se comunica por SSL, es una autenticación básica, se crea un hash del usuario y su contraseña y se envía.
RetrieveUserToken.getUserToken("NOMBRE DEL USUARIO","CONTRASEÑA",resultFunction,errorFunction,securityFunction);
Llamara a la función resultFunction(event:RetrieveUserTokenEvent), dentro de event encontraremos UserTokenVO con toda la información de la consulta.

Activity Feed
Le permite recuperar la actividad reciente de todos sus proyectos.
En esta clase tenemos un parámetro similar en todas las funciones:
  • Limit: este parámetro por defecto es 10 y tiene un techo de 100 registros.
Tenemos otros dos parámetros mas:
  • Since: se puede pasar de tipo String o de  tipo Date, este permite restringir a solo aquellos elementos que se produjeron después de una fecha suministrada, ejemplo del formato 2009/12/18 21:00:00 UTC.
  • Version: es de tipo INT, este permite restringir a solo aquellos elementos que tienen una versión mayor a la suministrada.
Existe un parametro mas pero son solo para los metodos que empiezan con project:
  • Project ID: es de tipo INT, y permite buscar las actividades de un proyecto la combinación de los tres parámetros mencionados anteriormente.

allActivity_OccurredSinceDate
ActivityFeed.allActivity_OccurredSinceDate("TOKEN",resultFunction,new Date("2009","10","16"),LIMIT,faultFunction,securityFuncion);
Llamara a la función resultFunction(event:ActivityFeedEvent), dentro de event encontraremos ActivitiesVO con toda la información de la consulta.

allActivity_NewerThanVersion
Esta función recibe como parámetro  la versión de la actividad y devuelve todas las versiones que sea mayor a la ingresada de todos los proyectos, siempre tomen en cuenta que el limite máximo llega hasta 100 actividades.
ActivityFeed.allActivity_NewerThanVersion("TOKEN",resultFunction,VERSION,LIMIT,faultFunction,securityFuncion); 
Llamara a la función resultFunction(event:ActivityFeedEvent), dentro de event encontraremos ActivitiesVO con toda la información de la consulta.

allActivity_OccurredSinceDate_And_NewerThanVersion
Esta función recibe como parámetro  la versión de la actividad y la fecha y devuelve todas las versiones que sea mayor a la ingresada y que sea en las fechas superior a la suministrada para todos los proyectos, siempre tomen en cuenta que el limite máximo llega hasta 100 actividades.
ActivityFeed.allActivity_OccurredSinceDate_And_NewerThanVersion("TOKEN",resultFunction,VERSION,LIMIT,faultFunction,securityFuncion); 
Llamara a la función resultFunction(event:ActivityFeedEvent), dentro de event encontraremos ActivitiesVO con toda la información de la consulta.

projectActivity_OccurredSinceDate
Esta función recibe como parámetro el id del proyecto y  la fecha, devuelve todas las actividades de dicho proyecto y sea en las fechas superior a la suministrada, siempre tomen en cuenta que el limite máximo llega hasta 100 actividades.
ActivityFeed.projectActivity_OccurredSinceDate("TOKEN",PROJECT ID,resultFunction,new Date("2009","10","16"),LIMIT,faultFunction,securityFuncion); 
Llamara a la función resultFunction(event:ActivityFeedEvent), dentro de event encontraremos ActivitiesVO con toda la información de la consulta.

projectActivity_NewerThanVersion
Esta función recibe como parámetro el id del proyecto y  la version, devuelve todas las actividades de dicho proyecto y superior a la version suministrada, siempre tomen en cuenta que el limite máximo llega hasta 100 actividades.
ActivityFeed.projectActivity_NewerThanVersion("TOKEN",PROJECT ID,resultFunction,VERSION,LIMIT,faultFunction,securityFuncion); 
Llamara a la función resultFunction(event:ActivityFeedEvent), dentro de event encontraremos ActivitiesVO con toda la información de la consulta.

projectActivity_OccurredSinceDate_And_NewerThanVersion
Esta función recibe como parámetro el id del proyecto, la fecha y  la version, devuelve todas las actividades de dicho proyecto y superior a la version suministrada y a su ves superior a la fecha suministrada, siempre tomen en cuenta que el limite máximo llega hasta 100 actividades.
ActivityFeed.projectActivity_OccurredSinceDate_And_NewerThanVersion("TOKEN",PROJECT ID,resultFunction,VERSION,new Date("2009","10","16"),LIMIT,faultFunction,securityFuncion); 
Llamara a la función resultFunction(event:ActivityFeedEvent), dentro de event encontraremos ActivitiesVO con toda la información de la consulta.

Get Projects

allMyProjects
Esta función devuelve todos los proyectos a los cuales esta asociado el usuario de este token.
GetProjects.allMyProjects("TOKEN",resultFunction,faultFunction,securityFuncion,data); 
Llamara a la función resultFunction(event:GetProjectsEvent), dentro de event encontraremos ProjectsVO con toda la información de la consulta.

getSingleProject
Esta función devuelve el detalle de un proyecto, este proyecto debe estar asociado al miembro del token que lo esta pidiendo, de lo contrario la respuesta vendría vacía. .
GetProjects.getSingleProject("TOKEN",PROJECT ID,resultFunction,faultFunction,securityFuncion,data); 
Llamara a la función resultFunction(event:GetProjectsEvent), dentro de event encontraremos ProjectVO con toda la información de la consulta.

lunes, 11 de octubre de 2010

Flex Pivotal Tracker Lib

Flex Pivotal Tracker Lib, es una librería para flex para comunicarse con el API de Pivotal Tracker, esta librería podrá hacer lo mismo que ofrece la librería de Pivotal Tracker Version 3, esta librería la podrán consultar en http://www.pivotaltracker.com/help/api?version=v3, usan CURL como medio de comunicación para enviarnos un XML.

La librería para Flex convierte los XML ofrecidos por Pivotal Tracker y los converte en Value Objects "VO" y de igual forma se podrá acceder al XML para los amantes del lenguaje.
La librería es totalmente open source y se puede descargar en el siguiente link http://gitorious.org/develop-your-dream/flex-pivotaltracker-lib