miércoles, febrero 22, 2017

'GeneXus' version 1.2.8.108986 cannot be downloaded

Estuve haciendo pruebas con los módulos de GeneXus y haciendo limpieza borre toda la carpeta Modules_v1.0 que es donde se almacenan todos los módulos de GeneXus mas los que estamos creando. Básicamente ahí están toda la información de la diferentes versiones de los paquetes que vamos creando.

Al hacer esto para poder generar nuevamente mis paquetes me da el siguiente error:

========== Rebuild All started ==========
========== Deploying Module 'GeneXus' started ==========
error: 'GeneXus' version 1.2.8.108986 cannot be downloaded. Is it a built-in module? Try execute "genexus.exe /install" command. Otherwise, you need to update the module version to an accessible one.
Deploying Module 'GeneXus' Success
========== Target Environment update started ==========
Target Environment update Success
Building changed objects list
========== Specification started ==========
Processing subtype groups ...

En un equipo me funciono haciendo el "genexus.exe /install" y en otro equipo tuve que copiar a mano el archivo: GeneXus_1.2.8.108986.opc que se encuentra en la carpeta de instalación de GeneXus ("C:\GeneXus\GeneXus15\Modules")  a la carpeta: "C:\Users\urulinux_win7\AppData\Roaming\GeneXus\GeneXus\15\Modules_v1.0\GeneXus_4f454e73-7d8f-4a0f-908a-1a355f3634a5\1.2.8.108986\Platforms\JavaWeb\".

Les dejo este pique ya que me enloquecí para solucionar este problema, sin dudas que el equipo en que no funcionaba tendría algún problema con la instalación pero haciendo eso quedo funcionando.

jueves, febrero 09, 2017

Mi Primer error en GeneXus 15

Desde este año estoy con el objetivo de migrar varias KBs a GeneXus 15 dado que estoy convencido que esta versión es muy potente y me brinda herramientas que antes no las tenía. Estoy comenzando con una kb nueva y ya tuve mi primer error a la hora de hacer un "Rebuild All":


***********************************************************************************
======== DeveloperMenu Compilation for Default (Java Web) started ========
callmake.bat "C:\KBS\GeneXus15\PUNC\PUNC\JavaModel\web\GXJMake.exe" "C:\softgxjava\jdk18\bin\javac.exe" developermenu com\punc\ options: -O
GeneXus Java Make v1.0
com\punc\SdtLinkList_LinkItem.java:55: error: cannot access XMLDocumentHandler
      sTagName = oReader.getName() ;
                        ^
  class file for org.apache.xerces.xni.XMLDocumentHandler not found
com\punc\SdtLinkList_LinkItem.java:56: error: cannot access XMLErrorHandler
      if ( oReader.getIsSimple() == 0 )
                  ^
  class file for org.apache.xerces.xni.parser.XMLErrorHandler not found
com\punc\SdtLinkList_LinkItem.java:58: error: cannot access XMLDTDHandler
         GXSoapError = oReader.read() ;
                              ^
  class file for org.apache.xerces.xni.XMLDTDHandler not found
Note: com\punc\GxObjectCollection.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
3 errors

failed ( error code=1)
Build failed.
DeveloperMenu Compilation for Default (Java Web) Failed
Rebuild All Failed
***********************************************************************************
Revisando un poco me di cuenta que me faltaba agregar al Classpath el archivo xercesImpl.jar, me llama la atención que falte dado que por defecto vienen varios archivos en el classpath. En síntesis agregando este archivo al classpath pude ver el mensaje que esperaba "Buils All Success".
Seguramente esto haya sido explicado en algún foro o lo tengan documentado pero lo subo para no olvidarme o si a alguien le pasa lo mismo. Estoy usando Genexus 15 U. 2



miércoles, octubre 05, 2016

Cambiar tamaño de disco (VDI File) en VirtualBox

