plonewars.com

August 2nd, 2007

MXM Project Manager Plone product, content management software

"mxm Project Manager" is a simple but efficient project management tool. It is designed to handle project with less than a hundred participants. The typical use case would then be medium sized organisations.

MXM Project Manager Plone product, content management software

Originally from del.icio.us/tag/plone by jhescobar


from Yoda http://plonewars.com/2007/08/02/mxm-project-manager-plone-product-content-management-software/







August 2nd, 2007

Portfolio – Quintagroup

Portfolio – Quintagroup

Originally from del.icio.us/tag/plone by jhescobar


from Yoda http://plonewars.com/2007/08/02/portfolio-quintagroup/







August 2nd, 2007

Authoring your web content with the Plone CMS

Authoring your web content with the Plone CMS Plone CMS Logo Plone is a big hairy monster … time. This tutorial is not meant as a step-by-step tutorial on using the Plone system … involved with using Plone on a day to day basis. Put on your thinking caps and let’s get started…

Authoring your web content with the Plone CMS

Originally from [Technorati] Tag results for plone


from Yoda http://plonewars.com/2007/08/02/authoring-your-web-content-with-the-plone-cms-2/







August 2nd, 2007

#1: BitTorrent integration — Plone CMS: Open Source Content Management

#1: BitTorrent integration — Plone CMS: Open Source Content Management

Originally from del.icio.us/tag/plone by open.source.architect


from Yoda http://plonewars.com/2007/08/02/1-bittorrent-integration-%e2%80%94-plone-cms-open-source-content-management/







August 2nd, 2007

Content Management Tools in Technical Communication : Content …

Ann, have taken a look through the list of Open Source CMS in your suggested link at ; ource-cms/ and would respectfully suggest that you widen the list to include Plone- http://plone.org. … High Speed Web Hosting High Speed Web Hosting

Content Management Tools in Technical Communication : Content …

Originally from Most recent posts on plone – Quality Blog Search – Strategicboard by Managed web host


from Yoda http://plonewars.com/2007/08/02/content-management-tools-in-technical-communication-content/







August 2nd, 2007

Ian Bicking: Atom Models

I’ve been doing a bit more with Atom lately.

First, I started writing a library to manipulate Atom feeds and entries. For the moment this is located in taggerclient.atom. It uses lxml, as does everything markup related I do these days.

I came upon a revelation of sorts when I was writing the library. I first started with a library that looked like this:

class Feed(object):
    def __init__(self, title, ...):
        self.title = title
        ..
    @classmethod
    def parse(cls, xml):
        if isinstance(xml, basestring):
            xml = etree.XML(xml)
        title = xml.xpath('//title').text
        ...
        return cls(title, ...)
    def serialize(self):
        el = etree.Element('{%s}feed' % atom_ns)
        title = etree.Element('{%s}title' % atom_ns)
        title.text = self.title
        el.append(title)
        ...
        return el

Obviously there’s ways to improve this and make it less verbose, and I went down that path for a while. But then I decided the whole path was wrong. Atom is XML. It’s not the representation of some object I’m creating. If I have something that can’t be represented in XML, it isn’t Atom, and it doesn’t belong in my Atom-related objects.

So instead I started making lxml more convenient when using Atom. I don’t keep any information except what is in the markup, I just make it more convenient to access that information.

I used lots of descriptors to do this, as the same patterns happened over and over. For instance, the Feed object is fairly simple:

class Feed(AtomElement):
    entries = _findall_property('entry')
    author = _element_property('author')

Which basically means that feed.entries returns all <entry> elements, and feed.author returns the single author element.

There’s also accessors for text elements (like <id>) and date containing elements (like <updated>) and just to access XML attributes as Python attributes.

There’s a number of advantages:

  • No hidden state.
  • No deferred errors, since everything is always represented in the XML infoset.
  • All XML extensions work, even though my classes don’t know anything in particular about them. There’s a full API for manipulating the XML that you can use, you don’t have to use my APIs.
  • Even more obscure kinds of extensions work fine, like a custom attribute on an element. There’s absolutely zero normalization that happens.
  • I only have to write the parts where the normal XML (lxml) APIs are inconvenient, so the implementation stays simple.
  • There’s no confusion over which object I might be talking about in my code. There’s no distinction between the XML object and the domain object.

