Showing posts with label open source. Show all posts
Showing posts with label open source. Show all posts

19 June 2016

Code quality in WSO2 projects with SonarQube

Una de las principales preocupaciones en todo proyecto de desarrollo es la deuda técnica (a.k.a technical debt), y los proyectos con WSO2 no son la excepción, en muchos productos de su "Suite" el desarrollo se basa en ficheros xml, pero...

¿Como verificar la cálidad de estos desarrollos?


La respuesta es sencilla, utilizando SonarQube y una forma rápida de empezar es usando su "XML Plugin" para crear "custom XPath Rule".


¿Qué empezamos a validar?

La respuesta sigue siendo sencilla, entre otras cosas las "Best Practices for Mediation" que WSO2 tiene publicadas. Como se puede ver en la siguiente imagen, para este post he elegido la implementación de una de ellas.


Finalmente, como resultado del análisis de nuestros proyectos podemos obtener reportes completos de las malas prácticas y la localización exacta de cada una de ellas.

Enjoy!!!
- FIN -

18 February 2014

Usando Apache James

En determinadas ocaciones nos toca desarrollar funcionalidades que involucrán envío de mails; y en determinados escenarios sin tener disponible un servidor de correo, por suerte en apache existe un proyecto llamado James (Java Apache Mail Enterprise Server) el cual nos puede ayudar en esa tarea.

Pero James es un servidor de correo empresarial escrito integramente con Java, el cual es extensible en funcionalidad por su arquitectura de mailets, los cuales nos permiten procesar los mensajes según nuestras necesidades de negocio (imaginemos las posibilidades que esto tiene).

Una vez descargado en la carpeta bin podemos ejecutar el script run para iniciar el servidor y a partir de momento podemos probar nuestro código de envio de mails.

Los valores por defecto para conectarnos out-of-the-box son:
  • Usuario: root
  • Password: root
  • Servidor: localhost
  • Puerto: 4555

Enlaces relacionados:

- FIN -

03 February 2014

Primeros pasos con Apache FtpServer

Apache tiene entre sus proyectos un servidor FTP basado en MINA; en su web, sus instrucciones básicas resultan sencillas, en este post simplemente las recojo y añado el proceso completo de como empezar a usarlo.

  • Descargarlo y descomprimirlo.
  • En mi caso me interesa ver como se comporta el servidor, por tanto configuro el fichero log4j.properties para que haga una salida por consola (por defecto lo envia a un fichero)
  • Iniciar el servidor con la siguiente instrucción apache-ftpserver-1.0.6\bin>ftpd.bat res\conf\ftpd-typical.xml 
  • Finalmente hay que conectar con el cliente ftp, recordar que el puerto de la configuración por defecto es el 2121 (pero solo es cuestión de modificar el fichero ftpd-typical.xml para poner el puerto deseado)



- FIN -

01 November 2011

Listando licencias Open source de un proyecto

Antelink tiene un producto (que se integra con Eclipse) que nos permite ver todas las licencias que estamos utilizando en las librerias de nuestros proyectos Java, esto por ejemplo nos puede ayudar a verificar o prevenir las incompatibilidades de licenciamiento en nuestro proyecto(s) o saber las restricciones a los cuales estamos expuestos al elegir un componente u otro.

La siguiente imagen, muestra entre otras cosas, las licencias de las librerias "Maven Dependencies" del proyecto de ejemplo jpetstore de Spring.


Enlaces relacionados
:
- FIN -

22 September 2011

Manual de Hibernate 3.2

Una parte importante de toda aplicación es decidir la forma como se acceden a los datos, bien puede ser por conexiones directas por JDBC o por un ORM, como por ejemplo Hibernate. En este manual además hago refencia brevemente a sistemas de cache y a las trazas que puede dejar Hibernate para enlazarlo con LogBack o Log4j.

Intentando seguir con la serie de manuales cortos, este también lo realize "en la intimidad" :D hace algún tiempo, asi que ahi van las diapositivas.

Esta orientado hacia Java, pero los conceptos y elementos son los mismos que para NHibernate (al menos los elementales).


Enlaces relacionados:


- FIN -

15 October 2010

¿ Hay que compartir el conocimiento ?

Compartir "Es lo que permite relacionarnos con los otros" y en este ámbito, devolver a la comunidad, lo que esta nos ha regalado.

Evidentemente mi respuesta es sí; y es lo que repito mentalmente cada vez que veo una "isla de poder", más adelante explicaré a lo que denomino una isla de poder.

Compartir el conocimiento nos permite relacionarnos con los otros, exponer nuestra forma de pensar, de expresarnos, y de aprender, ya que nos exponernos públicamente a comentarios buenos, constructivos, malos, destructivos, mordaces.. pero lo más importante es que nos da la oportunidad de equivocarnos y de retroalimentarnos en base al conocimiento de otros.

Pero considero que hay que ser conscientes, que al saltar a la palestra pública, seremos suceptibles de ser criticados; y por tanto debemos ponernos una coraza y mirar desde fuera lo bueno dentro de lo bueno, y lo bueno dentro de lo que nos parece desagradable y ofensivo.

