Sessions

Heather Miller, Scala Team, EPFL
Heather Miller - Scala Team, EPFL
Tue - 04:00-05:00 PM, Salon A
Languages

By now, it’s no secret that asynchronous and non-blocking code means fast and responsive software stacks that scale to the moon. The only problem? Asynchronous code usually means callback hell that’s impossible to write, impossible to reason about, and even worse to maintain. Not anymore— Scala 2.10 brings an asynchronous, completely non-blocking, composable Futures and Promises API. And best yet? Code using it looks sequential— nice and easy to reason about. In this talk, I’ll show you how to program in a powerful way— with composable “pipelines” that look sequential, but execute in a completely asynchronous, parallel way. I’ll also show you how to handle errors both for this asynchronous code as well as for normal sequential code, all in a new, clean, and composable way, with the new Try abstraction. Last but not least, all of this is available in a Java API too! So it doesn’t matter whether you have a Scala or a Java stack, there’s still a way to profit from the new Futures and Promises API!


presentation
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
Jean Tabaka, Agile Fellow
Jean Tabaka - Agile Fellow
Wed - 10:15-11:15 AM, Salon B
Agile

Design thinking is emerging as a way to guide organizations in how to accept mystery and move through heuristics before moving to an algorithmic view of business. Complexity theory asks us to be intentional about the systems in which we find ourselves and the transitions we must be prepared to make in and around our ordered and unordered systems. By combining these two disciplines, you can begin to balance exploration and execution in how you create and sustain Agile adoptions in your teams, groups, and organizations.


presentation
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
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
Maurice  White, Sr. Enterprise Developer, BlackBerry
Maurice White - Sr. Enterprise Developer, BlackBerry
Wed - 01:30-02:30 PM, Salon E
Mobile

Become a successful developer of enterprise apps for BlackBerry 10. This session arms you with what’s needed to begin creating enterprise apps for the BlackBerry platform. We’ll cover development options, tooling, and porting existing apps. We’ll discuss the unique needs of developing apps for the enterprise and introduce you to how the BlackBerry platform helps you to address those needs.


presentation
Cliff  Click, CTO & Founder, 0xdata
Cliff Click - CTO & Founder, 0xdata
Tue - 04:00-05:00 PM, Salon C
Infrastructure

Datasets have gotten to PB-scale, but the modeling you can do has been limited to a single-node (e.g. R, SAS) or stuck inside the database or takes hours on Hadoop-like technologies. We have built a simple clustering package, and are using it to do distributed analytics on the sum of all ram in a cluster. This talk focuses on how the clustering technology, plus a Java-based vector math API, is being used to build full algorithms like GLM/GLMNET, Random Forest and K-means. These algorithms are complex multi-pass programs and traditional distributed programming models expose the distributed boundaries making the algorithms hard to reason about. We have a basic JDK for doing at-scale math, we can run most Plain Olde Java in (distributed) inner loops, communicate via a K/V store with exact Java Memory Model consistency (not lazy consistency). Adding more cpus makes these algorithms run faster, and adding more ram allows larger datasets. We are bringing back Moore’s Law!

Alex Miller, Founder, Strange Loop Conference
Alex Miller - Founder, Strange Loop Conference
Wed - 10:15-11:15 AM, Salon D
Languages

Clojure’s approach to data is significantly different than other popular languages, and somewhat different even than its Lisp heritage. On one hand, Clojure provides a small core set of immutable, persistent data structures. On the other, Clojure uses functional programming to provide a rich set of data manipulation functions. These two pillars of Clojure are fused together through the “sequence” abstraction. Because of sequences, Clojure developers expect that almost any function works with almost any composite data. This is a radically different approach than we see in popular OO languages like Java.

This talk will examine Clojure’s approach to both data and function and explore how sequences are the linchpin abstraction between them. We will consider how Clojure’s approach to data differs from object-oriented programming (particularly Java) and see how this approach changes the nature of your daily programming. We will also consider topics such as mutation, state vs value, and how to customize your primitive and composite data. You should leave this talk with new ways to think about the intersection of data and function in your program.

