The
Keeping it
Realtime
Conference

Schedule Videos


By developers, for developers

Passionate, kickass speakers

Brand new frameworks unveiled

Education for beginners & vets

Diverse perspectives and stacks

Venue to maximize discussion

Awesome networking events

Two amazing days


Brought to you by our presenters and these awesome sponsors:

...and our sweet supporting sponsors:


The Talks

Kyle Drake — GeoLoqi

Building MapAttack: a realtime geofence game

Drake will talk about what it takes to build, MapAttack, a truly real-time location-based geofencing game. Challenges and limitations, advantages and disadvantages will be discussed.

He'll also discuss the technology behind MapAttack, including Sinatra Synchrony for Ruby, which he built specifically for the Geoloqi's geofencing game MapAttack. He'll also cover what it took to build Geoloqi's real-time streaming API and how it can be used to bring real-time location functionality to existing applications.

Kyle Drake is a software engineer at Geoloqi. Drake helped build Geoloqi's real-time location-streaming API, and he developed the Sinatra Synchrony framework for Ruby specifically for MapAttack, a real-time location-based urban geofencing game built on the Geoloqi platform.

He also developed some of the top Facebook applications as a senior Facebook app developer at Dachis group in Portland, Oregon.

Leah Culver — Convore

Why we chose long-polling over websockets for Convore

