On 12/20/10 4:19 PM, Colin Alston wrote:
On Mon, Dec 20, 2010 at 5:01 PM, Werner Thie <werner@thieprojects.ch mailto:werner@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
It's general courtesy not to mail me off list, and then re-cc the list with your reply...
On Mon, Dec 20, 2010 at 5:43 PM, Werner Thie werner@thieprojects.ch wrote:
On 12/20/10 4:19 PM, Colin Alston wrote:
I apologize, was a mishap and not done on purpose!
On 12/20/10 4:47 PM, Colin Alston wrote:
It's general courtesy not to mail me off list, and then re-cc the list with your reply...
On Mon, Dec 20, 2010 at 5:43 PM, Werner Thie <werner@thieprojects.ch mailto:werner@thieprojects.ch> wrote:
On 12/20/10 4:19 PM, Colin Alston wrote:
Twisted-web mailing list Twisted-web@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web
On Mon, Dec 20, 2010 at 5:43 PM, Werner Thie werner@thieprojects.ch wrote:
On 12/20/10 4:19 PM, Colin Alston wrote:
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...
The problem is that your boilerplate wasn't a part you wrote in an hour, and it's not something everyone can pick up and use.
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.
Again, I use plugins quite a lot (after all, they exist for a reason), and I don't use SVN. The point is that I write a bunch of servers and the web-exposed part constitutes 10%, if not less, in a single setup. Hence, all the divmod'esque stuff with Mantissa and friends is an overkill, but trying to do everything on top of plain t.web leaves a bad feeling of reimplementing Nevow.
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.
The truth (maybe sad one) is that there are still areas where a simple generated HTML with AJAX interactions sprinkled here and there is the optimal thing. And sometimes all you want is throw away your old PHP frontend to some pythonic monster and bring it all together to a single code base, without much rethinking of the interaction model.