This talk is based on work in a large Clojure code base (70k+ lines) developed over three years at Revelytix. We have built several products in Clojure and have found the focus on the power of immutable data to be a significant asset in helping us build and evolve our code.


presentation video
Stuart Sierra, Core Team Member, Clojure
Stuart Sierra - Core Team Member, Clojure
Wed - 11:30-12:30 PM, Salon E
Languages

Clojure is a modern dynamic language for the JVM, ClojureScript is the same language compiled into JavaScript. This talk will introduce the ClojureScript compiler and explain how it leverages the Clojure language and best-of-breed JavaScript technologies to deliver compact, high-performance web applications. Discover how sharing both data and code between a Clojure back-end and a ClojureScript front-end can make complex web applications simpler, more powerful, and easier to develop.

Chris Converse, Partner, designer and developer at Codify
Chris Converse - Partner, designer and developer at Codify
Wed - 10:15-11:15 AM, Salon A
Mobile

The “Save to Homescreen” feature on Apple’s iOS packs a lot more punch than you may realize. Web Apps are a powerful way to gain more control over a web experience, while providing all of the power of Mobile Safari. Web Apps can have their own icon, a custom startup screen, look and function like native apps, can run offline, store local data, and do not need to be submitted to the iTunes store!

We’ll also look at implementing your web app experiences in other technologies and platforms, such as converting them to native apps for multiple platforms, using them in digital magazines and iBooks, and even using them on Android devices.

Dan  Mezick, Author, The Culture Game
Dan Mezick - Author, The Culture Game
Wed - 11:30-12:30 PM, Salon D
Agile

Are you frustrated with your organization’s culture? Are you looking for ways to tinker with it, and change it?

We are commonly familiar with hacking software code to repurpose it, and make it do new things. We are far less familiar with the hacking of cultural code to tip our team and our organization in the direction of more learning, fun and productivity at work.

Attend this session to learn specific techniques to immediately and effectively influence culture in your organization:

  • Why your meetings are soul-sucking death marches from hell, and how to fix that
  • How to use agreements, interactions and punctuality to greatly increase the learning of your team & organization
  • Why asking permission is usually always overrated and in most cases may be just plain WRONG

Everyone will exit this session with tools, techniques and links to PDFs and resources for extending the learning in this session.

Rich Hickey, Author of Clojure, Designer of Datomic
Rich Hickey - Author of Clojure, Designer of Datomic
Wed - 08:45-09:45 AM, Grand Ballroom
Keynote

Design, composition and performance are critical in creating software. What are we doing when we design software? In what ways is design taking things apart? What does this have to do with Clojure, languages and libraries in general? This talk will explore the nature of design and composition and how it impacts our approach to software development practice and tools.

Filip Maj, committer, Apache Cordova
Filip Maj - committer, Apache Cordova
Tue - 10:15-11:15 AM, Salon D
Mobile

The popular cross-platform mobile application framework, PhoneGap, has established itself over the past few years as a useful tool when writing applications for multiple platforms based on standards-based web technologies.

PhoneGap, or its Apache Software Foundation-goverened engine called Cordova, is gearing up for a 3.0 release in July 2013 and has as goals delivery of a bare framework with customizable APIs and top-notch tooling.

Fil, who works at Adobe and is involved with Apache Cordova and PhoneGap full-time, has been at work delivering command-line tools to help ease management of cross-platform PhoneGap applications. With the plethora of mobile SDK, development operating system and device requirements needed to create a single app for a single platform, it is no surprise that handling multiple platforms is an exponentially tougher problem. The PhoneGap CLI aims to solve this problem.

Additionally, Fil has been developing a distributed, cross-platform and cross-device continuous integration system for hybrid applications such as those built with PhoneGap. Come see what’s been cooking in Apache Cordova!

