Hacker News new | comments | show | ask | jobs | submit login
AuraJS – event-driven architecture for developing scalable applications (aurajs.com)
56 points by wamatt 1428 days ago | hide | past | web | 11 comments | favorite

Globalized message passing (aka events) has flaws. You basically have to structure your events into namespaces, module:channel:event. When entering code written by someone else, you have to gather where events are going to and coming from; if you're lucky you solve this with a grep search, but if event strings are built in a dynamic way, you won't find it without prior knowledge. There needs to be a better solution.

Build Event Graphs and wire them up to Sources (input) and Side Effects (output) to create Event Networks, that can be turned on, paused or dismantled.

This is the approach used in Haskell's Reactive Banana and it's declarative, making it very clean and easy to read. Since it's functional, you can probably write tools to spit out all the possible event graphs in an app and the event networks that are actually wire up by the app when in use.

Better yet, you can make a module that records all the events at the Source input with timestamps and then use a timeline scrubber to play them forwards and backwards in many cases. I do this in an app I am building with animations. Every single thing that can be animated implements a function that takes an input from 0.0 to 1.0. Such functions can include changing opacity, z-depth, height, width, position along a bezier curve, etc.

For custom animations that are state dependent, I will often have a higher order function that takes some state of the world as an argument, creates a data structure representing the desired custom animation based on that state that can be looked up from 0.0 to 1.0. That function then returns another function that takes an state from [0..1] that is used to lookup the animation state in that data structure referenced by closure.

When I have lots of animations occurring simultaneously that need to be choreographed, I just create a state emitter that goes from 0 to 1 linearly over a predetermined amount of time. That state emitter can be mapped to functions that change the curve from linear to all sorts of things like quadratic functions, step functions, binary on/off functions, etc. This all allows me to orchestrate a ton of animations, making things like this[0] and this[1] trivial.

[0] http://watchingapple.com/2009/11/a-closer-look-at-iphone-tra...

[1] http://watchingapple.com/2007/06/slide-to-unlock/

These are some nice ideas, especially since Shadow DOM is still a long way off from being usable in production.

The main body text is painfully hard to read. The contrast is too low; not making it black is understandable, but #999 on a white background just hurts.

EDIT: also, the link to polymer-project.com should be to polymer-project.org, as the former is a generic squatter site.

Does GitHub use Aura? I think they were using it as an example of the kind of page that would use widgets, but the positioning and wording made me wonder if GitHub is using Aura. If not, borders on misleading (even if unintentional)

I really want to read the docs, but the contrast is too low and hurts my eyes. Please make your text darker. Refer to http://contrastrebellion.com/

Sencha's ExtJS and Touch frameworks are miles ahead of this...

cntrl-F your copy for "widget An eeds"

The page is super slow on FF. Built on AuraJS?!

The page is super slow because of the particles animation in the header. It makes documentation almost impossible to read. (at least on FF)

seems to work fine for me on newest 23.0

The only frameworks worth a sec of my time are now AngularJS , ExtJS , CanJS and Knockout.

I must admit, if the framework you are building doesnt have 2 way databing , it is not worth my time anymore.

After something like AngularJS i cant go back to wiring templates and data by hand.

Polymer looks great but did not work when i tried it.

ReactJS , i dont like the use of JSX,and if you dont use it things get verbose.

I used to use Backbone , but without 36 plugins it is worthless in a large scale app.

Waiting for the final v1 of EmberJS too.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact