Mar
04
2010

GeoMeme adds MySpace real-time local trends

In other news, GeoMeme now measures real-time local trends based on both MySpace and Twitter content.

GeoMeme uses the new Real-Time Stream API from MySpace to tap into the flood of geo-located updates being posted by MySpace users all around the world.

MySpace content is mashed up with tweets from a number of mobile Twitter apps, and located onto a Google Map. Local trends are identified using semantic analysis services from Yahoo.

A couple of example GeoMemes generated by all this real-time geo-located content: Rihanna beats Lady Gaga in New York, and Avatar beats Hurt Locker in Los Angeles.

Written by bob in: everything | Tags: , , , ,
Mar
03
2010

Mobile awesomeness, innovation and disruption

The good people at MitchelLake recently asked me to write an article about mobile technology.

So I created a list of awesomeness, innovation and disruption, including topics such as ‘Mobile is big’, ‘Phones are getting better’, and ‘People pay for stuff on their phones’.

Here’s the full article; 10 awesome, innovative and disruptive things about mobile.

Written by bob in: everything | Tags: , ,
Nov
11
2009

OpenAustralia Hackfest: ‘Mobile + Geo + Social’ slides

I popped into the OpenAustralia Hackfest at the weekend to learn and talk about some of the latest developments in the Gov2.0 revolution.

There are now some quite interesting public datasets available, and the developer community is hard at work turning this data into useful APIs, and building innovative applications to consume the data.

Some of the notable apps to emerge from OpenAustralia include:

  • It’s Buggered, Mate – from the Canberra Hackfest, a geo app to crowdsource the reporting of broken public infrastructure.
  • Suburb Matchmaker – the winner of the Sydney Hackfest, a tool to help you find your ideal suburb to live in.
  • FridgeMate – currently winning the MashupAustralia contest and only a couple of days away from the $10,000 prize. FridgeMate lets you assemble a map of local public amenities to stick on your fridge door. My advice to the Creative Possums behind FridgeMate would be to look at using the Zazzle API so people could buy the actual fridge magnet.

My own presentation focussed on some mobile, geo and social technologies to create location-aware mobile mashups to share OpenGov content with friends on Twitter, friends on Facebook, and *real* friends on a t-shirt. Here’s the deck:

Written by bob in: everything | Tags: , , , , ,
Nov
10
2009

Location-aware mobile web apps using Google Maps v3 + geolocation

When hiring Engineers, I always look for evidence of pet projects, so recently I thought it was fair to create one of my own: GeoMeme, the fun way to measure and share real-time local twitter trends.

Visitors to GeoMeme choose a location on the map, and two search terms to compare. GeoMeme then measures and compares the number of matching tweets within the bounds of the map, based on public data from a number of mobile twitter apps.

As an example, GeoMeme can work out that ‘love’ beats ‘hate’ in Manhattan:

GeoMeme is a desktop web application and also a location-aware mobile web app for iPhone and Android phones.

Implementing the mobile version of GeoMeme as a web app has some advantages and disadvantages, compared to building native iPhone &/or Android applications.

Native apps are great because they currently offer the deepest integration to the full capability of the phone, for example using device APIs to access Contacts, the Camera Roll, an Accelerometer, or the GPS chip. For some applications, this deep device integration is essential and so a native application is beneficial.

On the other hand, emerging HTML5-based mobile browsers are aiming to standardise integration to such device APIs, starting with Geolocation APIs; meaning that location-aware mobile web apps are now becoming viable. Aligned with this development is the new version of the Google Maps API. v3 has been greatly simplified since v2, and is now optimized for use on mobile phones. Less is more.

The deciding factor for me choosing to build a mobile web app for GeoMeme rather than a native app was development speed. A mobile web app enjoys far greater code re-use from the desktop web version, and it is possible to push regular updates and improvements to users, without having to wait for appstore approval or for users to upgrade.

I believe this need for development speed is common among a good proportion of mobile apps that are still in ‘rapid iteration’ or ‘release early, release often’ mode, so this post is intended to share some of the techniques used in GeoMeme with developers wanting to build their own location-aware mobile web apps.

Let’s build an example location-aware mobile web app called ‘Here I Am!’, for the photographically challenged. The app will present some local photographs (from Panoramio) which can be shared with friends on Twitter or Facebook.

Where on earth is that mobile phone..?