Navarrow Wright, CTO, Interactive One Brigitte Daniel, VP, Wilco Electronic Systems Inc. Stephanie Humphrey,  Tech Reporter, Fox 29 William Crowder, Managing Director, DreamIt Ventures Corinne Warnshuis, Events Coordinator, Technically Philly
Navarrow Wright - CTO, Interactive One
Brigitte Daniel - VP, Wilco Electronic Systems Inc.
Stephanie Humphrey - Tech Reporter, Fox 29
William Crowder - Managing Director, DreamIt Ventures
Corinne Warnshuis - Events Coordinator, Technically Philly
Tue - 11:30-12:30 PM, Salon E
Management

Due to current and growing shortage of qualified IT professionals, it has never been more important to diversify the ranks of your employees. With the forecast of 40% unfilled IT jobs by 2018, this is not just a social good issue, but an economic one. But it is not easy to find women and minorities since they are not participating in the tech economy in large numbers. Join us for this panel, moderated by Navarrow Wright, CTO of Interactive One, as he brings leaders programs which are making headway to solve this issue.

Eric Tschetter, Lead Architect, Druid
Eric Tschetter - Lead Architect, Druid
Wed - 10:15-11:15 AM, Salon E
Infrastructure

This talk will focus on the design considerations and architecture of Druid, an open-source, distributed, column-oriented analytical data store. Druid is an open source distributed system in use at Metamarkets (http://www.metamarkets.com) to facilitate rapid exploration of high dimensional spaces. We use Druid to expose impression monetization data to ad tech companies along any arbitrary combination of demographic, content and sales-based dimensions. One Druid cluster currently exposes a data set of >40 billion rows of data representing >2 trillion impressions in hypercubes of varying dimensionality (largest is 30+ dimensions) while allowing for exploration using top lists and timeseries in sub-second latencies. There will be a particular focus on how Druid can be used to ingest data in real-time on the write side and provide real-time access to data on the read side.

The Druid code can be found at http://www.github.com/metamx/druid.


presentation
Doug Bellenger, Product Manager, LifeShield Nick Dipatri, Engineer, LifeShield
Doug Bellenger - Product Manager, LifeShield
Nick Dipatri - Engineer, LifeShield
Wed - 04:00-05:00 PM, Salon A
Mobile

In this talk, Doug Bellenger and Nick DiPatri from LifeShield will discuss using your Android device as an end point to your home security, some of the challenges we face with user experience and tips for handling local and remote communication with physical devices such as sensors and cameras. The talk will explore using Android fragments, content providers, media players, networking, local and remote API handling and more.

Doug Lea, Governing Board, OpenJDK
Doug Lea - Governing Board, OpenJDK
Wed - 01:30-02:30 PM, Salon C
Languages

Creating components based on concurrent and parallel algorithms and data structures often requires more attention to “engineering” issues not seen with most other libraries. Components created in the “obvious” way sometimes turn out to be wrong, to perform poorly, or are unusable in most applications, because the abstractions in which they are expressed are leaky, imprecise, or incorrectly specified. While many of these issues are encountered in other aspects of concurrent programming, the impact is accentuated when they continue to leak through to APIs provided by library components. This presentation surveys some examples and lessons learned from the design, implementation, and applications of the java.util.concurrent library, including those surrounding memory models, resource management and garbage collection, thread management, optimization, and code generation.


video
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
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
Anita Garimella Andrews, General Manager, Analytics & Optimization, Delphic Digital
Anita Garimella Andrews - General Manager, Analytics & Optimization, Delphic Digital
Tue - 02:45-03:45 PM, Salon E
Management

Big Data is almost scary nowadays. Some small, young companies are so advanced in their use of data – but their datasets are small, so statistical validity constantly comes up. Some Fortune 100 companies haven’t even started. And other large companies have such a morass of badly integrated, inaccurate or unused data and analytics, that starting from scratch seems like a good idea. And once you have all that data, it’s unclear how to use it.

So what should you be doing today? How should you start? What should you use the data for? In this session, we’ll talk about how to work through a variety of states of data, analytics & reporting environments and cultures to get the ship sailing straight. Then, we’ll talk about sensible ways to approach optimizing that provide the quickest feedback to demonstrate value, ROI and develop a hunger for a more data-driven culture around marketing and product development.

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
Jurgen Appelo, Author, Management 3.0
Jurgen Appelo - Author, Management 3.0
Wed - 01:30-02:30 PM, Salon A
Agile

How do I make my managers more Agile?
How can I convince developers to educate themselves?
How can I make customers more cooperative?
How do I start a European network of Agile and Lean practitioners?

When transforming organizations and other social systems people usually encounter obstacles. And these obstacles very often involve changing other peoples behaviors. Of course, we cannot really make people behave in a different way. We also cannot really make people laugh, and we cannot really make people happy. But we can certainly try!

This session is about Change Management 3.0. It is a new change management super model which views organizations as complex adaptive systems and social networks. The Change Management 3.0 supermodel wraps various existing models (PDCA, ADKAR, Adoption Curve and The 5 I’s). It lists a few dozen hard questions that can help people in their attempts to change the behaviors of other people in an organization and beyond. No matter whether you are a manager, Scrum Master, Product Owner, software developer or writer, anyone will find it useful to know how to change the world around them.


presentation
Angie Singer Keating, CEO, Reclamere, Inc.
Angie Singer Keating - CEO, Reclamere, Inc.
Tue - 04:00-05:00 PM, Salon E
Management

A growing body of disclosure law governing security breaches and data loss incidents, coupled with ‘the professional nature’ of the threats, is fueling an expanded focus on incident response, digital forensics, evidence collection, and proactive fraud detection. In addition, government and industry regulations require not only the aggregation of data and event management but also the ability to identify and take remedial action on incidents. This is supported by research indicating that the digital forensics market will exceed $4.8 billion by 2014. Attendees will be introduced to the fundamentals of IRP and will learn how to craft and implement an incident response planning program which relies on applied processes. A special emphasis will be placed on the requirements, responsibility, processes and procedures needed to provide a rapid and reliable incident response capability. Attendees will learn how to identify potential issues between management, public relations and legal counsel before they happen, how to deal with government and law enforcement officials, and understand how and when to engage forensic procedures.


presentation
David Stemmer, Consultant, Chariot Solutions
David Stemmer - Consultant, Chariot Solutions
Tue - 11:30-12:30 PM, Salon A
Mobile

With mobile apps becoming more and more reliant on web services, managing network code has become one of the central responsibilities of the mobile application architect. This talk will cover Robospice, an open-source networking library for Android. Robospice streamlines some the most common networking tasks on Android, such as:

  • asynchronous background threading
  • network request, response and error handling
  • binding of JSON, XML and other data interchange types to Java objects
  • robust response caching
  • support for several library modules, including Spring Android and Google HTTP Client

This talk will not assume any previous Android knowledge, so those who are familiar with Java but not with Android are encouraged to attend.

RoboSpice is a project initiated and maintained by OCTO Technology.


video
Steve Chiles, Director of Strategy, DiD Steve Smith, Architect, Chariot Solutions Eileen Mesi, Associate Creative Director at DiD Quinn Hall, Technical Lead at DiD Chuck Sacco, President, Movitas
Steve Chiles - Director of Strategy, DiD
Steve Smith - Architect, Chariot Solutions
Eileen Mesi - Associate Creative Director at DiD
Quinn Hall - Technical Lead at DiD
Chuck Sacco - President, Movitas
Tue - 01:30-02:30 PM, Salon E
Management

For companies, especially those in a regulated industry, a great idea for a mobile app is just the first piece in a puzzle where everything must fit together to make that idea a reality. From solid creative and user experience to technical implementation and stakeholder reviews, it takes a solid vision, thoughtful plan, commitment and teamwork to create an app that consumers want to use.

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
Cory Smith, Maintainer, JsTestDriver
Cory Smith - Maintainer, JsTestDriver
Wed - 11:30-12:30 PM, Salon A
Agile

JsTestDriver is a unit test platform that has been designed with TDD in mind. The emphasis was placed on short iterations on multiple browsers. A brief introduction will be provided covering setup, customization, and some advanced topics including asynchronous testing. There may be a discussion of ducks. JsTD has been adopted by IntelliJ IDEA and used extensively within Google.

Kevin  Griffin, Consultant, Chariot Solutions
Kevin Griffin - Consultant, Chariot Solutions
Wed - 02:45-03:45 PM, Salon E
Mobile

In this talk we’ll look at ways to wrangle Xcode into smoothing out the development process. We’ll also take a look at some tools for addressing common software development needs including testing, debugging and automation.


video
Jurgen Appelo, Author, Management 3.0
Jurgen Appelo - Author, Management 3.0
Wed - 02:45-03:45 PM, Salon A
Agile

Many people in the world don’t really like their jobs. And most organizations are not healthy. They are badly prepared for increasing complexity and changing environments. Most managers know that organizations are complex systems. But few understand what that means for the way organizations should be managed. Complexity thinking suggests that we should seek a diversity of conflicting perspectives. It explains that organizations need experimentation, not just adaptation. And it says that most innovation happens by stealing and tweaking existing ideas to fit a new context. Ultimately, what organizations need is a “management workout”. A number of simple practices that make employees happy and the organization healthy, and which satisfy the rules of complexity thinking.


presentation
Dustin Getz, Architect, Wingspan Jason Feingold, Architect, Wingspan
Dustin Getz - Architect, Wingspan
Jason Feingold - Architect, Wingspan
Wed - 01:30-02:30 PM, Salon D
Languages

Both Clojure and Scala target enterprise-sized challenges, but the development styles are very different. We will live-code a small webapp in both languages, on two projectors, while demonstrating how each language influences our thought process, and the toolchain and library best practices. We will discuss how Scala makes you think in types, how Clojure’s interactive development lets you code without restarting your app, Scala’s query DSLs, plus Clojure’s secret weapon: Datomic.


video
Mat Schaffer, co-founder, Mashion
Mat Schaffer - co-founder, Mashion
Wed - 04:00-05:00 PM, Salon C
Infrastructure

Local Lightning talks

This session includes 5 rapid-fire talks showcasing some of the local applications of technology and what they’ve accomplished for their businesses. Philadelphia area local speakers include:

  • Brian Flad – Messing with Sasquatch: Chef in the Woods
  • Chris Alfano – The Emergence Platform
  • Nate Bomberger – Enterprise Logistics using CloudMine
  • Angel Pizarro – On-demand high-throughput compute clusters with StarCluster
  • Brian O’Neill – The Big Data Quadfecta: Combining Cassandra, Storm, Kafka, and Elastic Search
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
Nicolas Gallagher, Lead developer, HTML5 Boilerplate
Nicolas Gallagher - Lead developer, HTML5 Boilerplate
Tue - 02:45-03:45 PM, Salon D
Languages

HTML5 Boilerplate is an extremely popular front-end template that helps lay the ground work for building fast, robust, and adaptable web apps or sites. This project is the product of many years of iterative development and combined community knowledge. It tries to be agnostic of any specific, higher-level development philosophy or framework. Rather than adding features, the core project is now significantly smaller than when it was first released. The original creators of the project having long moved on but it continues to evolve and gain in popularity.

With ever increasing numbers of front-end developers collaborating on open source software projects – and moving into corporate software engineering roles – what are some of the successful approaches that projects like HTML5 Boilerplate have taken? This talk will look at a small, focused, open-source project in order to highlight some paths to maintaining “quality” code, facilitating teamwork and creating responsibility, sustaining a community of consumers, and aligning front-end software to the probable future of the web stack.


video
Michael Bevilacqua-Linn, Author, Functional Programming Patterns
Michael Bevilacqua-Linn - Author, Functional Programming Patterns
Tue - 01:30-02:30 PM, Salon B
Languages

Patterns and functional programming aren’t often mentioned together, but they’re related in a couple of ways. First, most of the classic object oriented design patterns fade away in languages with functional features. Second, functional languages have their own set of interesting patterns, which can often be given first class language support.

In this talk, based on the forthcoming Pragmatic Press book Functional Programming Patterns, we’ll examine a few of each type of pattern, and show how adding functional features to a language lets us solve the same problems that common object oriented patterns solve in a more concise, straightforward fashion.


presentation
Satwik Seshasai, VP of Engineering, NextDocs
Satwik Seshasai - VP of Engineering, NextDocs
Tue - 10:15-11:15 AM, Salon E
Management

Philadelphia developers have formed an amazing community and are harnessing the newest waves of technology to revolutionize the world. Philadelphia is also home to unique companies that are tackling big problems like curing cancer, making water available to every human on the planet, or making sure people have enough money to live comfortably in retirement. Over the month of April, the Philly Enterprise Hackathon will connect these two communities to develop game changing ideas. Winners will be awarded with significant prize money, mentorship and incubation in one of Philly’s hottest spaces to build a company. Come hear from the organizers and sponsoring organizations about what you can help build and get signed up for the most exciting hackathon in the country!


video
Philipp Haller, co-author, Actors in Scala
Philipp Haller - co-author, Actors in Scala
Wed - 02:45-03:45 PM, Salon C
Languages

Ever wished the compiler could make asynchronous programming easier? Enter Scala Async. Do asynchronous I/O like “normal” blocking I/O, program with Futures and Promises even more naturally! Scala Async makes it possible to “suspend” at arbitrary points in a block of regular Scala code, and to “resume” from that point later— all without blocking. This not only makes it possible to make concurrent code look sequential, it makes it possible to actually use even the most unfamiliar asynchronous libraries in a familiar blocking style. What’s more, not only does it come out-of-the-box seamlessly integrated with Scala 2.10’s new Futures and Promises API, but you can also easily use it with any other event-driven Scala or Java library of your choice, like Java NIO, Twitter’s Finagle, or Dispatch.


video presentation
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
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
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
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
Dan Frank, Software Engineer, bit.ly
Dan Frank - Software Engineer, bit.ly
Wed - 04:00-05:00 PM, Salon E
Infrastructure

Stream processing has emerged in recent years as a very fast-growing paradigm in data science infrastructure. This rise can be partly attributed to some factors external to system design, such as business demands for near-realtime data or inability of hardware to manage an ever-growing data set. However, this paradigm also possesses many inherent strengths, and there is good reason for it to be embraced, not simply tolerated. In this talk I’ll discuss some high level advantages of processing data in streams, such as fault tolerance, horizontal scalability, and composability. I’ll then introduce NSQ, Bitly’s open source queueing system, and discuss how it provides us with these advantages and how it approaches the tradeoffs inherent in designing distributed systems. I’ll also discuss some of the burdens that NSQ places on developers, such as idempotent operations, and why they are necessary. Finally, I’ll discuss some new technologies that aim to abstract away the mechanism of communcation between streaming programs, and talk about the powerful opportunities and risks that they offer.


presentation video
David A. Black, author, The Well-Grounded Rubyist
David A. Black - author, The Well-Grounded Rubyist
Wed - 04:00-05:00 PM, Salon D
Languages

Change is a constant in the tech field, at many levels — from the introduction of major new tools and systems to the release of tiny updates for existing ones. Ironically, constant change results in a striking consistency over time. The view of our field from outer space, so to speak, remains remarkably stable. Meanwhile we have to decide what newness to master, what to quasi-master, and what not to bother with. Somewhere in that process we’re deciding how much, and in what, to specialize, and at what cost. We can’t all be experts in everything; and expertise is elusive, due to a kind of fractal quality to the field whereby whatever techniques one masters can be broken out into component or descendant techniques that have to be mastered on their own terms. Is specialization even a meaningful concept in our field? And can we even be good generalists, like decathletes, or do our simultaneous specializations fail to add up because of their often transient presence?


presentation
Claudia Perlich, Chief Scientist, m6d
Claudia Perlich - Chief Scientist, m6d
Tue - 08:45-09:45 AM, Grand Ballroom
Keynote

The Harvard Business Review declared Data Scientist “The sexiest job of the 21st Century” So what is all the Big Data hype about? Can data really change the way we live our lives and go about business?

Digital advertising is one of the fields on the forefront of exploring and exploiting Big Data. The main change in the world of data is its unprecedented granularity – particularly in measuring human behavior. Marketers in the past could only get as granular as demographic groups, like affluent middle-aged coffee-drinking parents. Today’s marketers can zoom into the forest to see individual trees, pinpointing a shopper standing in front of the Starbucks on 42nd and 5th, and only a short stroll from the Toys"R"Us store.

At M6D we use the new Big Data to change display advertising. We use high-granularity visitation records of our browsers to build predictive models in three areas: I) in targeting, to analyze web browsers’ digital online journeys to identify prospects with unprecedented precision; II) in bid optimization, to evaluate every advertising opportunity in real time and adjust bid prices accordingly; and III) in fraud detection, to root out bad apples that poison the marketing ecosystem.


