Tree Derivations, and Dynamic, Interactive Web Applications that Scale Forever


Details
We have two talks this month, highlighted by a talk from Gershom Bazerman, who organizes NY-Haskell (https://www.meetup.com/NY-Haskell/).
7:15-7:30: Bob Grudem - Tree Derivations
I will derive a Haskell program to draw a tree modeled in 3D starting from a stick figure by way of a series of transformations that demonstrate what I like about Haskell. Time permitting, I can describe another derivation of the stick figure to an L-system interpreter. The programs are short and we'll look at every line.
7:30-8:45: Gershom Bazerman - Dynamic, Interactive Web Applications that Scale Forever and Upgrade Seamlessly
The hardest part of writing interactive web applications is keeping track of state, making sure the client and server agree on the state, and deciding where to store what bits of state. On top of this, the moment a server tracks the a single bit of state, then one has to worry about making sure users know what server to hit, get routed to the correct server, and soforth. Furthermore, the moment we want to build genuinely dynamic applications with complex interactive features, this problem only gets worse. As an extreme example, the "continuation capturing" approach popularized by Seaside, Oscigen, and Weblocks is well known to be pleasant to code with, but face extreme problems with scaling out.
This talk presents the Panels component of JMacro-RPC [1], which solves this problem entirely. It will discuss how we can create fully interactive, ajax-based web-applications as an embedded DSL in Haskell with a declarative, compositional syntax and absolutely no server-side state, nor any special need for client-side session or cookies. Web applications written with this approach scale indefinitely, and this approach also provides the foundations for a seamless hot-upgrade path. State is hard. This talk will show why a language like Haskell, where we can treat it as first-class is essential in taming it.
[1] http://hackage.haskell.org/package/jmacro-rpc-0.2/docs/Network-JMacroRPC-Panels.html
Food:
Pizzas, salad and soda
Logistics:
If you can, please plan on arriving between 6:45pm and 7pm, but there will be someone in the lobby to greet stragglers.
Afterwards:
If you'd like to stick around, a number of us tend to head down to the CBC (http://www.cambrew.com/) or another pub afterwards to socialize. If you would like to give a talk or if you have any questions or concerns, please feel free to follow up here or email one of the organizers.

Tree Derivations, and Dynamic, Interactive Web Applications that Scale Forever