jueves, 12 de septiembre de 2019

Como instalar las versiones de los SDK y Herramientas de Android

El siguiente comando muestra la lista de versiones de SDK y distintas herramientas para instalar.


android list sdk --all


Para poder instalar una de las opciones que mostro el comando anterior se debe ejecutar el siguiente comando junto con los números que muestra el listado:

android update sdk -u -a -t <package no.>

Ejemplo:

android update sdk -u -a -t 1,2,3,4,..,n 

miércoles, 11 de septiembre de 2019

Locks en Informix

Uno de los problemas con que me encontré  en la bases de datos Informix fueron bloqueos de las tablas completos y las consultas que se realizan a la misma tabla termine como error por que expiró el tiempo de espera. Había procesos que corrían a la vez, las tablas se bloqueaban y las consultas no tenían un tiempo de espera para que termine el bloqueo a la tabla y continue con la consulta.

En resumen existían dos problemas:
- El bloqueo completo a la tabla.
- No había timeout para el bloqueo.

El bloqueo completo a la tabla

Cada tabla tiene configurado como es el nivel de lockeo de la misma o sea si es a nivel Registro (ROW) o a nivel conjunto de registros (PAGE).
La forma de saber que tipo de lockeo tiene una tabla, se puede ver con la siguiente consulta:

select tabname, locklevel from systables;

R = row
P = Page

para modificar el nivel de lock de una tabla se debe usar la siguiente instrucción:

ALTER TABLE customer LOCK MODE(page);

No había timeout para el bloqueo

Se puede configurar para que cada cliente que se conecte a la base de datos pueda tener un tiempo de espera ante bloqueos en las tablas, como para que las consultas que estemos haciendo no lancen errores por no esperar ni un segundo. Para ello se le debe configurar un parámetro dentro del cliente denominado IFX_LOCK_MODE_WAIT donde el valor que se le pasa es la cantidad de segundos de timeout. 

En el caso de que se requiera hacer la configuración por JDBC el parametro se debe llamar ifxIFX_LOCK_MODE_WAIT.




martes, 15 de enero de 2019

El gran Jenkins - automatización

Veremos en términos rápidos y generales algunas características básicas de Jenkins, principalmente lo que debemos saber sobre esta gran herramienta para dar una breve descripción para enseguida ir directo a trabajar con ella, no profundizaremos en su historia y orígenes, simplemente hablaremos de lo principal como cultura general:

  • Jenkins es un software de integración continua muy potente de código abierto escrito en Java, anteriormente conocido como Hudson, con esta herramienta podremos desplegar nuestro código en un servidor donde será compilado y probado.
  • Por medio de Jenkins podemos configurar la forma en la que vamos a obtener el código fuente y en la que queremos analizar el código de nuestro proyecto e integrar la herramienta con otras aplicaciones para hacer un análisis profundo de los resultados obtenidos, tales como generación de reportes, ejecución de distintas pruebas, gráficos o informar de malas prácticas implementadas en las líneas de código entre otros muchos tipos de informe.
  • Jenkins tiene soporte para sistemas de control de versiones, algunas como SVN, CVS, Git y corre en un servidor de aplicaciones como por ejemplo los muy conocidos como Tomcat o Jboss permitiendo la ejecución de proyectos configurados con Ant y/o Maven. También el paquete war de Jenkins contiene un servidor interno Jetty el cual con solo ejecutar el war con Java le da funcionamiento a Jenkins.
  • Con Jenkins basándonos en el concepto de integración continua o continuous delivery, cada vez que un programador del equipo de trabajo realice un cambio sobre el código fuente y lo suba al repositorio de código fuente, el sistema mediante la ejecución de sus tareas automáticas podrá revisar dichas actualizaciones y determinar su correcto funcionamiento mediante compilación, ejecución de pruebas unitarias y/o funcionales. 
  • Facilita el seguimiento a procesos de distintas áreas (Desarrollo, Testing, UAT y demás), encontrar defectos lo antes posible y poder tomar de decisiones sobre bugs o mejoras en la calidad del software.
  • Se integra al equipo de trabajo como una herramienta muy útil, facilita la organización pudiendo mejorar y agilizar los procesos, estabilizar la aplicación y mejorar la calidad del proyecto.


Lo anteriormente dicho son algunas de las características básicas de Jenkins, como vemos esta es una pequeña y rápida introducción de la Herramienta, tal vez un poco confusa pero con muchas mas aplicaciones, desde la página oficial de Jenkins se puede consultar más información, acceder a su wiki, comunidad, foros y herramientas ingresando a http://jenkins-ci.org/

viernes, 11 de enero de 2019

Reconstruir el proyecto de Ionic

Me ha pasado varias veces que agrego librerías en Ionic para hacer distintas pruebas y luego cuando ya defino que plugin o librería usar, el proyecto me queda sobrecargado de librerías. Por eso la idea de este post es poder limpiar todas las librerías agregadas y que solo queden las que realmente se van a usar en el proyecto.

Cuando se quiera limpiar el proyecto y volver a construir el proyecto desde los archivos de configuración, se debe seguir los siguientes pasos:

  1. Borrar los directorios node_modules, plugins y platforms
  2. Ejecutar en la raiz del proyecto 
  • npm install -g
  • ionic cordova prepare
  • ionic cordova platform add android

Otra forma mucho mas facil que hace exactamente lo mismo es correr el siguiente comando:


  • ionic repair