Desde hace un tiempo en mi notebook tengo Linux como sistema host y utilizo VirtualBox para poder correr windows que es donde tengo GeneXus instalado. Al querer instalar GeneXus 15 me di cuenta que no tenía espacio en el disco del virtual box por lo que me puse a buscar como agrandar el archivo VDI que por suerte fue bastante fácil.

>VBoxManage modifyhd Windows7.vdi --resize 64000

Con ese simple comando quedo mi disco de 64 GB, después de hacer el resize hay que entrar en windows y asignar a la partición el espacio que se crea dado que yo estuve un rato para acordarme que tenía que hacer eso.

En el caso que les de un error "VBOX_E_NOT_SUPPORTED" pueden clonar el archivo vdi y luego hacer el resize.


viernes, septiembre 30, 2016

Dos cosas que me rompieron la cabeza en el GX26.

Por distintos motivos hace unos años que no podía asistir al evento GeneXus y este fue el primer evento al que asistí sin conocer la ultima versión y casi todo lo que pude ver fue un descubrimiento. 
En la actualidad me encuentro investigando Microservicios en aplicaciones GeneXus y como disminuir la deuda técnica de nuestras aplicaciones por lo que estoy medio alejado de las últimas novedades de GeneXus. 
Lo que hice para aprovechar el evento y ponerme rápidamente a tiro fue anotarme a un taller sobre la última versión, en los talleres nos dan resumido las nuevas funcionalidades y se puede hacer una práctica en un equipo por lo que en una hora me puse a tiro de lo nuevo de GeneXus.
Hay dos cosas que me rompieron la cabeza  y me parece son las que le voy a sacar provecho rápidamente, por un lado el “Live Editing” y por otro lado las Transacciones Dinámicas.
Este evento ha sido muy bueno y me dejo satisfecho por lo que recomiendo a todos los que no han asistido ver las charlas on-line para ponerse a tiro y aprovechar al máximo la potencia de GeneXus.


miércoles, septiembre 28, 2016

GeneXus y Microservicios

Desde hace un tiempo estoy manejando la idea de tomar una aplicación desarrollada con GeneXus con una arquitectura monolítica y pasarla a una arquitectura de Microservicios. En la interna de nuestro equipo de desarrollo estuvimos discutiendo el tema y la verdad que con lo que teníamos disponible con GeneXus habían algunas cosas que se nos iban a complicar. Lo bueno es que hoy recibí por intermedio de mi amigo Diego Giusso el link a la charla de Gastón Milano en donde comentaban algunas cosas de Microservicios y que cosas tiene Genexus para el futuro. La charla esta buena y me abre un poco la cabeza para saber que independientemente de pasarme a una arquitectura de Microservicios GeneXus tiene algunas cosas interesantes que me ayudaran a realizar esta tarea. Me queda sentarme a evaluar el cambio y en que impactaría dado que es un cambio mayor para una aplicación muy grande. 

La charla la pueden ver en: GeneXus en el mediano Plazo

viernes, septiembre 23, 2016

Cursos online gratis y sin límites sobre GeneXus

La verdad que hace un tiempo me lleve una grata sorpresa al descubrir que existen cursos gratis sobre Genexus, tengo que admitir que no entraba a la página hace tiempo dado que estoy trabajando con la Ev.3 en cosas que no necesitaban que ampliara mis conocimientos sobre el tema. Hace aproximadamente un mes estoy con un sistema para Smart Devices y la verdad que la última vez que hice algo para SD fue hace mucho tiempo me puse a leer sobre el tema. Buscando en la wiki y siguiendo links veo que hay un sitio de capacitación en donde tengo varios cursos gratis y sin límites como dice el título.
Desde que descubrí esta pagina de cursos me los devore a todos y estoy a full con el desarrollo para Smart Devices, se que esto existe hace tiempo pero yo recién hace poco que me desayune.

La página se encuentra en: http://training.genexus.com/


Lista de deseos para #GAM

