<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss version="2.0">
  <channel>
    <title>Pusher Blog</title>
    <link>http://blog.pusherapp.com</link>
    <description>...</description>
    <language>en-us</language>
    <pubDate>Wed, 22 Feb 2012 00:00:00 +0000</pubDate>
    <lastBuildDate>Wed, 22 Feb 2012 00:00:00 +0000</lastBuildDate>
    <managingEditor>info@new-bamboo.co.uk (Damien Tanner)</managingEditor>
    <webMaster>info@new-bamboo.co.uk (Damien Tanner)</webMaster>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/pusher" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="pusher" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>Spotlight: Moviepilot's realtime build status board</title>
      <link>http://blog.pusherapp.com/2012/2/21/spotlight-movie-pilot-s-realtime-build-status-board</link>
      <author>lina@pusher.com (lina)</author>
      <comments>http://blog.pusherapp.com/2012/2/21/spotlight-movie-pilot-s-realtime-build-status-board#disqus_thread</comments>
      <description>&lt;p&gt;&lt;em&gt;&lt;a href="http://moviepilot.com/"&gt;Moviepilot&lt;/a&gt; is a network for film fans interested in upcoming movies around the globe. &lt;a href="http://moviepilotlabs.tumblr.com/"&gt;Moviepilot Labs&lt;/a&gt; recently released &lt;a href="http://shoutbox.io/"&gt;Shoutbox&lt;/a&gt;, a free, centralized system status dashboard service which requires pretty much zero configuration.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;What was the problem you were trying to solve?&lt;/h3&gt;

&lt;p&gt;We wanted a real-time dashboard where we could visualize the current status of our project build. Initially we started using another WebSockets server, but it was acting oddly, requiring us to manually refresh our browser to see if there were changes in the status of our project.&lt;/p&gt;

&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/JKJO6OahZac" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;


&lt;h3&gt;What benefits does a realtime dashboard give your team?&lt;/h3&gt;

&lt;p&gt;A dashboard gives you an abstract view on your system without the need of actively collecting information snippets from various sources. As a dashboard screen on a wall can be seen by a lot of people it saves time regarding looking after systems and reducing the risk of overlooking a failure.&lt;/p&gt;

&lt;h3&gt;How can other development teams benefit from the dashboard/Shoutbox?&lt;/h3&gt;

&lt;p&gt;We know of other development teams having a dashboard screen in their development room. As the borders between server administration and development are rather blurry nowadays, an easy dashboard solution fills the niche between manual checking and complicated monitoring.&lt;/p&gt;

&lt;h3&gt;How did Pusher allow you to solve it?&lt;/h3&gt;

&lt;p&gt;Once we replaced the other server with Pusher, Shoutbox started to behave as we were expecting, now we can say that it gets updated as soon as we send messages to Pusher :D&lt;/p&gt;

&lt;p&gt;I would totally recommend going with Pusher over having your own WebSockets server. With Pusher things just work, with another server you might need to think about it.&lt;/p&gt;

&lt;h3&gt;Are there any benefits of using a hosted solution over a self hosted one?&lt;/h3&gt;

&lt;p&gt;The main advantages of a hosted solution are of course: You can focus on usage instead of also having to take care of the solution itself.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thanks to Caspar, Adolfo and the rest of the Moviepilotlabs team for a great service and an interesting case study. If you've built something useful and/or weird and wonderful we'd love to &lt;a href="http://pusher.com/support"&gt;hear from you&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</description>
      <pubDate>Wed, 22 Feb 2012 00:00:00 +0000</pubDate>
      <guid>http://blog.pusherapp.com/2012/2/21/spotlight-movie-pilot-s-realtime-build-status-board</guid>
    </item>
    <item>
      <title>Epic Pusher Hacks at the Guardian, London</title>
      <link>http://blog.pusherapp.com/2012/2/21/epic-pusher-hacks-at-the-guardian-london</link>
      <author>phil@pusher.com (phil)</author>
      <comments>http://blog.pusherapp.com/2012/2/21/epic-pusher-hacks-at-the-guardian-london#disqus_thread</comments>
      <description>&lt;p&gt;On Saturday I attended a hack day organised by &lt;a href="http://apigee.com"&gt;Apigee&lt;/a&gt; and hosted in &lt;a href="http://guardian.co.uk"&gt;The Guardien&lt;/a&gt; offices in London. It's great to go to hack events and see the innovative ways that developers can use Pusher. At my last count at least 6 teams used Pusher but we had to choose a winner...&lt;/p&gt;

&lt;h2&gt;Our winner: Wormr&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://wormr.com"&gt;&lt;img alt="Wormr_slide" src="http://blog.pusher.com/media/2012/02/21/08/31/57/21/wormr_slide.png?m=resize&amp;amp;o[geometry]=600x300&amp;amp;s=7f568b8c3d66fa6e" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Built by the guys from &lt;a href="http://assanka.net/"&gt;Assanka&lt;/a&gt; (who, as you can tell from the sneaky screenshot they sent me, are &lt;a href="http://assanka.net/jobs"&gt;hiring&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;a href="http://wormr.com"&gt;Wormr&lt;/a&gt; is targeted at two types of user:&lt;/p&gt;

&lt;h3&gt;Speakers&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;&amp;quot;If you're giving a talk, and want to know how people are feeling through the duration of your talk, add the wormr JavaScript code to your slides and get realtime feedback.&amp;quot;&lt;/em&gt;&lt;/p&gt;


&lt;h3&gt;Audiences&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;&amp;quot;Delighted? Disagree? Love it? Frustrated? Amazed? Bored? With wormr, you can now give your feedback direct to the speaker. If you're in a talk right now, then enter the talk id and start voting.&amp;quot;&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;The reason I like this is that it's something I've actually built a little widget for myself that does something similar, but not as well. Realtime feedback within a presentation is a really cool idea, if nothing else it shows off the realtime technology really well. Great work guys. You deserved your Arduino kit. I hope to see the same innovation in using it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I also found out that the guys built &lt;a href="http://meteorserver.org/"&gt;Meteor&lt;/a&gt; in 2006. Great to meet some realtime web tech pioneers. I hope to drag them over to using Pusher soon :)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;Noteworthy mentions&lt;/h2&gt;

&lt;h3&gt;Nobody Expects&lt;/h3&gt;

&lt;p&gt;The Nobody Expects team (yes, they were all Spanish) built a realtime hangman game. But, instead of saving a man from being hung you had to save a cat from being burnt (they do like cats, it was just a game). It was multiplayer and used Pearson and Pusher.&lt;/p&gt;

&lt;p&gt;&lt;img alt="Screenshot" src="http://blog.pusher.com/media/2012/02/22/08/15/57/353/screenshot.png?m=resize&amp;amp;o[geometry]=600x300&amp;amp;s=beade37435c2a430" /&gt;&lt;/p&gt;