presentation video
Joseph Campbell, Sr. Software Architect Wally Eggert, Principal Software Engineer, CIM
Joseph Campbell - Sr. Software Architect
Wally Eggert - Principal Software Engineer, CIM
Tue - 04:00-05:00 PM, Salon D
Agile

Many companies have tried speeding up their existing software deployment cycle only to discover that it leads to chaos. As organizations try to deploy more quickly, they are held back by error-prone and unpredictable deployment processes being executed by an Operations staff that becomes increasingly overworked and overtired.

So how did we achieve Continuous Delivery:

1) In a big company
2) Where not everyone was even doing the basics of CI yet?

In this talk we’ll cover the steps that were taken to go from just the basics to full blown Continuous Delivery, discussing who we needed to convince that continuous delivery was THE way to go, the tools and approaches that worked for us, and how we managed to move to Continuous Delivery without any major disruptions to our existing delivery flow.


Video Presentation
Rich Hickey, Author of Clojure, Designer of Datomic
Rich Hickey - Author of Clojure, Designer of Datomic
Tue - 02:45-03:45 PM, Salon C
Infrastructure

Proponents of functional programming tout its many benefits, most of which are available only within a particular process, or afforded by a particular programming language feature. Anything outside of that is considered I/O, dangerous and difficult to reason about. But real systems almost always cross process and language boundaries, and most require, crucially, a very gnarly bit of shared state – a database. In this talk we will examine how Datomic renders the database into that most prized and easy-to-reason-about construct, a value, and makes it available to multiple processes in multiple languages, functional and not.

