SlideShare a Scribd company logo
1 of 157
Download to read offline
Chris Wanstrath

                           http://defunkt.github.com




hi everyone, iā€™m chris wanstrath
i love randy rhoads
and kurt vonnegut
i live in san francisco
and work at github
(which is written in rails)
but! iā€™m not gonna talk about any of that stuff
today i want to talk about python
and comet

(among other things)
the
real-time
web                                                        (And other buzzwords)
                                                                By Chris Wanstrath
this talk is titled ā€œthe real-time web (and other buzzwords)ā€
so what is the ā€œreal-timeā€ web?
                                  ?
techcrunch and readwriteweb would have you believe itā€™s a way to get your RSS stories
faster
but is that it?
no.
itā€™s all about pushing
instead of polling
itā€™s getting told whatā€™s new
                               !
?
instead of asking for whatā€™s new
instant chat in the browser
and information the moment itā€™s available
Server
                   Client




one persistent connection
Client
                                           Server




instead of many, short lived connections
right now when we say ā€œreal-time webā€ we usually mean one of three things
comet
ļ¬‚ashā€™s XMLSocket
or HTML5ā€™s WebSocket
letā€™s start with comet
?
how many people know what comet is?

how many people know how it differs from XML socket or WebSocket?

good! for a long time i had no idea what comet was
i think it has a big marketing problem.
                                          !
see, comet is a cleaning product.
just like ajax
so itā€™s kind of like,
Me, too!




ā€œme tooā€
I, too, am a
                                                                                   revolutionary web
                                                                               technique you didnā€™t know
                                                                               existed and can start using
                                                                             today that will forever change
                                                                                the way you imagine the
                                                                                  web experience.




ā€œI, too, am a revolutionary web technique you didnā€™t know existed and can start using today
that will forever change the way you think about the web experience.ā€
...



and youā€™re like
Uhh...




uh...
AJAX!!!
if i had my way...
iā€™d call it something else
like maybe asteroid
i dunno, thereā€™s some cool imagery there
i dunno, thereā€™s some cool imagery there
i dunno, thereā€™s some cool imagery there
i dunno, thereā€™s some cool imagery there
i dunno, thereā€™s some cool imagery there
i dunno, thereā€™s some cool imagery there
i dunno, thereā€™s some cool imagery there
anything but comet
anyway, comet is any standards compliant technique which pushes or streams data to the
browser over HTTP

with comet you can essentially fake a socket connection between a browser and a backend
server
how about an example

well, for this yearā€™s django dash
me
alex gaynor... whoops...
alex gaynor
and leah culver
( Worldā€™s smallest park )




(seen here next to the worldā€™s smallest park)
built leafychat

irc in your browser using comet
you can connect to freenode channels
see whoā€™s online
and do the irc thing

right in your browser (demo?)
all without ajax
how?
       ?
well, there are a few components at play here
Browser




ļ¬rst youā€™ve got the browser (naturally)
Browser      Apache
                        80




then we have apache
Django
                                                              8000




         Browser                            Apache
                                              80




sitting behind apache is django (via mod_wsgi or whatever)
Django
                                                                        8000




         Browser                             Apache
                                               80




the browser hits leafychat.com, port 80, which hits apache. apache sees itā€™s a django request
Django
                                       8000




         Browser             Apache
                               80




and hands off the request.
Django
                                                                     8000




         Browser                             Apache
                                               80




once django generates a response, apache takes it and delivers it
Django
                                                                     8000




         Browser                             Apache
                                               80




back to the browser. thatā€™s, more or less, our HTTP request cycle
Browser




comet connections work in a similar fashion
Browser                            Orbited
                                             8100




instead of apache, we have Orbited sitting on port 8100
orbited is an open source, python comet server powered...
by twisted.

it does all of the comet heavy-lifting for us
Browser   Orbited
                 8100




so.
Zeddicus
                                                                     8200




         Browser                           Orbited
                                            8100