&lt;h3&gt;Realtime Switchboard&lt;/h3&gt;

&lt;p&gt;Our friend from &lt;a href="http://twilio.com"&gt;Twilio&lt;/a&gt;, &lt;a href="http://twitter.com/stevegraham"&gt;Stevie Graham&lt;/a&gt;, built a switchboard web app where users could phone a Twilio number and the number of the caller would then instantly be pushed to a web dashboard using Pusher. Then the call could be answered and conversation would ensue using Twilio. Very cool and very useful.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I hope to write another blog post about this in the future&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;Who else was there?&lt;/h2&gt;

&lt;p&gt;Along with us the APIs represented at the event covered a range of functionalit and potential:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://developer.vodafone.com/"&gt;Vodafone&lt;/a&gt;, who are looking to push out a bunch of new APIS, but made &lt;code&gt;sendMessage&lt;/code&gt;, &lt;code&gt;trackPhone&lt;/code&gt; and &lt;code&gt;makePayment&lt;/code&gt; methods available for the event&lt;/li&gt;
&lt;li&gt;&lt;a href="http://developer.pearson.com/"&gt;Pearson&lt;/a&gt; offering access to a Longman Dictionary API (with useful audio samples), FT Press and Eyewitness Guides&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdp.betfair.com/"&gt;Betfair&lt;/a&gt; with a massive range of functionality, with an obvious focus on betting&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.inmobi.com/developer/"&gt;inmobi&lt;/a&gt; focusing on mobile advertising&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;We want to be at your hack day&lt;/h2&gt;

&lt;p&gt;If you are running a hack day and need API representatives please &lt;a href="http://pusher.com/support"&gt;give us a shout&lt;/a&gt;. We'd love to get involved.&lt;/p&gt;
</description>
      <pubDate>Tue, 21 Feb 2012 00:00:00 +0000</pubDate>
      <guid>http://blog.pusherapp.com/2012/2/21/epic-pusher-hacks-at-the-guardian-london</guid>
    </item>
    <item>
      <title>Tweek: Using Pusher to improve our dev process</title>
      <link>http://blog.pusherapp.com/2012/2/8/using-pusher-at-tweek-to-improve-our-dev-process</link>
      <author>phil@pusher.com (phil)</author>
      <comments>http://blog.pusherapp.com/2012/2/8/using-pusher-at-tweek-to-improve-our-dev-process#disqus_thread</comments>
      <description>&lt;p&gt;&lt;em&gt;We’re always on the lookout for cool and innovative ways of using Pusher so when Klaus Hartl of &lt;a href="http://tweek.tv/"&gt;Tweek&lt;/a&gt; told us about how they’d been using Pusher we thought "that's cool! Let's put that in a blog post".&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;What was the problem you were trying to solve?&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://tweek.tv" title="Tweek"&gt;&lt;img src="http://tweek.tv/assets/logo-2ba5b30f6836485f7264eccf2182a3b5.png" align="right" style="margin: 30px;" alt="Tweek logo" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the past I had been using &lt;a href="http://livereload.com"&gt;Livereload&lt;/a&gt; sucessfully for desktop targeted frontend-development. It makes continuous testing much easier and faster, especially the CSS part of it; no more hitting cmd-R. At Tweek though we’re developing an iPad only web application but we didn’t want to go back to tapping the reload icon while developing. It only adds up when developing for different OS versions and devices. We needed a solution that met the following requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;a.&lt;/strong&gt; has to work in any browser (i.e. won’t require browser extension), in our case mainly iOS (that’s just the start). Browser here may also mean a web view within a native application.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;b.&lt;/strong&gt; hassle-free (portable, no need to download and install any applications + browser extensions):
git clone, little bit of configuration and done.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;We decided to use Pusher, which we were using for other parts of our app already anyway. Our first implementation doesn't work exactly like Livereload in that it does not inject only the new CSS but always reloads the entire page. This is good enough for our needs.&lt;/p&gt;

&lt;h2&gt;How did Pusher allow you to solve it?&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://rubygems.org/gems/pusher"&gt;Pusher's ruby gem&lt;/a&gt; allowed us to easily build a &lt;a href="https://github.com/guard/guard"&gt;Guard&lt;/a&gt;, which is a command line tool to easily handle file system modification events, to monitor files for changes and let any listener know in realtime of such a change. It's like autotest on steroids! So whenever the &lt;a href="https://github.com/carhartl/guard-pusher"&gt;Pusher Guard&lt;/a&gt; detects a file change it instantly publishes a Pusher event to let any listeners know.&lt;/p&gt;

&lt;p&gt;Once the &lt;a href="https://github.com/carhartl/guard-pusher"&gt;guard-pusher gem&lt;/a&gt; was in place and running, our homegrown Livereload was a simple matter of adding a few lines of JS code to our application view in development  environment of our Rails backed application:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;     var pusher = new Pusher('...');
     pusher.subscribe('guard-pusher').bind('guard', function() {
         location.reload();
     });
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The guard-pusher gem isn't restricted to CSS or JavaScript at all. The developer decides which files to watch for modifications, that’s simply configuration in the Guardfile. Also, obviously, it doesn't have to be Livereload at all, it's just that I chose to use it like that (the &lt;code&gt;location.reload()&lt;/code&gt; part in the listener function).&lt;/p&gt;

&lt;h2&gt;How can other developers benefit from your solution?&lt;/h2&gt;

&lt;p&gt;By automating the "how to get updates in client-side code to any number of browsers" it makes cross-browser development more efficient and fun. No more manual browser reloading!&lt;/p&gt;

&lt;p&gt;It may also help with continuously running JS unit tests across a variety of browsers at the same time.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A big thanks to Klaus and the team at Tweek for coming up with this cool use of Pusher that could come in really handy during development. It's great to see that our free Sandbox plan can add real value to the development process. If you've build something useful and/or weird and wonderful we'd love to &lt;a href="http://pusher.com/support"&gt;hear from you&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</description>
      <pubDate>Wed, 08 Feb 2012 00:00:00 +0000</pubDate>
      <guid>http://blog.pusherapp.com/2012/2/8/using-pusher-at-tweek-to-improve-our-dev-process</guid>
    </item>
    <item>
      <title>Build realtime web apps together</title>
      <link>http://blog.pusherapp.com/2012/2/3/build-realtime-web-apps-together</link>
      <author>phil@pusher.com (phil)</author>
      <comments>http://blog.pusherapp.com/2012/2/3/build-realtime-web-apps-together#disqus_thread</comments>
      <description>&lt;p&gt;Wouldn't it be handy if you could give access to your Pusher apps to friends and colleagues so that you can easily work together on building an awesome realtime web app? Well, now it's possible. We've made it easy for you to share access to your:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Debug console&lt;/li&gt;
