Publica tu how-to

Dinos como hacer lo que sabes hacer, mándanos un email a wdonet@gmail.com y lo publicamos (dos días máximo) o si te interesa unirte al equipo de redactores, también háznoslo saber por correo.

Configuración de TurboGears 2.0

Introducción
TurboGears es un framework para desarrollar aplicaciones web basadas en el lenguaje de programación Python

La versión 2 está basada en el modelo MVC, con los siguientes frameworks como base:

-SQLAlchemy, el ORM que sirve como Modelo.
-Genshi, el framework que permite manipular la Vista a través de tags específicos.
-Pylons, proporciona el Controlador.

Levantando una sencilla VPN con OpenVPN parte 3

Configuración de la VPN

Generación de llaves (continuación...)
Teniendo claro cómo funciona la seguridad en una VPN, lo que sigue es generar las llaves y
certificados apropiados para poder configurar, ahora sí, la VPN entre las máquinas que deseamos
tener 'cerca'.

OpenVPN viene de por sí con algunos scripts que pueden aprovecharse para la generación del
esquema de seguridad de la red. El único requisito previo es tener instalado el software
OpenSSL, el cual utilizan dichos scripts. (Sin embargo, si instalas desde alguna utilidad de tu
distribución Linux, o desde Windows, el software SSL adecuado se preinstala también, pues es
un requisito previo).

Los pasos en este caso son sencillos:
  1. Se genera el certificado (conocido también como 'llave pública'), así como las llaves privadas tanto para el servidor como para cada cliente.
  2. Se genera un certificado y una llave para el 'master Certificate Authority' (CA), que se utilizan para firmar cada uno de los certificados generados anteriormente.

Configurar la capa de servicios como transaccionales con spring aop

Existen diversos conceptos que ya voy a dar por conocidos en esta publicación como lo son un advice, un target, un pointcut, un advisor y un aspecto, entre otros. Pero pueden conocer mas en la documentación de referencia sobre aop de Spring (inglés).

http://static.springsource.org/spring/docs/2.5.x/reference/images/tx.png
Conceptualmente una transacción luce como la imagen aqui arriba pero vamos a describir un poco mas el detalle.

Primeramente necesitamos la dependencia de spring-aspects, considerando que nuestro proyecto sea maven, debemos agregar a nuestro pom.xml la siguiente dependencia (por ahora usaremos la ón 2.5.6):
<dependency>
<groupid>org.springframework</groupid>
<artifactid>spring-aspects</artifactid>
<version>2.5.6</version>
</dependency>


Basicamente necesitamos configurar tres elementos, (1) el manejador de las transacciones y su fuente de datos o DataSource, (2) un advice que es el código a ejecutar antes y/o despues de una petición a la base de datos punto central para iniciar-propagar-terminar una transaccion, y finalmente (3) un advisor, que es la relación de dicho advice con un pointcut.

Maven-Spring-Aspectos con @Configurable y Weaving

Porqué la mayoría de la gente usa Load Time Weaving (LTW)? Esto requiere reemplazar el javaagent/classloader para tu JVM el cual batalla con el ordenamiento de todas las cosas.
Echemos un vistazo usando mejor el Compile Time Weaving (CTW).
Este ejemplo usa Spring 2.5.2, AspectJ 1.5.4, Java 1.5 (Spring 2.5.4 usa una version posterior de weaver (3.0 contra 5.0) - Asumo que AspectJ 1.6.0 pero el aspectj-mave-plugin está también basado alrededor de la versión 1.5.4, así que por ahora trabajemos con esta combinación.
En Spring, podemos simplemente inyectar recursos a beans normales de Spring, incluso vía la configuración del contexto de Spring, o usando el soporte para anotaciones basadas en inyecciones ((@Resource, @Autowired junto con @Repository, @Service etc).
Sin embargo, beans que son de alcance prototipo (scope="prototype") son más difíciles de manejar. Estas son renovadas (Bean foo = new FooBean();) incluso por el desarrollador o por frameworks externos o (Hibernate para beans del modelo, contenedores de servlet, etc.).
El sitio spring framework provee la anotación @Configurable para esto.