[<<] Industrie Toulouse

October 07, 2003

Today, I deployed RevisionManager (and its sibling, RevisionObjects) into a Zope development site. RevisionManager seems to be the least obtrusive yet most (generally) effective CVS front end to come along for Zope.

RevisionManager aims for the notion that most Zope objects that you want to excite source control over in fact tend to have a single text (or binary, in the case of files and images) based representation. It also deals with Zope's generic Properties data description and extension system.

For general usage, a RevisionManager can be added and set up for a site root. It's a unique object, and doesn't interfere with any other content unless you tell it to - it doesn't add extra tabs, etc. If you do want an extra tab to do checkins/updates/diffs/etc per item, RevisionObjects patches in to give you that ability. But most of a site can be managed via the RevisionManager object.

RevisionManager's implementation is pretty intelligent and fairly well done. I found one problem today that I reported to the author (basically - if you have a Zope object, such as a folder, called 'read', the synchronization process will fail). But overall, RevisionManager seems to take to heart a lot of the concepts espoused in Zope 3's philosophy:

  • RevisionManager acts as a new service on behalf of managed objects, and doesn't require that those objects change.
  • RevisionObjects do patch the system to add extra functionality. Basically, a new tab, versioning is added to objects in the ZODB. This tab is a view that communicates with the RevisionManager service to perform per-item CVS actions. In Zope 3, this would most likely be written as a View and registered as a menu item, and not require any dynamic patching at all. Zope 3's architecture should encourage this kind of "harmless extension" to add new functionality to basic content/business objects.
  • New Adapters can be implemented for custom data objects that make them conform to an interface expected by RevisionManager's property marshalling system. Again, this is akin to Zope 3's adapter system. RevisionManager says "I need this interface in order to marshal properties" and you say "well, my object doesn't implement that interface, but let me write something that will talk to it AND to you in the way that you both want."

ZopeMag Issue 5 features a free article discusses the design considerations for RevisionManager, offers insight into how it works, and compares it to other (older) solutions for Zope.

J. Shell, October 7, 2003 05:49 PM, in Zope

Tonight, I had the privilege...nay, joy...of watching Lost in Translation. There is much to enjoy about this film. One particular point is how Sofia Coppola and her cinematographer capture The City through the eyes of these lonesome travelers. In this case, The City is Tokyo - immense, colorful, and distant. At times, we're taken on close shots through night clubs, arcades, and apartments. A lot of the time, we're seeing the city through the windows high up in the Park Hyatt hotel where our main characters are staying - from their rooms, from the swimming pool, and from the bar. The beginning, midpoint, and end of the film are shown through the windows of cabs and limousines -those luscious rides in, out, and through where you get to whisk by and see the colorful advertising-laden edges of neighborhoods that border the highways and trailways of so many major cities worldwide.

I love falling through cities at night. I love the diffusion of light onto the streets and sidewalks from the streetlamps, traffic lights, buildings, signs, etc. I often walk home from bars savoring this.

Tonight when I got home, I decided some relaxation would be in order, as I seem to be getting over some sort of mild sickness. I drew a bath, brewed some tea, and stared at my music collection trying to find something that fit the mood - a continuation of the movies lush and noisy soundtrack (featuring Kevin Shields of My Bloody Valentine, including a classic MBV track), that wasn't My Bloody Valentine. I settled on "Frozen Guitars and Sunloop/7E 802" from Merzbow's Dharma. A big noise piece from a big noise artist, Frozen Guitars.. is also surprisingly meditative (as the album title, Dharma, would suggest) across its 31 minutes. The first half has slowly changing textures and loops, and has a wonderfully crisp cold feeling. The second half drops the loops and becomes a big slow moving roar that is both descending and ascending. It's like being near jet engines floating over an icy arctic tundra at sunup, and hearing the sound of the sun and the ice as well. I'd really like to get a good CD Radio Alarm Clock that can fade out gently in 'sleep mode' and try sleeping to this track to see what sort of initial dreams I get.

Before and after the bath, I enjoyed the view from my bathroom window (opening the top half and peering out over it) of this city and valley at night. It's not quite like being high high high above Tokyo, but it's still an enjoyable experience to me.

J. Shell, October 7, 2003 01:18 AM, in Aesthetics, Etc, Joy