It’s the Web, just Kwwika

The real-time web. Delivered. 
Filed under

Real-Time Push

 

the.meet140.com - real-time twitter updates by Kwwika

Aaron Bassett has just put together a site to allow anybody to follow tweets tagged with #themeet140 in real-time for all themeet140 events. Yep, you've guessed it. He's using Kwwika to push the twitter updates instantly into the website.

Themeet140website

Note: we've slightly altered the screenshot (ahem!) ;-)

themeet140 is described as:

A very pleasant, random crowd, gathering every so often. Unwittingly thrown together by Chris @chrish10 and Mark @markofrespect. The social in social media.

There is a themeet140 tonight in Glasgow and make sure you follow themeet140 to keep up to date with future events since they are held in London, Cheltenham and Glasgow.

We'd like to thank Aaron for again thinking of Kwwika when building this simple yet effective site.

Filed under  //   real-time push   real-time web   social media   themeet140  
Posted by email 

Comments [0]

Plotting tweets in real-time using Smoothie Charts and Kwwika

I noticed a tweet today about real-time JavaScript charts and couldn't resist having a play. The charts are call Smoothie Charts and have been developed by Joe Walnes. You can read the blog post where he announced the release of them here.

The demos that I've seen don't use real-time data so I thought I would create a small demo using real-time tweets being pushed through Kwwika. I updated the Kwwika TweetStreamer component (which I must get around to putting in GitHub) to push through updates from some popular hashtags including #nowplaying, #news, #tech and a few others and then wrote a bit of code to count the number of tweet updates over an interval and push that value into a Smoothie chart. The result looks like this (Smoothie charts use Canvas so only work in some browsers. I've tested this demo in Firefox and Chrome):

Smoothie-charts-kwwika-demo

You can see the Smoothie Twitter Real-Time Charting demo using Kwwika here: http://kwwika.com/Standalone/Demos/javascript-examples/smoothie-twitter-charting/

I've got the Smoothie chart showing the number of updates for each twitter hashtag, a table showing the count and a list of the tweets at the bottom.

The code is in GitHub so feel free to fork/download and have a play yourself. You can run the code on http://localhost but in order to get the code to work on your own website you'll need to register with Kwwika and get in touch to let us know you want access to the real-time Twitter hashtag topics.

Update: We found a bug in the Smoothie library which Joe Walnes promptly fixed.

One thing we've noticed is that the Smoothie chart stops working and throws an exception and as yet we've not been able to work out what the problem is due to lack of time. It's probably something to do with not getting any updated values in a TimeSeries. This is what the exception look like in Firebug:

Smoothie-error

If anybody can work out what the problem is please let us know. Failing that we'll look into it when we can.

Filed under  //   javascript   real-time data   real-time push   smoothie charts   twitter  
Posted by email 

Comments [3]

The benefits of Real-Time Push-Once

There's so much excitement about real-time push technologies that quite often, in fact almost always, the benefits of using push are overlooked, forgotten, or simply not known. The technology excites programmers who want to use it, want to know how it works or want to write their own push framework, user experience (UX) professionals who understand how this paradigm shift will massively benefit users, general technologists who can see how the addition of such technology can improve an application or product and entrepreneurs who have the vision to see ground breaking ways of using push. 

The understood benefits

The cost and resource benefits that real-time push bring start to be considered when the excitement of the technology dies down and you start talking in detail about using a Cloud Platform as a Service (PAAS) such as Kwwika. Kwwika provides the more obvious benefit of allowing anybody to publish and add real-time data to any web page, web application, Rich Internet Application (RIA), desktop or service application and share information between all these and from a number of different sources. The first thoughts of resource and cost saving are when you start to consider that by using a service you don't need to buy servers to host your real-time push servers, you don't need to spend time and effort installing, setting up and learning how to use the software, you don't need to worry about maintaining the software and handling upgrades and you don't need to worry about how you deal with scaling your servers to meet increased demand as well as keeping resource usage to a minimum during lean spells. Kwwika offers all the benefits of a hosted scalable service, but for real-time push streaming as a service. This means you can concentrate on building your application, developing your product or service and winning business.