sitting behind orbited we have our app-speciļ¬c comet code. for leafy chat it was a twisted-
based daemon named zeddicus. it handled all the IRC stuff - connecting to channels, sending
messages, receiving private messages, logging, all that
Orbited
                                            8100




orbited handles generic browser stuff...
Zeddicus
                                                                     8200




while our app-speciļ¬c daemon (zeddicus) deals with the business logic.

in this case, irc stuff
Zeddicus
                                      8200




          Browser          Orbited
                            8100




does this look familiar?
Django
                              8000




          Browser   Apache
                      80




no? ok.
Zeddius
                                                                       Zeddicus
                                                                        8200




          Browser                            Orbited
                                              8100




anyway, the browser (using orbitedā€™s bundled js library) makes a request...
Zeddius
                                                                       Zeddicus
                                                                        8200




          Browser                            Orbited
                                              8100




to port 8100. orbited sees itā€™s a request for zeddicus and hands it off to our backend
Zeddius
                                                                     Zeddicus
                                                                      8200




         Browser                            Orbited
                                             8100




zeddicus sees a new socket connection open, does some stuff, then writes to the socket
Zeddius
                                                                    Zeddicus
                                                                     8200




         Browser                           Orbited
                                            8100




orbited reads what zeddicus wrote to the socket connection they share
Zeddius
                                                     Zeddicus
                                                      8200




         Browser                           Orbited
                                            8100




then sends it back the browser via comet
Django
                              8000




          Browser   Apache
                      80




just like before
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>

    <script>
        // session data
        var session_nick = ""
        var session_channels = []
    </script>
    <script type="text/javascript" src="/static/js/soundmanager2/soundmanager2-nodebug-jsmin.js"></script
    <script type="text/javascript" src="/static/js/audio-player.js"></script>

    <title>Leafy Chat</title>

    <link rel="icon" href="/static/img/favicon.ico"/>

    <link rel="stylesheet" href="/static/css/reset.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="/static/css/facebox.css" type="text/css" media="screen/>
    <link rel="stylesheet" href="/static/css/base.css" type="text/css" media="screen" />

    <script> document.domain = document.domain; </script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">
    <script type="text/javascript" src="http://leafychat.com:8100/static/Orbited.js"></script>
    <script type="text/javascript" src="/static/js/facebox.js" charset="utf-8"></script>
    <script type="text/javascript" src="/static/js/cookie.js" charset="utf-8"></script>
    <script type="text/javascript" src="/static/js/leafy.js" charset="utf-8"></script>
    <script type="text/javascript" src="/static/js/kahlan.js" charset="utf-8"></script>


<div id="main">
    <div id="header">
        <div id="navigation" class="rounded">
            <ul class="nav-list">
                <!-- this should be a list -->
                <li>Hi <span id="welcome-user">there</span>!</li>



but while apache and django deal with html
Zeddius
                                                         Zeddicus
                                                          8200




         Browser                            Orbited
                                             8100




zeddicus, our back-end daemon, concerns itself only...
with json.

orbited supports STOMP, XMPP, and raw IRC, too, but JSON is the way to go.

why do i say that?
well, unfortunately this is where orbited does not rock
orbited only cares about giving you a socket, you have to do everything else yourself.

thatā€™s the deal
so you need to design your own protocol...
how it interacts with your back-end daemon
how events are ļ¬red and responded to
all that boring stuff
we ended up using a combination of django signals and json
Zeddius
                                                        Zeddicus
                                                         8200




         Browser                            Orbited
                                             8100




so this is our overview, except with one small change
Zeddius
                                                      Zeddicus
                                                       8200




          Browser                           Orbited
                                             8100




these are actually persistent connections
Zeddius
                                                      Zeddicus
                                                       8200




         Browser                            Orbited
                                             8100




between orbited and zeddicus itā€™s a tcpsocket
Zeddius
                                                         Zeddicus
                                                          8200




         Browser                           Orbited
                                            8100




