Posted by david
I'm glad to announce that we have dates and venue for the next Euruko 2009 in Barcelona, May 9 and 10 in the Citilab, a beatiful place that hosted other big international conferences like DrupalConf or OpenOffice.org Conference.
You can see the official announce in the Euruko web page, we'll open the call for papers in the next weeks, stay in touch!
Posted by david
Although I don't speak pretty much on Apache Abdera, I've been involved in the project for more than a year.
Today, two years later Abdera is finally graduated and in the next weeks we're moving our home to abdera.apache.org as a Top Level Project in the ASF. So, now the question is... when will we release a new version of Abdera? and the answer is... we're working on fix every major bug that we have in our jira, and we have to look over our documentation, but we'd like to release a new version as soon as our infrastructure will be migrated.
Meanwhile contributions are welcome, if you find a bug or you think that you can improve our documentation, please don't hesitate to drop us a line.
Posted by david
Yesterday, the third edition of the Google Test Automation Conference finished, and, although my speech was a little disaster, I'm glad. It was a challenge, this was the first time that I gave a speech in english and I chose to do it in front of the main experts in testing in the world.
I'm trying to upload the slides to slideshare but I have several problems converting the file, so, if you want to get them you can download the pdf from my server.
Update: I finally got to upload the presentation to slideshare, you can take it a look here:
Posted by david
Right so, Tomorrow I'm flying to Seattle to speak in the Google Test Automation Conference and to seitze the opportunity I'm going to visit some friend in San Francisco next week. After that, I'm going to New Orleans to attend to the ApacheCon where I'm talking on Abdera in the Fast Feather track.
If you're in my route and you want to spend some time taking a beer and talking on open source, rails, java, atom or something, just drop me a line to calavera at apache dot org or leave me a comment in this post. See you there!
Posted by david
I've just released the version 1.2 of the rubyMetrcics plugin for Hudson, and I've added support for Rails stats, so, if you check the right option hudson generates the report and its trend graph:
You can find more info into the plugin page.
Posted by david
I couldn't keep quiet after I read this Arun Gupta's post, so I've just released the first version of the Ruby metrics plugin for Hudson.
This plugin aims to collect a bunch of ruby metrics tools and integrate them with Hudson. The first release allows to integrate Rcov reports into Hudson and builds a trend graph with the coverage of your project between releases.