The benefits of real-time push-once

The best way to understand one of the fundamental, but as yet hidden, benefits of Kwwika, and ultimately real-time push-once, is through an example:

Imagine a website known as the best destination for up to the second sports information for the newest and most popular sports of all time: Multiball. It's a mixture of all the most popular sports including football (soccer), baseball, basketball, rugby, tennis, cricket and motor sports. This new game is fast paced and jam packed with statistics which change every second. Today there is a really big game on between Great Britain and USA. The world wants to watch this game but it's during the day for many people who will be at work in front of their computers so they'll be logging on to this well known website to keep up to date with the scores. The game is tied in the 4th quarter with only 1 minute remaining and millions of users from around the world starting hitting the F5 key and clicking the "Refresh" button in their web browser to refreshing the website and check for the latest score. The servers hosting the website can't handle the load and crash.
1_request
Some websites try to get around this scenario by adding some script to their score web page which polls the server for an update at a set interval. The problem with this is that the web server still has to deal with, in effect, a refresh although the data returned to the request can be much smaller.
2_polling
The most obvious use of a real-time push system is that as soon as a server (or score system) receives new information it can push it to any application instance that is interested in that information. In the above Multibal' website example the application instance is each web browser session logged on to the website. If the sports website were using a real-time push system this would mean that they could instantly push any changes in the score to each web browser session which would mean that each website user wouldn't need to refresh their page (reloading the whole page) to check if the score had changed.
3_push
This alone would take a massive load off of the sports website infrastructure, but it's possible to take things even further.

Even in the real-time push scenario the sports website would need to build and maintain the real-time push infrastructure and push an update to each of the millions of website users. From the information above you'll know that real-time push services can help them out with the infrastructure. The new, and game changing feature that Kwwika offers is that when Rooney Giggs McFadden makes that game winning manoeuvre-score for Great Britain the sports website would only need to publish the score update once into the Kwwika service (real-time push-once). Kwwika would then instantly distribute that update to the millions of website users. This means the website only ever needs to deal with single page loads from its users and push out each score change or game statistic once, Kwwika does the rest.
4_push-once

Thanks to Zen Elements Web Design & Development for the diagrams

Filed under  //   cloud   comet   paas   platform as a service   real-time push   real-time push-once   real-time web   streaming as a service  
Posted by email 

Comments [0]

Kwwika-Superfeedr real-time demo available

Over the past few weeks we've been dabbling with first creating a PUbSubHubbub Subscriber and then building a cool real-time demo which integrates the real-time feed goodness from Superfeedr with the real-time client push wickedness of Kwwika.

The demo itself took a couple of days to build and allows a user to subscriber to any RSS feed or track any keyword using Superfeedr. When Superfeedr receives a real-time update it'll push that update to a web server which will then instantly push that update through Kwwika and into the demo web application.

RSS source → pubsubhubbub → Superfeedr → pubsubhubbub → webserver → Kwwika → Web client

The application shows RSS and track updates in real-time in a web client which you could think of it like a real-time push RSS reader. We're hosting the application and are restricting the demo to 10 subscriptions unless you have logged in to use your own dedicated demo. If you want your own dedicated demo then you'll first need a Superfeedr account and then get in touch with us at Kwwika and we'll set up the demo account for you on our servers. Once that's done you'll be able to log into the demo using your Superfeedr credentials. More information on setting up a dedicated demo can be found on the Kwwika Wiki.
Kwwika-superfeedrdemoscreen
If you are a developer you'll be pleased to know that the the source code for this application is available on GitHub. The code is an ASP.NET MVC solution although you could easily take the principles and create the demo in almost any other language. Just get in touch if you are interested.
It's also important to remember that this is a pretty simple demo and that this technology has a lot of potential. Even this demo can be improved in terms of usability, feed parsing to ensure all the information a user could need is pushed through, pulling in older feed items from some of the subscriptions, pausing updates, some general UI updates (which are in the pipeline) and so much more. Why not take the code and see what you can do with this? We'd be happy to help!

