Snow Sprint Report (Part 2)

Ugh. More than ten days since my last post. I didn’t even finished
writing about the Snow Sprint. That’s bad.

I’ll try to make it short. Anyway, I don’t remember the exact order in
which things happened during that week. So, basically, I and Godefroid
went down the mountain once on the snowcycle, and on the second
round we found Jodok and the guys from Burning Man. Godefroid took the
easy track, while we took the ski track. Everything was reasonably
under control until the middle station, when we decided to continue on
the ski track instead of taking the elevator. Then things turned very
bad. At some point I thought about giving up on trying to ride the
snowcycle and waiting for someone to rescue me. It was getting dark. I
couldn’t see the bottom of the mountain. Godefroid convinced me to
continue and we kept going until the last few hundred meters, when I
just gave up and walked.

I think I’ve never been so tired in my whole life. My whole body
was hurting. My hands were shaking. I had to move very slowly for the
following 3 days. Not bad for the first time in snow I must say. :)

This same day Andy arrived at the sprint location, and it was
really nice meeting him, specially because I had worked with him in
the past, but we’ve never meet personally. A funny incident
happened. Andy confused me with Kapil, until I took my hat off. ;)

During the next days we made lots of progress in all fronts. There
were some short seminars during the afternoons on several topics
including i18n. I gave a short lecture on Archetypes, and demoed the
Zope3-based application I’ve been developing together with Alan.

There was some discussion about a installer tool with Andy, Kapil,
Philip (Auesperg) and me
. We decided that it would be nice to have a
XML-based format for representing package dependencies and
metadata. Kapil sent me a sample file, and I need to make ArchPackage
export something like that.

I was very interested in trying CMFMetadata, so after a short
introduction by Kapil, I did some polishing to make it usable. Then,
Kapil was asking me about ways of integrating CMFMetadata and
Archetypes. I was a bit unsure at that moment, but after some sleep, I
woke with the whole picture in my mind. It wasn’t very hard to
implement it. The solution goes more or less like this:

First, I changed the Schema class of Archetypes to have a better
handling of fields, moved some methods around, used a different
structure to keep field ordering constant. Then I’ve built a
CompositeSchema class, that takes a list of Schema objects, and
joins their fields together. Basically, it acts like a normal
Schema. Then, I’ve created a FacadeMetadataSchema class, that
takes a the Id of a CMFMetadata Set on the constructor, and builds the
Archetypes fields on-the-fly from that. I also created a
FacadeMetadataStorage that is used for these on-the-fly-created
fields, and that uses the metadata tool from CMFMetadata to retrieve
and store values (which on its side, uses the annotation tool from the
Annotations product, built by Kapil for Infrae).

So, by the time I finished this, it was almost 5am on the Saturday,
and everyone was going to leave on that day. Alan had invited me to go
with him to Praha, but I hadn’t decided yet. Then, Phil, the Prince,
suggested that we go with him to Vienna, and from there go to Praha,
and I thought it would be a nice idea, because I really wanted to see
Vienna again. In a bit more than one hour we
3 were on a train to Vienna. From that minute on, I was already
regretting of my decision to go, but little could be done.

(to be continued)


One thought on “Snow Sprint Report (Part 2)

  1. Explanation concerning CMFMetadata
    Hello Sidnei;

    since you’ve been thinking to CMFMetadata, could you have some time to explain how this very promising extension work, please? Thanks a lot for your help.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.