Twitter milestone reached: 200 million Tweets per day
Thank you @Twitter for ruining your iPhone client’s UI and UX to ensure that I do not miss any trending topics. I don’t know how I would have coped without knowing that @HuggoBS was going to have sex until the world ends, or that @SaTownScrew is going to keep smashing lesbians. Although I’m sure that it will be front-page news tomorrow that Wal-Mart was busy as shit when @starrstruckqd attempted to visit it rather later than normal.
Seriously Twitter I could not care fucking less about this shit. Why are you forcing it upon me? I get that you have promoted trends, I know you need to make money. So let me fucking pay for the app and switch this crap off!
@Twitter please fix! Watch for the @Panic post about 15 seconds in, just as it scrolls off the screen my whole timeline “jumps”. Do you see how far I have to scroll back to find where I was? Where do all those other posts come from? WTF?
| @nsdesign: | Seeing a load of .CO domain orders this morning! |
| @aaronbassett: | Any chance of cis.co? |
| @johnmcc: | tes.co? |
| @michaelmcguk: | alfres.co? |
| @aaronbassett: | fias.co! |
Not only have @Kwwika been pushing out the data from the World Cup live to subscribers but they have also recorded each match since the quater finals. They are looking at ways of replaying this data and asked for some input on Twitter
Updates in actual time…snip…or an update every X seconds?
My preferred way would be realtime, but with a couple of extra features.
As am sure everyone knows by now I’ve been building a #Worldcup app for the @kwwika competition. They really do we have a great API and am excited about the prospects, I really hope they let users create their own channels to subscribe to.
But what they really need is some way of generating dummy data for testing. Ideally you would subscribe to ‘/KWWIKA/SANDBOX/UID’ where UID is some identifier unique to your application. Then you log into the Kwikka site and get a form like

Data entered into the form is pushed to your subscribed app, allowing you to send any data you wish down the pipe and mimic any feed format. Perfect for when your app performs particular actions when particular data is received, but that data is infrequently occurring in normal stream.
If you have not yet seen my competition entry please do visit it now at worldcup.aaronbassett.com (if you like it please, click the Share button on the site to tell your followers on Twitter.)
First of all if you’re having trouble viewing my World Cup site, sorry. I wanted to show what was possible using the best of emerging technologies with Kwwika so it probably looks very broken on anything but the latest generation of desktop and mobile browsers. It’ll work just fine in IE8, Firefox 3.6 & maybe Opera 10, though I still have to test that one. But if you want to see it at its best use Safari 5 or Chrome.
The site itself is HTML5 with CSS3, a lot Javascript and it also uses some of the new APIs such as Geolocation. Try it on your iPhone with GPS, it rocks :)
When you first arrive the site attempts to use Geolocation to find out where in the World you are (with a fallback to Geoip). It tries to match your location to a World Cup team and begins streaming Live Tweets about that team using the Kwwika API. Sorry Scottish people but as it reports you as being in the UK you get England tweets.
We also populate the ‘Now Playing’ section with the Country name & flag and show the team’s percentage chance of winning. This is updated every day from the figures released by Norwegian computing center and 2 Sporten.

As the Tweets come in they are added to a first-in-first out queue so you’re not drowned in them and they are displayed at a brisk, but readable pace. We then take the Twitter ID of the user who made the tweet and add it to the roster of players. Their avatar will then be shown in the ‘Team’ section, and it links through to their Twitter profile page.

If you’ve enabled the Map Display we also get the user’s Geolocation (when available) from the Kwwika API and use it to plot their location when we show their tweet. However I noticed during testing that not an awful lot of people geocode their tweets, which is a shame :( When you first enable the map it’ll attempt to start where we think you the visitor are, thanks to the Geolocation or Geoip lookup we did right at the start.

While all this is happening we have a second and a third subscription firing up and polling getting fed push data by Kwikka. This time for match information from opta, which you can see at the top of the screen. This should show you the upcoming matches in the competition.
We then take the visitors country and try and find some more data from different sources. We start regularly polling the Twitter search API looking for World Cup tweets from the selected country which also contain Twitpic links. We then use the Twitpic’s API to display thumbnails of any found images under the ‘Highlights’ section. Clicking any of these thumbnails will take you to the large image on the Twitpic site.
(I would like to have Kwwika supply image links found in Twitter as well, but I didn’t want to give the game away by requesting it!)
The instant replay is obviously a Youtube video. This is found using Google’s Youtube search API and should hopefully be relevant to the selected country as well! (There is a second Youtube video hidden on the site for those who want to find it)

Up to this point everything has been done client-side. Everything. Tweets, image and video searches. Fixtures, maps - the lot. You could merge the whole bleeding thing into a single HTML file and run it from a thumbdrive!!
Our first piece of of server-side code is the ‘Commentary’. A small PHP script fetches (and caches) RSS feeds from blogs and newspapers such as FIFA, the BBC, the Guardian etc. These RSS feeds are then turned into JSON and fed to the client-side code which displays a different random item every dozen seconds or so. It is also the only section which isn’t filtered when you pick a new country.
You have some controls on the page. The main ones being the flags at the top which let you change which country’s tweets are being shown, and the language dropdown.
Anyone who has worked with Twitter data will tell you that you ca’t trust the language people say their stream is in. They either set it wrong or don’t bother to change it from the default. So to get around this I detect the language of each Tweet in the client using Google’s language API. Turn it on and only Tweets recognised as being in the language you pick will be shown. It has no effect on Tweets already shown or the image/video searches.
The ‘Map Display’ I mentioned briefly. This one comes with a warning as should there be a sudden upsurge in the number of people geocoding their tweets it would have to draw a heck of a lot of markers, which can be CPU intensive. Chances are very very slim. But better safe than sorry.
The custom fonts use Typekit and the animations and added using Scripty2 (the Alpha version of Thomas Fuchs’s excellent script.aculo.us library). The entire thing sits on a foundation of about 300 lines of HTML, with most of that being made up of language options, flags and big ass comments (the Javascript comes in at a more respectable ~700 not including library code!)

I have to say a HUGE thank you to Kwwika (and the sponsors Tellylinks) for the API and also for agreeing to me releasing my code under the LGPL. Which I will do after the competition has closed! And don’t forget to click the share button to let your followers know about it as well!
Data sources used in this mashup
Libraries/Other used in this mashup

Don’t forget you will be able to grab the source from Github (I’ve created this empty repo for it) so you might want to go apply for that Kwwika Beta access now (you can develop on localhost even if you don’t get an invite though!).
And please, please, please remember…the share button! Oh, and geocode your bleedin World Cup Tweets people, the map works so much better with them! ;)
Twitter have extended the oAuth deadline until 8 weeks from now as everyone is too busy watching the World Cup to bother changing their code.
Actually it is likely because Twitter is in melt-down due to the volume of traffic it is receiving, with the world cup being on, and developers can’t test their new code! Oh well, it gives @LuvOrHate a few more weeks to live.
@Sambrown’s @EndorseApp opens its doors to the public tomorrow. It is a pretty nice looking site, how useful it’ll be (or if it’ll just be one big circle jerk) still waits to be seen. But what is for sure is it is already featuring in my Twitter stream an awful lot. And it is going to get a hell of a lot worse tomorrow when the flood gates open.
So if you are a Tweetie user like me and you don’t want your entire stream to be filled with:
I endorse @FOO for #x #y #z - http://xxxxxxx.xxx
You can filter those tweets by hoping into terminal and entering the following:
Once the novelty has worn off and the number of Endorse tweets has calmed down again, you can remove the filter by running:
You can find more information on filterTerms in this blog post by @atebits