Here's a little walk through of the demo:

So, why not try out the Kwwika-Superfeedr demo and let us know what you think.

Filed under  //   RSS   real-time push   real-time web   superfeedr  
Posted by email 

Comments [2]

The death of "F5"? Ah, I get it!

I recently did an interview about Kwwika with Jane Adams for Innovation Focus Scotland. We chatted about what Kwwika offered, what our costing model is (or will be), what competition we have and how we will differ from that competition. I also responded to a questionnaire that Jane sent me which asked questions about innovation in Scotland and what the challenges that being based in Scotland were.

The following day I was looking through our website stats and noticed a few hits from an article on the Innovation Focus Scotland site with the title "The death of F5". It honestly took me about 10 seconds of repeating to myself "the death of F5", "the death of F5", "the death of F5" and then I twigged. When discussing Kwwika to Jane I explained real-time push using a common scenario:

When you go to a website with "live" information, such as a sports scores or frequently updating news site, and you want to check to see if things have updated you quite frequently refresh the page every so often, using the "F5" key, to see if any new information is available. If that website used Kwwika the website user wouldn't need to refresh the page. That page will always be up to date, to around 500 millisecond, with any new information that has been pushed through Kwwika and into the web page.

Sometimes I'm so engrossed in the technology that even though you use this scenario all the time, to highlight a simple and fundamental benefit to the user of real-time push, you forget just how beneficial it is to the user experience. It's a pretty simple concept and it really will lead to "the death of F5" since there will be no need for a user of a standard website to refresh the page once real-time push is introduced to it. F5 will be left to be used by developers who want to check the impact of their code change on their web page or application. Will the refresh button disappear as one of the main buttons in a web browser?

A big thanks to Jane for the article and for reminding me about a fundamental benefit of Kwwika and real-time push.

Filed under  //   Innovation Focus Scotland   Jane Adams   Real-Time Push   Real-Time Web  
Posted by email 

Comments [0]

Kwwika JavaScript API "How to..."

We've just posted a couple of "How to.." examples on the Kwwika Wiki. The first shows how to use a simple HTML <form> and publish the values through Kwwika

Publish

The seconds shows how to display those real-time updates on a web page.

Subscribe

If you are using the Kwwika JavaScript API and would like to know "How to..." achieve something then please get in touch. The likelihood is that if you would like to know how to do something then either somebody else does or will do in the future.

Filed under  //   How to   JavaScript   JavaScript API   Real-Time Push  
Posted by email 

Comments [1]

Kwwika World Cup 2010 Real-Time Push Web App - Apple iPad Winners

The first thing we'd like to do is thank everybody who got in touch about this competition. We had a lot of people enquire but we probably cut the entry date a bit short and we ended up with four entries. This isn't necessarily a bad thing since we could spend more time analysing the entries we had. We've ended up with some great examples including a HTML5 mashup app by Aaron Basset, a Silverlight app by Gergely Orosz, a real-time stat app that kept things simple to target mobile browsers by Gerry Mulvenna and Bing maps app by David H. Bello.

Our brief for the competition was pretty simple:
 
We want you to build a web application using either the Kwwika JavaScript or Kwwika Silverlight API (or both?). Your application will subscribe to real-time data from Kwwika and use it to show what is happening NOW in the South African 2010 World Cup.

We will make all tweets containing #worldcup available to each developer as soon as the tweet is made (yeah, in real-time) via the Twitter Streaming API. We will also make the World Cup 2010 fixtures and live team statistics available to each developer thanks to Opta!
 
Before we announce the decision (but you can clearly just scroll down if you like) I'd like to spend some time going over how our decision was made by analysing each entry. We'll do this in order of entry submission.
 
