Content versioning

14:47, Monday April 11th, 2005 • feeling reflective • no comments

Everything in a CMS should be versioned. Zope 3 has undo, but that's not object-specific, it's system-wide, so if you make a fatal change and then do ten or so things to another object, you've lost your undo for your fatal change.

Everything: content object, images, stylesheets and especially products (or modules, InfoCMS's equivalent) should be version managed. The user should be able to just select from the last X versions and branch from there, without destroying newer versions.

Zope 3 does have a versioning package, apparently but it's unclear what the scope of the facilities is. CPS apparently implements it on Zope 2. InfoCMS used to version page object content, but I honestly can't remember if I kept that feature when I reimplemented it all with page objects.

Edit: Zope 3 version control is definitely happening in the right way. People have the same ideas as me and while the code looks to be in it's early stages, it seems to implement much of the required functionality. The critical thing is: will implementors make use of it for their products?

Zope 3: A new frontier

5:44, Monday April 11th, 2005 • feeling reflective • no comments

Excuse the poor grammar and structure, I'm exhausted as I write this.

I've spent the weekend reading about Zope 3 and playing around with it a bit. There's lots of things I'd like to get down but not knowing Z2/Plone/etc I'm not sure that sending this to zope3-dev is something I should do just yet.

Anyway, to summarise, Zope 3 is really a replacement for Zope 2 and CMF, it seems, though not the out-of-the-box products like Plone or CPS. It provides the separation of concerns that made CMF useful. The underlying code is very clean, almost too clean (it's almost Java :-). Basically it's a very high quality implementation of a lot of really useful software development layers.

Interestingly, some of the sentences from the Zope 3 Book could have been lifted straight from the InfoCMS manual stuff I wrote :-). They've got the whole define a form schema and generate as much as possible bit going on and writing content plug-ins is at least as simple as with InfoCMS, and has access to that much more power.

The problem is that they haven't really got into the portal/portlets stuff yet. It's possible that they're willfully avoiding it for now, but this does make the thing much less useful for my purposes. My plan is to spend sometime later this week or next weekend looking into Plone and Archetypes and stuff, but until then I thought I'd just write down what I think a portal system needs to do.

  1. Allow portal page objects to be created in the ZMI
  2. Allow portlet objects to be created under portal pages, the portal page will then assemble content from its children
  3. Users and admins should be able to add, remove and re-order portlets with their instances of portal pages, no disk-based code or XML should be required for this process.
  4. Allow some "global" content to be accessed by portlets, for example a calendar like Plone's
  5. Do all this in a way that freely allows content types from currently existing Z3 products, such as zwiki or zblog, to be used as portlets

#3 is really the essence of the thing. With 3 in place a relatively skilled user-but-non-developer (I'm thinking my colleague JC here) can log into the ZMI and build a site by assembling a page with a ZPT portlet and blog portlet here, adding a wiki here and writing some basic ZPT pages, e.g. a contact page. He can then hand that site to me, probably by zsyncing it to disk, and I can theme it by making a skin.

I could write this portal support code myself, but it would be a small-fry approach and wouldn't have any of this workflow/metadata/cool stuff magic that (it sounds like) makes Plone so grrreat.

So, more reading required really. I might have to get in touch with Nuxeo, the guys behind CPS, who seem to be getting into Zope 3 and see what their roadmap looks like. This isn't really Cohack's major focus though, so to some extent I have to wait this one out.

I will definitely be investigating Plone next though. It's going to be a bit of a shock having spent so much time looking at lovely lovely Z3 code, but I'm hoping that the upper levels of Plone will be a) almost as nice and b) all I really need to play with.

Confusion Management Systems

5:34, Friday April 8th, 2005 • feeling reflective • no comments

I am a criminal. I have commited the cardinal sin of reinventing the wheel. Of course, reinventing the wheel is what programmers enjoy the most so we all do it constantly, but this is serious. I've written a mid-sized complex web application framework. Already I'm in competition with hundreds of other products. I haven't defined my goals very well, which is practically unforgiveable in such a saturated marketplace!

Anyway, this week I went to visit Blueorange. They are a web software company who have done some excellent things with Zope, Zope is to the open source CMS's what Microsoft is to software companies. I spent a bit of time reading about Zope again today. I am not unfamiliar with it and I know that it gets a lot of things right. It's philosophy seems to be to enable non-technical users to build powerful dynamic websites. It is big and complex, but overall this it does hit its targets, especially when you throw Plone into the mix. Plone is to Zope what Firefox is to Mozilla, maybe, the final realisation of a long-held dream. What is it with me and comparisons today?