&lt;li&gt;Usage stats&lt;/li&gt;
&lt;li&gt;API keys&lt;/li&gt;
&lt;li&gt;WebHook settings&lt;/li&gt;
&lt;li&gt;Event creator&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Sharing access to an application is simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Log into the &lt;a href="https://app.pusherapp.com"&gt;Pusher dashboard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Select the app you'd like to share&lt;/li&gt;
&lt;li&gt;Select the 'Collaborate' tab&lt;/li&gt;
&lt;li&gt;Enter the emails of the people that you'd like to share with and click 'invite'
 &lt;div style="margin:30px;"&gt;&lt;img alt="Screen+shot+2012-02-03+at+13" src="http://blog.pusher.com/media/2012/02/03/07/36/24/709/Screen+Shot+2012-02-03+at+13.20.15.png?m=resize&amp;amp;o[geometry]=500x300&amp;amp;s=60849bb840d40873" /&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;An email will be sent to the person you've invited telling them the good news&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;It's as easy as that. Have fun collaborating!&lt;/p&gt;

&lt;p&gt;We want to know if this is useful, so please let us know what your experience is, and whether you have any &lt;a href="http://pusher.com/support"&gt;feedback&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Fri, 03 Feb 2012 00:00:00 +0000</pubDate>
      <guid>http://blog.pusherapp.com/2012/2/3/build-realtime-web-apps-together</guid>
    </item>
    <item>
      <title>Introducing Pusher WebHooks</title>
      <link>http://blog.pusherapp.com/2012/1/25/webhooks</link>
      <author>martyn@new-bamboo.co.uk (martyn)</author>
      <comments>http://blog.pusherapp.com/2012/1/25/webhooks#disqus_thread</comments>
      <description>&lt;p&gt;One of our primary goals when building Pusher has always been simplicity. Part of this is about hiding complexity, and providing clear and simple APIs for developers to use.&lt;/p&gt;

&lt;p&gt;However, under the covers there is a complex distributed system handling all the messages and events which occur inside Pusher.&lt;/p&gt;

&lt;h3&gt;Exposing complexity via simple mechanisms&lt;/h3&gt;

&lt;p&gt;As well as distributing messages, we'd like to make it simple for you to consume some of our internal events so that you can build more powerful apps with Pusher. Our initial implementation uses &lt;a href="http://www.webhooks.org/"&gt;WebHooks&lt;/a&gt;, which are a fantastically simple and elegant way for servers to send each other notifications.&lt;/p&gt;

&lt;p&gt;The first class of events which we're exposing allows your servers to be notified when any channel becomes &lt;strong&gt;occupied&lt;/strong&gt; or &lt;strong&gt;vacant&lt;/strong&gt;. There are a number of ways that this can be useful:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reducing the number of messages you send us&lt;/li&gt;
&lt;li&gt;Performing tasks when users subscribe to channels&lt;/li&gt;
&lt;li&gt;Building custom presence solutions on your server&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;As an example of the former, &lt;a href="http://pandastream.com"&gt;Panda&lt;/a&gt; is a video encoding service that displays the realtime encoding status of a user's videos via a lovely dashboard. They were making huge numbers of API calls to Pusher, notifying users who weren't online of status updates to their encodings. By using WebHooks, they've cut down massively on their API traffic by &lt;strong&gt;only sending events when someone is subscribed&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;Check out our example application&lt;/h3&gt;

&lt;p&gt;We've built a demo application, &lt;a href="http://filtrand.herokuapp.com/"&gt;filtrand&lt;/a&gt; to further demonstrate how Webhooks can be used. This app starts searching the &lt;a href="https://dev.twitter.com/docs/streaming-api"&gt;twitter streaming API&lt;/a&gt; for one or more terms whenever a user subscribes to the appropriate channel. We've published a &lt;a href="http://blog.pusher.com/2011/12/7/filtrand-a-demo-webhooks"&gt;blog post&lt;/a&gt; that goes into more detail.&lt;/p&gt;

&lt;h3&gt;Getting started&lt;/h3&gt;

&lt;p&gt;Full details on the format of WebHooks and how to integrate them are available in our &lt;a href="http://pusher.com/docs/webhooks"&gt;WebHook docs&lt;/a&gt;. We've aimed to make this feature incredibly easy to get up and running with, but get in touch if you run into any problems.&lt;/p&gt;

&lt;p&gt;Please note that we're not charging for Webhooks initially, but it's likely that they will count towards your message quota in future.&lt;/p&gt;

&lt;h3&gt;Taking things further&lt;/h3&gt;

&lt;p&gt;We have many plans for extending the list of events we expose in future. As usual with new features, we're keen to hear how people are using them, so please let us know what you think, and show us the cool things you build.&lt;/p&gt;
</description>
      <pubDate>Thu, 26 Jan 2012 00:00:00 +0000</pubDate>
      <guid>http://blog.pusherapp.com/2012/1/25/webhooks</guid>
    </item>
    <item>
      <title>Filtrand: a demo of Webhooks</title>
      <link>http://blog.pusherapp.com/2011/12/7/filtrand-a-demo-webhooks</link>
      <author>maryrosecook@pusher.com (maryrosecook)</author>
      <comments>http://blog.pusherapp.com/2011/12/7/filtrand-a-demo-webhooks#disqus_thread</comments>
      <description>&lt;p&gt;With &lt;a href="http://pusher.com/docs/webhooks"&gt;webhooks&lt;/a&gt;, Pusher can repost interesting events that occur in your app to a URL of your choice.&lt;/p&gt;

&lt;p&gt;We've built a demo, &lt;a href="http://filtrand.herokuapp.com"&gt;Filtrand&lt;/a&gt;, to show you how it works.  If you go to the &lt;a href="http://filtrand.herokuapp.com"&gt;Filtrand home page&lt;/a&gt; and enter a subject you are interested in, you will see a stream of tweets that mention this subject.&lt;/p&gt;

&lt;p&gt;&lt;img alt="Filtrand2" src="http://blog.pusher.com/media/2011/12/08/06/31/51/14/filtrand2.jpg?m=resize&amp;amp;o[geometry]=700x394&amp;amp;s=06573ed99fd80634" /&gt;&lt;/p&gt;

&lt;h3&gt;"How does it work?"&lt;/h3&gt;

&lt;p&gt;When a user specifies a subject - let us say, "baseball" - the Pusher JavaScript library subscribes them to a channel with that name.  They - and all the other users subscribed to that subject - will receive all events emitted on that channel.&lt;/p&gt;

&lt;p&gt;Filtrand includes a &lt;a href="http://nodejs.org/"&gt;Node.js&lt;/a&gt; server hosted on Heroku.  This server uses a module called &lt;a href="https://github.com/technoweenie/twitter-node"&gt;Twitter Node&lt;/a&gt; to stream in tweets that contain one of the subjects specified by a user.  Each tweet streamed in is emitted on all the channels to which it pertains.  That is, on all the channels with names that appear in the tweet.&lt;/p&gt;