The first job of a location-aware mobile app is to work out where on earth the mobile phone currently is. Unfortunately, at the time of writing, there is still no universally reliable and accurate solution for a mobile web app to detect the location of the mobile phone it is running on. However the following partial solutions can be combined to good effect:

(more…)

Nov
10
2009

Fast map re-location using Google Static Maps v2 + geocoder

GeoMeme is a pet project of mine. It’s a web app, and also a mobile web app for iPhone and Android, that measures real-time local twitter trends.

Visitors to GeoMeme choose a location on the map, and two search terms to compare. GeoMeme then measures and compares the number of matching tweets within the bounds of the map, based on public data from a number of mobile twitter apps.

As an example, GeoMeme can work out that ‘District 9′ beats ‘Inglorious Basterds’ in Manhattan.

As well as offering users the normal pan and zoom controls to move the map around, GeoMeme also introduces an innovative geo-autocomplete control which is powered by the geocoder service from Google Maps v3 API and the new Static Maps v2 API.

This blog post shares some details of how the geo-autocomplete control works, and offers some code so you can build your own geo-autocomplete controls.

1. Based on a partial location typed by the user, obtain a list of possible matching locations:

If the user has already typed ‘San’ into a form field, we can obtain a list of possible matching locations by passing this partial location to the geocoder service from Google Maps v3 API, as follows:

(more…)

Nov
10
2009

Scalable, fast, accurate geo apps using Google App Engine + geohash + faultline correction

GeoMeme is a web app (and also a mobile web app for iPhone and Android) that I recently developed as a pet project. It measures real-time local twitter trends.

Visitors to GeoMeme choose a location on the map, and two search terms to compare. GeoMeme then measures and compares the number of matching tweets within the bounds of the map, based on public data from a number of mobile twitter apps.

As an example, GeoMeme can work out that :) beats :( in San Francisco:

A large amount of geo-data is generated by GeoMeme, and so arises a need shared by many geo apps: scalable, fast, and accurate spatial queries, used to select a subset of geo-data for display as markers on a map, or on Google Earth.

:)Google App Engine

Google App Engine is an obvious choice for hosting your geo app. The App Engine datastore is built on top of Google’s BigTable technology which scales very well, and is optimized for fast data retrieval. And it doesn’t cost the earth like some traditional GIS database solutions.

