Gmail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Collaboration?
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  15 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Mic (BeeBole)  
View profile  
 More options Sep 9 2008, 4:37 pm
From: "Mic (BeeBole)" <tch...@gmail.com>
Date: Tue, 9 Sep 2008 13:37:16 -0700 (PDT)
Local: Tues, Sep 9 2008 4:37 pm
Subject: Re: Collaboration?
Hi Rizqi, Pieter,
I'm Mic from the PURE project.

First of all, thanks for fighting for client side rendering too.
Our efforts go to the same direction. Even if we are in a kind of
competition game.
Ideas from one project will benefit to the other. So in the end that's
a good thing.

The first version of PURE was DOM based for simplicity, elegance and
to keep a tree based logic.
Then as the screens of our app went bigger and more complex the
performance were unacceptable so I switched back to innerHTML.
A bit sad, but I quickly felt home, as this was the way I've built web
apps for years with XSLT+XML sending the result to div.innerHTML's

I'm intrigued as attaching events was not an issue with XSLT.
They were set during the transformation as well as the html. So there
was no costly attach calls after transforming.

We were developing for the quite picky big corporations. They all use
almost exclusively IE 6/7 and we didn't experience memory leaks this
way.
In our last release I've set an example on how to attach events the
same way we were using it with XSLT.

If you have some time, I'd like to have your opinion on it. Do I miss
something?
Cheers,

On Sep 1, 3:08 pm, Rizqi Ahmad <raid...@yahoo.de> wrote:


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Davey  
View profile  
 More options Sep 10 2008, 2:17 am
From: Davey <geekfr...@gmail.com>
Date: Tue, 9 Sep 2008 23:17:29 -0700 (PDT)
Local: Wed, Sep 10 2008 2:17 am
Subject: Re: Collaboration?
Mic,

Did you really mean to post this to the news group?

I'd certainly be interested in looking at the lightningDOM stuff, as I
have a project that does some js stuff
inside rhino, and being able to use the same templating api in there
as I do in my other server side
stuff would be most excellent.

cheers

On Sep 9, 1:37 pm, "Mic (BeeBole)" <tch...@gmail.com> wrote:


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Mic (BeeBole)  
View profile  
 More options Sep 10 2008, 10:32 am
From: "Mic (BeeBole)" <tch...@gmail.com>
Date: Wed, 10 Sep 2008 07:32:37 -0700 (PDT)
Local: Wed, Sep 10 2008 10:32 am
Subject: Re: Collaboration?
Davey,
Sure I meant it.

I'm as well very interested by lightningDOM.
Peter, Is there a link available somewhere ?

I dropped DOM rendering in PURE as I wanted it ultra fast.
Because it is for client rendering.

Server side is another story, saving time there is less an issue.
For me all the work possible to reduce the front-end time is worth the
fight.
Granted, rendering is only a part of it.

Andy Wardley of TT said in a post about PURE something like
having the same rendering engine on the server(TT) and
on the client(jemplate) was a good value.

I think it is ok for reusability.
Do you see other benefits?

Cheers,

On Sep 10, 8:17 am, Davey <geekfr...@gmail.com> wrote:


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Davey  
View profile  
 More options Sep 10 2008, 1:54 pm
From: Davey <geekfr...@gmail.com>
Date: Wed, 10 Sep 2008 10:54:19 -0700 (PDT)
Local: Wed, Sep 10 2008 1:54 pm
Subject: Re: Collaboration?
specifically the benefit, is that using a serverside JS solution that
has no DOM such as rhino, would then be able to use pure on the
server. and that would allow you avoid writing different code on the
server. our jaxer already has this but to would be nice to have it in
rhinoland also.

On Sep 10, 7:32 am, "Mic (BeeBole)" <tch...@gmail.com> wrote:


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Peter Rust  
View profile  
 More options Sep 10 2008, 4:33 pm
From: "Peter Rust" <pe...@cornerstonenw.com>
Date: Wed, 10 Sep 2008 13:33:23 -0700
Local: Wed, Sep 10 2008 4:33 pm
Subject: RE: [ PURE ] Re: Collaboration?
Davey, Mic,

