Author Archive

Balloon Sprint – 5 spaces available

Matt Wilkes - July 28th, 2009

Hello all!

The Balloon Sprint at the Team Rubber offices is fast approaching!  For all of you who’ve signed up and not yet sorted out travel/accommodation, you should do that now.

For the rest of you, there are 5 places remaining due to people who’ve had to cancel, sign up on the open plans site now for a chance to sprint on Plone 4 and help it take shape.  This is the only sprint organised within the PLIP implementation period, so there will be lots to help with.

The sprint is open to everyone, from people who’ve just started working with Plone to core developers, there’ll be something for everyone.

Hope to see you there.

Ballooning

Matt Wilkes - February 17th, 2009

balloon Ballooning

Hi all!

We’re pleased to announce the Bristol Balloon Sprint, a nice, friendly Plone sprint in Bristol, UK in early August.  Some of you will have heard about it already, as it’s been announced to our local Plone usergroup, Wessex Plone, already. (What’s a sprint?)

We’ve got a good contingent of skilled developers, testers and usability experts coming and are planning to work on making both Plone 3 and Plone 4 better.  This sprint is open to everyone, whether you’ve never sprinted before or are a core developer (we have both already) you’re more thana welcome.

So, if that sounds like your kind of thing, join our openplans page and put your name on the participants list.  Also, please add some ideas for topics, we’re having a discussion in the office today about more tasks, but if there’s something specific you want to do, please list it!

Finally, if you’re interested in sponsoring the sprint, you can contact Jake Wittlin and have a chat, we’ll make sure your logo goes on the plone.org event page and the sprint pages, as well as tell the attendees how awesome you are.

Ultimate browser showdown

Matt Wilkes - January 14th, 2009

Forget CSS.  Forget JS features.  Forget it all, we’ve finally got the be-all-and-end-all test to find out which browser/os combination is best!  The ACID test is history, bring on the unicode snowman test!

NB: Results may vary depending on your own individual awesomeness.  Terms and conditions apply. See back of pack for details.

Browser OS Render sample Score
Firefox OSX 3196803772 bf6e1fae26 m Ultimate browser showdown- 10/10
Firefox Windows 3195944033 217f017ac9 m Ultimate browser showdown 1/10
Opera
Firefox
Linux 3195944097 76b423eca2 m Ultimate browser showdown 8/10
IE 5.2 OSX 3195958993 b1219cea65 m Ultimate browser showdown 0/10
IE 7 Windows 3196788762 6a259848dc m Ultimate browser showdown 9/10
Safari
Opera
OSX 3196788944 ba8c7dc5c5 m Ultimate browser showdown 6/10

Surprisingly few browsers bothered to render the snow, an integral part of snowman longevity. Clearly these browsers are not suitable for high availability applications. Firefox on windows gets a token point for marshalling a few pixels, but it’s not the kind of snowman I’d like to find in my garden.  IE for Mac needs to be uninstalled immediately (we had to check 5 macs before we found a copy).

Linux could have scored signficiantly higher, all the requisite parts are there, but the body/head size ratio is a bit too far off which leaves it less than pretty, which leaves us to choose between Firefox on OSX and IE on Windows.  IE doesn’t have the snow, so we’re left with Firefox on OSX being the best browser, with IE in a close second.

There you have it, it’s better to browse the net with windows and IE than Ubuntu and Firefox!  Scientificly proven.

Mr Bent brings us colour

Matt Wilkes - December 14th, 2008

I’ve been at the performance sprint organised by Netsight for the last few days, working with Andi Zeidler and Florian Schulze on a package called mr.bent that allows us to profile different parts of plone and get aggregate results.

The first alpha of mr.bent is out on PyPI so now I’ve been working on some Plone integration.  It’s a way off, but so far I have this:

3107271401 118cff6950 o Mr Bent brings us colour

Which is the front-page of plone with OrderedViewletManagers and PortletManagers colourised on render time.  The portlet on the left contains the squares of numbers 500 to 520, to demonstrate a slower render.

The plan now is to get it to include individual timings for portlets, viewlets, managers and the page.  We’re also tracking ZODB object wakes and catalog searches too.

Snakeskin 1.1

Matt Wilkes - November 27th, 2008

A few months ago I posted about a new paster template I’d made called SnakeSkin, now this has been in use at rubber for a bit I’ve had chance to do some updates (as today was non-client work day).

 
$ easy_install -U teamrubber.snakeskin
 

Version 1.1 should have a slightly less confusing set of questions and the bug with out-of-order skinlayers has now gone.

If you’ve not used snakeskin before, it is for client customisations of an existing theme made with plone3_theme (or similar by hand).  You give it the name of the package and the name of the skin layer that it provides and it generates a derivitive theme.

We use it a lot for Opinion Suite, our e-consultation system, as every client has a branded version of a central skin it’s important that we repeat ourselves as little as possible.

Let me know what you think, comments/bugreports/feature requests always welcome to matt.wilkes@teamrubber.com.

Debugging functional tests

Matt Wilkes - September 19th, 2008

I’m sure I’m not the only one that’s got fed right up with having a functional plone test that doesn’t quite work right.  PDB to the rescue, you’d think, but you end up with errors like

(Pdb) admin.open("http://nohost/plone/@@")
*** HTTPError: HTTP Error 500: Internal Server Error

Well, thanks Python.  That’s grand.  I used to have lots of fun with a testbrowser visiting http://nohost/plone/error_log/manage_main and poring through HTML.  Not ideal.