Since then I’ve been working on a Javascript library for handling Atom. It’s not as elegant. I am trying to keep to this same principle, but of course I can’t actually extend the DOM and so I can’t add convenience methods. So instead I’m making a class that lightly wraps the DOM objects, with explicit getters and setters that simply read and modify those DOM objects.

One thing that I have found very useful in my development on the Javascript side is doctest-style testing. You can see the test, but to run it you have to check it out (it uses some svn:externals which you don’t get through the direct svn access). After using that testing some more and being pleased with the result, I decided to package the Javascript doctest runner a bit better. I removed the framework dependencies, did a bit of renaming (now it is doctestjs or doctest.js instead of jsdoctest), wrote up fairly comprehensive docs, and uploaded it to JSAN (though at the moment the trunk from svn is probably better to use). I think it’s an excellent way of doing unit testing in Javascript, much better than any of the alternatives I’ve seen. It even has some notable advantages over Python’s doctest, like if you are using Firebug (which you must if you do Javascript development) you get a console session that runs in the same namespace as your tests, so you can easily do inspection of the objects if there’s a failure.

I’m not sure about JSAN. It’s nice to have an index. But I think they copy stuff from CPAN a bit too much. Why should you have a text README file? That’s just silly; of course Javascript documentation should be HTML. They batch processing. Processing one package a day
on the fly shouldn’t be overwhelming. They want a MANIFEST file. The standard metadata file is YAML, not JSON. This should all be a little more Javascripty in my opinion. But they also accept any kind of upload, so there’s nothing stopping you from ignoring what you don’t
care about. I’ll probably improve the packaging of doctestjs a bit in the future, and still ignore the parts I think are silly.

Ian Bicking: Atom Models

Originally from Planet Plone by Ian Bicking


from Yoda http://plonewars.com/2007/08/02/ian-bicking-atom-models/







August 2nd, 2007

Ian Bicking: New Blog Software

I’ve switched my software over to WordPress. This was long overdue, as anyone who ever wanted to read anything at all on this site probably knows. Sometime I should really write an article reflecting on the failures of my previous blog software. Lets just say that flat files aren’t so hot either.

Now that my software doesn’t suck, I have lots of posts I have been embarrassed to write because every new post potentially introduced new people to my crappy site.

Hopefully everything is setup correctly, redirects, archives, and the new feed.

My one worry is WordPress comments, which suck a bit. They shouldn’t collect the horrible quantity of spam that the old site has, so that’s good, but I hate disconnected streams of comments. I’ve tried to modify the theme on this site to be more roomy, with less of the excessive whitespace that has become the norm. I hope this whitespace kick goes the way of Creating Killer Websites Using Table Based Layout. I.e., it’ll soon look dated and everyone will move on. So I hope you’ll have more than two inches of width to comment in. Honestly I wonder if I should just ditch WordPress comments and use something else entirely, like some kind of forum software and rig in some way of including the comments in the theme. I wanted to install threaded comments, but the installation process is rather invasive.

For editing I turned TinyMCE off (ugh), and installed a restructured text plugin. It took a while to figure out, since I have to include .. -*- mode: rst -*- in the header of each post. Oh well, a minor inconvenience. I used Text Control to enable Markdown in comments, but I had to replace the actual markdown.php it used, which was broken.

Ian Bicking: New Blog Software

Originally from Planet Plone by Ian Bicking


from Yoda http://plonewars.com/2007/08/02/ian-bicking-new-blog-software/







August 2nd, 2007

PloneiCalendar – Ingeniweb – Plone

PloneiCalendar – Ingeniweb – Plone

Originally from del.icio.us/tag/plone by lucciano


from Yoda http://plonewars.com/2007/08/02/ploneicalendar-ingeniweb-plone/







August 2nd, 2007

How to update language files – Plone translation files — Plone CMS: Open Source Content Management

How to update language files – Plone translation files — Plone CMS: Open Source Content Management

Originally from del.icio.us/tag/plone by danny.hope


from Yoda http://plonewars.com/2007/08/02/how-to-update-language-files-plone-translation-files-%e2%80%94-plone-cms-open-source-content-management/







August 2nd, 2007

Products — Plone CMS: Open Source Content Management

Products — Plone CMS: Open Source Content Management

Originally from del.icio.us/tag/plone by danny.hope


from Yoda http://plonewars.com/2007/08/02/products-%e2%80%94-plone-cms-open-source-content-management-4/