You can find more screenshots in the plugin wiki page. Enjoy it!
Posted by david
This morning I've bumped into this code:
latitude = phif + (x2frac * x2poly * (x ** 2)) +
(x4frac * x4poly * (x ** 4)) +
(x6frac * x6poly * (x ** 6)) +
(x8frac * x8poly * (x ** 8))
longitude = central_meridian + (x1frac * x) +
(x3frac * x3poly * (x ** 3)) +
(x5frac * x5poly * (x ** 5)) +
(x7frac * x7poly * (x ** 7))
And quickly I've thought that it could be refactored easily with a loop like this:
latitude = phif
longitude = central_meridian + (x1frac * x)
(2..8).each do |n|
latitude += eval("x#{n}frac * x{n}poly * (x ** #{n})") if n % 2 == 0
longitude += eval("x#{n}frac * x{n}poly * (x ** #{n})") if n % 2 != 0
end
both pieces of code work fine, but sincerely, my mind is getting used to understand the first one better than the second one, so I've ruled out my refactor and I've kept the original version.
Posted by david
I think one of the most unpleasant tasks when you internationalize a web page is locate missed sentences and translate them.
Pootle allow us to keep a centralized translation repository where translators can work together. But pootle sentences navigation is a little weird and you always finish searching sentences by hand.
This morning I've written a little greasemonkey script that allows you to select a sentence into a web page and search it into your pootle server. The script records one command action for each one of the languages that you've configured and then, they can be invoked from the greasemonkey user script tab.
If you've already installed greasemonkey you can add the script from my github accout.
Posted by david
One of the most weird stuff in the AtomPub specification is the media creation flow. First, you need to send a request in order to post the new media resource and once the response is correct you can update the media link entry related with it.
In order to avoid the second step, the Picassa team added to their api a new way to add photos, and now, they allow to send a multipart file that wraps the photo and its metadata.
This atom extension is been covered by an IEFT draft that Joe Gregorio published, and this morning I've updated the Abdera trunk in order to implement this specification.
You can read more into the Abdera wiki. Enjoy it.
Posted by david
This October I'll be presenting at Google Test Automation Conference on testing of AtomPub implementations. The talk will discuss the best practices in order to test AtomPub implementations, why testing an extensible standard could become painful and how to get started with some useful tools.
GTAC is one of my favorites conferences, people talking about testing, just one track and no fees. If you are considering applying for attendance, I suggest it. But if you are actually interested in testing and you didn't know it, you should consider applying.
Posted by david
Yesterday I released a new version of The atom protocol exerciser. We have been working in order to simplify its architecture and create a modular system that anyone may extend.
Now it works from the command line as well the web interface. We've added some rake tasks that you can use for exercise your server implementation and you can select the output format just invoking the correct option:
$ rake ape:go:text['service document uri']
$ rake ape:go:html['service document uri']
$ rake ape:go:atom['service document uri']
It allows some configuration options through its config file $APE_HOME/aperc:
Ape.conf[:REQUESTED_ENTRY_COLLECTION] = 'collection name'
Ape.conf[:REQUESTED_MEDIA_COLLECTION] = 'collection name'
And finally, this last release allows to create and add new tests easily. The test cases must to extend the Ape Validator class and override the validate method.
module Ape
class CustomValidator < Validator
def validate(opts = {}) end
end
end
We've implemented a little system for select the variables to use in your tests, just call the requires_presence_of method into the class declaration and pass the variable name that you require.
module Ape
class CustomValidator < Validator
requires_presence_of :entry_collection #OR
requires_presence_of :entry_collection => 'comments' #OR
requires_presence_of :media_collection => {:accept => 'image/png'}
#...
Once your custom validator is ready you just need to move it to $APE_HOME/validators.
But if you really want to learn how to write your custom validator you just need to take a look at the source code.
Posted by david
El jueves pasado celebramos en la ofi un pequeño workshop sobre nuestra api. Nuestra idea inicial era hacer una pequeña introducción y plantear un par de ejercicios previamente preperados por nosotros para que los asistentes picaran algo de código. Por desgracia, tampoco teníamos demasiado tiempo y al final decidimos exponer los ejercicios y comentar el código que nosotros habíamos escrito.
Personalmente, mi principal objetivo era dejar muy claro que es muy fácil de usar más allá de lo pone en la documentación y que se pueden hacer más cosas a parte de integraciones de búsqueda de sitios y servicios.
Como hacía tiempo que quería probar Shoes decidí hacer una pequeña aplicación que se conectaba con la cuenta de un usuario en 11870.com, se descargaba los últimos servicios que se habían guardado sus contactos y permitía que ese usuario se los guardara y los comentara. Para el que no conozca Shoes decir que es un pequeño framework para escribir pequeñas aplicaciones de escritorio multiplataforma de una forma sencilla. Mientras desarrollaba la aplicación ya me quedó claro que lo de "forma sencilla" ya no era cierto, ya que además de tener una documentación pésima (su autor, aunque es un desarrollador muy brillante, se dedica a hacer pdfs llenos de dibujitos sin sentido y no explicar como usar sus frameworks), el feedback que te da el framework es inexistente, no muestra excepciones si las hay y creo que tiene una consola de log pero no he encontrado como usarla ni como verla. Como punto final, cuando más o menos tenía la aplicación terminada decidí probarla en mi powerbook, la había desarrollado en mi sobremesa con ubuntu, y por supuesto el resultado fue el esperado después de dos días peleandome con el framework, la aplicación no llegó a arrancar.
Como tenía una cuenta de github sin estrenar he subido el código fuente ahí por si alguien quiere echarle un vistazo, si usas git simplemente ejecuta este comando:
git clone git://github.com/calavera/oos-with-shoes.git
si no, puedes ver el código en el proyecto que he abierto.
Posted by david
When I talked about the ape in the past Conferencia Rails 07 I remarked that it wasn't quite easy to install and configure. Today I can announce that this is no longer true.
We've transformed a lot of scripts in a ruby gem that provides a Mongrel based server. Once the ape gem is installed and this server is running, the web interface is available in the port 4000 of your localhost.
$ sudo gem install ape && ape_server
Moreover, the new ape gem uses the erubis library to load the atom entry templates that it uses to test the atomPub server. These templates can be overrided by the user, the gem searchs the APE_HOME enviromment variable or the .ape directory into the user home directory. Within this directory the user can leave his atom entry templates with the names mini_entry.eruby, basic_entry.eruby or unclean_xhtml_entry.eruby.
We are excited with this release and we are working hard to eliminate possible bugs and add documentation in addition to new capabilities in order to test any atomPub server behaviour.
Enjoy it!
Posted by david
Hace unos meses instauramos una costumbre en la ofi, los viernes un miembro del equipo de tecnología debía dar una charla sobre algún tema que le pareciera interesante. En este tiempo hemos hablado sobre behaviour driven development, atom publishing protocol, amazon s3, python, metodología ágiles...
Pero como tampoco somos tanta gente, y ya nos estamos quedando sin ideas, hemos decidido abrir nuestras puertas a la gente de la calle. Así, si alguien se encuentra por Madrid un viernes y le apetece pasarse a evangelizarnos sobre algún tema en concreto puede enviarme un correo a david.calavera arroba 11870.com contando un poquillo de lo que nos quiere hablar y proponiendo una fecha.
Aclaraciones
En principio debería ser un viernes antes de comer, a eso de las 13h (luego podemos organizar un comida familiar), aunque podríamos buscar otro día por la tarde si es imposible ese día. Por problemas de espacio, de momento, no podemos aceptar público externo, aunque podemos hacer alguna excepción.
Por cierto, mañana tenemos nuestro primer invitado, con una charla muy interesante sobre grid computing.