
We are using the gumHelper library for this. If you go directly to the project page and access the master branch, both the code and line numbers might differ from what this article says.Īnd we are really ready to go! Accessing the cameraĮverything starts with requesting access to the user's camera. To the juicy technical details!īut before we start deep diving into the code, let me add a little warning: Meatspaces chat is constantly being improved by the amazing community, so I will be referring to lines using a specific commit hash too.

You can also watch Edna's keynote at jQuery Con San Diego, where she talks about all this. If you haven't been to Meatspaces Chat yet, I recommend you go there now to familiarise yourself with how it looks and works before I get into technical details. it just exploded! People started coming to the site in flocks and being both puzzled by the unexpected cheerness and the general Back to the True Web raw and honest spirit: no sign up forms, no name to fill in, no identity to build and maintain just a text input and your face to show the world what you were up to in that very moment. It was easy to implement this using the two libraries that I had extracted out from rtcamera: gumHelper and Animated_GIF, and the rest is history!īut for those of you who don't know about history: we kept the chat in private for a while because Edna was going to present it at RealtimeConf. The avatar associated to your Persona account would be shown along with the message you sent, and messages would be deleted after a few minutes.īy that time I had been working on rtcamera, a camera app that could generate animated GIFs using your webcam as input, and somehow our thought trails converged: wouldn't it be super cool to use the webcam's input instead of an static avatar? Anyone could sign in using Persona, and start sending messages to the one chat room. She showed me a real time chat app she had hacked in a couple of hours, using LevelDB as the temporary, ephemeral storage.

Edna had just built a decentralised microblogging engine with Redis, and was trying to find a use case for a database she had just heard about, called LevelDB. We could spend hours just going through her list of projects and getting amazed by all the ways in which she's approaching the same aspect (human interaction) from different angles, both philosophical and technical, but this isn't Edna Piranha's Fan Club Blog, and David only asked me to write about Animated GIFs in the widely successful Meatspace Chat, so let's focus on that.