between the browser and orbited itā€™s a comet technique
Zeddicus
                        Browser
                                                             8200




we jump through all these hoops because it allows us to write our app as if the browser is
connecting DIRECTLY to zeddicus via a tcpsocket
Zeddicus
                        Browser
                                                             8200




which is what the ā€œreal timeā€ web is all about and what comet gives us

the browser writes to and reads from a socket, our back-end daemon does the same.
fast communication
Zeddius
                                                          Zeddicus
                                                           8200




          Browser                               Orbited
                                                 8100




alright, so letā€™s talk about this part a bit more

the comet part
Zeddius
                                                                       Zeddicus
                                                                        8200




          Browser                            Orbited
                                              8100




there are a few different ways to fake a persistent connection to a server with modern
browsers
xhr long polling

- hang an xhr request until we get a response or 30s, then re-open and wait again
<script>
script tag long polling

- dynamically create a script tag pointing to a url that hangs or times out, rinse and repeat
<iframe>
forever frame

- open a Content-Encoded: chunked url in an iframe, each chunk is a <script> tag that runs
xhr streaming

- set content-encoding: chunked and trigger onreadystate callback with each chunk
so now you know our white lie: we donā€™t have real persistence, or a real socket.

we fake it at both ends.
or, really, orbited fakes it at both ends
all that to get irc in your browser
well, kinda
Zeddius
                                                               freenode
                                                               Zeddicus
                                                                 8200
                                                                 6667




          Browser                             Orbited
                                               8100




see, with orbited, you can connect directly to an irc server

and why not? itā€™s just a socket connection
in fact you can demo a (somewhat functional) irc connection on the orbited website
Zeddius
                                                                    Zeddicus
                                                                     8200




         Browser                           Orbited
                                            8100

                                                                             Zeddius
                                                                            freenode
                                                                            Zeddicus
                                                                              8200
                                                                              6667




but with leafychat we wrote our own backend daemon that connected to irc.

why?
logging.
Zeddius
                                                                       Zeddicus
                                                                        8200




          Browser                            Orbited
                                              8100




if we loaded our django code into zeddicus, we could easily log irc chats youā€™re interested in
based on your session id.

it works very well.
Django     Orbited
                                                                    8000




          Browser                              Apache
                                                 80

                                                                      Zeddius
                                                                       8200




at this point i should mention the older tutorials online explaining how to load orbited into
django.
Apache                    Django
                                                80                       8000

         Browser


                                              Orbited                  Zeddicus
                                               8100                     8200




but i the best (and simplest) way is to let each component be its own daemon

it works great for production as well as dev mode - the django dash judges were able to start
and run our app locally, despite the number of daemons that needed to run
if you want to get a comet app up and running locally, check out orbited

it supports a ton of comet transports and is actively maintained
using java? jetty has comet support
the ruby world has juggernaut
while perl has meteor
thereā€™s the interesting in-progress Ajax Push Engine
and in erlang thereā€™s erlycomet (built on mochiweb)
so, ļ¬‚ashā€™s XMLSocket
Zeddius
                               Zeddicus
                                8200




           Browser   Orbited
                      8100




it turns this
Zeddicus
            Browser
                       8200




into this
how? ļ¬‚ash allows you to make tcp connections in actionscript.

by providing a javascript api to those tcp connections, we can use ļ¬‚ash to create persistent,
socket connections from the browser
no lying needed
of course, it may be non-standard and might not work great across ļ¬rewalls. but if you can
use it, itā€™s pretty great
a popular technique is to attempt to open a ļ¬‚ash socket, then fall back to standards based
comet methods if it fails

itā€™s good backup
there are a few nice libraries for xml socket on github
tmm1 / jssocket



my favorite is tmm1ā€™s jssocket
defunkt / jssocket