:( Inequality constraint

If you are coming from a background of relational databases, you might think the solution here would be to store the latitude and longitude of all your markers in a database table, and do a simple query to retrieve only those contained within the bounds of the map.

However, the flipside of being optimized for fast data retrieval is that BigTable only allows inequality filters on a single dimension, to avoid the burden of full table scans. For example, the following form of spatial query is not supported because it specifies inequality filters on both latitude and longitude dimensions:

(more…)

Written by bob in: everything | Tags: , , ,
Sep
13
2009

GeoMeme: measure and share real-time local twitter trends

I am pleased to announce the launch of GeoMeme, the fun way to measure and share real-time local twitter trends.

I got thinking about this when a recent Los Angeles earthquake was being measured in tweets per second rather than using the Richter Scale.

Then came the Magnitwude Calculator as a standard way to measure the magnitude of Twitter trends.

[Then came twotspot.com but that domain name was just too damn rude, so it was quickly renamed to GeoMeme.]

What does GeoMeme do?

GeoMeme measures real-time local twitter trends.

Tweeps are located on the map using public data from a number of iPhone twitter apps. When twitter launches its geolocation API, that will be used to locate even more people on the map.

GeoMeme measures and compares how many people on the map are tweeting about each of your two search terms:

The ‘magnitude’ of each search term is equal to the number of unique people tweeting per hour per square kilometer, so it increases when more people are tweeting in a smaller area.

Example: if 100 different people in an area of 10km2 have tweeted about ‘love’ in the last 2 hours, the magnitude is 5.0 (100 divided by 10 divided by 2).

So you can search for ‘love’ and ‘hate’ and GeoMeme works out which one “beats” the other with the higher magnitude.

The default search terms are :) and :( smiley faces which provides a good measure of local happiness, as an example.

Can I use my iPhone?

Sure, or your iPod Touch. Here’s the screenshot:

Give me an example!

Thanks to some early coverage on The Register, Mashable, and Google Maps Mania, and winning Mashup of the Day on ProgrammableWeb, we’re off to a flying start. I’m glad GeoMeme is hosted on Google App Engine for scalability.

Here’s a selection of the most popular GeoMemes so far:

How does it all work?

I will leave the details of how it all works to another post, stay tuned for that.

Written by bob in: everything | Tags: , , , , , ,
Jul
20
2009

How to measure Twitter trending topics

2009 has already seen some big Twitter moments, including Michael Jackson’s death and memorial service, #iranelection, Oprah’s mainstreaming, and the race between @aplusk and @cnn to reach 1 million followers.

But how can we objectively measure and compare the scale of such things?

A little while ago I got thinking about this when a Los Angeles earthquake was being measured in tweets per second rather than using the Richter Scale.

And now here is my solution, the Magnitwude Calculator, which measures the current magnitude of tweets on any topic within any location.

Please have a fiddle. Type in a search term or select from the autocomplete list of currently trending topics, move the map around, and tell me what you think:

You can link directly to the Magnitwude Calculator at http://hitching.net/magnitwude

Jun
04
2009

Wave goodbye to spam

Google Wave combines the best of email, instant messaging and real-time collaborative editing into a new form of online communication.

The email paradigm of ’send and receive’ is replaced with a model of hosted conversations, in which “people can communicate and work together with richly formatted text, photos, videos, maps, and more.”

Wave is refreshingly ambitious. In years to come, I hope we will be waving nostalgically about email as “something that my parents used to do.”

This blog post describes an idea built upon Google Wave that could also turn email *spam* into the stuff of nostalgia.

Spam sent by people you don’t know is a real pain in the inbox. But simply ignoring emails from people you don’t know is not the answer. (Otherwise I would never have learnt about my recent win on the Nigerian lottery. Just kidding.)

So how might Google Wave help us to finally wave goodbye to spam?

  • assume that developers will build robots to connect my wave account with the rest of my social graph (either that &/or Google plugs in Friend Connect)
  • if someone (or a spambot) outside of my social graph invites me to a wave, my wave server responds to that invite with a reCAPTCHA challenge (try one out below)
  • (more…)

Apr
22
2009

Mobile Social Technology and Alternate Reality Gaming (ARG)

Today I spent an enjoyable couple of hours at the Australian Film Television and Radio School (AFTRS), learning about Multi Platform Content, and talking about Mobile Social Technology & Alternate Reality Gaming (ARG).

We examined some emerging mobile social technologies, and how they can enable new forms of story-telling. And we shared my personal journey into a Star Trek Alternate Reality Game which has so far involved me sending pictures of sheep to strangers in Paris, and which explains my recent cryptic Twitter and Facebook status updates. Well some of them anyway.

The slide deck is embedded below, and contains all the links for those of you who asked.

[Update 3 June 2009] OMG! I was chosen as one of the five finalists in the game. Here’s a video of Leonard Nimoy putting my name into the hat to pick the winner.

(more…)

Mar
15
2009

10 cloud datasets that I’d like to mashup

Cloud computing is being sold as a hosting architecture to provide instantly scalable on-demand computing power, storage and bandwidth.

“The cloud’s resources scale with user demands. Pay only for what you use” says RackSpace, the latest to join the cloud gang.

One problem for the cloud gang, however, is that hosting has always struggled as a low margin commodity business.

Rackspace has just hired Robert Scoble to help spread the message, so we should expect this space to soon get hotter than an Sun SPARC with a loose heatsink.

But where exactly can some value be added in cloud computing, to increase the margins and keep Scoble funded so he can continue to filter the signal from the noise on FriendFeed? Okay, that’s slightly selfish but it’s an interesting question.

The interesting answer IMHO is cloud datasets.

Having useful datasets available in the cloud will unlock value from the data by allowing a new generation of mashup. These aren’t mashups that simply use data from remote web services, like plotting Craigslist ads onto a Google Map. This involves the mashup (joining) of datasets in the cloud using the power and speed of a relational database.

This cloud database approach might also provide Twitter and other owners of valuable data with a revenue model that doesn’t depend on advertising.

Here’s 10 cloud datasets that I’d personally like to mashup, to help explain:

1. Wikipedia. Funnily enough Amazon Web Services has just announced that it now offers a 66Gb dataset of Wikipedia. “The wiki markup for each article is transformed into machine-readable XML, and common relational features such as templates, infoboxes, categories, article sections, and redirects are extracted in tabular form.” One example: imagine the opportunities for a start-up social travel site to mashup its content with the wealth of travel information now available on Wikipedia. Massive.

2. Geonames. It bugs me that everyone who wants to use the geonames database needs to duplicate 800Mb of data. Move it into the cloud! Example: the travel site can now analyse reams of user-generated content (or Wikipedia content) for up-to-date categorization and geo-coding onto a map. Another example: most websites need a simple (but updated-more-often-than-you-would-think) list of countries on the rego form. Wouldn’t it be good if everyone used the same (geonames) list?

3. MaxMind IP address lookup. Turn an IP address into an always accurate city location. Example: targeted ad serving and traffic analysis.

4. Google PageRank. For any URL, what’s the PageRank measure of quality? If this is relational data (rather than from a remote web service), it can be combined with other measures of quality at database speeds.

5. Real-time stock market data.

6. Real-time sports data.

7. Dodgy credit card numbers.

8. Dodgy email addresses.

9. Twitter. Some of the above might be considered proprietary rather than public data, which brings me to Twitter and a potential revenue model for them and the cloud gang. If you’ve got valuable proprietary data like Twitter has got (some would say that’s all they’ve got), then replicating it into a relational cloud database will unlock more value than could ever be extracted (or sold) via a remote web API.

Example: when visiting an e-commerce site, it would be nice to see only the product reviews submitted by people I am following on Twitter, sequenced by a measure of quality based on how often those people have been retweeted. Of course, the cloud gang already have the billing infrastructure and monitoring in place to work out exactly how much proprietary data you have used, and what to charge you for it. Did I mention yet that Jeff Bezos is an investor in Twitter?

The advertising pie is not big enough to fund the whole of the interweb, so perhaps paid data consumption is the revenue model for Twitter and others. Businesses are happy to pay hosting providers for commodity services like CPU cycles and disk space, so why not pay Twitter (via a hosting provider) for valuable information? Did I mention yet that Jeff Bezos is an investor in Twitter?

10. This one is further out there; private foreign keys. Imagine the Twitter dataset including the email address of users, joined using that email address to a Facebook or Digg dataset, but not revealing that email address in the result set. That’s number 10 on my list. It would need to work in a similar way to Facebook’s FQL or Yahoo’s YQL or Google’s GQL, to expose enough information to be useful but to not expose anything that would violate privacy concerns. I hope to write some more about this and the privacy implications in another post.

So, who’s in the cloud gang? Google is well placed with AppEngine and plenty of valuable datasets to get started with. Amazon has all the billing machinery in place to sell proprietary data from Twitter and others. Sun now has MySQL which already supports remote replication and column-level permissions to enforce private foreign keys. And now RackSpace has Robert Scoble. This will be an interesting one.

Feb
19
2009

10 ways to combine your blog with your micro-blogging

Your micro-blogging on Twitter or FriendFeed is topical.

Your blog is quality.

Both are valuable. How can you combine the two?

1. Display your FriendFeed content on your blog using an embeddable widget:

2. Display your latest Twitter updates on your blog with a customized widget:

3. Combine the display of RSS feeds from FriendFeed and Twitter and elsewhere using an RSS plugin on your WordPress, Blogger, Moveable Type or TypePad blog.

4. Install Fresh From FriendFeed and Twitter – a WordPress plugin that keeps your blog always fresh by regularly adding your best recent content from FriendFeed or Twitter. Unlike the above solutions that only display content, Fresh From allows your visitors to search your micro-blogging content, and allows you to easily edit, tag and turn it into regular blog posts. Disclosure: I wrote this plugin, it got me thinking about this post.

5. Going the other way, FriendFeed makes it easy to import your blog’s RSS feed into FriendFeed.

6. Make sure your blog’s feed is using Media RSS extensions if you can, so FriendFeed picks up any media attachments. There are a couple of Wordpress plugins available that achieve this.

7. You can import your blog’s RSS feed into Twitter using services such as twitterfeed and RSS To Twitter:

8. Alex King’s Twitter Tools is a WordPress plugin that creates a tweet on Twitter whenever you post in your blog, with a link to the blog post. It can also create a daily or weekly digest post of your tweets on your blog.

9. Glenn Slaven’s FriendFeed Comments WordPress plugin will take the comments & ‘likes’ on your posts from FriendFeed and place them on the post that they’re related to on your blog.

10. If you are using the Disqus comment system on your WordPress, Blogger, Moveable Type or TypePad blog, comments can now be synchronised between your blog and FriendFeed.

What have I missed out? Comments please!

Powered by WordPress. Theme: TheBuckmaker.