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?

viernes, 7 de marzo de 2008

Hoy no tengo ganas de leer, me lees esto por favor?

Siempre me vi atraído por las maquinas que hablan.
Recuerdo de chico mirar alguna película en la cual una computadora le hablaba al usuario y pensar como era eso posible.


Hace tiempo que conozco de distintos softwares que dado un texto son capaces de leerlos.
Hace un par de meses un amigo que no es del área del software vino con un proyecto medio volado que no puedo revelar por el momento y me pidió si podía investigar sobre algo que dado un texto lo transforme en voz.
Fue así que empecé a bajar y probar varios programas que hacen ese tipo de cosas y de todos lo que probé el que me pareció mejor fue SodelsCot.
Además de permitir dado un texto que lo lea, permite grabarlo a un archivo e incluso permite con solo apretar el botón derecho que lea un texto desde cualquier aplicación, por ejemplo desde el browser para que nos cuente lo que dice una pagina web en lugar de leerlo nosotros si estamos medios vagos ese dia.

A modo de ejemplo acá les dejo un archivo que grabe de mi post GeneXus for dummies.

Vale aclarar que la voz de esta grabacion esta como la de un robot digamos porque use el programa de evaluación para generarlo, pero en otras versiones del programa se puede usar una voz normal como la de un ser humano y verdaderamente no te das cuenta que esta generada por una maquina.

http://cronus.zshare.net/download/8d09dedf27c5d826eb59734cf762985a/1204920561/8613436/genexus.mp3

miércoles, 5 de marzo de 2008

Desmitificando – “El generador Java es difícil”

No es anormal encontrarse con usuarios GeneXus que le tienen “miedo” al generador Java.
Se cuentan historias terribles de usuarios que intentaron configurar y hacer funcionar un modelo Java web en la versión 9.0 de GeneXus y terminaron internados en el manicomio más cercano a su oficina.
Estas historias si bien nunca pudieron ser demostradas tienen su justificativo… Para lograr hacer funcionar un modelo Java web había que seguir los siguientes pasos:
  • Configurar el camino al compilador Java
  • Configurar el camino al interprete Java
  • Configurar el camino al Make que seguramente uno no tenia instalado en su maquina por lo cual debía instalarlo previamente.
  • Configurar el web application base URL.
  • Agregar al classpath el driver JDBC
  • Crear y configurar una web application en el servidor de servlets de su preferencia.
  • Configurar las propiedades del modelo ‘servlet directory’, ‘static content base URL’, ‘static content directory seen from client’, teniendo en cuenta la web application previamente creada.
  • Copiar gxclassr.zip y los archivos correspondiente al driver JDBC al dir lib de la web application previamente creada

Si alguna vez pasó por estos pasos y no es uno de los que fue internado seguramente sabe de lo que estoy hablando, si no tiene idea de lo que le estoy hablando seguramente la lista anterior le pareció lo suficientemente complicada o al menos extensa como para no intentarlo.

A pesar de fuertes presiones de parte de profesionales que obtenían grandes partes de sus ingresos dedicándose a configurar modelos Java a usuarios que no querían pasar por esa tortura; en la versión Rocha el configurar un modelo Java web es parte del pasado.

Veamos paso a paso como se fueron solucionados los distintos pasos de la configuración.

  • Configurar el camino al compilador Java
  • Configurar el camino al interprete Java
    Fácil, GeneXus se fija en el registry de Windows cual es el JDK de Sun mas nuevo que esta instalado en la maquina y se toma de ahí el compilador y el interprete.


  • Configurar el camino al Make que seguramente uno no tenia instalado en su maquina por lo cual debía instalarlo previamente.
    Se empezó a usar un modelo de Make propio implementado por el archivo GXJMake.exe que viene con el generador, por lo cual ya no se tiene que configurar.


  • Agregar al classpath el driver JDBC
    Se empezaron a distribuir con el generador drivers JDBC para los DBMSs que lo permiten. Los mismos están en el directorio drivers que esta bajo el directorio del generador. Todos los archivos que se encuentran ahí se agregan en forma automática al classpath, por lo tanto si el driver JDBC de su agrado no esta en esa lista, solo tiene que copiarlo ahí y se agregará en forma automática al classpath.


  • Crear y configurar una web application en el servidor de servlets de su preferencia.
    Si el usuario tiene instalado en su maquina un tomcat 5.5 o superior toda esta configuración se hace en forma automática por parte de GeneXus, creando una web application con el nombre del modelo.


  • Configurar el web application base URL.
  • Configurar las propiedades del modelo ‘servlet directory’, ‘static content base URL’, ‘static content directory seen from client’, teniendo en cuenta la web application previamente creada.
  • Copiar gxclassr.zip y los archivos correspondiente al driver JDBC al dir lib de la web application previamente creada
    Si se cumplió con el punto anterior de tener un tomcat 5.5 o superior todas estas configuraciones se hacen en forma automática teniendo en cuenta la web application creada por GeneXus previamente.

