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.

lunes, febrero 20, 2012

Soap 1.1 y Soap 1.2 en el mismo WSDL

Hace unos días tuve que participar en un proyecto con algo muy pequeño que básicamente consiste en consumir un servicio web con varios métodos. En principio esto no debería traer ningún problema ya que simplemente desde GeneXus ejecuto el WSDL Inspector y listo. 

El problema estaba a la hora de compilar ya que me daba error de métodos duplicados, por ej. Existía un método llamado "TienePermiso" que a la hora de compilar me decía que ya estaba definido.


Compiling plogin.java
.\Sdtuy_Gup_wsdl__wsGup.java:182: tienepermiso(SdtTienePermiso_Param) is already defined in Sdtuy_Gup_wsdl__wsGup
   public SdtTienePermiso_Result tienepermiso( SdtTienePermiso_Param gxTp_TienePermiso_Param )
                                 ^
1 error
NMAKE : fatal error U1077: 'C:\SoftGXJava\java16\bin\javac.exe' : return code '0x1'
Stop.
 
Realmente estuve un par de días que no encontraba la causa por lo que ya estaba desarrollando el consumo de estos servicios a mano hasta que el proveedor del servicio me comento que el wsdl tenía la definición en Soap 1.1 y Soap1.2. Mi sorpresa era que no tenía idea que se podía hacer esto y menos que el WSDL Inspector lo iba a consumir sin problemas pero que me iba a dar error recién en la compilación.

Después de luchar un rato solo me quedaba modificar el archivo ARI y el XML que se genera cuando se usa el WSDL Inspector, en mi caso uso GeneXus 9.0 por lo que los archivos se encontraban bajo la carpeta kbdata.

En síntesis borre del archivo lo que estaba duplicado, regenere y  la aplicación quedo funcionando sin problemas. No tengo claro si en GeneXus Ev. 1 pasa esto pero lo dejo documentado por si alguien sigue trabajando con GeneXus 9.0.