Along the way, we’ll discuss the importance of immutability and time in representing information, the reification of process, and the mechanisms of durable persistent data structures. No knowledge of functional programming is required.

Charlie  Hunt, Author, Java Performance
Charlie Hunt - Author, Java Performance
Tue - 11:30-12:30 PM, Salon C
Infrastructure

When you are faced with the challenge of tuning JVM, you can find a wide variety information. Yet, almost always the information is rather specific in the type of tuning, or specific to a type of problem. Seldom can you find information that tells abstracts the details into a higher level and simplifies it into a set of fundamentals and principles. This is what you can expect to hear and learn in this session.
The first important thing to do is to understand your application requirements when it comes to the performance metrics of throughput, latency and footprint. From there you can formulate a strategy including choosing an appropriate GC. From there it’s a matter of understanding some fundamentals about what impacts GC behavior and what you can do about it. In addition, you will also learn what a Java developer should understand when it comes to JIT compilation and what he or she can do about it.


presentation video
Jamie Allen, authoring, Effective Akka Cliff  Click, CTO & Founder, 0xdata Charlie  Hunt, Author, Java Performance Doug Lea, Governing Board, OpenJDK Michael Pilquist, Lead Software Architect, CCAD
Jamie Allen - authoring, Effective Akka
Cliff Click - CTO & Founder, 0xdata
Charlie Hunt - Author, Java Performance
Doug Lea - Governing Board, OpenJDK
Michael Pilquist - Lead Software Architect, CCAD
Wed - 11:30-12:30 PM, Salon C
Infrastructure

