The Mighty Event: a cheat-code to `reduce` complexity and unlock super-powers

The Mighty Event: a cheat-code to reduce complexity and unlock super-powers

Events are everywhere in programming and many systems are explicitly event-driven [1]. Event Sourcing is one technique that is becoming increasingly popular server-side [2] in OO languages. Under different names [3], it has been used for over 50 years in functional languages. This talk by Tavis Rudd and Roman Gonzalez will explore its less obvious applications in browser-side UI development and testing.

UI development in the browser is hard, from interaction design to choosing an acronym - MVC, MVP, MVMP, MVVM, MVW, WTF. In several Coffeescript/Javascript examples we'll demonstrate techniques that reduce complexity (in both code & control-flow), simplify testing, and unlock secret super-powers [4].

Footnotes:

1: http://en.wikipedia.org/wiki/Staged_event-driven_architecture, http://en.wikipedia.org/wiki/Event-driven_architecturehttp://martinfowler.com/bliki/CQRS.html, the Reactor Pattern http://en.wikipedia.org/wiki/Reactor_pattern for IO multiplexing (libev, twisted, netty, node.js, etc.)

2: see InfoQ: Event Sourced Architectures for High Availability - Martin Thompson or google for CQRS or Event Sourcing

3: reduce, `left fold`, inject, or, more specifically, state/event reduction. See http://en.wikipedia.org/wiki/Fold_%28higher-order_function%29 for an abstract, academic discussion and these notes from Stuart Sierra for the specific interpretation/application we are talking about. http://stackoverflow.com/questions/5331746/practical-use-of-fold-reduce-in-functional-languages and http://alan.dipert.org/post/307586762/polyglot-folding-ruby-clojure-scala?5db3a780 discuss other applications of reduce.

4: you've got to come to the talk to find out what they are!

Join or login to comment.

  • Tavis R.

    Here's the demo code from our presentation last week https://github.com/BirdseyeSoftware/talks.polyglot.jan2013 You can view the slides (slightly edited for better independent reading) here http://polyglot.birdseye-sw.com/ We'll be doing an extended blog post about it sometime in the near future.

    1 · January 30, 2013

    • Simon G

      Thanks Travis, this was an awesome demo which came at a fortuitous time for a project I'm working on. After the event I wrote (and am in the process of open sourcing) a "domain event" framework for Appcelerator Titanium - bridging the Alloy MVC framework (based on Backbone and Underscore) with a domain model and event stream.

      January 31, 2013

  • Taizo N.

    Great presentation.

    January 24, 2013

  • Aaron F.

    Awesome talk! (and great .gifs)

    January 23, 2013

Our Sponsors

  • Hootsuite

    Venue, Speaker Wrangling & General Support

  • Unbounce

    Venue and speaker wrangling

People in this
Meetup are also in:

Create a Meetup Group and meet new people

Get started Learn more
Bill

I started the group because there wasn't any other type of group like this. I've met some great folks in the group who have become close friends and have also met some amazing business owners.

Bill, started New York City Gay Craft Beer Lovers

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy