(5) Free Merluza

No sabía cuántas cosas tenía pendientes en mi servidor hasta que me he puesto a mirarlo por dentro.

Resulta que con la última actualización de ebox a zentyal, los repositorios de los proyectos dejaron de funcionar, entre otras cosas porque no actualicé la configuración del LDAP. Hoy he estado un buen rato actualizando los tracs y reconfigurando la autenticación.

La configuración de los repositorios subversion la hago a través de apache. Poco ha cambiado desde que escribí Cómo configurar apache para autenticar con el LDAP de Zentyal, sólo he tenido que actualizar la contraseña y los nombres de dominio.

Sin embargo, me ha sido imposible volver a configurar los tracs para que autentiquen correctamente. O yo no conseguía configurar los plugins que existen, o no funcionaban para la última versión de trac.

La solución ha sido sencilla (aunque no muy elegante). Utilizando el AccountManagerPlugin, hay una opción para autenticar mediante una ruta HTTP (HttpAuthStore). Lo que hace el servidor es llamar a una ruta http con el usuario y contraseña que da el usuario. Si la solicitud se lleva a cabo con éxito, el usuario está autenticado.

Perfecto! Como se configurar apache fácilmente para autenticar, puedo usar lo mismo para autenticar los tracs :D.

Wordpress Themes

Lo otro que he hecho hoy es un paso previo a la remodelación del css de esta web. Consiste en liberar todos los temas de wordpress que he hecho hasta la fecha. Utilizar un repositorio subversion me facilitará el actualizarlos, y ya de paso publico el código para quien quiera curiosear.

En fin… mañana más 😀

Blaapps 0.5.0 Released

After 21 months of sporadic work, I’ve finished the application for my «Thesis». Today I’m proud to announce the release of Blaapps Application Framework version 0.5.0.

Blaaps Logo for version 0.5.0

I’ve done lots of work transforming rudder Application Server, a previous project, into an Application Framework.

Blaapps Architecture

The Kernel of Blaapps is based on core Subsystems. Two of them are the most important:

  • Deployer
  • Messaging

The Deployer reads components called Modules, and loads them into memory. Modules are like plugins, hot plug-gable extensions to the application.

Messaging brings the infrastructure for the inter-module comunication.

Other features which are usually needed for Application development are packaged as Kernel Modules. In this version, two modules are included:

  • Remote
  • Persistence

Remote helps you to publish objects into a RMI Registry.

Persistence Is a JPA (Hibernate) wrapper.

As you can see, blaapps 0.5.0 is reinventing the wheel. There’s lots of plugin frameworks, and the EJB 3.0 standards helps you with persistence and remote objects. So why develop something like blaapps?

The first reason was that I wanted to learn how to do cool stuff, like Dependency Injection. Blaapps contains «only» 1800 lines of code, so it’s easier to learn from blaapps than from a real Application Server.

The second one is that I wanted something fast for my developments. Blaapps is very limited, but it starts in few seconds.

What’s next? Once I present my Thesis and became an official engineer, I’ll start with blaapps 0.6.0. There’s already a Milestone planning which will focus on making easier the building of GUIs.

gems – Terminal Broadcasting

We had a issue for the next Warp Talk. All the talk will be done with a shell as presentation tool. But people won’t see the text on the shell trough the cam, as it resolution is limited.

Isaac have found vía Debian package of the day Gems.

Gems allows exactly what we need, broadcast a terminal by tcp/ip. Screen would be the first thought, but a ssh connection from unknown people was needed :S.

To use gems, install it:

$ sudo aptitude install gems

If you want to broadcast a terminal, you type on that terminal:

golo@Macluzo:~$ gems-server -port 9999
gems-server initialized.

And now, you are broadcasting.

If you want to observe a terminal, type:

golo@Macluzo:~$ gems-client localhost 9999
gems-client: Connection established -- Press 'q' to exit.

Notice that localhost should be changed to the server’s host :D.

If you plain to attend this talk, follow our Twitter. We’ll publish server’s public address and port there.