(i have a fork which removes the jquery dependencies)
ļ¬nally: HTML5ā€™s WebSocket
itā€™s still a proposed draft

but itā€™ll let you open a socket to any serve that speaks the special WebSocket protocol
ws://
servers need to speak the WebSocket protocol - you canā€™t open arbitrary connections to irc or
xmpp gateways

this plugs up the obvious security holes but also makes it a bit harder to implement than
something like XMLSocket

your server needs to speak ws
so, in review
                ?
comet
should be called asteroid
ļ¬‚ashā€™s XMLSocket
is non-standard but nice
HTML5ā€™s WebSocket
not yet here

but futuristic
you should give orbited a shot
with json
0
probably null terminated
Django   Orbited
                                8000




donā€™t load orbited in django
Orbited
                                 8100




use them alongside each other
is that it?
              ?
thatā€™s it
            !
Thank You
http://www.ļ¬‚ickr.com/photos/mojombo/3785549701/sizes/l/
http://www.ļ¬‚ickr.com/photos/voteprime/2361330726/sizes/o/
http://www.ļ¬‚ickr.com/photos/johnkerr/2371310025/sizes/l/
http://www.ļ¬‚ickr.com/photos/h19/182898904/
http://www.ļ¬‚ickr.com/photos/ukinindia/3595042998/sizes/l/
http://www.ļ¬‚ickr.com/photos/scott1027/3189137578/sizes/l/
http://www.ļ¬‚ickr.com/photos/foxypar4/2124673642/sizes/l/
http://www.ļ¬‚ickr.com/photos/nickwheeleroz/2166114756/sizes/l/
http://www.ļ¬‚ickr.com/photos/nickwheeleroz/2178146080/sizes/l/
http://www.ļ¬‚ickr.com/photos/diyromarcade/3006368260/sizes/o/
http://www.ļ¬‚ickr.com/photos/boopsiedaisy/3611187885/sizes/o/
http://www.ļ¬‚ickr.com/photos/bastispicks/2834869959/sizes/l/
http://www.ļ¬‚ickr.com/photos/courtenay/2536259393/sizes/l/
http://www.ļ¬‚ickr.com/photos/jardinle/3335907363/sizes/o/
http://www.ļ¬‚ickr.com/photos/tim-miley/3569809538/
http://www.ļ¬‚ickr.com/photos/dexterousartisan/3209508363/sizes/l/
http://www.ļ¬‚ickr.com/photos/equanimity/3763158824/sizes/l/
http://www.ļ¬‚ickr.com/photos/24617281@N04/2329660856/sizes/o/
http://farm4.static.ļ¬‚ickr.com/3555/3767120120_8f43f885e1.jpg
http://www.ļ¬‚ickr.com/photos/raffaella/64701476/
http://www.ļ¬‚ickr.com/photos/monicareyes/405402858/sizes/o/
http://www.ļ¬‚ickr.com/photos/11016633@N07/2232831953/

ļ¬‚ickr

More Related Content

What's hot

