Archive Page 2

For those not paying attention, there are two new Plone releases out. They have been made during the Plone Conference 2008, so some people might have missed this.

The good news I want to announce is that the buildout-based Plone Installers for Windows have been updated, and a few bugs have been fixed in the process. Namely:

1. Running ‘bin\buildout.exe’ would not show any output. That was because it was generated by running ‘bootstrap.py’ with ‘pythonw.exe’, so that a command prompt would not flash on the screen. I added an extra step at the end that re-runs ‘bootstrap.py’ with ‘python.exe’. So a command prompt will flash quickly, but at least it works right.

2. The version of ‘setuptools’ being shipped in the buildout installer was still ‘0.6c8’, which did not work with Subversion 1.5. At least one person was affected right away by this, and I only found about it because I was watching the #plone channel closely.

To fix those problems I had to make two extra releases, because they came to my knowledge after the release was already uploaded. So if you downloaded an early build of the Plone 3.1.6 buildout-based Installer for Windows, go and fetch the latest build. Otherwise, if you are willing to play with Plone 3.2.0a1, go and fetch that instead.


It’s Alive!

10Oct08

Even though our GSoC students didn’t had as much success as I hoped, they did contribute some valuable patches that pointed on the right direction.

This week, with the Plone Conference 2008 going on in Washington and the fact I did not attend this conference, I finally made enough time available to get my hands back into Zope again.

So it’s my pleasure to report that after about a week of hard work and a handful of workarounds that will need future cleaning, Zope 2 does now startup under Python 2.6.

My expectation with this now out of my way is that other developers will start looking at adjusting third-party applications (hint: Plone) to run on Python 2.6 as well.

The code is available on the gsoc-python-2.5 branch of the Zope repository, and the lucky guys at the Plone Conference will be amongst the first to hear the good news through Matthew Wilkes, which registered for a stealth Lightning Talk which should get at least some people puzzled. I would love to be there and see their faces when Matthew unveils the surprise.

Big thanks go to Tres Seaver for helping me figure out a change needed in Zope’s private version of ‘medusa’ and to Ranjith Kannikara, our GSoC student through the Zope Foundation, and his friends which did a good chunk of the hard work, namely figuring out changes to the C-based ‘Acquisition’ module and cleaning up string exceptions.

NOTE: This is not intended for production yet, it is just a technology preview to get developers to try out and start porting their own projects. Many bugs still exist, some of which might take up to a month to get fixed. Most importantly, the RestrictedPython implementation has not been fully audited for the new builtins and language constructs introduced since Python 2.4.


Man, some Linux Users (or lusers as some like to call them) really like pain and suffering.

These days, user-friendly distributions like Ubuntu make it easy for even a novice to get a desktop installation up and running smoothly. However, try to get an unusual piece of hardware working, or use a less stable distribution or piece of software, and you’ll probably face a few “challenges”. Now, someone who just want to do some word processing might refer to these as “problems” or “reasons to go back to Windows”, however, I personally find them one of the most exciting features of the operating system. Every time I have a problem, it takes some work and liberal use of everyone’s best friend Google to get over it, but each time I learn a little more about the software I’m using.

(from: 8 Reasons Why Every Computing Student Will Love Linux)


It’s great overall. The face-based clustering is really amazing. Except when it isn’t.

Face grouping is great, except when it isn't.

Face grouping is great, except when it isn't.


Word is out that Google is launching a new browser on the market: the Google Chrome. This announcement comes hot on the heels of Google’s agreement renewal with Mozilla foundation.

According to an article last week on NetworkWorld, “Mozilla generates
the bulk of its income from ties to Google, according to the company’s
latest financial figures. For the 2006 tax year — the most recent
numbers made public by Mozilla — 85%, or about $57 million of the
company’s $67 million in annual revenues for the year, came from
Google.”

My take on this is that Google is really stabbing Mozilla on the back.
A G-Browser in my POV is much more likely to steal users from Firefox
than from Internet Explorer for a reason that should be pretty
obvious: most users that care about the browser they are using are
already using Firefox. The great majority of the remaining ones will
just stick with Internet Explorer as they have been doing all along.

Goodbye Firefox. It was great to have you here while it lasted. And thanks for all the fish.


Linux is so precise. I love it. I mean, those guys can totally do math right? I used Linux on my laptop for quite some time but never realized this. But today, an emergency happened, and I was so shocked when I saw this:

bash-3.00$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 20G 19G 0 100% /
/dev/sda1 99M 15M 80M 16% /boot

I mean, 20 == 19 right? And 80 + 15 = 99. Awesome. The ‘man df’ page says ‘-h’ is for ‘human readable’. I guess the math really needs to be dumbed down for us humans to understand it.


At Enfold Systems, we have been maintaining a staging solution called EnSimpleStaging that has organically grown through the years around customer requirements. My personal opinion is that software that is driven by customer requirements rather than just by plain design based on a good ideas has a higher success rate. But let’s leave that subject to another post.

EnSimpleStaging is based on ZopeVersionControl, another great product which provides for keeping a repository of versioned objects inside the ZODB. One issue we’ve hit constantly with EnSimpleStaging was that certain methods from ZopeVersionControl depend on an actual transaction being commited to properly detect that an object has changed. While in real life this specific method will always work flawlessly due to the way using ZopeVersionControl and EnSimpleStaging works, in a test case it was very hard to test this, due to the fact that a test case is run within a single transaction which is aborted at the end of the test.

Sometime ago I’ve learnt that ZODB has a nifty feature: it is possible to wrap any Storage instance with a DemoStorage. After you do that, you can commit changes and they will be committed to the DemoStorage but not to the base Storage. That would solve not only my problem with ZopeVersionControl, but can potential solve a whole lot set of problems due to expensive setup methods in test cases.

That fact has lived in the back of my mind for longer than two years, until today I set some time aside to investigate a way to implement this cleanly in a way that could be used for my tests. Searching around, I’ve found at least a couple occurrences of other people trying to do the same. I didn’t find any solution though, so that either indicates they just gave up or that they found a solution but didn’t care enough to share it. In fact, the title of this post was borrowed from one of the message subjects, in hope that it will make it easier for other people to find a solution in the future.

My solution (with a test do demonstrate that it works) was based on Jim Fulton’s suggestion to look at zc.selenium. I’ve simply adapted it to the Zope 2 reality, using ZopeTestCase’s provided hooks and `Zope2.bobo_application` (which is the Zope 2 equivalent of the publication object from Zope 3).

Hopefully this will be of use to more people, specially to the folks that were seeking for ideas about how to implement this. It would be even better to just add this to ZopeTestCase proper, I think. Maybe someone will be interested in doing that.


I’m planning to attend the Plone Conference 2008, in Washington DC, later this year.

I have already visited the US in June, when I attended the Plone Symposium in New Orleans. On that occasion, I stayed in the US for ~30 days. This time around I was planning to bring my wife and dog (the cute Yorkie pictured at the top of this blog).

One thing that worries me though is that I’ve never took my pet on any flights, so I have no idea how pet-friendly airlines are. Just to get from Sao Paulo to the US (Houston) it’s a ~9:30h flight. My dog is usually cool with traveling. Earlier this year I drove nearly 8h to the beach and we stopped twice on the way, but she did not pee until we arrived at the destination.

So I’m putting this out there, looking for any feedback from people that took their pets on flights.