Sessions

Joshua Suereth, Author, Scala In Depth
Joshua Suereth - Author, Scala In Depth
Wed - 04:00-05:00 PM, Salon B
Frameworks

Erlang has made popular the notation of asynchronous message passing as means of distribution and Scaling. While the idea of “actors” is fundamentally simple, how do we, the software engineers, make use of this abstraction to develop real life, scalable systems? This talk designs a scalable distributed search service using Akka and Scala using the “zen” of Actor based design. It covers the practical aspects of how to scale out with akka’s new experimental clustering API. We’ll investigate how to dynamically determine when to further shard an application and how to rebalance a distributed system when adding new nodes to a cluster. We’ll cover Akka-specific concepts and APIs, like partitions and cluster membership events.


presentation video
Lukas Ruebbelke, Co-author, AngularJS in Action Brian Ford, AnjularJS Core Team member
Lukas Ruebbelke - Co-author, AngularJS in Action
Brian Ford - AnjularJS Core Team member
Tue - 04:00-05:00 PM, Salon B
Frameworks

AngularJS is an awesome JavaScript framework that has a laundry list of great features. One of the most powerful features is the ability to create custom HTML elements and attributes that are specific to your domain. We will cover how to make custom directives to do neat tricks. By ‘neat tricks’ we mean ‘anything’.


presentation video
Rhys Brett-Bowen, Creator, PlastronJS
Rhys Brett-Bowen - Creator, PlastronJS
Tue - 01:30-02:30 PM, Salon A
Frameworks

Closure Tools was released by Google over two years ago to little fanfare. It has slowly been gaining popularity and even a little love from those that have gotten to know it. If you’re writing a large JavaScript application, you should know about it. after all it’s what GMail, Google Maps, Google Docs and just about every other google product is built on. So what is it? Where did it come from? why don’t we hear more about it? How can it help you? How can you get started? All this and more will be answered and you too can find Closure.


Presentation
Aaron Patterson, Core Developer, Rails
Aaron Patterson - Core Developer, Rails
Tue - 01:30-02:30 PM, Salon C
Frameworks

In this talk we’ll be exploring the internals of Active Record, the ORM used in
the Ruby on Rails web framework. We’ll look at the architecture of the
internals along with caching strategies, connection handling, and speed
improvements. This talk will cover new features in Rails 4, as well as
strategies for improvements to the internals of Active Record.


presentation video
Avital Oliver, Core Developer, Meteor
Avital Oliver - Core Developer, Meteor
Tue - 11:30-12:30 PM, Salon B
Frameworks

Meteor is an open-source platform for building top-quality web apps in a fraction of the time. In Meteor, your app is written entirely in Javascript, both client and server code. Meteor handles most of the real problems that web developers face all the time, such as automatically redrawing parts of the UI when data changes on the server. It also supplies a consistent database API on both client and server, that can be secured in server code.

At its core, Meteor is just a collection of smart packages. Smart packages are unusually powerful, supplying deep hooks on client or server code, or into the app bundling process. For coffeescript support, simply run meteor add coffeescript; For Facebook login, run meteor add accounts-facebook; for SEO support, meteor add spiderable. In this talk, we’ll go over some notable smart packages (both core and user-contributed) and use them to build a simple app that interacts with several third-party services and tools.


presentation
Ken Rimple, Co-author, Spring Roo in Action David Turanski, lead, Spring Data Gemfire
Ken Rimple - Co-author, Spring Roo in Action
David Turanski - lead, Spring Data Gemfire
Tue - 02:45-03:45 PM, Salon B
Frameworks

What is the relevance of the Spring Framework in the age of the Javascript client application? How can we Spring developers leverage Spring APIs to provide security, REST support, and quick back-end development services? Find out in this talk where we cover how to build a single-page Web Application using Angular.JS, secured with Spring Security, tested with Spring MVC testing APIs, and rapidly develop the application using Spring Data.


presentation video
Howard  Lewis Ship, creator, Apache Tapestry
Howard Lewis Ship - creator, Apache Tapestry
Tue - 10:15-11:15 AM, Salon B
Frameworks

Spock is a fabulous new testing framework for the JVM. Spock leverages all the DSL power of the Groovy language to make testing a breeze. Spock tests are concise and readable, with excellent support for error reporting and for mock object creation. Spock removes much of the pain from test driven development!

In Spock, classes are test specifications; methods of those classes are used to describe expected features of the system under specification. Each feature method is broken up into blocks that specify a stimulus (such as invoking a method) and a response (the behavior or state from that method invocation); this is Spock’s way of embracing the given/when/then approach. Spock keeps you honest about what kind of code can appear in each block, and the end result is a highly readable, highly maintainable test. Spock is flexible enough to be used for everything from very isolated unit tests, to full scale integration tests. Spock also features first class support for mock-object testing. The Spock DSL uses an elegant and obvious syntax to specify how the mock objects interact with the system under specification.