Anyway. Zope is an extremely powerful content management system. It's damn ugly though and from what I've heard from my main Zope developer friend, it's a bitch to skin. This is basically where I've tried to make InfoCMS useful. It's really harder to create and manage content, but quick and hassle-free for developers to skin. I like the XSLT approach. Yes XSLT is not very pretty, but it is centralised. You can take an InfoCMS site and quickly build layers of XSLT and CSS on top of the default skin to create highly customised themes. And it's easy to do this, rather than chasing down the correct skin object for the content you want to change and fighting the hierarchy, you're just creating toplevel rules and there's nothing you can't change with the right XPath expression.

The objects provided in InfoCMS don't offer any like the power that Zope's products do really. There are no blogs, wikis, calendars, ecom engines and so on. This isn't too surprising as Zope is ages old and has millions of developers and InfoCMS isn't even stable and has one. So I find myself wishing that I could marry Zope's huge quantity of available features and products and it's content management power with InfoCMS's skinnability and manageability from a designer or design implementation point of view. I've tried to do some reading on XSLT and/or skinning within Zope and Plone, but it doesn't look like it's possible to strap XSLT on to the front of an entire site like it is with InfoCMS.

I'm fed up with speccing and coding complex functionality though. This is why I wrote InfoCMS, because I wanted a reusable code library that could be turned to just about anything. However, I have by no means built up the head of objects that I was hoping for and site-building still involves way too much coding and not enough pointing or clicking. The Zope developer has all the ammo, they can pull products from hundreds of sources to plug functionality gaps and the ZMI provides a consistent way to pull these elements together without code. Or least it looks that way to an outsider :-). You then have to create DTML or TAL and stuff, which is where it gets hairy. With Plone they seem to almost have accidentally addressed this by creating a default skin that everybody just keeps! Not really ideal.

XSLT and CSS provide powerful grammars for expressing design as rules and that gives the designer much needed power to control sites of thousands of pages without spending an entire lifetime doing robotic updates. It means design updates can be performed very very quickly. I've yet to find a CMS that capitalises on this flexibility. I've tried to write one, but at the moment I'm having a crisis of direction :-). Plus I want to write more Python, not PHP.

Bike auction

16:14, Wednesday April 6th, 2005 • feeling relaxed • 1 comment

All teh bikexorz

I went to an auction of lost property and stolen stuff recovered by the police at Lloyds Auction House in Wandsworth to try and buy a new bike.

There were loads of bikes. Most were quite shabby, often just dirt, but quite a few had some problems like rusty chains, stuck derailleurs, that kind of thing. There were a couple of really quite nice bikes there too, a Specialized, a few nice Raleighs, etc. I wasn't quite prepared to inspect the bikes as thoroughly as required, I didn't have any paper for example, so I decided just to watch rather than buy. I had a list of about ten bikes that I was interested in.

The list

They had loads of other stuff to clear out first, which I didn't expect, and that took a while so I only stayed to hear the sales of a small number of bike lots. Many of them were grouped into twos and threes and they seemed to be going for anything from £10 to £160 with the average probably being about £40. Bear in mind that's for several bikes, but will also have VAT and buyer's premium (35% combined) on top. You had to put down a £40 deposit to bid, but that was refundable.

So overall, like anything, it's possible to get a bargain if you're prepared to put the work in.

Or at least that's what intend to do when I go back. Phone Lloyds to find out when the auctions are if you want to go too!

Humph

4:20, Friday April 1st, 2005 • feeling insensed • no comments

I sat down to get some serious work done this evening, but the Linux box hosting the application I want to work on died for no reason. One minute it booted fine, the next it wouldn't respond to SSH. I rebooted a few times but nothing came back. I plugged it into a monitor and it seems to have decided that it doesn't want to mount it's /proc. A sure sign of total fucking disaster. The partition is XFS, but xfs_repair produced only a screenful of text and certainly no results.

This is all very fucking irritating. My client will be most pissed off at this and I will have to go over to them to get a new box or to get this one fixed. I'll lose at least a day and a half over this shite when I've got a million better things to be doing. I really wanted to get stuff moving today and I've been totally frustrated in the desire to get some ticks next to things on my todo list.

I reckon it's a disk problem. I suspect the box has been thrown around by a courier a bit too much, so my vitriol is reserved for him I think. Utter utter bastard that he is. Probably.

Page 21 of 113

← previous page, next page →

Choose another page: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113 or return to the most recent entries.

Last updated at 15:53, Tuesday August 12th, 2008. All times are shown in 24-hour clock format and are BST.

Rate my journal on bloghop.com: the best pretty good ok pretty bad the worst

aftnn.orgafternoon's journal → page 21