&lt;p&gt;So, how does the Node.js server know when a user becomes interested in a subject? Well, Filtrand could have gone old school and posted requests from the subject form to an action on its Node.js server.  That would have worked.&lt;/p&gt;

&lt;p&gt;But, what if the user loses interest in the subject and closes their browser? The Node.js server would still be dutifully pumping out tweets about &lt;a href="http://images.google.com/search?tbm=isch&amp;amp;hl=en&amp;amp;source=hp&amp;amp;biw=1218&amp;amp;bih=963&amp;amp;q=scarlett+johansson&amp;amp;gbv=2&amp;amp;oq=sca&amp;amp;aq=0&amp;amp;aqi=g10&amp;amp;aql=1&amp;amp;gs_sm=e&amp;amp;gs_upl=2317l2994l0l4227l3l3l0l0l0l0l189l289l2.1l3l0"&gt;Scarlett Johansson&lt;/a&gt;, but no one would be listening.&lt;/p&gt;

&lt;p&gt;&lt;img alt="Scarlett_johansson" src="http://blog.pusher.com/media/2012/01/26/03/04/36/796/Scarlett_Johansson.jpg?m=resize&amp;amp;o[geometry]=700x525&amp;amp;s=50a4e69b3678ee16" /&gt;&lt;/p&gt;

&lt;p&gt;Luckily, we built Filtrand with magic as our base metal: we built it with webhooks.&lt;/p&gt;

&lt;h3&gt;"What are these Pusher Webhooks?"&lt;/h3&gt;

&lt;p&gt;Webhooks exposes an internal event called &lt;a href="http://pusher.com/docs/webhooks#channel-existence"&gt;channel existence&lt;/a&gt;.  Each time the first person joins a channel, a &lt;code&gt;channel_occupied&lt;/code&gt; event is emitted, and each time the last person leaves a channel, a &lt;code&gt;channel_vacated&lt;/code&gt; event is emitted.&lt;/p&gt;

&lt;p&gt;To enable this functionality in your app, go to your &lt;a href="https://app.pusherapp.com/"&gt;account dashboard&lt;/a&gt;, find your app, click on the webhooks link, click the enable webhooks check box, click the enable channel existence events check box and enter the URL to which you want to post channel existence events.&lt;/p&gt;

&lt;p&gt;We did this for Filtrand, so when someone expresses an interest in &lt;a href="http://en.wikipedia.org/wiki/Anarcho-primitivism"&gt;anarcho-primivitism&lt;/a&gt;, our Node.js server gets informed of this via a webhook from Pusher and starts requesting tweets on the subject from Twitter.  When the last person on the anarcho-primivitism channel closes their browser or leaves the Filtrand subject page, another webhook is sent to the Node.js server and it stops requesting tweets on that subject.&lt;/p&gt;

&lt;h3&gt;"How do I get started?"&lt;/h3&gt;

&lt;p&gt;Read the &lt;a href="http://pusher.com/docs/webhooks"&gt;documentation&lt;/a&gt;, or just head straight to your &lt;a href="https://app.pusherapp.com/"&gt;dashboard&lt;/a&gt; to set things up.&lt;/p&gt;
</description>
      <pubDate>Thu, 26 Jan 2012 00:00:00 +0000</pubDate>
      <guid>http://blog.pusherapp.com/2011/12/7/filtrand-a-demo-webhooks</guid>
    </item>
    <item>
      <title>New Pusher-JS version released - 1.11.0</title>
      <link>http://blog.pusherapp.com/2012/1/3/new-pusher-js-version-released-1-11-0</link>
      <author>max@new-bamboo.co.uk (max)</author>
      <comments>http://blog.pusherapp.com/2012/1/3/new-pusher-js-version-released-1-11-0#disqus_thread</comments>
      <description>&lt;p&gt;We are excited to announce a new JS version that includes a number of changes. These are outlined in a bit more detail below.&lt;/p&gt;

&lt;p&gt;Please note that this version of our JS is hosted under the domain &lt;code&gt;js.pusher.com&lt;/code&gt; rather than &lt;code&gt;js.pusherapp.com&lt;/code&gt;. All subsequent versions will use this domain too. While we will continue to support the old domain for previous versions, it is considered deprecated from this point onwards. If you are fetching the files over SSL, you will need to use the domain &lt;code&gt;https://d3dy5gmtp8yhk7.cloudfront.net/&lt;/code&gt; (previously &lt;code&gt;https://d3ds63zw57jt09.cloudfront.net/&lt;/code&gt;).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://js.pusher.com/1.11/pusher.min.js"&gt;http://js.pusher.com/1.11/pusher.min.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://d3dy5gmtp8yhk7.cloudfront.net/1.11/pusher.min.js"&gt;https://d3dy5gmtp8yhk7.cloudfront.net/1.11/pusher.min.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;All previous versions of the JS are also available from &lt;code&gt;js.pusher.com&lt;/code&gt;, so even if you are not yet ready to update to the latest version, please consider at least changing your URL to the new domain in readiness.&lt;/p&gt;

&lt;h3&gt;Connection reliability&lt;/h3&gt;

