plonewars.com

March 28th, 2007

Plonegroups presentation at the Sorrento sprint

Plonegroups has unique features for democratic organising and collaborative deciding on texts. The…

Plonegroups presentation at the Sorrento sprint

Originally from [Technorati] Tag results for plone


from Yoda http://plonewars.com/2007/03/28/plonegroups-presentation-at-the-sorrento-sprint/







March 28th, 2007

The CMS Matrix – cmsmatrix.org – The Content Management Comparison Tool

The CMS Matrix – cmsmatrix.org – The Content Management Comparison Tool

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


from Yoda http://plonewars.com/2007/03/28/the-cms-matrix-cmsmatrixorg-the-content-management-comparison-tool-3/







March 28th, 2007

Andreas00 Theme — plone.org

Andreas00 Theme — plone.org

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


from Yoda http://plonewars.com/2007/03/28/andreas00-theme-a%c2%80%c2%94-ploneorg/







March 28th, 2007

Luminance Skin — plone.org

Luminance Skin — plone.org

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


from Yoda http://plonewars.com/2007/03/28/luminance-skin-a%c2%80%c2%94-ploneorg/







March 28th, 2007

Ian Bicking: On form libraries

Some time ago I wrote a post on form generation. It
mostly came from my experience with FunFormKit, early versions of FormEncode,
and then what FormEncode is now (which is
strictly a validation library).

Now there’s some new form generation libraies in the works;
ToscaWidgets, Django newforms, and I hear
rumors of a few others. I feel bad poo-pooing other people’s work,
but I don’t think this approach is a good approach.

A form generation library is a hard library to write. You have to
balance complexity and features. There are a lot of potential
features to think about. How do you tweak the forms? How do you
control layout? How do you handle repeating form elements? How do
you handle elements that require Javascript? Server-side resources
like CSS and Javascript? Server-side communication like
auto-complete? A simple library can simply not handle a lot of
these. But very simple forms don’t need form generation
libraries. So a simple library only handles a narrow band of use
cases. A complex library can potentially handle all these cases, but
can be difficult to handle in most cases.

I will assert that as the libraries are usually designed, there is no
good balance. Not all problems have feasible solutions. Form
generation libraries are one such problem, but they don’t seem to be
such a problem.

There’s a cycle going on in these libraries. A developer has certain
requirements. Usually they also hate HTML, and may very well be
working with an awkward templating language, and maybe they aren’t
very excited about the task at hand and building a library is a
pleasant diversion. But anyway, they Do The Right Thing (or so they
think) and try an existing library. It’s complex, it doesn’t match
the way they think about the problem, the bugs in their code are hard
to figure out, and adjusting the things they (or their boss) cares
about is difficult.

And they think “I can do this so much more simply!” The developer is
kind of right. They know exactly what they want to do (now), and
they can improve their productivity some.

The problem is that no library ends there. It can’t end there.
Because someone uses the library, and the code must be maintained.
Form generation is a hard thing to maintain, because it has to be
quite actively maintained. New fields are added. New cases and
exceptions come into being. Anything that touches UI can be redefined
in weird and unexpected ways. Good UI is usually eclectic and
nonsensicle from the perspective of a programming. UI should be
consistent with the user’s notion of the domain, not the program’s
internal modeling of the domain, and it is uncommon that the two
really match up.

So you get new requirements over time. A list of checkboxes used to
be reasonable, but then the number of options expanded too far and now
you need two columns of checkboxes. So you add in a little bit of
code, both in the library and the application, to handle that case.
You want to have a text field that contains its own label when its
empty. The validation becomes increasingly complex. Maybe you have a
multi-screen form, or maybe a form with optional fields, or who knows.
So you add code to the library and the application each time (if you
control both of them). It gets more and more complex while at the
same time
the developer’s familiarity with the library code becomes
more and more remote. And that’s not even to mention when a
non-programmer wants to tweak the HTML, or there is developer
turnover, or when you don’t control the library at all…

