viernes 10 de julio de 2009

Tipos de datos de atributos en DBMSs

Muchas veces los usuarios GeneXus se preguntan de que tipo se va a crear en el DBMS un atributo que en GeneXus lo creo de determinado tipo y tamaño
A continuación se presenta una tabla que indica el mapeo para cada tipo de datos en cada DBMS.

Nota: No encontré una forma razonable de que se viera bien la tabla escribiéndola desde el editor del blog. Así que escribí un documento en google docs e intente publicarlo en el blog, pero tampoco me dejo.
Así que la única que me quedó es poner aquí el link al google doc con la tabla:

viernes 12 de septiembre de 2008

Un paseo por las nubes

En el contexto del XVIII Encuentro Internacional GeneXus seguramente una de las mejores conferencias del mismo va a ser la que se va a dictar el Martes 23 a las 11:45 en el Conference Room.

La misma tiene com titulo "En las nubes" y el orador es el reconocido conferencista Ignacio Roqueta.

Aqui hay un link al abstract de la conferencia: http://www.genexus.com/portal/hgxpp001.aspx?2,55,950,O,S,0,,1472

Ta ya se... queda feo que uno haga propaganda de su propia charla; pero "compito" con charlas muy interesantes y no me gustaria estar poco acompañado en la sala :(

Si usted asiste a la conferencia y indica que se eneteró de la misma por medio de este blog se le va a permitir hacer alguna pregunta al final de la misma y por si eso fuera poco se les va a reservar un lugar en primera fila, cosa no menor porque seguramente vaya a quedar gente afuera :)

martes 2 de septiembre de 2008

Jugando a ser DJ

Siempre me gustó la música y desde muy temprana edad jugaba a ser DJ.
Recuerdo en mis tiempos de bailes de la escuela pasar gran parte del tiempo junto al “doble casetero” escuchando radio con los dedos prontos sobre el REC para poder “atrapar” esos temas que estaban de moda, para poder pasarlos en el baile del fin de semana y tener la mejor “ensalada” del grupo.

Más tarde la cosa se torno un poco más masiva y organizábamos junto con los amigos de la cuadra bailes en la calle para las fiestas de fin de año.
Era algo que era bastante habitual en aquella época los 25 de Diciembre y 1 de Enero. Ahora ya no se suele hacer, sobre todos por temas de seguridad.
Recuerdo que alquilábamos luces, bolas de espejos, parlantes y amplificadores; nos poníamos en la azotea de la casa de unos de mis amigos y ahí pasábamos música toda la noche.
Todo eso fue muy lindo hasta que un día quemamos un amplificador y el padre de uno de mis amigos que salía de garantía en la casa de alquiler de equipos nos cortó los víveres.

Bueno, a que viene todo esto?Hoy estaba buscando aplicaciones exitosas hechas con flex y encontré lo que seria mi sueño de aquella época. Se encuentra en http://www.finetune.com y básicamente es un lugar en el cual uno puede armar sus propias playlists con temas que ellos mismos brindan y luego compartirlas con quien uno quiera.

Quedé “exitado” y enseguida me puse a armar mi primera playlist que como algunos habrán visto esta disponible en este blog.
Los invito a escucharla y a armar su propia playlist….

Seguramente van a venir por mi parte nuevas listas asi que toda critica a esta lista es bienvenida…

Los saluda atentamente DJ Roque ;)

miércoles 16 de julio de 2008

Ajedrez vs Go

Si usted es lector asiduo de este blog sabrá por algún post anterior que soy gran fanático de ajedrez.
Hace algún tiempo atrás un compañero de trabajo al enterarse que me gustaba el ajedrez me pregunto si también me gustaba el “go”. La verdad que ni lo conocía y nunca lo había escuchado nombrar. Después de que me tirara dos o tres tips de por donde empezar a leer y aprender del juego empecé a jugar algunas partidas por internet y a intentar mejorar mi juego por medio de un programa llamado igowin.

Al comienzo me sentí bastante atraído por el “nuevo juego” y le dedicaba mas tiempo que el que mi mujer hubiese querido en mis ratos libres. Vale la pena acotar que mientras tanto nunca deje de lado a mi querido ajedrez, siempre seguí jugando mis partidas por correspondencia en internet. Luego con el paso del tiempo fui dejando de lado al go, juego alguna partida en forma esporádica.

Hoy en la mañana tuve una “pequeña discusión” con aquel compañero de trabajo que me inicio en el juego del go. Él planteó que el go era mejor juego que el ajedrez. Yo actuando más como un hincha de futbol enseguida retruque que eso era un disparate, sin mayores argumentos dije que el ajedrez era mejor que el go.

Luego de pensar un rato y ya mas calmado me puse a analizar que quiere decir que un juego sea mejor que otro. Parece ser algo bastante personal, creo que el mejor juego para uno es el que mas le divierte siendo ese uno de los principales objetivos de un juego. Cuando un juego ya no divierte deja de cumplir uno de sus cometidos.