In today’s production environments, tremendous amounts of work can be performed on servers running the JVM with dozens of cores, yet in just a few years we could have machines that have thousands of cores. Parallelizing work in such a “manycore” environment is a hot topic, as is managing concurrency with so many possible threads executing at the same time. Will deterministic results be impossible in such a world? Will the JVM evolve to have more hardware affinity, providing developers with tools to create applications with more specific performance profiles? Join us as we talk with experts Cliff Click, Charlie Hunt, Doug Lea and Mike Pilquist about the challenges facing developers using the JVM on tomorrow’s computing platforms, as well as discuss the future of the JVM itself.


presentation video
Ken Schwaber, Co-creator, Scrum process
Ken Schwaber - Co-creator, Scrum process
Tue - 10:15-11:15 AM, Salon C
Agile

The move is on. More and more organizations are abandoning waterfall and opting for agility. The benefits are overwhelming, documented by Standish Group, the GAO, and DOD. Lately, two approaches to becoming agile have emerged.

One is SAFe (Scaled Agile Framework), an agile template that can somewhat readily be overlaid on existing organizational structures. Adopting it provides agility.

The other is CIF (Continuous Improvement Framework), which requires organizational change driven by the organization itself, optimizing its particular effectiveness. CIF is aimed at optimizing value.