Rolled together, Spock is a formidable tool … and makes using any other testing framework a highly illogical choice


Presentation video
Tim Branyen, Committer, Backbone.js
Tim Branyen - Committer, Backbone.js
Wed - 02:45-03:45 PM, Salon B
Frameworks

This ambitious talk about the holy grail of accessible web application development examines complications and solutions related to sharing. It features a reference application built with CommonJS, RequireJS, and Backbone.js.


video
Jessica McKellar, Maintainer, Twisted
Jessica McKellar - Maintainer, Twisted
Tue - 01:30-02:30 PM, Salon D
Frameworks

How do you write and deploy an extensible, cross-platform, event-driven HTTP, SSH, or IMAP server in Python in zero lines of code? With Twisted!

Twisted is the granddaddy of event-driven Python networking libraries and has been a proving ground for how to structure such a framework for the last decade. In this talk, we’ll first orient ourselves with an architectural overview of the project. Then we’ll dissect key design decisions that make Twisted such a powerful tool for implementing network clients and servers, including:

  • The Deferred API for managing reactions to asynchronous events
  • Transport/protocol separation
  • Twisted’s plugin infrastructure

By the end of this talk, you’ll be well-versed in Twisted’s philosophy and the event-driven programming model, and know how to structure, deploy, and test Twisted clients and servers for any network protocol.


Presentation video
Brendan McAdams, Typesafe, Engineer
Brendan McAdams - Typesafe, Engineer
Tue - 10:15-11:15 AM, Salon A
Frameworks

This talk presents Slick, Typesafe’s library for accessing databases. Similar in nature to .NET’s LINQ API, Slick is a successor to the popular ScalaQuery library. With Slick, database queries can be expressed using Scala code – which is composable and more convenient than Java APIs like JPA, and safer than string-based query languages like SQL.

With a compile-time check to ensure type-safety, Slick queries allow users to interact with their database without knowing SQL, instead using function calls that fit naturally into their programming model. In this talk we’ll explore some of these functions and the functional programming model used; concepts such as map, flatMap, and group methods – and how we we can use them to query a database like an in-memory collection. If necessary, Slick users can call custom stored procedures and even fall back to raw SQL statements for cases where the Slick API won’t map to a database feature.

Slick currently offers support for many leading Relational Databases, including Microsoft’s SQL Server, MySQL, and PostgreSQL. The Slick team is working on extending support for custom datasources, such as NoSQL datastores like MongoDB.


presentation video
Robert Hanson, co-author, GWT in Action Brian Ford, AnjularJS Core Team member Tim Branyen, Committer, Backbone.js Yehuda Katz, Creator, Ember.js Avital Oliver, Core Developer, Meteor Lukas Ruebbelke, Co-author, AngularJS in Action
Robert Hanson - co-author, GWT in Action
Brian Ford - AnjularJS Core Team member
Tim Branyen - Committer, Backbone.js
Yehuda Katz - Creator, Ember.js
Avital Oliver - Core Developer, Meteor
Lukas Ruebbelke - Co-author, AngularJS in Action
Wed - 10:15-11:15 AM, Salon C
Frameworks

As web developers we are constantly pushing the boundaries of what is possible. And as that line of what is possible keeps advancing we develop new tools and techniques to help us manage the added complexity. Today’s tooling includes JavaScript compilers, client-side MVC frameworks, integrated client and server solutions, and specialized micro libraries.

In this panel we will discuss the merits of some of these tools and what to look for when selecting a tool for a given project. What are the benefits of compiling to JavaScript as opposed to coding in it? What are the core differences between different MVC solutions? What are the tradeoffs that you make when you use an integrated framework that runs on both the client and server side? What about testing, security, and continuous integration? And if you are new to developing JavaScript applications, where do you start?

Join Tim Branyen (Backbone contributor), Brian Ford (AngularJS core developer and co-author of AngularJS in Acton and ), Yehuda Katz (co-author of jQuery in Action and creator of Ember), Avital Oliver (Meteor core developer), Lukas Ruebbelke (co-author of AngularJS in Action), and Robert Hanson (co-author of GWT in Action) as moderator as we attempt to find an answer to the most important question. Which tool is the right one for me?


Podcast
Ken Little, Director of Engineering, Tumblr
Ken Little - Director of Engineering, Tumblr
Wed - 02:45-03:45 PM, Salon D
Frameworks

Over the past two years Tumblr has experienced tremendous growth, with traffic growing more than 10x from less than 1.6B pageviews a month to nearly 20B pageviews a month. Tumblr started in 2007 as a traditional LAMP application with some memcache usage. Over the past two years Tumblr has moved towards a service oriented distributed system built on the JVM and supported by heavily sharded MySQL along with HBase and Redis. In this talk we’ll review the historical evolution of the Tumblr architecture with a specific focus on how we have learned from failures, and how the evolution of the architecture has reflected those learnings.


video