En ese contexto para mi el ajedrez es mejor juego que el go, pero veamos un poco algunas diferencias y similitudes del go y el ajedrez que pueden también a llegar a servir para determinar de otra forma diferente cual puede ser mejor juego.
  • Edad recomendada para jugar
    Ambos esta recomendado para jugadores de 3 años o mas

  • Cantidad de jugadores
    En ambos juegan dos jugadores

  • Reglas
    El ajedrez tiene reglas de juego más complejas.
    En el go las reglas son pocas y simples.

  • Tamaño del tablero
    En el ajedrez es de 8x8
    En el go es 19x 19

  • Uso del cerebro
    En el go se dice que se usa tanto la parte izquierda como derecha del cerebro
    En el ajedrez solo la izquierda

  • Cantidad de piezas
    1 reina, 1 rey, dos torres, dos caballos, dos alfiles y 8 peones de cada lado cada uno con diferente tipo de movimiento en el ajedrez
    Un numero ilimitado de piedras que se colocan en una posición del tablero y no se mueven para cada jugador

  • Programas de computación
    Un buen programa de computadora puede tener el nivel de un gran maestro de ajedrez, incluso deep blue de IBM logró vencer al campeón mundial
    El mejor programa de go existente en el momento solo puede tener un nivel intermedio. Existe incluso un premio de millones de dólares al que logre realizar un programa que pueda vencer a un jugador profesional de go.

  • Objetivo del juego
    El objetivo del ajedrez es encerrar al rey contrario. Para eso seguramente haya que destruir gran parte del ejercito enemigo
    En el go el objetivo es dominar más territorio que el rival. Se dice que en contrapartida del ajedrez la idea es construir en lugar de destruir.

Estas son solo algunas de las similitudes y diferencias. Seguramente los partidarios de cada uno de los juegos podrían basarse en algunas de esas diferencias para justificar que un juego es mejor que otro.
Yo prefiero quedarme con una justificación más simple… A mi me divierte mas el ajedrez ;)

lunes 23 de junio de 2008

¿Que hará Bill Gates el próximo Lunes?

Como se anunciara hace más o menos 2 años el proximo viernes será el último día de trabajo a tiempo completo por parte Bill Gates en Microsoft.
A partir de ese dia será director no ejecutivo y según dicen estará un solo día a la semana por la oficina.

¿Producirá esto algún cambio en la estrategia de Microsoft?
No lo creo… ya hace tiempo que las principales decisiones (muchas de ellas erróneas:)) pasan por Steve Ballmer.
Lo que si creo es que va a ser difícil no pensar en Bill Gates cuando se hable de Microsoft o no pensar en Microsoft cuando se hable de Bill Gates.

Personalmente opino que no es un buen momento para el retiro teniendo en cuenta el mal momento que esta pasando Microsoft sobre todo luego de la no del todo buena liberación de Windows Vista.

Seguramente muchos me van a criticar por lo siguiente, pero se estará de acuerdo con como Bill Gates hizo las cosas o no, pero sin lugar a dudas que hay que reconocer que es un eslabón fundamental en como cambio el mundo en términos tecnológicos y es uno de los grandes genios de nuestro tiempo.

Para terminar me parece interesante recordar el video que se mostró en su ultimo keynote por Enero de este año, en el cual se lo ve junto con grandes personalidades buscando un que hacer en su nuevo tiempo libre

jueves 27 de marzo de 2008

Mis cinco