Resumiendo, en la versión Rocha de GeneXus si usted tiene un JDK de SUN instalado y un tomcat 5.5 o superior no tiene que configurar ninguna propiedad del modelo para poder prototipar usando el generador Java.

miércoles, 27 de febrero de 2008

La crisis de Motorola

Si bien hace más de un año que se viene comentando sobre la crisis de la división de telefonía móvil de Motorola, yo personalmente me desayuné del tema hace poco.

Mi primera reacción fue la de incredulidad y luego me tiré a buscar en la red a ver si por algún lado se explicaba como podía ser que una empresa que supo estar en una posición tan cómoda del mercado ahora estuviera en problemas.

De todo lo que leí este artículo fue el que me pareció el más esclarecedor.
Si bien es un artículo bastante largo recomiendo su lectura a los que como yo esté interesado en ver como se fue dando la evolución de la actual crisis de la división de telefonía móvil de Motorola y cual podría ser su futuro.

http://www.mobile-review.com/articles/2008/motorola-strategy-fin-en.shtml

miércoles, 16 de enero de 2008

Día de compras… Sun compra MYSQL y Oracle compra BEA.

En el día de hoy se anunciaron dos compras… una mas esperada, la de BEA por parte de Oracle (8.5 billones de dólares), la otra mas inesperada (al menos por mi parte), la de MYSQL por parte de SUN (1 billón de dólares).

Oracle compra BEA
Sin querer ponerme en contra a nadie creo que el servidor de aplicaciones WebLogic de BEA es de los mejores del mercado y creo que el que tiene mas usuarios. Con la compra de BEA por parte de Oracle que pasará con WebLogic?... o mejor dicho que pasará con Oracle Application Server (competidor directo de WebLogic)?
Yo no creo que Oracle se quede con dos servidores de aplicaciones, pero con cual debería de quedarse?... Sin dudas una decisión complicada, si tuviera que apostar diría que de a poco irán matando al Oracle AS y le darán para adelante a WebLogic… El tiempo lo dirá.

Sun compra MYSQL.
Esta si que por ahora mucho no la entiendo… pero como no se nada de negocios no me extraña ;)
Pero si veo claras algunas cosas luego de este movimiento de Sun.
Creo que MYSQL sale fortalecido de esta venta, porque con el soporte de Sun atrás MYSQL será más considerado en ambientes empresariales.
A la vez con esto (de nuevo no me quiero poner en contra a nadie, así que fanáticos de PostgreSQL no me maten) creo que se le dio finalmente el golpe de gracia a PostgreSQL.
Además es de suponer que ahora Java estará mas pegado a MYSQL… que les parece un LAMJ en lugar de LAMP?... mmmm… creo que suena mas lindo LAMP ;)
Sun mas y mas se esta posicionando como una empresa de software que tiene el open source como bandera principal.

En definitiva, creo que es muy pronto para poder avizorar algo de estos movimientos pero seguro que van a traer cola.

miércoles, 2 de enero de 2008

El estado y su política informática.

En mis años de trabajo me ha tocado trabajar de una forma u otra en varias de las dependencias del estado, Ancap, Antel, Brou y BPS fueron algunas de ellas.Desde el comienzo siempre me chocó que no existiera una plataforma única de desarrollo. Cada dependencia desarrollaba sus sistemas usando distintas plataformas de desarrollo e incluso distintos motores de base de datos. Cada una ante un nuevo desarrollo hacia sus propias licitaciones y cada una seguramente tenia que estudiar por separado las distintas opciones presentadas que seguramente en mas de un caso serian las mismas. El conocimiento adquirido no era compartido entre ellas de ninguna forma. Las distintas dependencias del estado parecían trabajar por separado sin tener en cuenta que todas son parte de la misma “empresa” (el estado).

Siempre me pregunté porque no existía algo así como una agencia de informática del estado que brindara los lineamientos básicos que deberían cumplir los desarrollos a realizar en todas las dependencias del estado o por que no que se encargue de desarrollar todos y cada uno de los sistemas de cada una de las dependencias.
Lo veo como que dentro de una empresa en lugar de tener una única oficina de informática, cada área de la empresa (contaduría, recursos humanos, marketing, etc) tenga su propia área de informática y que cada una de esas áreas de informática tomen decisiones sobre las herramientas e interface grafica a usar para sus sistemas en forma independiente y que además no compartan el conocimiento entre ellos... un caos.

Estoy convencido que existiendo algo así como una única agencia de informática del estado haría que las cosas en cuanto a tecnología sean mucho mas eficiente, haría ahorrar mucho dinero al estado y por fin existiría una única política informática estatal. También estoy convencido que implementar algo así en el estado actual de las dependencias del estado es algo utópico, pero en este momento en el cual se esta hablando mucho en cuanto a reestructura del estado, por ejemplo en los impuestos y la salud, me pareció un momento propicio para escribir algo del asunto.
Además justamente hoy con el amigo Carriquiry en una reunión sobre otro tema el diálogo derivó hacia el tema de los sistemas del estado y cuando le exprese mi idea de una agencia única de informática me la critico un poco así que aprovecho a postearla acá a ver que opinan los lectores de este blog :)