En esta oportunidad estoy retomando con mis publicaciones dado que hace tiempo estoy complicado y la verdad estoy desaparecido. Dado un problema que tuve con GAM me acorde de varias publicaciones de Enrique Almeida en donde titulaba "Lista de deseos para ...." por lo que voy a copiar ese título para poner mis principales deseos para GAM.

Antes que nada quiero comentar que hace varios años desarrolle una herramienta para SSO la cual se usa en varios sistema importantes de la empresa para la cual trabajo, dado que por cuestiones de seguridad y de tiempo se complica mantenerla comenzamos a estudiar GAM. Al ser una herramienta usada y recomendada por GeneXus decidimos migrar a utilizar GAM, después de algunos problemas llegamos a darle uso y la verdad que es muy útil y potente que cubre todas nuestras necesidades. En el desarrollo es trasparente y me desentendí del tema hasta que tuve que pasar a producción la primer aplicación real. GAM tiene una herramienta llamada GAM Deploy Tool la cual arma un package que básicamente se exporta y luego se importa en la base de destino, hasta ahí algo sencillo pero me desayune que esta herramienta no se ejecuta sobre Linux por lo que me obliga a hacer varias tareas que resuelve la herramienta de forma manual.

Tengo que aclarar que por cuestiones de seguridad la mayoría de los servidores donde se "deployean" nuestras aplicaciones no se acceden desde afuera y no se llega a la base ni nada por lo que solo se pueden ejecutar herramientas o scripts en el propio servidor por parte de los sysadmin o los encargados de hacer el deploy.

En síntesis tengo dos deseos para GAM:
a) Que el packege que genera la herramienta GAM Deploy Tool tenga alguna opción de generar scripts sql de tal manera que si tengo que mandar el script sea algo mas sencillo que un "package" que solo se puede manejar por el GAM Deploy Tool".
b) Que el GAM Deploy Tool pueda ejecutarse en Linux.

No soy experto en GAM pero consulte a soporte los cuales me indicaron que la herramienta no corre sobre Linux, pero como decía mi abuela el no siempre esta y no cuesta nada desear algo para el futuro.


Documentación sobre la herramienta GAM Deploy Tool:
http://wiki.genexus.com/commwiki/servlet/wiki?18608,GAM%20Deploy%20Tool
http://wiki.genexus.com/commwiki/servlet/wiki?30642,GAM+deploy+tool+command+line,

lunes, agosto 25, 2014

Instalar Chrome en Linux Mint 17

Desde hace unos días tengo la suerte de contar con un notebook nuevo al cual le instale Linux Mint 17 y para poder trabajar con GeneXus tengo VirtualBox con Windows.

La verdad que estoy muy impresionado con el desempeño de Linux Mint y con la facilidad que se instalan las cosas.

Lo primero que tuve que instalar es Chrome ya que lo uso como navegador, para hacer esto encontré una guía paso a paso en: http://www.itworld.com/open-source/423257/install-googles-chrome-browser-linux-mint-17

Resumiendo simplemente tuve que abrir una ventana con terminal y ejecutar los siguientes comandos:

cgomez:~ > wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

cgomez:~ > sudo gdebi google-chrome-stable_current_amd64.deb

En el primer paso se descarga el software y con el segundo se instala, la verdad que fue muy rapido y sencillo poder hacerlo.

martes, noviembre 19, 2013

Ya tengo mi primer SmartPhone con Firefox OS

Desde que me entere que en Uruguay existían móviles con Firefox OS tuve muchas ganas de cambiar mi viejo smartphone con Android por uno nuevo con Firefox OS, en principio quería esperar un poco dado que todavía faltan algunas aplicaciones de uso diario.

El destino me quiere acercar a Firefox OS lo antes posible ya que hace un par de días me robaron el celular por lo que no me quedo otra que apresurar mi cambio a Firefox OS. Lo primero que me hizo decidir es que la empresa movistar brinda un móvil sin costo para los que tenemos contrato por lo que no dude un segundo y fui a retirar mi nuevo ALCATEL "onetouch" con Firefox OS.

