Java Expert....Java/Open Source Addict

Redes Sociales

twitterlinkedinrss feedemail youtube

jueves, 15 de octubre de 2009

Editor HTML Moodle in Chrome


Pues llego el momento de configurar los nuevos cursos de JAVA en Moodle pero ni saben ...el editor HTML nada que aparecía. Lo primero que se me ocurrió fue que talvés la versión de Moodle que había instalado la que tenía en mi nuevo hosting la 1.9.3 no lo soportaba pero no me convencía antes de revisar la documentación lo probe en otro mi querido y muy olvidado Firefox y pues la sorpresa!!!! Todo funciona dNegritae maravilla entonces......

Me dirigi a Chrome a revisar el tema de la configuración de Javascript y pues otra sorpresa nunca lo encontré indigando un poco en Internet me tope con el asunto de que en Chrome no es se puede habilitar/deshabilitar el tema de javascript desde una opción dentro del browser, definitivamente un punto en contra.

La solución a esto es crear un shorcut que inicialize con esta opción a Chrome, la configuración en detalle la pueden apreciar en este enlace Chrome Javascript pero luego de esto pude volver a trabajar en mis cursos de Moodle una vez habilitada la opción.

Que cosas definitivamente.....

viernes, 25 de septiembre de 2009

Ayuda Colores HTML


Cuantas veces hemos querido cambiar los colores de los diferentes elementos de nuestros sitios web pero conocer el color exacto de cada componente expresado en exadecimal era tedioso y demoroso. Pero actualmente se dispone de varias herramientas online que nos permiten conocer de una manera rápida cual es color exacto ya sea proporcionándoles el esquema RGB o hexadecimal. A continuación les comparto los enlaces de tres sitios super útiles:


Espero que les sirve de ayuda, no se olviden de comentar si el aporte les fue útil

martes, 8 de septiembre de 2009

Problemas con archivo .CHM


Cuantas veces nos ha pasado que cuando bajamos un ebook o artículo en formato .chm y luego de descargarle un par de minutos estamos listo para abrirle y comenzar a leerle y nos topamos con la sorpresita que se abre pero no despliega nada de información, me había pasado algunas veces pero esta vez no pude encontrar el ebook en pdf asi que me puse a investigar y llegue a un foro consiso y simple donde encontre la solución, les comparto el link http://tinyurl.com/chmsolution

Espero que les sea de mucha utilidad, saludos

jueves, 3 de septiembre de 2009

Que es , arquitectura y como funciona SpringBatch?


Que gusto poder volver a los tiempos a postear algo....con esto del cambio a nuevo trabajo y las clases en la poli me han alejado un poco. Pero ya estoy de vuelta y espero no alejarme....

En todo proyecto de misión crítica( ejm. instituciones bancarias, financieras etc.) donde se necesita realizar varios procesos de de negocio con grandes volúmenes de datos una vez acabo el período de trabajo como son la consolidación de los mismos, cierres de cajas etc es muy necesario contar con procesos batch que ejecuten estos procesos eficientemente de una forma controlada sin necesidad de la participación del usuario ya que por lo general son realizados nocturnamente y toman un tiempo considerable.

Por la misma concepción de lo que representa un proceso batch muchas empresas han adoptado realizarlo directamente en la bdd sin utilizar programas adicionales que retardarían el mismo en la sola recuperación y disposición de los datos, otras han construído sus propios programas y otros como en mi caso estamos tratando de encontrar una solución "diferente" o mixta para lo cual en este post les voy a hablar de un framework llamado SpringBath el cual pretendo utilizar para encaminar mi requerimiento.


SpringBatch

Es un framework open source que permite simplificar el desarrollo de procesos batch de una manera eficiente , robusta y escalable. Entre las características que tiene el framework podemos describir las siguientes:
  • Procesamiento batch concurrentes (paralelos)
  • Procesamiento batch secuenciales (pasos)
  • Procesamiento batch masivo
  • Restauración manual o planificado luego de una falla
  • Procesamiento parcial
  • Procesamiento transaccional
  • Procesamiento batch planificado (utiliza frameworks scheduler como Quartz)

Arquitectura


Funcionamiento

El funcionamiento de SpringBatch puede resumirse en el siguiente diagrama:


En donde:

JobLauncher: Representa una interfaz que permite ejecutar la tarea para lo cual recibe parámetros (JobParameters)
Job: Es la entidad que encapsula todo el proceso batch, el cual representa un conjunto de pasos (Steps)
Step: Es un objeto del dominio que encapsula un independiente y secuencial pase de un proceso batch, el cual contiene toda la información necesaria para controlar el proceso batch.
Job Repository: Es el mecanismo persistente que provee todas las operaciones CRUD para el JobLauncher, Job y implementaciones de pasos.
Item Reader: Representa las diferentes entradas los cuales pueden ser en varios formatos como archivos, xml, base de datos los cuales pueden deben ser proveídos uno a la vez.
ItemWritter: Representa la salida para el Step el cual es uno a la vez, es similar al Item Reader pero de forma inversa
ItemProcessor: Represeanta el procesamiento de negocio de un item.