So I’ve automated it, introducing teamrubber.pdberrorlog

The above example would then become:

(Pdb) import teamrubber.pdberrorlog
(Pdb) admin.open("http://nohost/plone/@@")
*** HTTPError: HTTP Error 500: Internal Server Error
(Pdb) errorlog
Error: 1221836644.810.255510740468 (TypeError : 'unicode' object is not callable)
(Pdb) errorlog 1221836644.810.255510740468
Traceback (innermost last):
Module ZPublisher.Publish, line 106, in publish
Module ZPublisher.BaseRequest, line 327, in traverse
Module Products.Five.traversable, line 118, in __bobo_traverse__
Module zope.app.traversing.adapters, line 124, in traverse
Module zope.app.traversing.adapters, line 163, in traversePathElement
Module zope.app.traversing.namespace, line 121, in namespaceLookup
Module zope.app.traversing.namespace, line 363, in traverse
Module zope.component, line 165, in queryMultiAdapter
Module zope.component.site, line 75, in queryMultiAdapter
Module zope.interface.adapter, line 475, in queryMultiAdapter
TypeError: 'unicode' object is not callable

It’s quite crude, but hopefully it will be useful to people.

LUG Radio Live 2008 – Saturday

Matt Wilkes - July 19th, 2008

So, after going all round the Wrekin on a Travel West Midlands bus trying to get into Wolves I have now ended up at LUG Radio Live.  I’ve just listened to a 60 minute talk on bzr from a Canonical employee and Bazaar developer Robert Collins.  After giving us an overview of Bazaar and the design goals (laudable principles such as user friendliness and hackability), he showed some demonstrations of some cool plugins.

I very much enjoyed the bzr search command which I could imagine using all the bloody time.  There’s also an IRC bot plugin, much nicer than using the CIA disc image I have been.  As the SVN binding are different in design to git (which put me off dVCS systems) I’ve decided to have a play next week and see how it works in practice.

I also have a SUSE cuddly toy.

Just a bunch of buildout changes

Matt Wilkes - July 15th, 2008

You may have noticed that version 0.2 of Malthe Borch’s truly excellent JBOT came out last night.  We use this in some of our themes, and hence has found its way in as a dependency for a good deal of our recent projects.

I ran development buildout last night and suddenly saw a lot of zope 3 components being downloaded, which if you’ve done it before you know is a recipe for disaster.

It seems one of the new features in version 0.2 (aside from the long-anticipated browser layer support) is it now correctly defines its dependencies.  This is a Good Thing™ but it does mean that JBOT now requires you to use fake-zope-eggs in your buildout.

Your zope2install section now needs to look like this:

[zope2]
recipe = plone.recipe.zope2install
fake-zope-eggs=true
url = ${plone:zope2-url}

Not a big change, but it will cause Zope to advertise the packages it provides properly.  Incidentally, you also need to do this to try out plone.app.batch, a summer of code project that’s looking for comments for its demo.

Google Charts in Zope

Matt Wilkes - April 29th, 2008

This afternoon was spent tidying and open sourcing packages that we’ve been meaning to release back to the community for a long, long time. Today’s lucky winner was teamrubber.googlechart (formerly ZGoogleChart) written by Richard Wilson. This also has the honour of being the first product released in our namespace.

teamrubber.googlechart is a Zope2ish wrapper for pygooglechart, it provides an object that can be added to the ZMI to configure some standard options such as colours to be used which then exposes a very basic API. The most useful (in our humble opinion) charts are there already, but we’re open to suggestions as to what should be supported next.

<img tal:attributes='src
  python:here.chart.getSimpleLineChart(data={
                "1":[1,2,3],
                "2":[3,2,1]
                })'
/>

No automated tests yet, coming in 0.2.1. There are also a couple of known bugs with large data points, but we thought we’d open for comments/suggestions sooner rather than later.

 http://pypi.python.org/pypi/teamrubber.googlechart/0.1 

Saturday in Paris

Matt Wilkes - April 26th, 2008

Today was my first day actually at the Plone 3 Paris sprint – last night I got here just in time to go to the pub.  This morning I was looking over MrTopf’s plone.app.localconf code which uses Five sitemanagers to store configuration of subsections of a site as local adapters with the intention of having local configlets to allow people to reconfigure parts of their site.

This fits in quite well with collective.sectionsubskin: my product that allows for variable interpolation into CSS via marker interfaces on folders.  It seems it should be possible to use PersistantDict based local utilities or just references to .props files to implement the same functionality with localconf. It would be great if CSSManager could be integrated with this, allowing users to go to a local CSS Manager to modify the appearace of folders or even individual content items.  Which would be nice.

Then, after a lovely pizza and glass of rosé with the sun beating down on us we went for a group photo in the park.  And got lost.  After that cerfuffle I moved onto working with PloneSoftwareCenter with Tarek, specifically allowing multiple related eggs to be grouped into the same PSCProject so eggs that are conceptually just supporting products for a larger project won’t crowd the listings.  This obviously had to work with the new PyPI support so new eggs that are added are put in the correct place.  I spent most of the afternoon working on making sure that two projects couldn’t claim responsibility over one egg.

What keeps catching my eye is the Misty theme that DaftDog et al are working on, whenever I walk past their laptops there’s something pretty on screen.  Buildbot support in buildouts was also mentioned, but I had zoned out a bit so don’t know exactly what was going on, but the concept of a buildbot recipe is pretty cool, I’ll look into that later.

There’s so much going on I’ll leave it to the other participants to blog about what they’re doing; it’s almost time for the pub.