Aaron Bassett's World Cup Mash

Aaron described his competition entry as:

Kwwika, HTML5, CSS3, Javascript and awesomeness! This mega-mash brings together over a dozen different APIs to give you the best realtime data from every country in the World Cup. Never miss a single tweet, picture or video. Goooooaaaaaaaal!!
 
Aaron has clearly put a lot of effort into this competition. His entry uses both the Kwwika real-time World Cup twitter data and the real-time Opta data (just for the fixtures) retrieved using the Kwwika JavaScript API, geolocation using the YQL Geo Library, tweet text translation using the Google AJAX Language API, teams percentage chances of winning stats via Norwegian computing center and 2 Sporten, highlights via TwitPic, replays (or relevant YouTube clips) via the YouTube API, tweet geolocation displayed using the Google Maps API ... the list goes on. If you want even more information then read Aaron's blog post "A colophon of a World Cup entry".
Worldcupmash
Not only has Aaron created one app, he's just thrown together a second app focusing more on the Opta stats. You can see this application which uses some Opta Replay data that we are publishing through Kwwika here
http://replay.worldcup.aaronbassett.com/ and read a short write-up about this new application here: http://aaronbassett.tumblr.com/post/797785931/wondering-how-hard-the-kwwika-api-is-to-work-with
 
So, what do we think of Aaron's application? Well, it rocks! We wanted a mashup and what Aaron delivered is quite possibly one of the biggest mashes we've seen. The use of all the different APIs is fantastic and clearly shows the power of web applications and the enhancements that HTML5 will bring. We'd have liked to have seen more information related to the next or live game and a way of getting the users involved in using the application and maybe collaborating would have been a great enhancement. This is really important to keep users on the page but we were a little delayed in making the Opta data available so that may be partly our fault.
 
All in all Aaron's World Cup Mash is a fantastic application and it's also got loads of potential to be developed further. Aaron will be opening up his source and we'll update this blog post with the details when we have them.
 
Gergely Orosz's Tweet for your Team

Gergely described his competition entry as:

Tweet For Your Team monitors the intensity and mood of tweets before, during and after a worldcup game as well as showing the score during the game - all in real time. It's a fun way of visualizing how spectators around the world engage in the World Cup using Twitter to support their team.
 
Gergely works mainly with .NET and Silverlight so it's no surprise that he chose to develop his real-time push app in Silverlight using the Kwwika Silverlight API. Gergely describe Tweet for your Team as "a fun tool to monitor the intensity and mood of supporters' tweets during a World Cup 2010 game", and it certainly is fun. The latest updates to the application include a background Vuvuzela noise (which you can turn off) and the ability to "Cheer" for your team. This cheering option is a fantastic idea and something that add some user input into the application with each cheer being instantly published to everybody using the application. The Tweet Intensity monitor is really interesting to watch before and during the game. If a team scores a goal the mood of the scoring team swings into the green whilst the mood of the conceding team fans swings into the red. This makes the application really engaging. Tweet for your Team also allows you to set the rate of twitter updates which mean you really can read the tweets if you set it to "slow" speed. Finally the performance of the application is really impressive considering tweet rates for Spain alone have been seen to hit 3500 tweets per minute.
Tweetforyourteam
You can read more about the Tweet for your Team on Gergely's blog post "World Cup 2010 Real Time Twitter Mashup". He's also recently publish a post on "Streaming World Cup Tweets in Silverlight with a few lines of code" (using Kwwika).
 
We don't want to get into a technology discussion since we support most technologies but we clearly need to mention that the fact the application is in Silverlight means that it restricts some users from accessing it.
 
Technologies aside, Gergely has delivered a really engaging application that has so much potential in being applied to all sort of other live events.
 
Gerry Mulvenna's Real-Time World Cup match data

Gerry described his competition entry as:

A Kwwika website aimed primarily for mobile users offering live match data on the current match
 