El primer contacto que tuve con Firefox OS en mi nuevo smartphone es muy positivo dado que la interfaz es muy amigable y fácil de usar. Las aplicaciones que trae por defecto son las básicas pero están muy bien presentadas. En lo personal no soy un gran crítico de aplicaciones ni conocedor ya que realmente utilizo muy poco las características con las que cuenta un smartphone.

Lo que extraño de mi celular con Android es que Firefox OS todavía no tiene WhatsApp, de todas formas ya están anunciando que a finales de Noviembre de este año existirá una versión de WhatsApp para Firefox OS.


Por el momento mi evaluación es positiva aunque tengo que admitir que si no me robaban mi celular con Android no hubiera cambiado a Firefox OS todavía. De todas formas la empresa Movistar apuesta por las personas que todavía no cuentan con un smartphone y creen que Firefox OS es una buena alternativa en cuanto a costo y prestaciones.

Me quedan las dudas si Firefox OS tendra exito o solo apuesta a ganar la franja de mercado que sus competidores no están atendiendo?? Por ahora el tiempo decidirá el exito de este nuevo SO, espero que tenga éxito ya que de lo contrario en poco tiempo tendré que volver a cambiar mi smartphone.



Descargar Aurora







miércoles, noviembre 13, 2013

Hola Mundo en Firefox OS

Siempre que comienzo a investigar algo lo primero que hago es hacer el típico ejemplo del "Hola Mundo", esta costumbre me quedo de los finales de los 90 cuando comenzaba a meterme en esto de la informática. En esta oportunidad voy a mostrar como mostrar un "Hola Mundo" en FireFox OS. Lo que se hace es un programa muy simple en Html que muestre en el cuerpo de la página "Hola Mundo", para poder desplegarlo en Firefox OS los único que tengo que agregar es un archivo "manifest". Los pasos a seguir son los siguientes:

  • Crear un archivo llamado index.html con el siguiente código:

  •  Crear un archivo llamado manifest.webapp con el siguiente código:
 {
 "name" : "Hola Mundo App",
 "description" : "Hola Mundo",
 "launch_path" : "/index.html"
}
  • Instalar el simulador para Firefox OS:
Para este ejemplo vamos a utilizar el simulador de Firefox OS que se instala como complemento en nuestro navegador Firefox. Para instalar este complemento tengo que acceder al sitio de Firefox: "Firefox OS 1.1 Simulator".


  • Desplegar mi App Hola Mundo en el simulador de Firefox OS:
 Al ejecutar el complemento del Simulador de FireFox OS se me va a desplegar la siguiente página:


Para poder desplegar mi aplicación debo seleccionar el directorio en donde tengo mi página html, esto lo hago mediante el botón:  "Add Directory". Dentro del directorio debo seleccionar el archivo "manifest.webapp" que es el archivo que contiene los datos de mi aplicación.


Después de seleccionar mi aplicación se ejecuta el simulador de Firefox OS. Si todo se hizo de forma correcta deberíamos ver el simulador de Firefox OS como muestra la siguiente imágen:





sábado, noviembre 09, 2013

Firefox OS en Uruguay



Desde hace unos días mediante una publicidad de la empresa Movistar veo que estan anunciando promociones en donde están vendiendo terminales con Firefox OS. En ese momento recordé un artículo que había leído en donde se comentaba que la Fundación Mozilla estaba desarrollando un nuevo sistema operativo para móviles el cual se basaba en HTML5 + CSS + JavaScript, después de leer el artículo pensé que nunca iba a llegar a Uruguay.




Me puse a investigar el motivo de que llegue tan rápido a Uruguay y pude ver que el motivo es que la empresa Telefonica esta apoyando a la fundación mozilla para poder desarrollar Firefox OS. La empresa movistar es parte de Telefonica y por eso es que ya tenemos disponible en Uruguay móviles con Firefox OS. En el próximo articulo voy a comentar más en detalle las características técnicas de Firefox OS ya que puede llegar a ser una buena alternativa a los ya existentes en el mercado de telefonía móvil.