It’s a mess. And so someone comes along and says “I can do this so
much more simply!” and it starts all over again.

The problem domain is wrong. I think there’s a better approach, but
I’m too lazy to finish it. So I’ll lay down the design here, with
little expectation that anything will happen because of it, but just
maybe this will connect with someone.

First, validation: I like how FormEncode works, I think it’s the right
model. Validation completely separate from the rest of the system,
and you can programmatically construct the validation so you can embed
it in other systems if you want (and embedding it is probably a good
idea).

Second: forms. First, the simplest model: write it in a normal
template. But this is annoying people will cry. Why?

  1. Filling in defaults is annoying. You have to do this little dance:
    is the value in the request (e.g., resubmission)? Then use that.
    Is it passed in through some defaults? Then use that. Otherwise?
    Maybe another default, or blank.
  2. Filling in errors is annoying. Similar dance to defaults.
  3. The <label> tag is somewhat annoying to generate, which is why
    many very high-traffic websites still don’t properly do labels.
  4. I suppose the HTML is annoying in general, though it’s only
    slightly more verbose than the programming code that might replace
    it.
  5. Javascript can be annoying, and many web developers still aren’t
    comfortable with Javascript.
  6. Getting all the right Javascript and CSS files in place, and
    linking them up with the appropriate fields is awkward.
  7. Ajax callbacks are really annoying.
  8. Nested and repeating fields compound every other kind of annoying.
  9. It’s hard to reuse any of this.

My response is that these issues can be resolved without form
generation libraries. formencode.htmlfill addresses 1 and 2. It’s not
perfect, but it’s usable. Things like WebHelpers can help with 4. Neither of these
needs to be the implementation, and both could be improved. But
while remaining in their scope they can only be improved a little,
which is important.

Unobtrusive Javascript solves 5 quite
well. I think a tool for solving 6 — the proper inclusion of
dependent CSS and Javascript — could be handy. I imagine <input
type="date" js-require="DateInput">
calling some code that figures
out where DateInput is (probably building on something like JSAN
package metadata
)
and puts the appropriate code in the head of the page.

7 and 8 are addressed quite nicely by the Web Forms 2.0 WHAT-WG specification, and tools building on those
models would be excellent.

And once you have all this, I think 9 is much more approachable.
Because you don’t need a framework, you just need stuff that generates
blank HTML that also uses a few of these simple conventions.

Notably, these techniques embrace the abstractions HTML and
Javascript already allow. Also, each tool can be useful on its own,
and can be used, not used, or reimplemented on its own. The hard part
is that any one tool seems terribly simple and lacking features
compared to a form generation framework. But if slow and steady can
win the race it might not matter; the other form generation frameworks
will suffer the churn of the reimplementation cycle while these
simpler and duller tools will better stand the test of time. And even
if they don’t, unlike a framework the healthy decoupled set of tools
can suffer the failure of one piece (in design, maintenance, or
implementation) without compromising the entire stack.

Now someone please go build the missing pieces, because I’m trying
really hard not to start more projects.

Ian Bicking: On form libraries

Originally from Planet Plone


from Yoda http://plonewars.com/2007/03/28/ian-bicking-on-form-libraries/







March 28th, 2007

New List for Add-on Product Developers

Many Plone users eventually take the plunge into developing their own add-on Products.  Now, there’s a place to turn for help — the new “Add-on Products Developers” list.

You can:

Subscribe and post via mail
Subscribe and post via news via Gmane. Recommended option.
Browse the archives and post via Gmane.
Search the archives via Gmane.

There’s already an active conversation going, and I think this is going to be an incredibly useful resource for the fast-growing community of add-on Product developers.

This list, and all other Plone community lists, can be found at: http://plone.org/support/

New List for Add-on Product Developers

Originally from The Plone Blog by Jon Stahl


from Yoda http://plonewars.com/2007/03/28/new-list-for-add-on-product-developers/