> I'm as well very interested by lightningDOM.
> Peter, Is there a link available somewhere ?

I spent the past three hours merging two versions to get a "best of" version
(LightningDOM 1.3) and writing an extensive blog post introducing
LightningDOM and donating it to the PURE and Chain.js projects.

As I hope I made clear in the post, my primary reason in going public with
LightningDOM is in hopes that PURE or Chain.js will find it useful in some
way and merge the best code or ideas from it into their libraries. If there
is any interest in this, I will gladly donate (some of) my time in helping
perform the merge and helping maintain the LightningDOM layer. The best-case
scenario would be that the LightningDOM will ignite some ideas on how to
merge the two libraries while maintaing the speed of PURE and the power of
Chain.js.

The LightningDOM is not a data-mapper or a templater. It is a layer on which
a data-mapper or templating engine can be built -- a layer that gives you
performant DOM-like access to a large HTML string.

Here is the blog post:
http://blog.cornerstonenw.com/2008/09/10/donating-lightningdom/, which
contains a link to the code. I would love to hear your comments and
suggestions.

-- Peter Rust
Developer, Cornerstone Systems


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Davey  
View profile  
 More options Sep 11 2008, 3:54 am
From: Davey <geekfr...@gmail.com>
Date: Thu, 11 Sep 2008 00:54:59 -0700 (PDT)
Local: Thurs, Sep 11 2008 3:54 am
Subject: Re: Collaboration?
Peter,

I just read the blog, it's cool stuff. I really see an excellent
application for this in Martin Blom's ESXX project, or perhaps
mod_rhino, which provides a server side javascript stack using rhino.
one of the nice things about rhino is along with FF , Opera and Safari
(and ie8 i think) is that it has getter and setters, John resig had a
good post on that http://ejohn.org/blog/javascript-getters-and-setters/
which means in that environment you'd be able to avoid the
firstchild() method stuff and have actual properties. the other crazy
useful thing you get is the __noSuchMethod__  support
http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_...

I'm working on a comprehensive javascript stack (called jacd) and plan
to use ESXX to provide a JS->JAVA
interface, having a 'dom' there would be v. useful.

anyway hope to get some time to look at it.

BTW there's another non velocity template engine appeared,
http://www.matthias-georgi.de/2008/9/patroon-a-javascript-template-en...,
looks interesting and lightweight. but i still think that pure looks
like the best overall choice.

On Sep 10, 1:33 pm, "Peter Rust" <pe...@cornerstonenw.com> wrote:


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Davey  
View profile  
 More options Sep 11 2008, 3:54 am
From: Davey <geekfr...@gmail.com>
Date: Thu, 11 Sep 2008 00:54:06 -0700 (PDT)
Local: Thurs, Sep 11 2008 3:54 am
Subject: Re: Collaboration?
Peter,

I just read the blog, it's cool stuff. I really see an excellent
application for this in Martin Blom's ESXX project, or perhaps
mod_rhino, which provides a server side javascript stack using rhino.
one of the nice things about rhino is along with FF , Opera and Safari
(and ie8 i think) is that it has getter and setters, John resig had a
good post on that http://ejohn.org/blog/javascript-getters-and-setters/
which means in that environment you'd be able to avoid the
firstchild() method stuff and have actual properties. the other crazy
useful thing you get is the __noSuchMethod__  support
http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_...

I'm working on a comprehensive javascript stack (called jacd) and plan
to use ESXX to provide a JS->JAVA
interface, having a 'dom' there would be v. useful.

anyway hope to get some time to look at it.

BTW there's another non velocity template engine appeared,
http://www.matthias-georgi.de/2008/9/patroon-a-javascript-template-en...,
looks interesting and lightweight. but i still think that pure looks
like the best overall choice.

On Sep 10, 1:33 pm, "Peter Rust" <pe...@cornerstonenw.com> wrote:


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Rizqi Ahmad  
View profile  
 More options Sep 11 2008, 12:35 pm