Sieve analysis of coarse and fine aggregate - Report
Sieve analysis of coarse and fine aggregate - ReportSieve analysis of coarse and fine aggregate - Report
Sieve analysis of coarse and fine aggregate - ReportSarchia Khursheed
Ā 
Google Scholar's citation graph: comprehensive, global... and inaccessible
Google Scholar's citation graph: comprehensive, global... and inaccessibleGoogle Scholar's citation graph: comprehensive, global... and inaccessible
Google Scholar's citation graph: comprehensive, global... and inaccessiblealbertomartin101
Ā 
industrial training certificate
industrial training certificateindustrial training certificate
industrial training certificateamit kumar
Ā 
Me thesis
Me thesisMe thesis
Me thesisMd Yunus
Ā 
Unconfined compression test
Unconfined compression testUnconfined compression test
Unconfined compression testNatalie Ulza
Ā 
Research Proposal and Research Paper writing workshop on 23 Aug
Research Proposal and Research Paper writing workshop on 23 AugResearch Proposal and Research Paper writing workshop on 23 Aug
Research Proposal and Research Paper writing workshop on 23 AugDr. Rashmi Hebalkar
Ā 
Laura Pietrzak CoolSculpting Treatment Technique - New York
Laura Pietrzak   CoolSculpting Treatment Technique - New YorkLaura Pietrzak   CoolSculpting Treatment Technique - New York
Laura Pietrzak CoolSculpting Treatment Technique - New YorkLaura Pietrzak
Ā 
Ion beam lithography
Ion beam lithographyIon beam lithography
Ion beam lithographyHoang Tien
Ā 
Project presentation template
Project presentation templateProject presentation template
Project presentation templateAbhishek Bhardwaj
Ā 
Sample seminar report
Sample seminar reportSample seminar report
Sample seminar reportFarman Khan
Ā 
6 Arduino FDP Certificate-328.pdf
6 Arduino FDP Certificate-328.pdf6 Arduino FDP Certificate-328.pdf
6 Arduino FDP Certificate-328.pdfTejaECE
Ā 
Axiology floreann basco
Axiology floreann bascoAxiology floreann basco
Axiology floreann bascooryzasativa0720
Ā 
Fabrication process of Integrated Circuit (IC's)
Fabrication process of Integrated Circuit (IC's)Fabrication process of Integrated Circuit (IC's)
Fabrication process of Integrated Circuit (IC's)COMSATS Abbottabad
Ā 
History and philosophy of science
History and  philosophy of scienceHistory and  philosophy of science
History and philosophy of scienceHanimarcelo slideshare
Ā 
Pulsed Eddy Current Inspection (PEC) - Dacon Inspection Services
Pulsed Eddy Current Inspection (PEC) - Dacon Inspection ServicesPulsed Eddy Current Inspection (PEC) - Dacon Inspection Services
Pulsed Eddy Current Inspection (PEC) - Dacon Inspection ServicesDacon Inspection Services
Ā 

What's hot (20)

Forklift Tire and Chain Wear Charts
Forklift Tire and Chain Wear ChartsForklift Tire and Chain Wear Charts
Forklift Tire and Chain Wear Charts
Ā 
Sieve analysis of coarse and fine aggregate - Report
Sieve analysis of coarse and fine aggregate - ReportSieve analysis of coarse and fine aggregate - Report
Sieve analysis of coarse and fine aggregate - Report
Ā 
Google Scholar's citation graph: comprehensive, global... and inaccessible
Google Scholar's citation graph: comprehensive, global... and inaccessibleGoogle Scholar's citation graph: comprehensive, global... and inaccessible
Google Scholar's citation graph: comprehensive, global... and inaccessible
Ā 
ULTRASONIC TESTING REPORT
ULTRASONIC TESTING REPORTULTRASONIC TESTING REPORT
ULTRASONIC TESTING REPORT
Ā 
industrial training certificate
industrial training certificateindustrial training certificate
industrial training certificate
Ā 
Me thesis
Me thesisMe thesis
Me thesis
Ā 
Unconfined compression test
Unconfined compression testUnconfined compression test
Unconfined compression test
Ā 
Research Proposal and Research Paper writing workshop on 23 Aug
Research Proposal and Research Paper writing workshop on 23 AugResearch Proposal and Research Paper writing workshop on 23 Aug
Research Proposal and Research Paper writing workshop on 23 Aug
Ā 
Laura Pietrzak CoolSculpting Treatment Technique - New York
Laura Pietrzak   CoolSculpting Treatment Technique - New YorkLaura Pietrzak   CoolSculpting Treatment Technique - New York
Laura Pietrzak CoolSculpting Treatment Technique - New York
Ā 
Empiricism
EmpiricismEmpiricism
Empiricism
Ā 
Ion beam lithography
Ion beam lithographyIon beam lithography
Ion beam lithography
Ā 
Idealism
IdealismIdealism
Idealism
Ā 
Project presentation template
Project presentation templateProject presentation template
Project presentation template
Ā 
Sample seminar report
Sample seminar reportSample seminar report
Sample seminar report
Ā 
6 Arduino FDP Certificate-328.pdf
6 Arduino FDP Certificate-328.pdf6 Arduino FDP Certificate-328.pdf
6 Arduino FDP Certificate-328.pdf
Ā 
Axiology floreann basco
Axiology floreann bascoAxiology floreann basco
Axiology floreann basco
Ā 
Fabrication process of Integrated Circuit (IC's)
Fabrication process of Integrated Circuit (IC's)Fabrication process of Integrated Circuit (IC's)
Fabrication process of Integrated Circuit (IC's)
Ā 
History and philosophy of science
History and  philosophy of scienceHistory and  philosophy of science
History and philosophy of science
Ā 
Epistemology
EpistemologyEpistemology
Epistemology
Ā 
Pulsed Eddy Current Inspection (PEC) - Dacon Inspection Services
Pulsed Eddy Current Inspection (PEC) - Dacon Inspection ServicesPulsed Eddy Current Inspection (PEC) - Dacon Inspection Services
Pulsed Eddy Current Inspection (PEC) - Dacon Inspection Services
Ā 

Viewers also liked

Real time web_apps_pycon2012-v1
Real time web_apps_pycon2012-v1Real time web_apps_pycon2012-v1
Real time web_apps_pycon2012-v1Avinash Prasad
Ā 
PyConMY 2016 Django Channels
PyConMY 2016 Django ChannelsPyConMY 2016 Django Channels
PyConMY 2016 Django ChannelsKok Hoor Chew
Ā 
Async Tasks with Django Channels
Async Tasks with Django ChannelsAsync Tasks with Django Channels
Async Tasks with Django ChannelsAlbert O'Connor
Ā 
Django channels
Django channelsDjango channels
Django channelsAndy Dai
Ā 
Asynchronous PHP and Real-time Messaging
Asynchronous PHP and Real-time MessagingAsynchronous PHP and Real-time Messaging
Asynchronous PHP and Real-time MessagingSteve Rhoades
Ā 

Viewers also liked (6)

Real time web_apps_pycon2012-v1
Real time web_apps_pycon2012-v1Real time web_apps_pycon2012-v1
Real time web_apps_pycon2012-v1
Ā 
PyConMY 2016 Django Channels
PyConMY 2016 Django ChannelsPyConMY 2016 Django Channels
PyConMY 2016 Django Channels
Ā 
Async Tasks with Django Channels
Async Tasks with Django ChannelsAsync Tasks with Django Channels
Async Tasks with Django Channels
Ā 
Kharkivpy
KharkivpyKharkivpy
Kharkivpy
Ā 
Django channels
Django channelsDjango channels
Django channels
Ā 
Asynchronous PHP and Real-time Messaging
Asynchronous PHP and Real-time MessagingAsynchronous PHP and Real-time Messaging
Asynchronous PHP and Real-time Messaging
Ā 

Similar to The Real-Time Web (and Other Buzzwords)

Writing Portable WebSockets in Java
Writing Portable WebSockets in JavaWriting Portable WebSockets in Java
Writing Portable WebSockets in Javajfarcand
Ā 
Deadly pixels - NSC 2013
Deadly pixels - NSC 2013Deadly pixels - NSC 2013
Deadly pixels - NSC 2013Saumil Shah
Ā 
Usenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a ProxyUsenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a ProxyLeif Hedstrom
Ā 
Intro to Rails
Intro to RailsIntro to Rails
Intro to Railslvrubygroup
Ā 
XSS Without Browser
XSS Without BrowserXSS Without Browser
XSS Without Browserkosborn
Ā 
Whats Ajax Cheatsheet
Whats Ajax CheatsheetWhats Ajax Cheatsheet
Whats Ajax Cheatsheet51 lecture
Ā 
Whats Ajax Cheatsheet
Whats Ajax CheatsheetWhats Ajax Cheatsheet
Whats Ajax Cheatsheet51 lecture
Ā 
Slide Test
Slide TestSlide Test
Slide Testguest712401
Ā 
Fisl - Deployment
Fisl - DeploymentFisl - Deployment
Fisl - DeploymentFabio Akita
Ā 
Toster - Understanding the Rails Web Model and Scalability Options
Toster - Understanding the Rails Web Model and Scalability OptionsToster - Understanding the Rails Web Model and Scalability Options
Toster - Understanding the Rails Web Model and Scalability OptionsFabio Akita
Ā 
Understanding the Rails web model and scalability options
Understanding the Rails web model and scalability optionsUnderstanding the Rails web model and scalability options
Understanding the Rails web model and scalability options.toster
Ā 
Āµjax in 30 minutes
Āµjax in 30 minutesĀµjax in 30 minutes
Āµjax in 30 minutesLars Trieloff
Ā 
Why Nodejs Guilin Shanghai
Why Nodejs Guilin ShanghaiWhy Nodejs Guilin Shanghai
Why Nodejs Guilin ShanghaiJackson Tian
Ā 
Why Node.js
Why Node.jsWhy Node.js
Why Node.jsguileen
Ā 
Deployment de Rails
Deployment de RailsDeployment de Rails
Deployment de Railselliando dias
Ā 
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyFast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyKyle Drake
Ā 
Sparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With SparkSparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With SparkIan Pointer
Ā 
Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS drupalcampest
Ā 
Open innovation in software means Open Source (2011 remix)
Open innovation in software means Open Source (2011 remix)Open innovation in software means Open Source (2011 remix)
Open innovation in software means Open Source (2011 remix)Bertrand Delacretaz
Ā 
Your java script library
Your java script libraryYour java script library
Your java script libraryjasfog
Ā 

Similar to The Real-Time Web (and Other Buzzwords) (20)

Writing Portable WebSockets in Java
Writing Portable WebSockets in JavaWriting Portable WebSockets in Java
Writing Portable WebSockets in Java
Ā 
Deadly pixels - NSC 2013
Deadly pixels - NSC 2013Deadly pixels - NSC 2013
Deadly pixels - NSC 2013
Ā 
Usenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a ProxyUsenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a Proxy
Ā 
Intro to Rails
Intro to RailsIntro to Rails
Intro to Rails
Ā 
XSS Without Browser
XSS Without BrowserXSS Without Browser
XSS Without Browser
Ā 
Whats Ajax Cheatsheet
Whats Ajax CheatsheetWhats Ajax Cheatsheet
Whats Ajax Cheatsheet
Ā 
Whats Ajax Cheatsheet
Whats Ajax CheatsheetWhats Ajax Cheatsheet
Whats Ajax Cheatsheet
Ā 
Slide Test
Slide TestSlide Test
Slide Test
Ā 
Fisl - Deployment
Fisl - DeploymentFisl - Deployment
Fisl - Deployment
Ā 
Toster - Understanding the Rails Web Model and Scalability Options
Toster - Understanding the Rails Web Model and Scalability OptionsToster - Understanding the Rails Web Model and Scalability Options
Toster - Understanding the Rails Web Model and Scalability Options
Ā 
Understanding the Rails web model and scalability options
Understanding the Rails web model and scalability optionsUnderstanding the Rails web model and scalability options
Understanding the Rails web model and scalability options
Ā 
Āµjax in 30 minutes
Āµjax in 30 minutesĀµjax in 30 minutes
Āµjax in 30 minutes
Ā 
Why Nodejs Guilin Shanghai
Why Nodejs Guilin ShanghaiWhy Nodejs Guilin Shanghai
Why Nodejs Guilin Shanghai
Ā 
Why Node.js
Why Node.jsWhy Node.js
Why Node.js
Ā 
Deployment de Rails
Deployment de RailsDeployment de Rails
Deployment de Rails
Ā 
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyFast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Ā 
Sparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With SparkSparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With Spark
Ā 
Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS
Ā 
Open innovation in software means Open Source (2011 remix)
Open innovation in software means Open Source (2011 remix)Open innovation in software means Open Source (2011 remix)
Open innovation in software means Open Source (2011 remix)
Ā 
Your java script library
Your java script libraryYour java script library
Your java script library
Ā 

More from err

Inside GitHub
Inside GitHubInside GitHub
Inside GitHuberr
Ā 
Git: The Lean, Mean, Distributed Machine
Git: The Lean, Mean, Distributed MachineGit: The Lean, Mean, Distributed Machine
Git: The Lean, Mean, Distributed Machineerr
Ā 
Kings of Code 2009
Kings of Code 2009Kings of Code 2009
Kings of Code 2009err
Ā 
Forbidden Fruit: A Taste of Ruby's ParseTree
Forbidden Fruit: A Taste of Ruby's ParseTreeForbidden Fruit: A Taste of Ruby's ParseTree
Forbidden Fruit: A Taste of Ruby's ParseTreeerr
Ā 
Kickin' Ass with Cache-Fu (without notes)
Kickin' Ass with Cache-Fu (without notes)Kickin' Ass with Cache-Fu (without notes)
Kickin' Ass with Cache-Fu (without notes)err
Ā 
Kickin' Ass with Cache-Fu (with notes)
Kickin' Ass with Cache-Fu (with notes)Kickin' Ass with Cache-Fu (with notes)
Kickin' Ass with Cache-Fu (with notes)err
Ā 
Making and Breaking Web Services with Ruby
Making and Breaking Web Services with RubyMaking and Breaking Web Services with Ruby
Making and Breaking Web Services with Rubyerr
Ā 

More from err (7)

Inside GitHub
Inside GitHubInside GitHub
Inside GitHub
Ā 
Git: The Lean, Mean, Distributed Machine
Git: The Lean, Mean, Distributed MachineGit: The Lean, Mean, Distributed Machine
Git: The Lean, Mean, Distributed Machine
Ā 
Kings of Code 2009
Kings of Code 2009Kings of Code 2009
Kings of Code 2009
Ā 
Forbidden Fruit: A Taste of Ruby's ParseTree
Forbidden Fruit: A Taste of Ruby's ParseTreeForbidden Fruit: A Taste of Ruby's ParseTree
Forbidden Fruit: A Taste of Ruby's ParseTree
Ā 
Kickin' Ass with Cache-Fu (without notes)
Kickin' Ass with Cache-Fu (without notes)Kickin' Ass with Cache-Fu (without notes)
Kickin' Ass with Cache-Fu (without notes)
Ā 
Kickin' Ass with Cache-Fu (with notes)
Kickin' Ass with Cache-Fu (with notes)Kickin' Ass with Cache-Fu (with notes)
Kickin' Ass with Cache-Fu (with notes)
Ā 
Making and Breaking Web Services with Ruby
Making and Breaking Web Services with RubyMaking and Breaking Web Services with Ruby
Making and Breaking Web Services with Ruby
Ā 

Recently uploaded

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
Ā 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
Ā 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
Ā 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
Ā 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
Ā 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
Ā 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
Ā 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
Ā 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
Ā 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
Ā 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
Ā 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
Ā 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
Ā 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
Ā 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
Ā 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
Ā 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
Ā 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
Ā 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
Ā 

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Ā 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
Ā 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Ā 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Ā 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Ā 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Ā 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Ā 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
Ā 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Ā 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
Ā 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Ā 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
Ā 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Ā 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Ā 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Ā 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Ā 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
Ā 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
Ā 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
Ā 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Ā 

The Real-Time Web (and Other Buzzwords)