&lt;p&gt;This version of our JS is coupled with some new connection management code on our servers. This should greatly increase the reliability for a subset of our users who have experienced issues relating to zombie connections hanging around, and for people who have experienced issues when waking their computers from sleep (eg &lt;a href="https://github.com/pusher/pusher-js/issues/11"&gt;https://github.com/pusher/pusher-js/issues/11&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;We are particularly interested in feedback about this feature, so let us know if you how you get on with it.&lt;/p&gt;

&lt;h3&gt;Directing warnings to your console&lt;/h3&gt;

&lt;p&gt;We now have a &lt;code&gt;warn&lt;/code&gt; method that directs issues such as invalid or missing credentials to &lt;code&gt;console.error&lt;/code&gt; (if available) regardless of whether you have enabled debugging. This aims to avoid situations where problems are hidden from developers, and is only used for unexpected errors. For example, the lack of an internet connection, leading to Pusher failing to connect, will be logged using &lt;code&gt;Pusher.log&lt;/code&gt; as previously.&lt;/p&gt;

&lt;p&gt;If you'd like to avoid any possibility of warnings appearing for your users you can easily over-ride the function, e.g. &lt;code&gt;Pusher.warn = function() {}&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;Unbinding from events&lt;/h3&gt;

&lt;p&gt;As requested (&lt;a href="https://github.com/pusher/pusher-js/issues/12"&gt;https://github.com/pusher/pusher-js/issues/12&lt;/a&gt;), it is now possible to remove callbacks you have previously added to events from the WebSocket connection. This is especially useful in single page apps where a change of state means binding to a different set of callbacks.&lt;/p&gt;

&lt;h3&gt;Cleaning up&lt;/h3&gt;

&lt;p&gt;In this release, we have removed or made unavailable a number of variables and bindings that were essentially private, such as &lt;code&gt;Pusher.Channel.is_private&lt;/code&gt; and &lt;code&gt;Pusher.Channel.is_presence&lt;/code&gt;. In addition, it is no longer possible for developers to bind to &lt;code&gt;pusher_internal&lt;/code&gt; events. These events were marked as internal to allow us to change them without affecting the public interface of our library. If you have used these, you will need to change your code accordingly.&lt;/p&gt;

&lt;p&gt;We hope you like this version of our Javascript, and that it makes your usage of Pusher more productive. As usual, if you have any problems or suggestions, please contact &lt;a href="&amp;#109;&amp;#x61;&amp;#105;&amp;#108;&amp;#x74;&amp;#x6f;&amp;#x3a;&amp;#115;&amp;#x75;&amp;#x70;&amp;#112;&amp;#x6f;&amp;#x72;&amp;#116;&amp;#64;&amp;#112;&amp;#117;&amp;#x73;&amp;#x68;&amp;#x65;&amp;#x72;&amp;#x2e;&amp;#x63;&amp;#x6f;&amp;#109;"&gt;&amp;#x73;&amp;#x75;&amp;#x70;&amp;#x70;&amp;#x6f;&amp;#x72;&amp;#x74;&amp;#64;&amp;#112;&amp;#x75;&amp;#x73;&amp;#x68;&amp;#x65;&amp;#114;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Thu, 05 Jan 2012 00:00:00 +0000</pubDate>
      <guid>http://blog.pusherapp.com/2012/1/3/new-pusher-js-version-released-1-11-0</guid>
    </item>
    <item>
      <title>Pusher JS 1.10 released</title>
      <link>http://blog.pusherapp.com/2011/12/1/pusher-js-1-10-released</link>
      <author>phil@pusher.com (phil)</author>
      <comments>http://blog.pusherapp.com/2011/12/1/pusher-js-1-10-released#disqus_thread</comments>
      <description>&lt;p&gt;We update the Pusher JavaScript client library fairly frequently, but in this update we're making a few public API changes.  These include: a change to the subscription error event name, the addition of a subscription succeeded event and a return value for the &lt;code&gt;pusher.trigger&lt;/code&gt; method. So we though it warranted a blog post.&lt;/p&gt;

&lt;h2&gt;Subscription errors&lt;/h2&gt;

&lt;p&gt;If an event is triggered by either Pusher or a Pusher client library we follow the convention of prefixing the event name with &lt;code&gt;pusher:&lt;/code&gt;. A while ago, we added an event to the Pusher JavaScript library which is triggered if an error occurs when subscribing to a channel. (More specifically, it is triggered when authenticating the subscription.)  However, we forgot to prefix the event name. So, we've fixed this in 1.10 and updated &lt;a href="http://pusher.com/docs/client_api_guide/client_events#subscription_error"&gt;our docs&lt;/a&gt; and the &lt;a href="http://blog.pusher.com/2011/8/10/catching-your-private-and-presence-authentication-errors"&gt;blog post&lt;/a&gt; about this.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;var pusher = new Pusher('APP_KEY');
var channel = pusher.subscribe('private-channel');
channel.bind('pusher:subscription_error', function(status) {
  //  handle error
});
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Subscription success&lt;/h2&gt;

&lt;p&gt;Since you're notified when a subscription fails it makes sense to know when a subscription succeeds. So, we've added an event of for that.&lt;/p&gt;

&lt;p&gt;This is a very important update if you use &lt;a href="http://pusher.com/docs/client_events"&gt;client events&lt;/a&gt;, because this event gives you a way of knowing that you are safe to trigger client events. In earlier versions of the library, if you attempted to trigger an event on a channel before the channel subscription had registered with Pusher the event would not be published. It's now possible to avoid this scenario by waiting for subscription confirmation before triggering the client event:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;var pusher = new Pusher('APP_KEY');
var channel = pusher.subscribe('private-channel');
channel.bind('pusher:subscription_succeeded', function() {
  var triggered = channel.trigger('client-my_event', {some:'data'});
});
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;There's more information about this in the &lt;a href="http://pusher.com/docs/client_api_guide/client_events#subscription_succeeded"&gt;&lt;code&gt;pusher:subscription_succeeded&lt;/code&gt; docs&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Triggering client events&lt;/h2&gt;

&lt;p&gt;We're seeing an increasing number of requests for client events (especially useful within fast-paced &lt;em&gt;HTML5 multiplayer games&lt;/em&gt;) and, as we've seen above, it's good to know the result of any action, so we've updated the &lt;code&gt;channel.trigger&lt;/code&gt; function to return a &lt;code&gt;Boolean&lt;/code&gt; value that indicates whether or not the event was triggered successfully.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;var pusher = new Pusher('APP_KEY');
var channel = pusher.subscribe('private-channel');
channel.bind('pusher:subscription_succeeded', function() {
  var triggered = channel.trigger('client-my_event', {some:'data'});
  if(triggered) {
    console.log("Awesome! I've sent a client event");
  }
});
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;There's more information about this in the &lt;a href="http://pusher.com/docs/client_api_guide/client_events#trigger-events"&gt;triggering client events docs&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Final notes&lt;/h2&gt;

&lt;p&gt;The changes to the public API hopefully maintain consistency and provide a bit more functionality which will make building realtime HTML5 apps even easier.&lt;/p&gt;

&lt;p&gt;The new version of the Pusher JavaScript library can be found in the following locations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://js.pusherapp.com/1.10/pusher.min.js"&gt;http://js.pusherapp.com/1.10/pusher.min.js&lt;/a&gt; (just pusher.js for non-minified version)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://d3ds63zw57jt09.cloudfront.net/1.10/pusher.min.js"&gt;https://d3ds63zw57jt09.cloudfront.net/1.10/pusher.min.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;We recommend you include the minor version (1.10) and not the patch (1.10.1) so that you benefit from automatically receiving bug fixes. We'll won't update a minor version with a change that affects the public API.&lt;/p&gt;

&lt;p&gt;As always, we've pushed a &lt;a href="https://github.com/pusher/pusher-js/blob/master/CHANGELOG.markdown"&gt;change log&lt;/a&gt; and the &lt;a href="https://github.com/pusher/pusher-js"&gt;source for the Pusher JavaScript library&lt;/a&gt; to github.&lt;/p&gt;
</description>
      <pubDate>Tue, 06 Dec 2011 00:00:00 +0000</pubDate>
      <guid>http://blog.pusherapp.com/2011/12/1/pusher-js-1-10-released</guid>
    </item>
    <item>
      <title>Ways to use Pusher at the Mozilla Festival</title>
      <link>http://blog.pusherapp.com/2011/11/3/ways-to-use-pusher-at-the-mozilla-festival</link>
      <author>phil@pusher.com (phil)</author>
      <comments>http://blog.pusherapp.com/2011/11/3/ways-to-use-pusher-at-the-mozilla-festival#disqus_thread</comments>
      <description>&lt;p&gt;We're excited about attending the &lt;a href="https://mozillafestival.org/"&gt;Mozilla Festival&lt;/a&gt; from Friday 4th to Sunday 6th of November and I thought it was worth writing something which might give attendees a better idea about how Pusher could be used in a few of the &lt;a href="https://mozillafestival.org/program/design-challenges/"&gt;design challenges&lt;/a&gt;. Pusher can be used for realtime multiplayer HTML5 Games,  notifications, collaboration, social media integration, realtime data display and visualisation; all of which add an extra level of engagement to the user experience. But solid examples tend to really help. So, here are a few ideas that I could come up with and hopefully they'll plant a few seeds for greater ideas.&lt;/p&gt;

&lt;p&gt;But first...&lt;/p&gt;

&lt;h3&gt;Human APIs&lt;/h3&gt;

&lt;p&gt;Both Mary and I will be attending the festival as &lt;a href="https://mozillafestival.org/program/human-api/"&gt;Human APIs&lt;/a&gt; so please keep an eye our for us, say "hi" and grab hold of us to help you add cool realtime, multi-user, collaborative engaging experiences to the apps and games that you are building. It's exactly what we are there for!&lt;/p&gt;

&lt;p&gt;Here are some mugshots so you know who to look out for:&lt;/p&gt;

&lt;table style="margin-bottom: 20px; width: 300px;"&gt;
&lt;tr&gt;
&lt;td&gt;Mary Rose Cook&lt;/td&gt;&lt;td&gt;Phil Leggetter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://twitter.com/maryrosecook"&gt;@maryrosecook&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://twitter.com/leggetter"&gt;@leggetter&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="http://www.gravatar.com/avatar.php?gravatar_id=4fc0d13d7bbdbf5c075560c919db373e&amp;size=100" alt="Mary Rose Cook" /&gt;&lt;/td&gt;
&lt;td&gt;
&lt;img src="http://www.gravatar.com/avatar.php?gravatar_id=016deaac2e0c5474e0588e00a15e8dcf&amp;size=100" alt="Phil Leggetter" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;


&lt;h3&gt;Balancing the Newsflow: Real-time reporting vs. the big picture&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Challenge&lt;/strong&gt;: Workflow and user experience that seamlessly integrates real time reporting into the big picture&lt;/p&gt;

&lt;p&gt;Although the focus here is on creating a workflow the application that makes this possible is a very exciting concept. Firstly there is a requirement to ensure news is captured and curated from a number of sources. News is frequently broken on Twitter then augmented by blogs, pictures, video and audio. The first step in this process might be to gather and curate realtime data. &lt;a href="http://datasift.com/"&gt;DataSift&lt;/a&gt;, with it's Firehose access to Twitter along with a host of &lt;a href="http://datasift.com/a/platform/source-data/"&gt;other sources&lt;/a&gt;, is a great starting point for gathering that data. Not only can it be used to gather the data but also to curate it using their &lt;a href="http://datasift.com/a/platform/augmentations/"&gt;augmentation targets&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img align="right" src="http://www.gliffy.com/pubdoc/3035387/L.png" alt="DataSift and Pusher Integration" /&gt;&lt;/p&gt;

&lt;p&gt;Once we have one, or a number of, reliable realtime streams of information set up within DataSift (or we've found &lt;a href="http://datasift.com/search/q?tag=news"&gt;existing ones&lt;/a&gt;) we then need to distribute this information to an application. Pusher is an ideal service for this last mile delivery of data from your own application server which is consuming data from DataSift and then pushing that information to web, mobile, tablet and desktop applications.&lt;/p&gt;

&lt;p&gt;Once the data reaches the application that data needs to be visualised for a manual curation step, to allow human being to verify sources, to check information and to take that data and start building up a story. &lt;a href="http://storify.com"&gt;Storify&lt;/a&gt; have a fantastic platform for doing this with historical data but would it be possible to add an intuitive realtime layer to their user interface? How can those realtime updates be pushed into a live-updated published story?&lt;/p&gt;

&lt;p&gt;So, we have the infrastructure to build an application which can certainly deliver a realtime centralised workflow what will they need the app to do? Will they want to be able to collaborative edit the document and manage the synchronisation between mobile and web apps? Will they want activity streams of realtime tweets or blog posts to be pushed into the application and easily dragged and dropped into the news story? Will they want to be able to chat to other reporters attending the news event?&lt;/p&gt;

&lt;p&gt;I'm looking forward to fully understanding the requirements, seeing how these apps might be used and what the final stages of curating, augmenting and publishing will be.&lt;/p&gt;

&lt;h3&gt;Games that rock the browser&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Challenge&lt;/strong&gt;: Port a classic game to run directly in the browser&lt;/p&gt;

&lt;p&gt;&lt;img src="https://mozillafestival.org/wp-content/uploads/2011/08/Mozilla_gaming_logo.png" align="right" alt="Mozilla Gaming Logo" /&gt;&lt;/p&gt;

&lt;p&gt;We're seeing a number of fantastic HTML5 games hit our browsers. We're particularly interested in the multiplayer games. From augmented classics like &lt;a href="http://wordsquared.com/"&gt;WordSquared&lt;/a&gt; to &lt;a href="http://rawkets.com"&gt;Rawkets&lt;/a&gt; and the &lt;a href="http://www.isogenicengine.com/"&gt;Isogenic Engine&lt;/a&gt; powered &lt;a href="http://www.isocity.co.uk"&gt;Iso City&lt;/a&gt; we've seen some great HTML5 games but what classics would benefit from a realtime multiplayer aspect? I'd love to see any of the following ported:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Team 17's &lt;a href="http://en.wikipedia.org/wiki/Worms_(series)"&gt;Worms&lt;/a&gt; (check out &lt;a href="http://tanked.no.de/"&gt;Tanked&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;A multi-player &lt;a href="http://en.wikipedia.org/wiki/Chase_H.Q."&gt;Chase H.Q&lt;/a&gt; where you can be the chaser, Tony Gibson, or one of multiple villains&lt;/li&gt;
&lt;li&gt;A massively multiplayer &lt;a href="http://en.wikipedia.org/wiki/Bomberman"&gt;Bomberman&lt;/a&gt;. &lt;a href="http://wordsquared.com/"&gt;WordSquared&lt;/a&gt; has demonstrated that it's great when a game has no boundaries. How about a never ending maze around the Bomber Planet.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Gauntlet_(arcade_game)"&gt;Gauntlet&lt;/a&gt; - this one might be quite tricky but I remember is was great fun to play with friends.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Super_Off_Road"&gt;Super Off Road&lt;/a&gt;. Well, just because it was awesome!&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;Passing Notes in Class: Making educational video a social experience&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Challenge&lt;/strong&gt;: Synchronize and super-charge online discussions around educational video&lt;/p&gt;

&lt;p&gt;&lt;img src="https://mozillafestival.org/wp-content/uploads/2011/09/video-chat1.png" align="right" alt="Video Chat" style="margin: 20px;" /&gt;&lt;/p&gt;

&lt;p&gt;It's worth providing a bit more information from the Mozilla Festival Challenges page for this one:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;But there are still big gaps in how learners can track and participate in online discussions while viewing these videos. How do we “talk back” to online video in ways that captures the social and interactive flavour of the best classroom experiences?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;This one perfectly suits realtime collaboration. Time-based Q&amp;amp;A about something in the video. Realtime commenting and chat. Potentially with a moderation feature to ensure there isn't too much "classroom atmosphere" introduced. And why not add the ability to throw pieces of chewed up rubber or paper at other classmates!&lt;/p&gt;

&lt;h3&gt;Popcorn Bounties: Improve interactive video on the web&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Challenge&lt;/strong&gt;: Drive open video by fixing and extending the Popcorn.js JavaScript library&lt;/p&gt;

&lt;p&gt;&lt;a href="http://popcornjs.org"&gt;Popcorn.js&lt;/a&gt; is crying out for a collaborative editing plugin so that geographically distributed people can work together on building video that not only interacts with your web page but with other editors, and why not others that are watching the video a the same time.&lt;/p&gt;

&lt;div style="margin:auto;text-align:center;margin-bottom:20px;"&gt;&lt;a href="http://popcornjs.org"&gt;&lt;img alt="Screen+shot+2011-11-03+at+17" src="http://blog.pusher.com/media/2011/11/03/10/12/38/73/Screen+shot+2011-11-03+at+17.10.52.jpg?m=resize&amp;amp;o[geometry]=300x200&amp;amp;s=9b00918f15761d9a" /&gt;&lt;/a&gt;&lt;/div&gt;


&lt;h3&gt;Verifying Breaking News Sources: How can we know who to trust?&lt;/h3&gt;

&lt;p&gt;&lt;img src="https://mozillafestival.org/wp-content/uploads/2011/09/source-map.png" align="right" alt="Source Map" height="150" style="margin:20px;" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Challenge&lt;/strong&gt;: A social approach to verifying sources in real-time crisis reporting&lt;/p&gt;

&lt;p&gt;We've already got some good curation tools, I've already mentioned &lt;a href="http://datasift.com"&gt;DataSift&lt;/a&gt; and their Augmentation targets, an alternative might be some of which offer APIs like &lt;a href="http://blog.programmableweb.com/2011/02/15/cadmus-offers-algorithmic-twitter-feed-curation/"&gt;Cadmus&lt;/a&gt;. So, why not create an application that crowd sources the curation of news? The users can login to the system and they can potentially be identified by geographic location, using the &lt;a href="http://dev.w3.org/geo/api/spec-source.html"&gt;geolocation API&lt;/a&gt;. Then as the news is received it could be distributed to users who should be able to verify it and curate it - maybe with voting buttons.&lt;/p&gt;

&lt;h3&gt;Remember, we're there to help&lt;/h3&gt;

&lt;p&gt;Hopefully that gives you a few ideas of how you could use Pusher. If you have any questions, thoughts or need some help please grab hold of us or tweet at us Mary: &lt;a href="http://twitter.com/maryrosecook"&gt;@maryrosecook&lt;/a&gt; and I &lt;a href="http://twitter.com/leggetter"&gt;@leggetter&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Thu, 03 Nov 2011 00:00:00 +0000</pubDate>
      <guid>http://blog.pusherapp.com/2011/11/3/ways-to-use-pusher-at-the-mozilla-festival</guid>
    </item>
    <item>
      <title>Meet the Pushers: Getting Evented</title>
      <link>http://blog.pusherapp.com/2011/10/28/meet-the-pushers-getting-evented</link>
      <author>phil@pusher.com (phil)</author>
      <comments>http://blog.pusherapp.com/2011/10/28/meet-the-pushers-getting-evented#disqus_thread</comments>
      <description>&lt;p&gt;We've been busy over the past month attending events like &lt;a href="http://berlinjs.org/"&gt;Reject.js&lt;/a&gt;, &lt;a href="http://jsconf.eu/2011/"&gt;JSConf.eu&lt;/a&gt;, &lt;a href="http://Nodejsconf.it"&gt;Nodejsconf.it&lt;/a&gt;, &lt;a href="http://givecamp.org.uk"&gt;GiveCamp UK&lt;/a&gt;, &lt;a href="http://thefailcon.com/"&gt;FailConf&lt;/a&gt; and the &lt;a href="http://apiconference.com/"&gt;Business of APIs conference&lt;/a&gt; and things aren't going to calm down any time soon. We're going to be attending a whole bunch of conferences and events over the coming weeks and we'd love it if you came along and said "hi".&lt;/p&gt;

&lt;h3&gt;Ru3y Manor, October 29th, London&lt;/h3&gt;

&lt;div style="float: left; clear: left; margin-right: 20px; margin-bottom: 20px"&gt;&lt;a href="http://rubymanor.org/3/"&gt;&lt;img alt="Screen+shot+2011-10-28+at+15" src="http://blog.pusher.com/media/2011/10/28/07/20/47/900/Screen+shot+2011-10-28+at+15.17.40.jpg?m=resize&amp;amp;o[geometry]=100x100&amp;amp;s=7deb75fcc0c67043" /&gt;&lt;/a&gt;&lt;/div&gt;


&lt;p&gt;Lookout for &lt;a href="http://twitter.com/maryrosecook"&gt;Mary Rose Cook&lt;/a&gt; at &lt;a href="http://rubymanor.org/3/"&gt;Ru3y Manor&lt;/a&gt;. Check out &lt;a href="http://lanyrd.com/2011/ru3y-manor/schedule/"&gt;the schedule&lt;/a&gt; for this event, it really looks great! "Jruby on elephants", now that sounds interesting.&lt;/p&gt;

&lt;h3&gt;Silicon Milkroundabout, November 30, London&lt;/h3&gt;

&lt;div style="float: left; clear: left; margin-right: 20px; margin-bottom: 20px"&gt;&lt;a href="http://siliconmilkroundabout.com/"&gt;&lt;img alt="Screen+shot+2011-10-28+at+17" src="http://blog.pusher.com/media/2011/10/28/09/58/02/357/Screen+shot+2011-10-28+at+17.52.37.jpg?m=resize&amp;amp;o[geometry]=100x100&amp;amp;s=3d975f324b3fd15a" /&gt;&lt;/a&gt;&lt;/div&gt;


&lt;p&gt;If you are looking for an awesome job at a startup then the &lt;a href="http://siliconmilkroundabout.com/"&gt;Silicon Milkroundabout&lt;/a&gt; is the place to go. We'll be there represented by &lt;a href="http://twitter.com/maryrosecook"&gt;Mary&lt;/a&gt;, &lt;a href="http://twitter.com/miksago"&gt;Micheil&lt;/a&gt; and Lina who joined us just this week.&lt;/p&gt;

&lt;h3&gt;New Game Conference, November 1 - 2, San Francisco&lt;/h3&gt;

&lt;div style="float: left; clear: left; margin-right: 20px; margin-bottom: 20px"&gt;&lt;a href="http://www.newgameconf.com/"&gt;&lt;img alt="Newgame-logo" src="http://blog.pusher.com/media/2011/10/28/07/21/33/980/newgame-logo.png?m=resize&amp;amp;o[geometry]=100x100&amp;amp;s=fb6c887230021350" /&gt;&lt;/a&gt;&lt;/div&gt;


&lt;p&gt; &lt;a href="http://twitter.com/maxthelion"&gt;Max Williams&lt;/a&gt;, our CEO, will be attending &lt;a href="http://www.newgameconf.com/"&gt;New Game Conference&lt;/a&gt; in San Francisco early next week. There's a fantastic &lt;a href="http://www.newgameconf.com/#speakers"&gt;line-up of speakers&lt;/a&gt; at this event and I can't wait to hear how it goes.&lt;/p&gt;

&lt;h3&gt;RubyConf Brazil, 3 - 4 November, São Paulo, Brazil&lt;/h3&gt;

&lt;div style="float: left; clear: left; margin-right: 20px; margin-bottom: 20px"&gt;&lt;a href="http://www.rubyconf.com.br/en/index.html"&gt;&lt;img alt="Logorubyconf" src="http://blog.pusher.com/media/2011/10/28/07/21/11/885/LogoRubyConf.jpg?m=resize&amp;amp;o[geometry]=100x100&amp;amp;s=286ff180b6538542" /&gt;&lt;/a&gt;&lt;/div&gt;


&lt;p&gt;Our CTO &lt;a href="http://twitter.com/mloughran"&gt;Martyn Loughran&lt;/a&gt; is lucky enough to be heading over to Brazil to attend &lt;a href="http://www.rubyconf.com.br/en/index.html"&gt;RubyConf&lt;/a&gt;. We're also one of the sponsors of this awesome event.&lt;/p&gt;

&lt;h3&gt;Mozilla Festival, 4 - 6 November, London&lt;/h3&gt;

&lt;div style="float: left; clear: left; margin-right: 20px; margin-bottom: 20px"&gt;&lt;a href="https://mozillafestival.org/"&gt;&lt;img alt="Mozilla-festival-2011" src="http://blog.pusher.com/media/2011/10/28/08/00/51/287/Mozilla-Festival-2011.jpg?m=resize&amp;amp;o[geometry]=100x100&amp;amp;s=08b0f649b7b2ad14" /&gt;&lt;/a&gt;&lt;/div&gt;


&lt;p&gt;&lt;a href="http://twitter.com/leggetter"&gt;I'll&lt;/a&gt; are attending one of sponsors of the &lt;a href="https://mozillafestival.org/"&gt;Mozilla Festival&lt;/a&gt; along with &lt;a href="http://twitter.com/maryrosecook"&gt;Mary&lt;/a&gt; where we'll be &lt;a href="https://mozillafestival.org/program/human-api/"&gt;Human APIs&lt;/a&gt;. This means that if you are there we want you to grab us, ask us questions and even get us to write code for you.&lt;/p&gt;

&lt;h3&gt;Keeping it Realtime Conference, 7 - 8 November, Portland OR&lt;/h3&gt;

&lt;div style="float: left; clear: left; margin-right: 20px; margin-bottom: 20px"&gt;&lt;a href="http://krtconf.com"&gt;&lt;img alt="Screen+shot+2011-10-28+at+15" src="http://blog.pusher.com/media/2011/10/28/08/00/35/711/Screen+shot+2011-10-28+at+15.58.31.jpg?m=resize&amp;amp;o[geometry]=100x100&amp;amp;s=6a014c4ec97778ad" /&gt;&lt;/a&gt;&lt;/div&gt;


&lt;p&gt;There was no way we were missing the &lt;a href="http://krtconf.com"&gt;Keeping it Realtime Conference&lt;/a&gt;. We'll be represented by &lt;a href="http://twitter.com/maxthelion"&gt;Max&lt;/a&gt;, &lt;a href="http://twitter.com/dctanner"&gt;Damien&lt;/a&gt;, &lt;a href="http://twitter.com/mloughran"&gt;Martyn&lt;/a&gt; and &lt;a href="http://twitter.com/miksago"&gt;Micheil Smith&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We're pleased to be a sponsor of the event and we'll be giving a couple of talks so take a look at &lt;a href="http://krtconf.com/schedule/"&gt;the schedule&lt;/a&gt; for more info.&lt;/p&gt;

&lt;h3&gt;Local Social Summit, 9 - 10 November, London&lt;/h3&gt;

&lt;div style="float: left; clear: left; margin-right: 20px; margin-bottom: 20px"&gt;&lt;a href="http://www.localsocialsummit.com/"&gt;&lt;img alt="25-website-logo-updated" src="http://blog.pusher.com/media/2011/10/28/07/21/54/532/25-website-logo-updated.png?m=resize&amp;amp;o[geometry]=100x100&amp;amp;s=5562c65dbebd0fa5" /&gt;&lt;/a&gt;&lt;/div&gt;


&lt;p&gt;The &lt;a href="http://www.localsocialsummit.com/"&gt;Local Social Summit&lt;/a&gt; isn't as dev-focused as normal but most definitely a realtime theme. I'll be on a panel discussing "How The Real-Rime Web Influences The 'local' World" and I'm looking forward to hearing Tim Plyming, who is Project Executive of Digital &amp;amp; Editor Live Sites at the BBC, talk about &lt;a href="http://www.localsocialsummit.com/lss/session-overview-lss11-bbc-london-2012-the-first-digital-olympics/"&gt;BBC London 2012: The First Digital Olympics&lt;/a&gt;.&lt;/p&gt;

&lt;script&gt;
$(function() {
  $('.entrybody h3').css({clear:'both'});
});
&lt;/script&gt;

</description>
      <pubDate>Fri, 28 Oct 2011 00:00:00 +0000</pubDate>
      <guid>http://blog.pusherapp.com/2011/10/28/meet-the-pushers-getting-evented</guid>
    </item>
  </channel>
</rss>