(And it's probably not why you think.)

Khris Loux — Echo

Turning Realtime into Real Revenue

The realtime web is just getting started and while there are clear success stories amongst some silicon valley b2c startups, how can other small startups and the rest of the mainstream web develop, scale and profit from realtime products?

Khris Loux is the co-founder and CEO of Echo - a leading provider of realtime infrastructure to major media, brands and startups. Together with ISVs they have built and shipped realtime products at scale - making millions of dollars in the process.

Khris will share insights on where the realtime web is going, the business models and techniques to get there and how to turn cutting edge technology into profit.

Khris Loux has a long history of building, running and selling successful technology startups. He works with his team at Echo to define broad philosophical models for how the web might evolve (See: Synaptic Web, Data Portability, Realtime Storytelling, Facebook Tentacles) and leads Echo in executing on its part of the future.

Echo’s StreamServer serves 1 billion search requests/realtime streams a month for major customers like Turner Sports, NBCU, UMG, ESPN/ABC/Disney, Discovery, Reuters, Washington Post, Newsweek, Showtime, Rainbow media and more.

James Halliday — dNode, Browserify

The dNode Fandango

The trouble with data is that it doesn't DO anything. Data is cold, boring, and dead. But with dnode, you can enchant your data with dark sorcery as it passes between the land of the backends and the land of the browsers.

Instead of just passing boring old data around, in dnode you can pass functions around too, and they'll be called on whichever side defined them. Plus you can pass callbacks to your callbacks. It's callbacks all the way down!

dNode
Fandango

POTENTIAL BONUS CONTENT:
Bouncy is a super simple load balancer/http router that you can throw in front of your realtime app. It just works™ with websockets and other shiny new technologies. In this bonus feature I will demonstrate using bouncy to load-balance several dnode processes.

I'm a cofounder of Browserling. We just recently launched Testling which lets developers run javascript in all the browsers using curl one-liners. In Alaska I built underwater robots. These days I write a lot of javascript. Sometimes I draw comics. I blog at substack.net and my code lives at github.com/substack

Jeff Lindsay

NullMQ: Futuristic browser messaging

Despite the hype, the realtime web is just an extension of the age-old messaging world into the realm of the web. During this time, we're dealing with the frustrations of a transition period. We're moving from hacks to standard protocols and browser adopted technologies that will give us a more realtime web. There is a lot of confusion as people catch up on basic networking concepts and advance into messaging concepts. There is instability of platforms and libraries as standards shake out and developers actually realize the state of the art.

Let me show you the future. It takes the existing future of messaging systems and brings it to the web. It's a JavaScript library and standards based protocol stack called NullMQ. It gives you ZeroMQ for the browser.

As web developers realize the shortcomings of big MQ systems, a few are starting to grok the power of ZeroMQ, the next generation of messaging toolkits. Unfortunately it's out of reach to the browser and JavaScript. More importantly, it should be. There are inherent properties of the web and browser context that don't match up with ZeroMQ. But there's still a lot of power there, especially if you could interact with ZeroMQ based backends as if you were another ZeroMQ socket in that backend. This isn't Mongrel2, and it's certainly not socket.io, this is ZeroMQ-like sockets in the browser. And it's built on top of existing standards, based on the concepts of ZeroMQ.

We're not reinventing any wheels here, or making up our own protocols or APIs (like other JS messaging libraries). We're just adapting proven solutions to a new context to solve real problems. In this talk, we'll show you a preview of NullMQ, what it can do, what it's built on. Mostly it will be a discussion.

Hopefully your mind will be blown.

Mikeal Rogers

Beyond Realtime

The structure of web applications is changing. Requirements are changing, technologies are changing, and most importantly user expectations are changing.

Realtime is part of a larger shift in the structure and design of web applications. The old patterns we used for previous generations of applications will not hold up and we need to move on to something new.

Mikeal writes code, he used to work at Mozilla, CouchOne, and Yammer. He has a new thing he can't tell you about or else he'd have to kill you. Mikeal contributes to node.js and writes many widely used node.js modules and is the curator of NodeConf.

Henrik Joreteg — &yet, &! (and bang)

Adventures building 3 realtime, single-page apps, 6 different ways

Brian Noguchi & Nate Smith

Announcing Derby

Derby makes it easy to write collaborative, realtime applications that run in both Node.js and the browser.

Derby includes a powerful data synchronization layer called Racer that automatically syncs data between browsers, the server, and a database. Racer supports offline usage and conflict resolution out of the box, which greatly simplifies writing multi-user applications.

Derby applications load quickly, because the same templates render both on the server and the client. Nearly all client application frameworks render solely in the browser, resulting in slower page loads. In contrast, Derby makes it simple to write applications that load as fast as a search engine, are as interactive as a document editor, and work offline.


Julien Genestoux — Superfeedr

Making the Web Realtime

Websites can be realtime with the magic of technologies (like node.js, websockets and more!), but the web is bigger than any single website, and the web is not realtime today.

Open protocols like XMPP and PubSubHubbub help make the web itself realtime by federating data between different entities, structures and websites in realtime.

Julien Genestoux is the founder of Superfeedr.com. Superfeedr fetches and parses RSS or Atom feeds on behalf of its users and then pushes the new entries into the feeds. It is now the leading realtime feed provider on the web and hosts the vast majority of PubSubHubbub hubs. Julien is a strong open web advocate and will push (pun intended) anyone to use standard protocols rather than custom made APIs. Before founding Superfeedr, Mr. Julien Genestoux created Jobetudiant.net, the leading job board for students in France and was named by Business Week among the 15 top young European Entrepreneurs.

Adam Lowry — Urban Airship

Connecting With the Disconnected

In this multi-platform overview, I'll share some code to demonstrate how interactions work on each and spend most of the time digging into the flow of working with the systems on the client and server sides.

As a web developer creating a compelling experience is forefront in your mind. But if you have a companion mobile application, push notifications can be an excellent companion to your real time web application. This talk will cover how push notifications work on iOS, Android, and BlackBerry, and how to program against the different vendor's interfaces.

Adam Lowry is a co-founder and developer at Urban Airship, a fast growing startup and leading provider of messaging and content delivery services for mobile application developers. He lives in Portland, OR, drinks too much coffee, and enjoys building Python network applications.

Jack Moffitt — hacker+entrepreneur

Imagining the Future of Realtime

We live on the unexplored frontier of the real-time web. Current applications inspire and amaze, but new ideas and products are still waiting to be discovered and built. Current tools make it easier to do what is already possible, but how will we accomplish what is today considered impossible?

How will we build a web-based MMORPG or a first person shooter? How will we handle data exchange when every part of our app is a collaborative experience? How will we deal with combinations of future real-time services that must all work together?

In this talk, I'll introduce some ideas that may be helpful for the next generations of applications.

Jack Moffitt is a hacker and entrepreneur based in Albuquerque, New Mexico. He has founded several start-ups built on XMPP technology including Chesspark, a real-time, multi-user gaming platform, and Collecta, a real-time search engine for the Web. Previously he founded the Xiph.org Foundation, an organization that works on building and standardizing royalty-free multimedia codecs for the Internet including Vorbis and Theora. He also created the Icecast streaming media server.

He is the author of Professional XMPP Programming with JavaScript and jQuery, a book about developing real-time web applications with XMPP technologies.

He is passionate about free software and open source, open standards, and Internet technology. His favourite programming languages include JavaScript, Erlang, and Python.

Blog: metajack.im
Twitter: @metajack

Nathan Fritz — Thoonk!, SleekXMPP, &yet, XSF Council

Spec History Lessons for New Library Developers

Aaron Blohowiak — Transitive.io

Design Trade-offs of Realtime Web Frameworks

You wouldn't use a fork to eat soup, you'd use the right tool for the job.

Aaron Blohowiak, author of Transitive.io, talks about decisions that every realtime framework designer has to make, describing the advantages and drawbacks of each choice so you will be able to design or chose a framework that makes the right trade-offs for your problem.

Considerations include:

  • When do updates spread? implicit vs explicit state propagation
  • What about race conditions? Locking vs Last-Wins
  • How do components communicate over the network? RPC vs message-oriented
  • Who is responsible for deciding how the HTML should change in the browser? Smart clients vs Smart servers
  • Do we need to support web crawlers or offline mode? SEO vs SPA

Sridatta Thatimpamala — NowJS, Flotype

The Path to 500K Concurrents: Achieving Massive Scalability for Real-time

Throw out everything you know about scaling. Real-time is a whole new ballgame. I'll cover share my in-depth expertise on how I created a highly concurrent, low-latency real-time web architecture at Flotype, with an emphasis on profiling, gathering metrics, and even some OS-level tuning.

Sridatta Thatipamala is cofounder and engineer at Flotype, specializing in scalable, high-performance real-time web systems.

Micheil Smith — Pusher

Sub-Protocols Over Websockets

I've recently started using a form of JSON-RPC over WebSockets and been impressed with how well it works. I think in the future we'll start seeing more and more applications building on top of protocols layered on top of websockets.

Future uses of websockets will be focus of this talk.

Pradeep Elankumaran — Kicksend

Launching a Realtime Startup

Kicksend's a new realtime filesharing and content delivery platform.

In this talk, I'm going to cover our architectural design decisions, the realtime stack we're currently using, the integration issues we faced, launching to the public and managing buzz-y marketing press for an application that's very realtime.

Owen Barnes — SocketStream, Aol Europe

Intro to SocketStream

Jens Alfke — Couchbase

_ch_ch_changes: CouchDB Notifications And Replications

Couchbase Server and Couchbase Mobile both share Apache CouchDB’s web-friendly REST APIs and reliable data synchronization. This makes it easy to build traditional web apps, mobile-hosted offline-capable HTML/JS apps, and native iOS and Android apps, all based on the same data and sync layer. Even better, all of these can tap into the CouchDB _changes feed to track real-time changes to the shared data model as they flow across the network and between distributed clients.

Jens Alfke is a Mobile Engineering Peer at Couchbase, Inc. where he’s developing Couchbase Mobile for iOS. He has a long history as a Mac developer and spent 15 years at Infinite Loop working on everything from AppleScript and Stickies to iChat and Safari RSS, followed by two years at Google and RockMelt extending the Chrome browser. He’s an avid proponent of decentralized social software, despite never having managed to release any. In his spare time he pretends to be a DJ, and cuts things out of plastic with lasers.

Jérôme Petazzoni — dotCloud

Beyond Websockets: turbocharged toolbox for realtime in the Cloud

When we say “realtime” in a web context, we generally think about Websockets or comet (long polling or streaming). Those are often the best options when a browser is involved (let alone native push on some mobile devices).

But let’s think out of the browser for one second, and review other options. Do we want all our services to talk among one other using HTTP? What about DNode, or ZeroMQ?

We will review a non-exhaustive list of some awesome tools that can help you to develop better realtime apps. Have one node handle millions of concurrent connections, hundreds of thousands of queries per second.

Moving to deployment options, we will discuss how we apply these concepts to run realtime apps at scale on dotCloud.

Half sysadmin, half developer, Jérôme is now working at the PaaS provider dotCloud, where he wears the hats of Evangelist, Support Ninja, and Ops Guru.

Before joining dotCloud, he also co-founded Enix, french provider for cloud and virtualization services since 2005. He holds a Master's Degree in Fundamental and Applied Computer Science from the University of Marne-la-Vallée in Paris, France.

When he's not hacking on his computer, he can be seen cooking, or heard playing the piano, the bass, or the theremin.

Jina Bolton — GitHub

Style Guides & Sass

Having a good CSS architecture and workflow is incredibly rewarding and beneficial for good development, design, and business.

As continuous integration gains traction in the real world development workflow, style guides and Sass both help keep everything in check. Learn tips for smart, forward-thinking front end web development and maintainability—absolutely necessities for real-time web apps.

Astro — buddycloud

Low-level XMPP with Node.js

After introducing the basics of XMPP, I will outline the basic building blocks for node-xmpp, what aspects to pay attention to, and compare to other implementations such as ejabberd.

Astro is a young hacker with high interest in communication systems. Having helped build Superfeedr, he collected experience with high-performance near real-time message processing. He is currently affiliated with buddycloud where he builds a decentralized social networking service on top of XMPP in CoffeeScript.

Scott Hanselman & Paul Batum — Microsoft

SignalR – That node? No, it’s scalable realtime on ASP.NET. Open Source. Also hell is frozen.


Chad Selph — Twilio

Telephony and the Realtime Web

Chad will introduce Twilio, a cloud communications company that enables developers to interact with telephony using HTTP APIs. He'll discuss how Twilio uses WebHooks, the grandfather of the realtime web, and how to combine them with other technologies like Pusher and Node. Chad will also demonstrate an ejabberd to SMS bridge, how Twilio Client uses WebSockets for signaling and more.

Marak Squires — Nodejitsu

hook.io

hook.io is a full-featured i/o framework built in node.js. It's goal is to lower the entry barrier for building robust fault tolerant real-time applications that communicate with multiple sources of i/o across ANY device. hook.io consists of a small core which uses node.js libraries: socket.io, dnode, forever, nconf, and eventemitter2, and then dozens of support "Hook" libraries ( like twitter, irc, email, logger, webserver, logger, webhook, twilio, etc... ). It's designed from the ground up to be as user-friendly as possible, while still building on the very robust node.js ecosystem.

At Nodejitsu, we use hook.io in production for a variety of purposes, ranging from site monitoring to evented child process communications.

The format of the talk would be highly interactive, with live demos of several real-time services. Expect to see Marak live coding for complex real-time applications in front of the audience without fear. Audience members would be able to participate live in demos through various means of i/o such as: phone calls, sms text messages, emails, webpages, rss feeds, twitter, and irc.

Marak is a founder at Nodejitsu (a node.js cloud hosting company) and the author of the hook.io framework. He has spoken at JSConf 2010, NodeConf 2010, and JSconf.eu 2011. He also writes a lot of open-source code.

http://hook.io/
https://github.com/hookio/hook.io

Tomasz Janczuk & Glenn Block — Microsoft

Node, IIS, Windows 7 (and +1), Azure, and other things you didn’t expect.

Node.js provides a beautiful new platform for building realtime applications as long as you are not running on Windows.

That story is changing.

Come to this talk and see how Windows is becoming a great place for developing and deploying node.js applications, whether running on-premise or in the cloud.


Neuman Vong — Twilio

WebSocket Radio Station!

Neuman will talk about how to broadcast audio from one browser to multiple other browsers using WebSockets. The gist of it is to send captured microphone audio to a server which relays it to a listening WebSocket connection, at the other end of which is a browser that plays the audio. The first task is media capture. There's a Google-backed project called WebRTC, whicm aims to allow local media devices, like the camera and microphone, to be accessed and manipulated with Javascript. But it hasn't made its way into browsers yet, so while it does that we can use Flash. The second task is transmission. This is where WebSockets get involved and transport the audio chunks over the wire. The third task is playback. HTML5 provides an <audio > element, but was not created with streaming in mind. Does WebRTC have an answer for this? What's available right now for the realtime media developer? What about compression codecs and codec negotiation, how does this streaming fit into all this? Come to the talk and find out! There may even be a demo...

Neuman is a Software Engineer at Twilio, where he works on Twilio Client which is an audio pipe from the browser to the telephone. He's originally from Melbourne, Australia and this will be his first time visiting Portland, which he only knows about from watching Portlandia. Let's keep him weirded out.

Marek Majkowski — VMWare

SockJS: WebSocket emulation kept simple, stupid

People want to build realtime-enabled web apps right now, but WebSockets aren't ready yet. Various web messaging services are being build to address this.

In this talk we'll discuss the ingredients of realtime web apps, why third-party web messaging services aren't going to help in complex scenarios, and why generalizing messaging problems is not going to work within the web context.

We'll also present the SockJS project - our attempt to help building realtime web apps. As opposed to other solutions, SockJS is not a magical black box; instead it's a robust and portable building block for web applications.

Matt Pardee — Cloud9 IDE

Cloud9 Collaboration Architecture

Developing on the web offers enormous potential for connecting programmers. It also presents challenges to ensuring everyone is on the same page - literally.

In this talk I'll go over how we baked collaboration features into Cloud9 including realtime code editing and chat. I'll also demo the unique way we're connecting the open-source community to foster collaboration.

Adam Baldwin — nGenuity

Security of Realtime Systems; old attacks, new tools

node.js, socket.io, express and other technologies are simply awesome for the real time web. They are enabling front end javascript developers to take their skills to the server. This does not come without a price. Adam will discuss his experiences and thoughts on securing real time systems built on some of these technologies, the talk hopes to promote positive discussion not finger pointing of how we as a community can avoid the pitfalls of the past and make the realtime web a safer place.

Adam is the co-founder of nGenuity where he focuses on helping developers ship secure code.

Stephen Blum (PubNub) and Todd Greene (Loyalize)

Building Real-time Voting for SpikeTV

For their season finale, Spike TV’s Deadliest Warrior integrated live segments of the show’s hosts, who commented on real-time poll results taken from the show’s iPhone app, Android app and website.

This dynamic approach helped land the show a Top 10 “Social TV” spot on SocialGuide.com for the night, edging out CBS social TV juggernaut Survivor.

We will talk about what this means for Network TV Industry and how Real-time will evolve the usage of your computer and mobile phone.

Axel Kratel — Kaazing

Unleash the power of node.js and peer to peer by extending message brokers natively all the way to the browser over websockets

With html5 and web sockets, it is now possible to extend native protocols like STOMP, XMPP and AMQP all the way to the browser.

Messaging platforms like JMS and AMQP are ideal for building real time applications, and when extended to the browser via web sockets and Javascript, they become game changers for building scalable real time web applications.

In this talk, I will show you how to go from zero to sixty in a pure javascript world with a node.js back end messaging service running on a RabbitMQ broker, and manipulating a native AMQP stream over web sockets via Javascript in the browser.

We simply use a Kaazing gateway to relay TCP traffic over web sockets to fan out the broker all the way to millions of browsers simultaneously. Messaging brokers and TCP to websockets relay gateways can also be leveraged to implement peer to peer, browser to browser capabilities.