Este representa un resumen pequeño que puede servir para dar una noción acerca de SpringBatch, en el próximo post trataré de describir el proceso técnico espero que les sirve de referencia.

Saludos, dios los bendiga

sábado, 22 de agosto de 2009

jueves, 2 de julio de 2009

Problemas con Transformador XML + JAVA + Toplink



Hay días en los que buscas y buscas la solución a un problema, te inventas diez mil y una formas para que luego!!!! nada el mismo error.....a todos nos pasa, el problema muchas veces radica en el cansancio que nos desvia la mente del objetivo final, hoy fue uno de esos días.

Bueno el problema radico en que estoy haciendo la migración de la capa de persistencia PersistenceManager a Toplink y me tope con un problema de transformación de los XML, para no hacerles largo el relato el código que tenía era este.

javax.xml.transform.TransformerFactory tFactory =
javax.xml.transform.TransformerFactory.newInstance();
javax.xml.transform.Transformer transformer = tFactory.
newTransformer(new javax.xml.transform.stream.StreamSource(new File(URLXSLT)));
javax.xml.transform.dom.DOMSource xmlDoc = new javax.xml.transform.dom.DOMSource(doc);
transformer.transform(xmlDoc, new javax.xml.transform.stream.StreamResult(new java.io.File(path)));

Cabe aclarar que todo funcionaba bien hasta que comence con Toplink, como Toplink implementa unas nuevas librerías para el manejo de xml como son xml.jar y xmlparserv2.jar (parseador) pense que podría haber alguna incopatibilidad colocando las dos en el classpath, hice las pruebas respectivas y nada, cambie de parseadores y seguia saliendo el mismo error:

javax.xml.transform.TransformerException: java.io.FileNotFoundException

Luego de implementar nuevos parser, abrirme jar y reemplementar cosas... buscar en internet full tiempo comence a ver otra forma de llamar al archivo (ojó que esto actualmente en la versión que se maneja del sistema funciona bien tal y como esta) y efectivamente por alguna extraña razón el problema radicaba aquí. Esta fue la solución:

javax.xml.transform.TransformerFactory tFactory =
javax.xml.transform.TransformerFactory.newInstance();
javax.xml.transform.Transformer transformer = tFactory.
newTransformer(new javax.xml.transform.stream.StreamSource(new File(URLXSLT)));
javax.xml.transform.dom.DOMSource xmlDoc = new javax.xml.transform.dom.DOMSource(doc);
transformer.transform(xmlDoc,
new javax.xml.transform.stream.StreamResult(new java.io.File(path).toURI().getPath()));


Como pueden apreciar la solución fue en cambiar la forma de llamar al archivo, estoy investigando porque se produjo esto. Talvéz la especificación de toplink asi lo requiere ya que utiliza nuevos jar y actualizaciones de los tipicos xalan y xerces, en todo caso ya les comentaré

Espero les sirve y que alegría salió esta situación.............seguimos en migración.

lunes, 29 de junio de 2009

Usando Perl con /


Luego de terminar una implementación nueva de reportes realizada en java utilizando un servidor de reportes llamado Crystal Clear, el siguiente paso consistía en cambiar la llamada del viejo servidor por el nuevo. Lo cual involucraba cambiar cierta [cadena1] por [cadena2] en cada uno de los archivos, que eran muchos y que residian en un servidor web Tomcat localizado en un RedHat.

Para realizar esta tarea utilice el comando perl con las diferentes opciones que tenía pero en pleno proceso ocurrió un error, el cual era que mis cadenas contenían el caracter / que daba inconvenites en la búsqueda del patrón. Mi primer intento fue este.

perl -e s//matoosfe//matoosfe_company/g -pi.bak *.xsl


Pero no tuve éxito ya que el caracter / no era reconocido con un separador de la expresión, por lo cual la siguiente opción fue utilizar el caracter de escape que era el backslahe \ quedando el comando de la siguiente forma:

perl -e s/\/matoosfe/\/matoosfe_company/g -pi.bak *.xsl

Pero tenia errores al ejecutarlo, asi que la solución que encontre fue cambiar el caracterer separador de la expresión / por otro en mi caso utilice ¡, pudiendo utilizarse cualquier otro excepto los utilzados por gnu-linux en operaciones bash como el ! por ejemplo. Aclarando esto mi comando quedo de la siguiente manera:

perl -e s¡/matoosfe¡/matoosfe_company¡g -pi.bak *.xsl

Para terminar el comando ejecutado anteriormente lo que hace es cambiar la cadena /matoosfe por la cadena /matoosfe_company en todo el directorio en todos los archivos con extensión .xsl y sacar un respaldo del archivo cambiado con extensión .back .

Espero les sea de mucha utilidad