From: Rizqi Ahmad <raid...@yahoo.de>
Date: Thu, 11 Sep 2008 09:35:00 -0700 (PDT)
Subject: Re: Collaboration?
Hi Peter, Ive looked at your post and code, It is great!

But since the future direction of chain.js is in creating highly
dynamic interfaces (beginning with interaction.js
http://github.com/raid-ox/interaction.js/wikis/demos) I am afraid that
it will be difficult to integrate LightningDOM to this project. The
design philosophy of chain.js differs to what PURE has. I think it
will be much easier to integrate it to PURE than to chain.js.

But again I appreciate your donation very much and would like to
integrate it if only I could. Porting Chain.js self to LightningDOM
would be possible, but do you think it is possible to port
interaction.js too?

Any thought appreciated.

Rizqi

On Sep 11, 9:54 am, Davey <geekfr...@gmail.com> wrote:


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Mic (BeeBole)  
View profile  
 More options Sep 11 2008, 4:17 pm
From: "Mic (BeeBole)" <tch...@gmail.com>
Date: Thu, 11 Sep 2008 13:17:30 -0700 (PDT)
Local: Thurs, Sep 11 2008 4:17 pm
Subject: Re: Collaboration?
Hi Peter,
Thank you for these ¡3 hours! and sending this information to the
group.
I'll have a look at it and see if there are possible integration.

As you hinted serveral times, feel free to have a look at pure.js to
see if lightningDOM could improve some areas or break some current
limitations.

You reference prototype.js in your post.
Did you try to use PURE with prototype.js?
I tried, at the end of the pure.js code to overwrite the $$(...)
selector.
As it allows only to have the full document as the search context.

Cheers,

On Sep 10, 10:33 pm, "Peter Rust" <pe...@cornerstonenw.com> wrote:


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Peter Rust  
View profile  
 More options Sep 11 2008, 4:46 pm
From: "Peter Rust" <pe...@cornerstonenw.com>
Date: Thu, 11 Sep 2008 13:46:41 -0700
Local: Thurs, Sep 11 2008 4:46 pm
Subject: RE: [ PURE ] Re: Collaboration?

Thanks, Mic!

I wrote a follow-up
<http://blog.cornerstonenw.com/2008/09/11/lightningdom-playground/>  post
this morning, released LightningDOM
<http://www.projectrecon.net/LightningDOM/LightningDOM-1.3.1.js>  1.3.1 and
created an interactive LightningDOM
<http://www.projectrecon.net/LightningDOM/Playground.html>  Playground.

-- Peter


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Peter Rust  
View profile  
 More options Sep 11 2008, 5:01 pm
From: "Peter Rust" <pe...@cornerstonenw.com>
Date: Thu, 11 Sep 2008 14:01:36 -0700
Local: Thurs, Sep 11 2008 5:01 pm
Subject: RE: [ PURE ] Re: Collaboration?

>to overwrite the $$(...) selector,
>as it allows only to have the full document as the search context

In Prototype, you can use a single element as the search context via
Element.select() <http://www.prototypejs.org/api/element/select> , for
example $('myDiv').select('.highlight'). It has the exact same syntax and
behavior as $$(). It’s a priority to me to make LightningDOM and PURE work
with both jQuery and Prototype. When John Resig finishes his
library-independent super-fast CSS Selector engine, Sizzle
<http://ajaxian.com/archives/sizzle-john-resig-has-a-new-selector-engine> ,
it might be good to make that a dependency and use it exclusively.

-- peter

From: Pure-Unobtrusive-Rendering-Engine@googlegroups.com
[mailto:Pure-Unobtrusive-Rendering-Engine@googlegroups.com] On Behalf Of
Peter Rust
Sent: Thursday, September 11, 2008 1:47 PM
To: Pure-Unobtrusive-Rendering-Engine@googlegroups.com
Subject: [ PURE ] Re: Collaboration?

Thanks, Mic!

I wrote a follow-up
<http://blog.cornerstonenw.com/2008/09/11/lightningdom-playground/>  post
this morning, released LightningDOM
<http://www.projectrecon.net/LightningDOM/LightningDOM-1.3.1.js>  1.3.1 and
created an interactive LightningDOM
<http://www.projectrecon.net/LightningDOM/Playground.html>  Playground.

-- Peter


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Mic Cvilic  
View profile  
 More options Sep 11 2008, 5:23 pm
From: Mic Cvilic <tch...@gmail.com>
Date: Thu, 11 Sep 2008 23:23:47 +0200
Local: Thurs, Sep 11 2008 5:23 pm
Subject: Re: [ PURE ] Re: Collaboration?

Peter,

> >to overwrite the $$(...) selector,
> >as it allows only to have the full document as the search context
> In Prototype, you can use a single element as the search context via  
> Element.select(), for example $('myDiv').select('.highlight'). It  
> has the exact same syntax and behavior as $$().

Nice! thanks so much. This will make PURE compatible with prototype.js  
soon.

> It’s a priority to me to make LightningDOM and PURE work with both  
> jQuery and Prototype. When John Resig finishes his library-
> independent super-fast CSS Selector engine, Sizzle, it might be good  
> to make that a dependency and use it exclusively.

PURE was made to be independent from a specific JS framework.
And the selector functionality( pure.find ) needs to be provided by a  
library (jQuery only for the moment, and soon prototype.js from your  
help above).
So sizzle would come perfectly for that.

I was crossing the fingers that the browser builders would provide  
this in the next releases.
I think I read somewhere Safari on the iPhone had it well already. And  
some other browsers partially.

...

read more »


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Davey  
View profile  
 More options Sep 12 2008, 12:57 am
From: Davey <geekfr...@gmail.com>
Date: Thu, 11 Sep 2008 21:57:31 -0700 (PDT)
Local: Fri, Sep 12 2008 12:57 am
Subject: Re: Collaboration?
Mic,

The underpinning of Sizzle is simply the fact that the major browser
vendors have agreed on implementing the standard Selector API, so the
speed comes from the fact that it can leverage much more of the native
code, I believe John implemented some extra ID related performance
stuff on top of that. I'm looking forward to having it to play with
server side with Jaxer, as we have guaranteed Mozilla DOM and so as
soon as FF3.1 goes public, we'll huge performance boost with that.

so looking ahead, i see three great performance things.

1. Jit/VM based js getting super fast
2. DOM traverse/manipulate going native (and fast)
3. the ECMASCRIPT 3.1 native JSON support (in ie8 now, partial in FF3)
making json super fast.

these three trends really enforce the rational behind templating with
only DOM and JS.

fun times!

On Sep 11, 2:23 pm, Mic Cvilic <tch...@gmail.com> wrote:

...

read more »


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Mic (BeeBole)  
View profile  
 More options Sep 17 2008, 12:04 pm
From: "Mic (BeeBole)" <tch...@gmail.com>
Date: Wed, 17 Sep 2008 09:04:18 -0700 (PDT)
Local: Wed, Sep 17 2008 12:04 pm
Subject: Re: Collaboration?
Hi Peter,
Sorry I was quite busy with the release of the new revision.

Coming back to ligthningDOM.
If I understood well, it converts the element to an array and I think
I got the power of this.
Especially for recursion.

Here below is the process of PURE.
As you know well lightningDOM, please have a look and see where it
could help.
You tell in your posts that you are not sure about beeing able to make
an array of any HTML.
What are the know limitation of lightningDOM?

Thanks for sharing your work,
Mic

- - - - - - - - - - - -

pure.map() - output a DOM object
apply the directives to the HTML: a directive becomes an attribute
pure:something="..."

pure.utils.nodeWalk() - output a DOM object
traverse the tree and map the auto-rendering, place the node values,
and wrap the repetition in a <pure:repeat> node.

pure.compile() - output a String as a JS code
convert the element to a string, split at each "pure:" and build the
js

On Sep 11, 10:46 pm, "Peter Rust" <pe...@cornerstonenw.com> wrote:

...

read more »


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Peter Rust  
View profile  
 More options Sep 17 2008, 2:04 pm
From: "Peter Rust" <pe...@cornerstonenw.com>
Date: Wed, 17 Sep 2008 11:04:44 -0700
Local: Wed, Sep 17 2008 2:04 pm
Subject: RE: [ PURE ] Re: Collaboration?

Mic,

> Sorry I was quite busy with the release of the new revision

That’s ok, I’ve been busy as well. But I’m still working & thinking about
client-side templating/data-mapping and following the email groups closely.

> If I understood well, it converts the element to an array and I think
> I got the power of this. Especially for recursion.

Yes, it converts the element to an array of strings, under the hood, so that
it can be very fast. This is similar to your compile() process, which
generates an array of strings. The difference is that compile() only
generates a separate string if it needs to, only where the “pure:”
attributes are. LightningDOM, on the other hand, has a separate string for
every element. And, after generating a separate string for every element, it
is still editable, via the same API as the DOM: LightningDOMNode.attributes,
LightningDOMNode.innerHTML, LightningDOMNode.className, etc.

The benefits of the compile() approach:

·         It has slightly faster startup because you only need to split
where there are “pure:” attributes.

·         It uses slightly less memory (fewer strings in the array)

·         It join()s the final HTML slightly faster (fewer strings in the
array)

The benefits of the LightningDOM approach:

·         It allows you to remove all the string operations
(parsing/splitting/regexing) into a separate layer.

·         It can be used by a variety of templating and data-mapping engines
and approaches.

·         If it is a separate layer shared by multiple templating engines,
it can be better optimized and tested.

·         It exposes the same API as the DOM, so if the DOM is faster than
innerHTML in some browsers, your code can switch between them.

·         The map()ing and nodeWalk()ing is faster because they’re
manipulating LightningDOM nodes, not DOM ones

·         It is more flexible, allowing for user-defined onPostTemplate or
onPreTemplate node manipulations

·         It is more flexible, allowing for partial updates (re-templating
the HTML for a particular sub-element without re-templating the whole thing)

In your current architecture, directives are mapped to the DOM, you nodeWalk
the DOM and then compile to JS/strings. Then if render() is called and it’s
already been compiled, you just execute the compiled functions. In a
LightningDOM-based architecture, you would first parse the DOM into a
LightningDOM structure and keep that structure in memory. Whenever render()
is called, you would nodeWalk the LightningDOMNodes based on the directives
and generate the final HTML via LightningDOM’s .outerHTML() method.

> What are the know limitation of lightningDOM?

I’ve just tested it on my own projects/templates, so there are probably some
nodeTypes (comments) and some IE-isms (unclosed <li> tags) that I haven’t
coded for. This is just a matter of getting it out there in beta form and me
being responsive to fix bugs that crop up. As far as possible limitations in
the fundamental design/architecture, there are two things.

1)    It isn’t currently a perfect drop-in replacement for the DOM because
properties like .innerHTML and .nextSibling have to be “functionalized” into
.innerHTML() and .nextSibling(). I have thought of a way to possibly fix
this (my most recent blog post), but I would have to test it to see if there
is a performance tradeoff.

2)    I think the nested-arrays internal data structure is too
highly-grained for the best performance and I think it would be faster if I
replace it with a single one dimension array. This would require caching
some parsed data (className, id, endTagIndex, etc) in a separate, paired
data structure (possibly an array to start out, but perhaps moving into an
object tree if point 1 turns out to be valid.

I have a project that needs more speed, so I’ll be profiling and seeing if
option #2 will give me what I need. I might even be able to work on it
today.

To experiment with integrating the LightningDOM, we don’t have to do the
whole architecture change. We could begin by simply doing the map() and
nodeWalk() on LightningDOMNodes, rather than on the DOM directly. If this
goes well (we see a speed increase, squash bugs, like the feel of things),
then we could look at possible further integration.

-- Peter Rust

Developer, Cornerstone Systems

PS: it’s theoretically possible to “precompile” the LightningDOM for further
speed increases by doing the parsing beforehand and sending a pre-JSONified
LightningDOM data structure to the client. My hunch is that this isn’t
necessary and isn’t worth the effort, but people may want/need a
pre-compiled option…

...

read more »


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2010 Google