March 28th, 2007

The Plone Blog: New List for Add-on Product Developers

Many Plone users eventually take the plunge into developing their own add-on Products.  Now, there’s a place to turn for help — the new “Add-on Products Developers” list.

You can:

Subscribe and post via mail
Subscribe and post via news via Gmane. Recommended option.
Browse the archives and post via Gmane.
Search the archives via Gmane.

There’s already an active conversation going, and I think this is going to be an incredibly useful resource for the fast-growing community of add-on Product developers.

This list, and all other Plone community lists, can be found at: http://plone.org/support/

The Plone Blog: New List for Add-on Product Developers

Originally from Planet Plone by Jon Stahl


from Yoda http://plonewars.com/2007/03/28/the-plone-blog-new-list-for-add-on-product-developers/







March 28th, 2007

Plone Costs for Non-Profits (Was Re: [Plone-NGOs] Initial thoughts ona “Plone for Nonprofits” bundle)

Plone deveopment costs

Plone Costs for Non-Profits (Was Re: [Plone-NGOs] Initial thoughts ona "Plone for Nonprofits" bundle)

Originally from del.icio.us/tag/plone by tomin.fhl


from Yoda http://plonewars.com/2007/03/28/plone-costs-for-non-profits-was-re-plone-ngos-initial-thoughts-ona-plone-for-nonprofits-bundle/







March 28th, 2007

Welcome to PloneDocs — PloneDocs

Welcome to PloneDocs — PloneDocs

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


from Yoda http://plonewars.com/2007/03/28/welcome-to-plonedocs-a%c2%80%c2%94-plonedocs-11/







March 28th, 2007

Reinout van Rees: Plonegroups presentation at the Sorrento sprint

Plonegroups has unique features for
democratic organising and collaborative deciding on texts. The code is
owned by a foundation set up by Partecs from
Rome: telematics freedom . It aims
at democratically run organisations (postal stamp collectors club,
democratic parties, etc.).

They’re doing something funny with their license. The default current
GPL license doesn’t cut it because everyone can use and change the
code without the need for distributing the changes as long as they run
it behind a webserver. This is a known loophole in many open
source/free software licenses. They’re closing this loophole with some
additional limitations (”this code is more free” :-) ).

They want to release a first alpha by the summer, based on plone 3.0.

They have added ways to comment on text. Individual words in the text
are highlighted according to the amount of comments those words have
gotten. Seems like a pretty good idea. You can suggest changes to
texts and people can vote on it.

Rocky asked about the name. The reply was that they’re happy to change
the name if the plone foundation wants them to. It can go either way:
it can be nice marketing or it can be a marketing risk.

He got some questions about the license. Everyone who wants to look at
the code has to sign a very short non-disclosure-agreement. If you
want to modify the code, you need an additional (and longer) modifier
agreement.

Rob Miller mentioned the open planning project which hasn’t got the
same goal, but is mostly in the same area. So there could be quite a
number of areas where they could share code. Open planning releases
most of the code under the GPL (or zope’s ZPL if needed). Using code
from and mixing code with something with a somewhat modified GPL
license sounds a bit hard to him. The reply was that this is a known
problem of this type of licenses. Another point is that
google/yahoo/etc can take all GPL code and use it to strengthen their
commercial offerings without needing to give something
back. Plonegroups thinks this is something that needs to be fought.

In the end I was left with the impression that they’re taking away
some of the rights I’m used to in order to give me more rights. But it
still smelled like I ended up with less rights. It is
probably something that is very hard to explain. I do doubt whether
they can generate a lot of traction in this way, as you’ve got to get
people to agree, which takes time: which is often in short supply.

Reinout van Rees: Plonegroups presentation at the Sorrento sprint

Originally from Planet Plone by reinout


from Yoda http://plonewars.com/2007/03/28/reinout-van-rees-plonegroups-presentation-at-the-sorrento-sprint/