Ken will provide an overview of both and help organizations understand their alternatives.


video
Trevor Lalish-Menagh, co-creator, EnvJasmine
Trevor Lalish-Menagh - co-creator, EnvJasmine
Tue - 02:45-03:45 PM, Salon A
Agile

Our teams have embraced the agile spirit for years, and what that means to us is flexibility. Flexibility in management, flexibility in employees, and flexibility to change. Earlier this year, the team I am on decided to experiment with a Kanban board and work in progress limits, bucking the trend of a scrum-based approach. Although we had bumps in the road, through frequent retrospectives and a willingness to change we found a system that works for us. I will share our experience with you in the hope that you can foster the agile spirit in your workplace as well.


Presentation
Blake Mizerany, Go Contributor
Blake Mizerany - Go Contributor
Wed - 11:30-12:30 PM, Salon B
Languages

Go programmers come from backgrounds you would likely not expect. The language was originally marketed as a “Systems Language”. But rather than being mostly composed of C and C++ programmers, many Go programmers come from Ruby, Python, Javascript, Erlang, and other popular dynamic languages; Much more than the Go authors had anticipated.

The creator of Sinatra (sinatrarb.com) will explain, in detail, why he has spent the last 2 years programming in Go full-time – using it not only for systems programming, but web and command-line programs as well.


presentation
Jim Weirich, Creator of the Ruby build tool, rake
Jim Weirich - Creator of the Ruby build tool, rake
Tue - 11:30-12:30 PM, Salon D
Languages

Are you curious about Ruby? Perhaps you’ve heard fantastic things about how Ruby makes you 100 times more productive. Or maybe you’ve heard the hype about this fantastic web framework called Rails that allows to you build your complete app in 5 minutes during a coffee break. And all this talk about meta-programming and dynamic languages, is it really that different from what you are using now?

While there certainly is a lot of buzz surrounding Ruby and Rails, there is also some basis for the buzz. This talk will cut through the hype and get down to the real reasons you might want to make Ruby your next programming language.


video