If you have problem, look in the console.

Please don't go to the presentation slides. It would ruin the whole thing.

WebSocket connected!

Good if you're seeing this message, then you've already connected!

Type in a short message (140 characters), hit enter, and it will show up in the slides. Please be nice.

Whew! If you're seeing this, then something is working!

See it just happened again. When the slides changed a message was sent to your browser.

While there are other options, Node.js using socket.io is an easy enough place to start.

HTTP is great and all, but not for low-latency applications. HTTP is a Pull technology.

We'll start with "solutions" that use HTTP but try to work around the issue.

The polling interval determines how close to realtime it can get.

Long Polling. See also Comet (programming).

Also known as EventSource. Using server-sent events on the client is easy. You'll need to do some evented programming on the server.

A socket for the Web.


how pronounce doge?

read doge meme

There are actually some frameworks that are starting to more heavily lean on WebSockets for more of their communication between server and client.

If you use WebSockets or if you come up with any ideas for something, I'd love to hear about it.

OK, maybe excusecases for learning the technologies.

I'll share the link to this site at the end of the presentation. I don't know that the server is ready to be Code4Libbed.

Please wait until I'm done with this presentation before going to this site and bringing it down :-)

Note how an increasing amount of the traffic is from mobile devices and tablets.

The work Ed Summers and others have done around real-time activity feeds was also an inspiration.

Why are 10 people all viewing the same image at the same time? This question answered later.

Laziness is a virtue of a programmer

OK, the images aren't always all this interesting or quick in appearing. This was all me on a staging server. One of the things I like the most about this feature, though, is how I'm always finding new gems in the collection that I wouldn't have seen otherwise.

Note the two images of the DH Hill Library at the end before the video loops again.

Oh, and this is HTML5 video embedded into the slide deck as data-URIs. Check out [my blog post on creating HTML and PDF Slideshows Written in Markdown with DZSlides, Pandoc, Guard, Capybara Webkit, and a little Ruby](http://jronallo.github.io/blog/html-and-pdf-slideshows-with-dzslides/).

The past few months the image of Tony Warren at the bottom left has been popular. He is the father of current NC State basketball player Tony "T. J." Warren, Jr..

I had hoped they'd still be in the NCAA tournament at this time.

I initially used Pusher.com for this and some other apps. I found it to be a great service and simple to get set up and going with WebSockets. I've sinced converted most applications over to using a locally hosted Node.js and socket.io server.

Since this is more a simple stream and everything flows in one direction, it would have been possible to use Server Sent Events instead of WebSockets.

Font Awesome and LibreOffice Draw made slides like this easy to make.

Finally some code! About time!

Rails and Blacklight make it easy to add this kind of functionality. Swing by the Project Blacklight table to talk with someone.

Quick Tip: I use the ability to create different rooms for different applications, but also for different environments. Staging and production versions of the same application can use the same WebSocket server by being in rooms named after the application plus environment.

You can open up your console and play with this right now.

// Create a new WebSocket
var socket =
  new WebSocket("ws://echo.websocket.org");

// Just log to the console when you
// receive a message from the server.
socket.onmessage = function(event) {

// Send a message to the server.
// See it echo back in this example.
socket.send("Sending a message!");

// close the connection

pew pew

Thanks to Stephen LaPorte and Mahmoud Hashemi for the original visualization and audiation and for putting an open source license on their code.

Wikipedia IRC Feeds

wikimon: Watch the RecentChanges IRC feed with Python. Then broadcasts changes over a WebSocket.

See also: wikistream

They've since added other languages to the original version for a total of 33.

Has anyone seen the remote?

This is an image of an early wireless remote control, the Zenith Space Command remote control.

Hopefully we'll be releasing a longer version of this promotional video soon.

Thanks to Mike Nutt for coordinating this shoot, to Alisa Katz for taking control of direction and her work behind the camera, and to Yairon Martinez for acting and patience.

Take that QR code haters!

See the original Instagram

Please don't try this at Hunt.

What kind of words or messaging to attract interactions are you using or would you test out?

This project is code named SVIZ. It doesn't really mean anything. We picked the catchiest short golink.ncsu.edu that we could get that had "viz" in it. It reminded one team member of Swiz, a DC hardcore band. I don't know if that's a good thing.

This was also integrated into our Blacklight-based digital collections site.

While it is usually used for mobile emulation, the Chrome Developer Tools Screen Emulation can also be used to get some idea what your work will look like on very large displays.

Both of the large wall projects ought to be up during the tour tonight if you want to give them a try. I'll try to be hanging around and playing with one or the other if folks have questions.

And now your moment of Zen.

I listened to a lot of Listen to Wikipedia while I developed this. I can't say it made me more calm.

Please feel free to contact me if you have any questions. See below.

If we have time you can ask a question. 140 characters. Please be nice.

Thank you for your question.