En la batalla de la dialéctica, existen personas capaces de tomar nuestras frases y retorcerlas ... por tanto insisto, debemos ser capaces de ver tomar lo bueno dentro lo malo, y de ser humildes cuando todo sale bien, cosa loable, y poco frecuente en este sector, dado al gran ego que rebosa por todas partes.

Volviendo al tema, algunos no tienen claro lo de compartir conocimiento! Forman sus pequeñas islas de poder en base a no compartir conocimiento y a convertir en enrebesado lo sencillo, ...y para ellos es mi queja.

Para mí, una "isla de poder", es algo así como un pequeño nicho de mercado, donde alguien intenta posicionarse de forma errónea, para convertirse en indispensable, lástima que a algunos esta jugada les de resultado.

Y digo esto pensando, por ejemplo, a manera de reflexión (o tal vez de crítica), en algunas aplicaciones que me ha tocado rescatar, aplicaciones sin ejercimiento de roles, sin documentación, sin estructura, sin guía, sin control, caóticas!

Muchos saben del tipo de aplicaciones que hablo, a mas de uno de nosotros le ha costado, al menos las primeras veces, leer cantidades ingentes de documentos y mucha, mucha imaginación para comprender e intentar arreglar el entuerto.

Pero por muy ofuscado que este algo, solo retarda lo inevitable, hay otros que vienen por detrás y tarde o temprano sabrán desifrar aquello que con tanto sigilo se guarda, por tanto este tipo de actitudes no tiene razón de ser.

Ocultar el conocimiento, no posibilita estrechar los lazos sociales, ni incrementar nuestro capital intelectual.

Guardar información sin haberla pasado por la interrogación, por la opinión, por la justificación, o abolición del otro, no es conocimiento. Es tener una base de datos de "saberes muertos", sin vida, algo que no representa nada porque está inherte, sin conexión con los demás o con el medio que le da vida.

Por suerte hay mucha gente en internet que practica la divulgación de conocimiento, a todos ellos MUCHAS GRACIAS.



Enlaces relacionados:
¿Compartir el conocimiento?
- FIN -

20 September 2009

Manual de Log4j 1.2.15

Uno de los aspectos importantes en toda aplicación que se precie, es el sistema de trazas que se le incorpore, de ellas podemos deducir la salud de nuestra aplicación y determinar la enfermedad en caso de presentarse; pero un sistema mal implantado puede influir negativamente en el rendimiento; por ello me gustaría compartir un manual corto de Log4j que realize "en la intimidad" :D hace algún tiempo, asi que ahi van las diapositivas.

Esta orientado hacia Java, pero los conceptos y elementos son los mismos que para Log4net.




- FIN -

08 June 2009

Kenai Project vs Google Code

Hoy en día además de Sourceforge; Google, Sun, y Microsoft disponen de hosting gratuitos para proyectos "open source", y cualquier desarrollador puede acceder a ellos para almacenar sus proyectos; estos proyectos pueden ser evolucionados de forma colaborativa al mismo tiempo por distintas personas sin importar su localización.


Kenai Project
Es una iniciativa de Sun Microsystems, si se dispone de un SDN (Sun Developer Network) como es mi caso, el proceso de alta se simplifica. Pero para crear un proyecto hay que hacer una petición de creación y una vez que se reciba la respuesta se puede empezar a trabajar con él.

Entre sus principales carecterísticas ofrece:
  • Una buena variedad de sistemas de control de versiones, como pueden ser el utilizar Mercurial, SVN y Git
  • Perfil de usuarios
  • Forums
  • Wiki
  • Issue Tracking(Bugzilla/JIRA)
  • Listas de correo para poder comunicarse mejor entre los miembros del equipo y la comunidad
  • Integración con Netbeans (para el código fuente y el seguimiento de tareas)

http://www.kenai.com

Creación de un proyecto en Kenai con Netbeans 6.7 (5 min)

Creating a Kenai Project in NetBeans IDE 6.7

Bienvenida al proyecto Kenai (16 min)



Google Code
Para crear un proyecto en el hosting de Google Code hay que tener una cuenta en Google, una vez creado el proyecto podemos empezar a trabajar con él (subir código fuente)

Entre sus principales características ofrece:
  • Mercurial y SVN como sistemas de control de versiones
  • Perfil de usuarios
  • Wiki
  • Issue Tracking(usando el navegador)
http://code.google.com/hosting/
http://code.google.com/p/support/






Tanto en Google Code como en Kenai, hay que especificar el tipo de licencia que deseamos aplicar a nuestro proyecto al momento de su definición, cualquier IDE que disponga de conexión con SVN puede integrarse con estos, pero si desearamos utilizar Mercurial, o tener el seguimiento de incidencias integrado con el IDE, Kenai se lleva el gato al agua.

Recuerdo que antes, solo existía Sourceforge para el hosting de proyectos libres, ahora también estan Kenai y Google Code para proyectos principalmente Java o PHP y Codeplex para proyectos .Net.

- FIN -