En el post anterior sobre los objetos externos escribía que me intrigaba saber cuales serian las cinco features preferidas de cada una de los usuarios de GeneXus Rocha.
En este post intento trasmitir cuales a mi gusto son mis cinco preferidas.
Como indiqué anteriormente no creo que se repitan entre dos usuarios una lista igual, ya que la cantidad de features de la Rocha son varias y para todos lo gustos.
Aquí van entonces mis cinco preferidas en un orden totalmente sin importancia ya que considero a las cinco en la misma escala de preferencia.

  1. IDE en general y en particular el poder trabajar con él mismo mientras se esta generando o especificando.
    El IDE de GeneXus Rocha fue totalmente reescrito y no tiene nada que envidiarles a los principales IDEs del mercado. Cada cual lo puede ajustar a su gusto y si bien para alguien que viene de versiones anteriores al principio le puede resultar algo trabajoso acostumbrarse a su uso luego de usarlo por unas horas ya se va a sentir muy a gusto y no va a querer volver al IDE de la versión anterior.
    Destaco como una de las tantas cosas que brinda el nuevo IDE el poder seguir trabajando en la KB mientras se esta generando o especificando.

    http://wiki.gxtechnical.com/commwiki/servlet/hwiki?category%3AGeneXus+Rocha%2FIDE,


  2. User controls
    Esta la considero una feature fundamental a la hora de desarrollar aplicaciones con un look & feel acorde a las aplicaciones que “están de moda” hoy en día.
    Si bien esto se podía lograr en versiones anteriores de GeneXus era muy trabajoso hacerlo y el código quedaba bastante complicado. Hoy en día con la Rocha por medio de los user controls es algo muy fácil de integrar a la aplicación.

    http://wiki.gxtechnical.com/commwiki/servlet/hwiki?category%3AUser+Controls,


  3. Cambios en la reorganización
    Quienes alguna vez tuvieron que lidiar con algún DBA que quiere hacer “bien” su trabajo seguramente estarán de para bienes con todos los cambios que se hicieron a nivel de las reorganizaciones.
    Minimizar el uso de tablas temporales, conocer las sentencias que se van a ejecutar, poder correr script pre y post reorganización, corrida en paralelo y prechequeos son solo algunas de las ventajas que brindan en esta nueva versión las reorganizaciones.

    http://wiki.gxtechnical.com/commwiki/servlet/hwiki?category%3AReorganization,


  4. Data Selectors
    La belleza de lo simple. Parece no ser una de esas grandes features pero para mi gusto es fundamental. Permite reutilizar navegaciones y hacer que un cambio en los requerimientos sea mucho más fácil de manejar. Puede que hasta que no se use no se sienta su verdadero poder (parece un aviso publicitario de un nuevo auto), por lo cual recomiendo de sobre manera que los prueben.

    http://wiki.gxtechnical.com/commwiki/servlet/hwiki?category%3AData+Selectors,


  5. Objetos externos.
    En esta feature no me voy a extender mucho porque ya tiene su propio post ;)
    http://iroqueta.blogspot.com/2008/03/external-object-varias-funcionalidades.html

    http://wiki.gxtechnical.com/commwiki/servlet/hwiki?category%3AExternal+Object,


Para finalizar de nuevo lo del comienzo, si tendrá features interesantes la versión Rocha que deje afuera de mi lista cosas como: Extensions, Data Providers, Wiki, Patterns, Ajax, y un gran etc.


Me gustaría que los lectores de este blog incluyeran en los comentarios cuales a su gusto son las cinco features preferidas de la Rocha para comprobar mi teoría de que no se va a repetir dos veces una lista igual.

miércoles 19 de marzo de 2008

External Object – Varias funcionalidades en un solo tipo de objeto

Una cosa que me intriga es saber para cada usuario de GeneXus Rocha cuales son sus 5 funcionalidades preferidas. Seguramente no se repita entre todos los usuarios una misma lista, porque las funcionalidades de la versión Rocha son varias y para todos los gustos. Pero una cosa que si estoy seguro es que en más de una lista el “external object” aparecería.
Todos seguramente en alguna versión anterior de GeneXus se toparon con alguno de los problemas que intentan resolver los “external object”
Por ejemplo:
  • Se que tengos web services en mi KB… se que puedo definir una variable que sea del tipo de algunos de los web services que tengo. Ahora ¿donde están las definiciones de estos web services? ¿Dónde puedo ver que métodos tiene cada uno de ellos y de que URL los estoy usando?
  • Algo similar al punto anterior pasaba con los stored procedures. Para saber que stored procedures tengo los tengo que ver en una lista que se indica en una propiedad. ¿Pero que parámetros y de que tipo tienen esos stored procedures? ¿Cómo le puedo indicar que los parámetros no son todos de inout?
  • Bajé una API que me permite firmar digitalmente un PDF, ¿Cómo tengo que hacer para poder usarlo desde mi modelo Java?... yyyyy podes escribir código Java usando el comando “Java” y luego el código que quieras

En la versión Rocha con los “external object” los problemas anteriores deberían ser parte del pasado. Con los mismos uno puede definir una “interface” que represente o bien un web servcie, un stored procedure, un “native objet” (por ejemplo una clase de Java o .NET) e inclusive se puede definir un Enterprise Java Bean externo para luego poder llamarlo desde GeneXus.


Una vez definido el objeto, se puede invocar al mismo desde cualquier otro objeto definiendo una variable del tipo del external object e invocando a alguno de sus métodos o propiedades.


Adicionalmente se cuenta con inspectores que permiten a partir de un WSDL crear un external object de tipo web service o partir de una clase o paquete externo crear uno o varios objetos externos de tipo “native object”.


Supongamos por ejemplo que se tiene un paquete externo que sirve para obtener información de clientes. Las clases se importan con el importador de clases externas y en GeneXus se crean automaticamente dos external objet con los siguientes métodos y propiedades:



Luego desde otro objeto se puede definir una variable de tipo cliente y una variable de tipo clientes y programar algo así:
Bastante fácil e intuitivo, verdad?