Gerry created a game to allow people to predict World Cup results. He the decided to enter the Kwwika World Cup competition with a different application which is a very simple page that shows statistics and tweets related to the live game. He's also added also added a link that lets you see the Opta stats replayed in the page. At the time of writing the tweets and twitter cloud functionality only work in Firefox. The idea is simple and effective. I can certainly see the benefit of being able to view the live statistics of a game whilst watching it on the television. Some improvements that could easily be made are visualisations about the statistics along with better cross browser compatibility - all easily fixed.
Wcpredict
David H. Bello's Bing Kwwika Mashup
David described his competition entry as:
 
A mashup between Google & Bing maps and Kwwika, which let you watch in a maps tweets in real-time.
 
David's entry relied on tweets coming through with geolocation information. When we originally wrote the application that receives the tweets from the Twitter Streaming API we didn't push through this information. Following a few requests we added this but in doing so we noticed that most tweets didn't contain this information. However, David's application does show that when a tweet comes through with the necessary information it's possible to easily update the Bing map to navigate to that location. We've noticed that the application seems to jump between tweets quite quickly and even goes back to older tweets.
Bingmaps
And the Winners are...
From the title of the blog post you'll probably have seen we used "Winners". The World Cup final can't end in our draw but the Kwwika World Cup 2010 Real-Time Push Web App competition has. That's because we just couldn't choose between two of the entries.
So, well done to Aaron Bassett and Gergely Orosz who will both receive an Apple Wi-Fi iPad 32GB. We'll be in touch to sort this out.
 
Aaron's mashup application blew us away with how it took the real-time Kwwika data from Twitter and Opta and integrated it in an application with all the other APIs. Gergely created a really engaging application that you could easily sit and watch and interact with during any live World Cup match.
 
So, a BIG thanks from Kwwika and TellyLinks.com to all the entrants and the winners and pleased be sure to have a look at Aaron's World Cup Mash and Gergely's Tweet for your Team real-time push Kwwika powered applications during the World Cup 2010 final in 30 minutes (19:30) UK time.

Filed under  //   Aaron Bassett   Competition   Gergely Orosz   Real-Time Push   World Cup 2010  
Posted by email 

Comments [0]

Want to try out the Kwwika API but don't want to register?

We're try to get more and more people using Kwwika and we feel that registering is maybe a barrier to entry. So, we've decided to give everybody access to our service. The only caveat is that we've just enabled access from your local development machine, assuming you can run a local application from http://localhost.

So, if you want to try out the Kwwika JavaScript API but don't want to register (yet), then go ahead. There's a topic that you can subscribe and publish to named /KWWIKA/SANDBOX.

You can even start building a Kwwika World Cup 2010 Real-Time Push Web App because we've give http://localhost access to the data you need to use to enter the competition:

