Webcam picture control

Marcos Canán | Genexus User Controls, Webcam picture | 26/10/2009

webcam
Leonardo Murcia de Costa Rica tiene una aplicación web desarrollada en GX X Ev1 y necesitaba un control que le permitiera capturar una imagen desde una webcam en el cliente y luego almacenarla en la BD como Blob.
La idea era utilizar el control para obtener fotografias remotas de documentos.
Usando flex y la nueva funcion de Genexus FromBase64String obtuvimos el control WebCam Picture.

Dejo para bajar:
- Versión de prueba del control.
- Documentación.
- KB ejemplo.

Gantt control

Marcos Canán | Gantt, Genexus, Genexus User Controls | 21/06/2009

Hace unos años hacer aplicaciones web con cierta complejidad gráfica era impensable, la tencnología existente no lo permitía o hacerlo resultaba muy costoso. Hoy en día esto a cambiado.

Hace un mes me contactó Marcelo Moya de Almagro Chile, necesitaba para su aplicación web GX X un control que le permitiera representar diagramas de Gantt. Establecimos las funcionalidades que debía tener el control y me paso a modo de ejemplo de lo que necesitaba esta imagen (click para agrandar):

gantt-controlEn un par de semanas, como resultado obtuvimos el siguiente user control:

requerimientoGantt

El control es fácil de usar y configurable (columnas, colores, tamaño). Para los que les interese dejo para bajar:

Advanced data grid

Marcos Canán | Advanced Data Grid, Genexus, Genexus User Controls | 23/07/2008

La empresa Zetasoftware necesitaba para uno de sus sistemas desarrollado en Genexus X un grid web que permitiera presentar filas de manera jerarquizada. Analizando las posibilidades optamos por implementar un user control usando Adobe Flex 3. El siguiente es un ejemplo del “look and feel” del control:

Acá dejo para bajar una versión de prueba, documentación y un xpz de ejemplo.

Google map control

Marcos Canán | Genexus, Genexus User Controls | 13/05/2008

Mapa

Hace unos meses me contactó Rogelio Arosemena de Inalambrik para desarrollar un user control que le permitiera usar los servicios de Google Maps desde Genexus. Había visto el Map Control pero necesitaba funcionalidades mas específicas.

Acordamos la metodología de trabajo y en pocas semanas ya teníamos el user control funcional. Quedamos ambos muy conformes con el resultado obtenido y nos demostró que la distancia (Ecuador-Uruguay) no impide que se pueda trabajar de manera fluida.

El Google Map Control soporta:

  • Markers (con eventos click, drag)
  • Polilíneas
  • Polígonos
  • KML
  • LocalSearch

UPDATE: Si alguien quiere más información o le interesa usar el control contactarse conmigo.

Herramientas Javascript

Marcos Canán | Genexus, Genexus User Controls | 19/11/2007

Herramientas

A la hora de desarrollar user controls son muy útiles (diría necesarias) algunas herramientas que faciliten el desarrollo javascript. Yo he utilizado las siguientes extensiones para Firefox e IE:

Firefox

  • Firebug
    • Permite debugear javascript
    • Permite modificar HTML y CSS y ver los resultados instantaneamente en el browser.
    • Muestra información clara de los errores javascript (archivo, numero de línea, stack trace, valores de los parámetros y variables, etc…)
  • Web Developer
    • Permite ver el código HTML generado.
    • Permite deshabilitar la cache.
  • Cache Status
    • Permite eliminar el contenido de la cache de manera rápida.

IE

Todas estas extensiones tienen más funcionalidades. Detallo solamente las que más he usado.

Early adopter de User Controls

Marcos Canán | Evento, Genexus, Genexus User Controls | 01/10/2007

Early Adopter User Controls

Muchas gracias.

Gran parte del mérito es de Rodrigo que me vendió en su charla ;)

Genexus Tag Cloud Control v2

Marcos Canán | Genexus, Genexus User Controls, Tag Cloud | 06/08/2007

Nueva versión del Tag Cloud Control aquí.

Changelog:

- Render de diseño
- Se crean las variables y se asocia la variable de databinding con “Actions”.
- Se agregó una propiedad para elegir el tipo de distribución (lineal, logarítmica) para el tamaño de las fuentes.

Distribución del tamaño de las fuentes

Un tag cloud es una especie de histograma con la diferencia que permite representar información de manera mucho mas densa. Lo equivalente a una barra sería un tag y lo equivalente al tamaño de la barra es el tamaño de la fuente.

Hay veces que por la naturaleza de los datos y por la alta densidad de información si se hace una distribución lineal del tamaño de la fuente se pierde la capacidad de identificar a golpe de vista que tag es mas relevante que otro (se agrupan muchos tags en la misma categoría). Por ejemplo usando 8 diferentes tamaños de fuentes y con el siguiente juego de datos:

Juego de datos

Haciendo una distribución lineal del tamaño de las fuentes el resultado es el siguiente:

Ejemplo Distribución lineal

Sin embargo, si utilizamos una distribución logarítmica obtenemos:

Ejemplo Distribución logaritmica

Con la distribución logarítmica se pierde un poco el “cuánto” mas relevante es un tag pero para algunos casos es útil para representar mejor el “cuál” es mas relevante.

En esta versión se le agregó al control una propiedad para poder elegir el tipo de distribución.

Propiedad distribution

Genexus Tag Cloud Control

Marcos Canán | Genexus, Genexus User Controls, Tag Cloud | 31/07/2007

Experimentando con los nuevos user controls de Genexus Rocha me surgió la idea de hacer un control Tag Cloud. Una primera versión (beta o CTP1 ;-) ) está disponible para bajar acá.

¿Cómo lo uso?

Instalación

- Crear la carpeta TagCloud bajo la carpeta de User Controls. Ej.:

user-controls-carpeta

- Copiar el contenido del archivo TagCloud.zip a la carpeta creada.

Uso

- Arrastro el control a un web panel.
- Creo una variable del tipo TagCloud y otra del tipo TagCloudItem.

variables-tagcloud-control-genexus

- Asocio a la propiedad “Data” del control la variable de tipo TagCloud.

tagcloud properties

 

- Cargo los tags. Ej.:

carga tags tagcloud

Resultado

tagcloud.GIF

¿Qué arreglos tiene pendiente?

- Que no sea necesario ni crear las variables ni asociar la variable databinding, que esto se haga solo al insertar el control.
- Hacer que la cantidad de diferentes tamaños de tags sean una propiedad del control, actualmente son 10 y son fijos.
- Poder asociar una clase de un theme al control.
- Hacerle un render de diseño.
- Etc…

Gestionado con WordPress