[Twisted-web] Copying Nevow features into Twisted Web (was Re: Status of divmod-dev list?)

Werner Thie werner at thieprojects.ch
Mon Dec 20 10:43:46 EST 2010


On 12/20/10 4:19 PM, Colin Alston wrote:
> On Mon, Dec 20, 2010 at 5:01 PM, Werner Thie <werner at thieprojects.ch
> <mailto:werner at thieprojects.ch>> wrote:
>
>     Hi Colin
>
>     off list just for my information, what version of nevow/athena do
>     have you have included in enamel. The latest fixes I sent back to
>     the divmod list solved bugs server and client side when detaching
>     Live Elements from a page, which I do habitually very often.
>
>
> Enamel works on pretty much any version, but doesn't work with
> contextless Page and other stuff.
>
> The motivator for it's creation was to increase dev speed with people
> who were slightly useless, and to act as a wrapper to make code trees
> that could survive Freeze.
>
>
>     What do you see as important areas where nevow/athena should be
>     improved?
>
>
> Primarily there is a great deal of bootstrapping. Just create a simple
> web-app (without something like Methanal or Mantissa, which I can't even
> understand) that does Athena and see how much code you're rewriting
> every time, it's quite insane.
My boilerplate (me working with guys mostly doing PHP and MySQL) let's me
start up a new project in less than an hour. Doing this for a living I 
see the problem not really in starting up projects fast, but in 
finishing them fast, because only finished projects are paying...

> Also if you're not using Twisted plugins (which there are many reasons
> not to want to, like using shared state reactors with multiple TCP
> services, or again Freeze) the pain goes up double.
I use only a single plugin in nevow letting me bootstrap easily and 
providing
a clean mechanism to switch automagically between source/compressed 
deployment version. All the deployment is handled via SVN.

> Essentially boiling Athena down to a page mixin class with standard js
> bootstraps, and/or separate fragment mixin and making all pages derive
> the necessary Athena object triggers or even putting that into flatten.
Might be that there's need for a 'kiddy' version, letting the average
interested user who does not have the time to look into a framework and
its concepts and wants to whip up a page in less than 30 seconds.

> You can see what I do here to try simplify things for the way I work,
> essentially I just stick an elements class dict in and map fragments to
> automatically created renderers and stuff works magically.
> http://open.thusa.net/enamel/browser/trunk/enamel/pages.py#L126
I see the basic idea, no objection, but why Fragments and not Elements?

> There's also issues with the current model, like your root resource
> can't be an Athena page very easily.
I don't understand this point, I usually work root only, with not a 
standard page change, but doing everything by attaching/detaching live 
elements (see http;//www.thieprojects.ch for work in progress for a 
simple Desktop like RIA)

Werner




More information about the Twisted-web mailing list