/OPTA/WC2010/TEAMLIVE
/KWWIKA/TWITTER/SEARCHES/WC2010/*

If you need help getting started you can of course get in touch or start by going through our Real-Time Web Workshop. This workshop contains a presentation, a set of exercises and all the files (download) that you need to go through the exercises. This even in includes and executable webserver to run on windows, a webserver app to run on Mac and a python webserver to run on Linux (or any other python enabled machine).

So, why not start developing using Kwwika now. And if you like it, or are just damn good at developing real-time push apps, why not register and enter our World Cup 2010 competition.

Filed under  //   API   JavaScript   Real-Time Data   Real-Time Push   Real-Time Web  
Posted by email 

Comments [0]

Kwwika World Cup 2010 Real-Time Push Web App - Apple iPad competition - Sponsored by TellyLinks.com (Update)

Hello!

You are receiving this because you registered your interested in Kwwika Beta Access. Maybe you are using Kwwika already. If so, please get in touch with any feedback you have. If you want access but we've not given it to you yet please yell at us and we'll set you up.

So, this competition: We are trying to get people involved in using Kwwika so we thought we'd create a competition, sponsored by TellyLinks.com, to do so. You can win an Apple iPad just by building a cool web application using Kwwika and the real-time data we are publishing from Opta Sports or #worldcup Twitter updates. We've only recently added the Opta Sports updates and we're really excited that we are instantly getting information about live World Cup 2010 matches. This really world class data will give any developer out there the opportunity to create an engaging and potentially viral application which could draw a massive audience. So, if the Apple iPad prize isn't enough surely the opportunity to build a viral application is compelling!

So, why not get starting building your Kwwika World Cup 2010 Real-Time Push Web App.
Any questions, queries, thoughts, ideas, opportunities, competition help, anything - please get in touch.

Hope you are all enjoying World Cup 2010!

Kind regards,

Phil Leggetter
t: +44 (0)207 193 9499
http://twitter.com/leggetter

Kwwika
The real-time web. Delivered.
http://kwwika.com
http://twitter.com/Kwwika

Filed under  //   Competition   Email   Real-Time Data   Real-Time Push   World Cup 2010  
Posted by email 

Comments [0]

jQuery Real-Time Push Kwwika Plugin v0.1 released

Kwwika already makes it really easy to add real-time push functionality to any web page or website but we've gone a little bit further to try to make it even easier by writing a small but powerful jQuery plugin.

 
The jQuery Real-Time Push Kwwika Plugin allows you to define elements within a web page that you want to be updated with real-time data as soon as it's available. Anybody that has used a jQuery plugin should find our jQuery plugin really simple to use.
 
Here's how to use it.

Register for the Kwwika Beta programme

In order to use Kwwika you must first register so we can set up permissions within the Kwwika system to allow your website/domain to receive real-time push data from Kwwika.
 
So, register for the Kwwika Beta programme now.

Include script tags

You need to include the core jQuery library, the Kwwika JavaScript API and the jQuery Real-Time Push Kwwika Plugin files in your web page:
 
<script
src="http://code.jquery.com/jquery-1.4.2.min.js"
 type="text/javascript"></script>
<script
src="http://api.kwwika.com/latest/"
type="text/javascript"></script>
<script
src="http://api.kwwika.com/latest/plugins/jQuery/jquery.kwwika/jquery.kwwika.js"
type="text/javascript"></script>

Define HTML

You define the topic to be requested from Kwwika by adding an attribute to an HTML element. The default attribute to identify the topic to request is data-topic. You identify the value to be placed within the element by adding a data-field attribute to the same element. In the example below if an update occurs on the /KWWIKA/TWITTER/SEARCHES/KWWIKA topic with a value for the ScreenName field it will be inserted as the html contents of the first <div> element.
 
We've decided to use attributes with a prefix of "data-" as the present HTML 5 draft suggests custom attributes should use this prefix.
 
Custom data attributes are intended to store custom data private to the page or application, for which there are no more appropriate attributes or elements.
 
<html>
    <body>
        <div data-topic="/KWWIKA/TWITTER/SEARCHES/KWWIKA"
     data-field="ScreenName"></div>
        <div data-topic="/KWWIKA/TWITTER/SEARCHES/KWWIKA"
     data-field="Text"></div>
    </body>
</html>

Call the jQuery plugin

You call the jQuery Real-Time Push Kwwika Plugin in the same way you call any other jQuery plugin, by supplying a selector to the jQuery method ($) and calling the kwwika() function.
 
<script type="text/javascript">
    $(function ()
    {            
        $("div").kwwika();
    });
</script>

Examples

You can find three examples of how to use the jQuery Real-Time Push Kwwika Plugin from the links below:
 
The jQuery Real-Time Push Kwwika Plugin examples can be found on the API site:

Plugin Files

The plugin files are hosted on our API server. You can either download them and host them yourself or your own server:
 
 
Plugin Web Page

The jQuery Real-Time Push Kwwika Plugin has a dedicated page on the Kwwika Wiki:

Filed under  //   Kwwika   Real-Time Data   Real-Time Push   Real-Time Web   jQuery   jQuery Plugin  
Posted by email 

Comments [0]