Archive for the ‘Desarrollo’ Category

Split en Oracle a través de una expresion regular

jueves, enero 31st, 2013

Existe una funcion en oracle que puede ser utilizada para hacer el split, que es tan comun en lenguajes de programación, esta es regexp_substr. La diferencia con un split normal es que esta te extrae solo el principio de la cadena, a menos que establezcas otra posición de comienzo.

Enel ejemplo

select regexp_substr( 'una cadena','[^ ]+') from dual

Se extraera ‘una'(entiendase qu despues del simbolo ^ hay un espacio).

Configurando SQLDeveloper hacia Oracle RAC

viernes, enero 4th, 2013

Complementando información anteriormente dada, el string e conexion a RAC de Oracle también se define en el caso de SQL Developer, pero como una configuracion avanzada. O sea, se debe establecer de esta forma para llagar al RAC

sqldeveloper_rac

Como aqui puedes ver en la configuracion estandar no puedes cambiar el string de conexión, por lo que es necesario la avanzada.

Distintas versiones de la misma aplicación en JBoss 4.2.x

viernes, enero 4th, 2013

La verdad sea dicha, carecemos de recursos ilimitados para poder probar aplicaciones en ambientes ni siquiera similares a los que poseen nuestros clientes, esto solo existe para productos más consolidados. Por lo mismo hay que buscar las estrategías necesarias para que en un servidor quepan multiples instancias y así rentabilizar más los recursos.

Cuando se habla de multiples instancias estamos hablando de que JBoss se puede configurar para correr en más de un puerto, una explicación bastante buena esta en un blog de una compañía argentina Avant Garden Technologies. Con este artículo podrás tener multiples instancias de JBoss, aun cuando el único reparo que debo hacerle es que el cambiar por «fuerza bruta» los puertos Sí funciona, yo lo pude hacer cuando aun no entendía bien como funcionaba el tema de las instancias, ellos indican lo contrario. Aun así ellos entregan con argumentos conceptuales y practicos para poder establecer más de una instancia.

Pero llegue al punto en donde tengo una aplicacion que debo mantener multiples versiones. Aun cuando tenga multiples instancias algunas configuraciones se solapan. Es posible mantener en multiples instancias multiples datasources debido a que esta dentro de la carpeta deploy. Pero muchas veces requieres leer un archivo especifico, que debes colocar en una ruta externa a JBoss, para lo cual te vales del CLASSPATH de Java… y ahí existe un problema cuando deseas ejecutar distintas versiones de la aplicación en el mismo servidor, no importando que tengas multiples instancias el CLASSPATH para JBoss es único, para todas sus instancias, por lo que se te provocan algunos problemas.

La aplicación lee un archivo de propiedades x.properties, este archivo esta ubicado en alguna parte dentro del CLASSPATH si tu deseas modificar una llave de este archivo la modificarás para ambas versiones de la aplicación, y eso no es lo que ando buscando, sino que cada aplicación lea su propio properties. Inicialmente hice que la version de producción leyera x.properties y la version de qa y.properties, pero nos paso la cuenta el control de versiones, en donde estos archivos son distintos por lo que las nuevas llaves creadas en y.properties no eran traspasadas a x.properties siempre, con los inherentes problemas de ejecución.

Ahora bien, la exigencia de que el properties este fuera de JBoss (el servidor de aplicaciones) es un petición del cliente, es más solucionable si esto estuviese dentro, debido a que cada instancia vería su ambito solamente.

Entonces como habían dos CLASSPATH excluyentes lo que hice fue copiar la carpeta JBoss completa, y con las multiples instancias ya aplicadas fue hacer un

/usr/local/jboss/bin/run.sh -b 0.0.0.0 -c default 

y un

/usr/local/jbossqa/bin/run.sh -b 0.0.0.0 -c qa

Y así tuve dos instancias de JBoss con la misma aplicación y distinta versión, apuntando a distintos CLASSPATH

Algunos plugins de WordPress dan acceso a información crítica

jueves, diciembre 27th, 2012

Bien es cierto que no es un blog de WordPress pero lo utilizo para administrar este blog, y en las búsquedas de plugin para mejorar las experiencias de quienes se conectan a mi blog he tratado de encontrar plugins útiles, uno de ellos por ejemplo, genera enb caché mucha de la información para poder ser accesada más rapidamente por el visitante, pero luego de hacer una búsqueda más intensiva encontré que este tiene una falla que podría permitir a algunos conocedores romper ciertas password. Aquí un video, extraída de este articulo.

Validar CSR en la Web

jueves, diciembre 20th, 2012

Anteriormente mostre como generar un CSR pero pueden existir CSR correctos y otro no válidos, por distintos motivos, por lo cual existe un sitio en el cual se puede validar la solicitud On line, este es en

https://ssl-tools.verisign.com/#csrValidator

Este te mostrará una salida especificandote si es valido lo que has generado.

En mi caso me sucedión que generé en Linux una llave para una institución que poseía un acento en el nombre, como el tipo de formato de linux por defecto hoy es UTF-8 se generó con un & entre meedio, por lo que el certificado no fue valido, aun cuando el motivo que se mostró era otro.

Adicionalmente tienen un sitio donde explican como generar un certificado para cada software en cuestion en

https://knowledge.verisign.com/support/mpki-for-ssl-support/index?page=content&id=AR781

Generar un Certificate Singing Request (CSR)

miércoles, diciembre 19th, 2012

Previo a generar un certificado para instalar en los servidores ypara algunas empresas certificadoras se debe generar el Certificate Signing Request lo que significa que se genera la parte privada de la llave que guardarás recelosamente, más la parte pública que es la que se distribuye. Esto se puede hacer con openssl de la siguiente forma

openssl req -new -nodes -keyout myserver.key -out server.csr -newkey rsa:2048

Te preguntará

Country Name (2 letter code) [US]: CL
State or Province Name (full name) []: Santiago
Locality Name (eg, city) []: Santiago
Organization Name (eg, company) []: Nombre de la compañía
Organizational Unit Name (eg, section) []: Departamento que lo requiere
Common Name (eg, YOUR name) []: seguro.servidor.cl
Email Address []:

Adicionalmente puede solicitarte dos campos más que son opcionales. Con esto se genera un .key y un archivo .csr, el .key debe ser guardado, el CSR es el que se le transmite a la entidad certificadora.