miércoles, febrero 29, 2012

EAR + GeneXus + JBoss

Genexus cuenta con una herramienta que nos facilita el empaquetado de nuestra aplicación llamada "EAR Deployment". La misma nos realiza el empaquetado mediante un wizard ahorrándonos todo el trabajo. Lo bueno que tiene es que no hay que tener conocimientos extra para poder generar un EAR.

Partimos de la base de que ya tenemos por ejemplo un procedimiento que le marcamos la propiedad "Exposed as Enterprise Java Bean" y Call Protocol = Enterprise Java Bean. Esto nos habilita a ejecutar el WinDeveloper y luego seleccionamos la opción "Deployment Wizard" el cual nos muestra las siguientes pantallas.







NOTA: Puede darnos un error a la hora de levantar el JBOSS si tengo la opción "Deploy Message"

Error: "java.lang.ClassCastException: Object at '' in context {java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory,...."

Realmente no tengo claro la causa del error pero si genero el EAR sin la opción "Deploy Message" deja de dar el error y el EJB me queda disponible. Estoy Usando GeneXus 9.0



lunes, febrero 27, 2012

EJB + GeneXus + JBoss 5.1


Desde hace unos días estoy participando en un proyecto en el cual tengo que trabajar contra JBoss, en principio no tenía que hacer nada complicado pero después de varias idas y vueltas me plantearon sacar información del contexto de JBoss mediante EJB al igual que los sistemas existentes.
Analizando un poco el proyecto decidí investigar las opciones que me brinda GeneXus para trabajar con EJBs, en principio estoy solo experimentando ya que seguramente tenga que poner código java a mano pero si lo puedo hacer parcialmente en GeneXus es ganancia ya que siempre que puedo trato de poner Genexus en lugares donde no lo usan.

Estoy trabajando con GeneXus 9.0 sin posibilidad de migrar de versión por lo que tuve que comenzar a configurar el ambiente para experimentar con EJB,   lo primero que me complico fue la configuración del Classpath ya que los jars que se configuraban en versiones anteriores de JBoss  cambiaron de nombre.  Mejor dicho JBoss reorganizo sus archivos de dependencias cambiando el nombre por lo que la versión 4.1, 5.1 y 6.0 tienen nombres diferentes.

En síntesis para compilar un EJB tenemos que agregar al classpath:
JBoss 4X:  jboss-j2ee.jar, javax.servlet.jar
JBoss 5.1: jboss-javaee.jar
JBoss 6X: jboss-ejb-api_3.1_spec.jar, jboss-jms-api_1.1_spec.jar

Esto son los archivos que se refieren a JBOSS, en la documentación de GeneXus se explican los otros archivos que se deben agregar al classpath para trabajar con EJBs.

martes, febrero 21, 2012

Ingeniería inversa en Android

 Todo desarrollador en alguna oportunidad ha tenido la necesidad o la curiosidad de realizar la "Ingeniería Inversa" a un programa para verle las tripas. 

En mi caso lo he realizado alguna vez para investigar el código de algo que me llamaba la atención, en particular lo hice muchas veces con la gxclassr.zip de GeneXus hasta que publicaron el código fuente. 

En la actualidad me encuentro investigando Android por lo que me puse a buscar herramientas que a partir de un ".apk"  me permitieran ver el código fuente. En internet encontré un documento PDF que explica muy claramente como realizar Ingeniería inversa básica en Android, de todas formas hago un resumen para los que no les gusta leer mucho.

En otro post explique que son los APK por lo que voy directo al grano:

a) Descomprimir el APK con cualquier herramienta que tengan a mano, en mi caso winrar
b) Tomar el classes.dex (Dalvik Executable) y usar el dex2jar para convertirlo a jar
c) Tomar el JAR y pasarlo por el JD-GUI

Siguiendo estos pasos podemos tener el código fuente de un apk, siempre nos podemos topar con algún código "ofuscado" o protegido con proGuard pero siempre existe forma por lo que usa google y tendrás resultados.