Sunday, December 30, 2007

New Year, New Template, New Direction

2008 promises to be another big year in technology. Apple's 3G iPhones are set to do battle with Google's Android phones, Google looks to take on Facebook on multiple fronts, and a whole bunch of secret (and not so secret) Google projects look set for release.

On a personal note 2008 is shaping up to be pretty massive too. I'm getting married in January and I've just started writing a new book (more on that later). I've also decided to tweak the emphasis of The Radioactive Yak. I'm going to leave the comprehensive Google coverage to Philipp and Tony at Blogoscoped, and the up-to-the-second Google-code-hacking to Ionut at the Google Operating System.

I'll be looking more closely at Google's programming offerings - particularly Android - so expect to see more tutorial posts like How To Program Google Android and Google Mashup Editor. I'll continue to write speculative posts like Google TV and Google World, as well as more detailed analysis of announced services like Android and Knols.


I'll also continue my series on the Google Office and I'll announce the projects I'm working on like Earthquake!, Hit For Six, and what I promise will be an increasingly large collection of Android applications.

Along with content changes I've given the template a fresh new look. I hope you like it and continue to visit and read in 2008!

Tuesday, December 18, 2007

Don't Believe the Hype: Knols Won't Compete with Wikipedia

Google's announced but unreleased Knols isn't a Wikipedia killer, it's a knowledge base for original thought.

If we're going to accuse Google of stealing an idea give credit where it's due.

Most of the press touts Knol as a Wikipedia killer with the differences explained away as cosmetic changes. They aren't. Fundamentally Knols and Wikipedia articles are two very different things; Knols are about sharing an author's knowledge, Wikipedia is about summarising a consensus.

If we're going to accuse Google of ripping of an idea, let's give credit where it's due -- Knols sound just like Nodes at
Everything2.

Citation Needed

The philosophy behind Wikipedia can be summed up in two words -- '
Citation Needed'. It's no secret that Wikipedia is not a place for original research or original thought. If you can't provide a cite for whatever you're entering, don't. And that's as it should be. An encyclopedia is a place for objective summaries of knowledge on a subject. If it's working there should be little controversy as the only items valid for publication should be verifiable and beyond reproach. This doesn't always work.

Anyone who's spent any time in academia knows that you can find a citation to justify your point of view. For Britannica the decision on what the consensus is, is made by people trusted to be
objective and expert enough in their fields to make the call. In Wikipedia it's up to editors whose authority comes from having made similar decisions many times before.

The raison d'etre is providing a forum for original thought and research.

Knols are like journal articles as Wikipedia is like an encyclopedia. In journals authorship is key, the quality of the research and the reputation of the author are more important than the reputation of the medium they're published in. Journals, and now Knols provide a forum for people to publish their research, their scholarship, their original thoughts. With Knols, when multiple people do research on the same subject they can be published side-by-side and people can review, comment, rate the quality of the scholarship, and the conclusions all in one place.

Original research isn't limited to academics either, it opens the knowledge base to personal experience. Where Wikipedia is the perfect place to describe the science and timeline of the Apollo missions, a Knol of the Apollo 11 mission written by Buzz Aldrin holds immeasurable value. A Knol written by someone who remembers watching it on TV would be valuable too.

Where wikipedia seeks to create a homogeneous, objective article - Knols can provide fragmented, subjective perspectives that can be evaluated in the context of their authors.

If it still sounds to you like Knol will be a haven only for academic types, have a look at
Everything2. If Knols can become Everything2 with professional and academic involvement we all win.

That's not to say that you can't stick Wikipedia articles into a Knol, you could, but there's little point. An army of anal editors and contributors is still a better way to converge on the most correct article. What Wikipedia eschews is exactly what a Knol is perfect for, they should be able to live side-by-side complimenting each other.

You do a search and find my Knol -- but how do you know if it's accurate?

Let's say I publish my findings on the current state of the art of subsea Inspection engineering. For a start you've got the ratings and comments on the article, and if I've done my work well there should be citations for the well established information, but as for the rest you need to research the author - me.

Turns out my honours thesis was on inspection engineering techniques, and I worked in the industry for more than 5 years developing bespoke inspection software. From that you can probably establish that I know what I'm on about but might have a bias towards whichever technology I'd been using. And you'd be right. If you're lucky other people will have written Knols from their own experiences, failing that you can look at my other writing to see if I'm generally considered an unbiased source.

Knols gain the power of life over a journal article that remains a lifeless document.

By providing the ability for users to comment and suggest changes a Knol gains the power of life over a journal article that remains a lifeless document. Rather than peer review by a select group of experts, Knols will be peer reviewed by the wider community. There's a risk there, but one that can be mitigated by giving more 'weight' to other Knol experts. They can learn from Everything2 on this as well.

By collecting all this original thought in one place rather than scattered and abandoned single blog entries or single page web sites, Google groups related thoughts and research together, and gives us a centralised view on fragmented thoughts.

Thursday, December 06, 2007

Google Powered Dynamic Charting

Google have expanded their API collection to include fantabulous real time, dynamic charting. They announced it today on the Google Code Blog.

Putting this into your img tag or browser:
http://chart.apis.google.com/chart?cht=v&chd=t:40,40,40,10,10,10&chs=250x150&chdl=Google|Charting|Awesome

Will produce this:
It's the same technology they use in Finance and Video, so it's nice to see them make it available for all of us. It currently supports line chart, scatter plot, bar chart, Venn diagram, and pie charts.

Tuesday, November 27, 2007

Google Maps Terrain

What do you do if you're Google and you've got excellent terrain data for most of the world?


You make it available on Google Maps of course!



Google Maps now features 'Terrain' in place of 'Hybrid', with the hybrid selection becoming a 'Show Labels' option under Satellite view.

Terrain data varies depending on the terrain resolution they have available, but it covers the whole world, just like Google Earth.

It reminds me of the old style relief atlases I used to browse through at the library, and a old hardcover book my parents had for the Grand Canyon. Love it.



View Larger Map

Monday, November 19, 2007

Android in Action

It's been a week since Google released their first cut of the Android SDK and despite Scoble's claims to the contrary, thousands of developers spent last week developing their first Android applications.

Where Are My Friends?

Here's what I was able to do in about 14hrs of development.



It reads the address book to find my friends, uses the Location Based Services to show how far away I am from them, and then plots everyone within 10km on a map. Philipp over at Google Blogoscoped has published my experience, leave a comment here or in the Blogoscoped forum if you've got questions -- or send me an email at Reto.Android@Radioactiveyak.com.

Today I'm a desktop and mobile developer.

As a development platform Android is phenomenal; It's powerful and it's intuitive. I week ago I was a desktop developer dabbling with online apps -- today I'm also a mobile developer. I don't say this lightly, desktop development is what I do to pay the bills.

Doesn't it make sense to launch the SDK well in advance of any actual phones?

Erstwhile video blogger Scoble is disappointment with Android. It seems this is largely because the launch "videos were boring". Robert? Dude? Who gives a shit about the videos? Developers don't want videos, they want CODE. Code, samples, and a well documented API. I still haven't watched the videos, I was too busy using the SDK to spend time looking at the pretty moving pictures. Apparently the shiny lights distracted Scoble as he screeches "[I] DO NOT TRUST THINGS THAT THEY WON’T SHOW ME WORKING". Android works. I've seen it, I've used it. They announced a software stack not hardware, and the software stack is available right now.

True, there are no phones yet, but Android is about development tools for 3rd party developers, so doesn't it make sense to launch the SDK well in advance of any actual phones? Google aren't going to out Apple the iPhone but they may just out Microsoft Windows Mobile.

You can bet that there's more than one Android project to duplicate the iPhone interface in excruciating detail.

There's been some complaints about the Android UI. It's true, the emulator isn't groundbreaking. It doesn't have to. It exists solely to provide the functionality developers need to write apps. How many projects do you think are right now in the process of reskining that bad-boy? The iPhone interface is as inevitable as this MS Messenger skin. The shipping UI is irrelevant, it's the flexibility of the SDK to create a new UI that's important.

Despite Scoble not knowing "...a single developer who has had his/her hands on Android" there are more than 4,500 members on the Android developer forums and more than 4,000 messages. Even if only 1% of them come up with a useful mobile application that's still about 30 more useful mobile applications than I've ever come across for Symbian.

The Android phone won't have the iPhone's consumer appeal. It's very true, but it's also entirely beside the point.

Read enough articles and you'd think that if Google doesn't immediately grab 30% of the mobile market at launch they Fail. That's short term thinking. Developers will write applications for Android phones because they literally can't write them for other platforms. One will get you ten that the iPhone SDK won't have nearly the level of phone access that Android provides.

Eventually people will be buying Android phones because the applications they *need* only run on Android phones. Don't believe me? Do you think people run Windows for the pleasure of it? Worst case scenario? Android forces people like Apple and Symbian to offer the same SDK access in order to keep their market. I'll take that and still call Android a net win.

Google's strategy seems to be 'make it open' -- with 'make it popular' a distant second.

People probably won't be lining up around the block on the release day for the first Android mobile but just like Google search and just like GMail, Android is going to change the way we think of mobile phones.

What made the PC so popular? Why has the web taken off? Because *anyone* with the inclination could bring their vision to life at minimal cost. If you've ever tried programming for a mobile phone you'll know it's expensive and difficult -- that's why there's so few *good* mobile phone applications, and very few for free. The Android platform is going to get thousands of developers playing around with new applications for mobiles, in the same way early IBM compatible PCs got thousands of electronics hobbyists interested in programming computers.

Eventually the availability of popular apps on Android phones is going to encourage more phone makers to release Android versions and networks to release Android phones. It costs them nothing in licensing.

People love iPhones, companies love options.

I don't run Windows because I like it, I run it because 75% of the applications I use every day only run under Windows; plus I can write powerful software for myself really easily.

Corporations will start buying Android phones for the same reason almost every company that's not a graphic design house runs Windows -- it's a more universal development environment with deeper access to the underlying hardware. I work for an investment bank, they'd never dream of writing corporate software for the iPhone; do you think the 300 Java developers here might be able create something useful with Android?

Monday, November 12, 2007

Google Android SDK Released

The SDK for Google's mobile phone platform, Android, has been released today.

A series of YouTube videos gives us our first look at what the Android phone OS actually looks like -- and it looks phenomenally cool.

The 'preview' SDK has everything you need to create and test your Android apps, along with an emulator that will let you see what your phone apps will look like when deployed.


The development is done in Java (they suggest Eclipse but it's not required), and Google have provided tight integration with all the phone features (including GPS, phone, camera, ...) as well as Google services like XMPP and Google Maps.

Along with the SDK, documentation, discussion group, and developer blog; Google has also announced a 'Developers Challenge', where the top 50 in development apps share up US$10million in prizes. Shit, there go my weekends for the next 6 months.

I'll post more once I've had a chance to play with the SDK. The power and ease of use of this development environment is going to be a big factor in the future success of any future 'gPhones'. Certainly this free and open approach to phone app development, with total access to the phone's resources, is a giant step away from what's been available up until now.

Tuesday, November 06, 2007

Using Google Apps with the Google Mashup Editor

The thing I like most about Google's ever expanding lineup of online applications is the corresponding set of programming services. RSS, ATOM, JSON, and Gdata feeds ensure there's plenty of ways to access your data from stored in a Google app. At Hit For Six (source code), three of the tabs are populated with information from a Google data source - Spreadsheets, Calender, and Reader. Here's how to use these feeds as data sources within Google Mashup Editor (GME) to create interactive web applications.

One of the most common mashup tasks is geocoding a location to place a marker on a Google map

One of the coolest new features in the GME is the dynamic geocoder. When your creating a maps mashup it's inevitable that you'll be geocoding a location to put a corresponding marker on a map. The gm:map tag in GME lets you specify 'lat' and 'long' fields in your atom / RSS feed.

gm:map id="liveMap" data="${liveList}" latref="geo:lat" lngref="geo:long"

But what if you only have a named location? Previously you had to handle this manually, either pre-geocoding the location (as I did using Yahoo Pipes), or using JavaScript to handle it client side. The latest release of GME automates this step by supporting a geolocationref parameter that takes a field from your feed and places a marker on your map based on the result from the Google Geocoder.

gm:map id="calendarMap" data="${calendarList}" geolocationref="gd:where/@valueString"

This is perfect for a Google Calendar source where you have a location but not the literal lat/long coordinates; like the 'upcoming fixtures' tab at Hit For Six. The dynamic geocoder is not the same as the Google Maps search bar, and you can't limit its scope. To get the best results you need to include as much location context as possible when passing values (city, state, countryS). Some countries (like India) return locations for certain named locations (like sporting venues) in Maps, but won't work when using the geocoder.

A calendar is useful as a database but the Calendar UI has been designed specifically with appointments in mind

A calendar is a perfect database for time based information. I use Google Calendar to track upcoming book releases, store sporting fixtures, and record timesheets. But the UI is designed with appointments in mind and none of these use cases are appointments. Instead we can use the GME to produce a custom GUI that's right for our data, and the best way to leverage the data stored in a Google Calendar in the GME is using the ATOM feed. You can pass query parameters in to your calendar feed to filter and sort the returned entries.

http://www.google.com/calendar/feeds/radioactiveyak.com_7qt1thddqotp3eic9lud1jelq8@group.calendar.google.com/public/full?futureevents=true&orderby=starttime&sortorder=ascending&max-results=100

Start with a feed that returns only the items we're interested in. Limit by date (show future events only) and cap the maximum results (no more than 100). Then sort (by start time) on the server side. Next create your UI using the GME tags, custom JavaScript, and HTML. In Hit For Six I want to see these events listed and plotted on a map. Using the map tag and the runtime geocoder we can display the calendar entries on a map with a single line of code.

gm:map id="calendarMap" data="${calendarList}" geolocationref="gd:where/@valueString"

It's worth noting that the calendar service is relatively slow, so it's worth the effort to limit the number of returned events to prevent any timeouts. If you're interested in writing data to the calendar as well as reading it, Google's recently released Javascript client might be what you're after.

Publishing your spreadsheets with ATOM lets you create a custom database with an XML feed that updates in real time

I love the idea of using Spreadsheets as an online database. Publishing your Google Spreadsheets lets you specify an arbitrary data source that updates in real time based on spreadsheet changes. Using the ATOM output makes using spreadsheet data in GME pretty painless.

Set up and populate your spreadsheet, select publish and grab the ATOM feed address, make sure you choose 'list feed'.


The default action for entry labels is gsx:columnname, but it's worth pasting your feed into the GME feed browser to confirm. You can set up 'structured queries' to filter your datasource, and it's good practice to do these sorts of filters 'server side'.

A nice trick with spreadsheets is using a 'table of contents' worksheet that provides the feed location of other worksheets that you will use as data sources. In the Hit For Six 'Venues' tab I provide a list of countries which, when selected, populates a country specific ground list based on the corresponding worksheet.

http://spreadsheets.google.com/feeds/list/o01765357489133287312.3601895615788609870/od7/public/values

I can then add new countries and only have to update the spreadsheet, the website will reflect this change automatically.

It's not all beer and skittles

There are a couple of things you need to keep in mind when using Google data feeds rather than 'regular' RSS feeds.
  • You can't spoof the feed requests to force frequent updates. Google services require specific feed request parameters (you can't add 'fake' parameters like &random=12354 or &datetime=20071022 to force the GME feed cache to update the data deterministically). That said, the GME team have negotiated a deal with the team that handles the feed caching to provide more frequent updates (in the order of 10mins rather than 6hrs). If that's still not fast enough, you can funnel your feeds through Yahoo Pipes.

  • GME expects RSS feeds rather than XML data feeds. RSS feeds tend to add new items rather than modifying or removing existing ones. If you have data that changes often you may want to pipe it through Pipes first. That will let you change the calling string (by adding a random or time based parameter to the feed address) and force GME to refresh it completely.

  • It's all open. Note that if you're using Google services as backends you're making that backend public. Once you set it up for your GME application to use, everyone has access to the underlying data. If that's not open enough, your GME code is an open source project by default (and requirement), so nothing's secret.

Wednesday, October 31, 2007

Google Goes Open Social

John Battelle appears to have scooped Google by releasing a draft of Google's Open Social press release. Google Operating System gives a pretty good rundown of what it's all about so I won't rehash that here. What I do think is interesting is the defacto social network that Google's just created.

The launch partners (Orkut, Hi5, Ning, Friendster, LinkedIn, ...) are an impressive collection of social networks that aren't Facebook or MySpace, but the biggest launch partner hasn't been listed.

Google already has a massive social graph, it's all your contacts in GMail and friends in GoogleTalk. Google already uses this social graph to show you a news feed created by your 'friends' in Shared Stuff. Google have said that the GMail contact manager is going to be migrated into Google's other services, and your Shared Stuff profile has already been re-used in Google Maps.

Now we have Open Social, and it doesn't take too much imagination to see iGoogle supporting Open Social widgets. Suddenly you can create an iGoogle tab that displays Shared Stuff feeds and Facebook style social apps that use your GMail contacts as friends. Want to know more about a friend? Just view their 'social profile', and with Open Social you've got a world of 3rd party developers ready to go.

Without having to release a 'new' social network Google already have. Friends, profiles, social apps, picture albums, news feeds, IM, inbox messaging -- just by adding a social layer on top of their existing properties, Google has scooped Facebook.

Tuesday, October 23, 2007

Could Facebook Hitting Critical Mass Lead to a Meltdown?

Having your siblings friend you on Facebook is one thing, getting poked by your parents is something else.

Then your boss comments on your weekend activities and Facebook's ubiquity gets a little creepy. It's not a new observation, people have been bemoaning Facebook's lack of domain separation ever since the platform expanded from college kids to the general public. It was then that the aforementioned co-eds realised their booze fueled girls-gone-wild party-pics might not play so well when they got friended by the CTO at their graduating 'first choice' investment bank.

Clearly just not friending these people won't work -- the solution, of course, is silos -- an invisible barrier that lets you put each friend in the right bucket. Friend. Family. Workmate. Then each posting / app / status update only gets pushed to the people who should be seeing it. It's perfect but it also adds complexity. Facebookers rarely go to the trouble of rotating portrait photos in their photo albums, you think they're going to think through the implications of each status update and photo post?

But what's worse than information leakage? Your mother uses Facebook. That's not just an insult my friends, that's death for any online application that values 'cool'. Trendy stores keep unwelcome adults out by playing loud obnoxious music and strobing their lights in a way sure to induce seizures in anyone over 30. MySpace works pretty much the same way. Part of Facebook's problem is its elegant design, the same feature that has helped its monumental growth may now be encouraging too many people to join.

How long before the sheer uncoolness of a social network your parents are part of and your boss reads daily leads hipsters to seek out a less 'parent friendly' alternative? Then again, the propagation of vampire-werewolf-ninja-pirate 'apps' might be enough to distract nosy parents and employers from the incriminating kegger photos.

Facebook wants to win market share from LinkedIn, but maybe we'd all be better off if our social networks and professional networks kept their distance.

It's hard to argue that a social network's astronomic growth is a bad thing. But how Zuckerberg and his increasingly talented team are going to deal with these issues should be of supreme interest to those looking to invest in Facebook's estimated 15b valuation.

Friday, October 19, 2007

Anyone for Cricket?

Both forms of the World Cup are over and the Northern Winter looms over Great Britain. But for those of us you a little further South, a sensational summer of cricket is just getting started.

Domestic competitions have kicked off in Australia, South Africa, and The West Indies (and starting soon in Pakistan); and one-day and test series are already underway in South Africa, Sri Lanka, India, and Australia. With so much cricket spread so far around the world, what better time to launch a mega cricket maps mashup?

Live Cricket Map
See exactly where every game is being played with links to live ball-by-ball commentary.



Cricket Calendar Map
Shows you all the upcoming cricket fixtures, mapped out around the world.



Cricket Venue Map
Find out more about cricket grounds around the world. These lists are updated and growing every day as we get more details about more grounds around the world. Want to help? Send us the details on a ground near you.



iGoogle Gadgets
All the cricket-map goodness in convenient gadget form. Add the Live Scores Map Gadget and Cricket Schedule Map Gadget to your iGoogle homepage.

Hit for Six was written entirely in the Google Mashup Editor with data coming from Dapper, Google Calendar, and Google Spreadsheets. It makes use of a few cool new GME tricks (like real-time geocoding) so I'll write a follow up post early next week explaining some of the tricks I learned putting it together.

Thursday, October 18, 2007

Google Finance Gets More Financials

As of this morning Google Finance is providing price information (including pricing graphs) for stocks listed on the Australian (ASX) and New Zealand (NZX) stock exchanges. Great news for market sleuths in the Great Southern Land (and its neighbor).

This comes a week after Google Finance started providing real-time pricing information on the Shanghai and Shenzhen exchanges in China.

Google Finance still lags a little behind Yahoo Finance, both in terms of global coverage and userbase; but these updates, and a promise of real-time updates on the US exchanges as soon as the SEC gives them a green light, suggest they've not given up the chase.

Wednesday, October 17, 2007

Google Updates Its Mobile Offerings

While we're yet to see a real-life GPhone, Google's mobile development team has just released a flurry of updates.

Monday saw GMail for Mobiles get bumped up to version 1.5. The shiny new version is 30 to 80% faster, lets you save drafts, and supports GMail keyboard shortcuts. The most impressive feature in the new version is a 'Contact Manager'. It displays your contacts' GMail pictures and their (click-to-callable) phone numbers -- as well as email addresses of course. Download on your phone from http://gmail.com/app.

Saturday saw Google Maps for Mobile get tricked out with version 1.6, with the bonus of native app support for the S60 OS toting crowd (Nokia, SE, etal). This is particularly cool as it provides GPS support for S60 phones (like the Nokia N95). Other updates include a touch-screen friendly zoom in / zoom out and menu options.

Today we get to view our Google Docs on our phones as Google release a mobile friendly view of Google Docs. Google Blogoscoped has the scoop, but in a nutshell mobile Docs supports a read-only view of both documents and spreadsheets (no presentation view yet).

We've now got Maps, GMail, Docs, Picasaweb, Reader, iGoogle, News, and Calendar all available on our mobiles. GPhone or not, Google is serious about moving to the mobile.

Thursday, September 27, 2007

NBL Ladder Gadget

My infatuation with the Google Mashup Editor continues. This time I've used Dapper to turn the Australian National Basketball League (NBL) standings ladder into an Atom feed, which I'm using to power the NBL Ladder Google homepage gadget.



The GME hosts (and lets you edit) your gadget's XML definition file, and your gadget can feature any of the tags and themes supported by the GME -- so it becomes a 'one stop shop' for creating rich mashup gadgets.

Thursday, September 20, 2007

Google 'Shared Stuff' Social Bookmarking Service

Google is quietly launching a new service today called 'Shared Stuff'.

It's a service that lets you bookmark pages, add comments and add tags in a similar way to how Google Notebook works, but with an emphasis firmly on sharing. As well as a 'shared stuff' page, your friends can add your Shared Stuff as a Google Homepage module, or subscribe to your RSS feed.

Once you've 'shared' an item, Google will tell you how many times it's been shared (like every social bookmarking site ever) but also how many times it's been viewed.

It looks like they'll be building this in to all the Google services that allow sharing (Maps, Video, YouTube, Reader, Picasaweb, Blogger, ...), but at the moment it's only supported in Google Video and via a browser (Share This) button. This suggests this is the mysterious Mocka-Mocka social service suggested in the Google Reader training video that was leaked earlier this month.

It's still not properly launched, so I expect we'll see a 'home' page for the service, similar to the Digg or Del.icio.us front pages that show us what's getting shared and viewed the most, before too long. but you can still see the 'most popular' items, or you can see the most popular items by tag.

As it is, it's
a very workable replacement for sending emails of cool stuff you've found online (or having a blog for the same).

For those playing at home, this accounts for the mysterious Google service 'S2'.

Javascript API for Google Calendar

Google has just released a Javascript API for Google Calendars.

The client side library supports full authenticated read/write access the the user's calendars, letting you create calendar mashups that insert and change a user's calendar entries.

It was the Maps Javascript library that drove the explosion of Maps Mashups, so it'll be interesting to see what the development community comes up with.

Interestingly, yesterday on Joel on Software, Joel Spolsky predicted the next paradigm for development will be an online SDK that lets developers create powerful Ajax applications that can interact with each other and have consistent interface elements. A 'NewSDK',
"...which combines a great portable programming language that compiles to JavaScript, and even better, a huge Ajaxy library that includes all kinds of clever interop features. Not just cut ‘n’ paste: cool mashup features like synchronization and single-point identity management..." - Joel Spolsky
With the Google Mashup Editor and a library of full access Javascript APIs, Google may be well on the way to creating 'NewSDK'. The Google Maps API has helped make it a ubiquitous online map. Will the same thing now happen with Calendar? Then Spreadsheets, Docs, Picasaweb, GMail, ...?

Windows made it easy for developers to create applications that looked and behaved consistently and provided a level of application interop. With Javascript APIs and tools like the Google Mashup Editor and GWT may be trying to do the same thing with web development.

Saturday, September 15, 2007

Easy Come, Easy Go(ogle)

There's never a shortage of speculation surrounding future Google releases. With rumours flying around at breakneck pace it's easy to loose track.

With Google presenting at TechCrunch40 later today, let's take a moment to review some of the biggest, longest running, and most eagerly anticipated Google product rumours: Google Television, GDrive, the GPhone, GoogleTalk-to-Phone, Google's Social application, and Google Office.


The Google Phone
Alias: GPhone

Speculation on the GPhone started as early as 2005, and it's been regular blog fodder since then, with the rumour mill hitting overdrive in August thanks to reliable reports of an impending post-Labour Day release.

Early speculation suggested a hardware device similar to the iPhone, but recent comments from Google's head of research, Peter Norvig, suggest it won't be a Google created handset. The smart money now is on a Java-based Google powered phone OS along with a suite of mobile Google applications available on 3rd party hardware, with Business Week claiming just last week that a gPhone mobile phone platform is nearing release.

Original Speculation: December 2005.
Last Heard From: September 2007.
Suggested Release Schedule: Post Labour Day, 2007.
Trending: Peaking.
Likelihood of imminent release: High.


GDrive
Alias: Platypus, Google Drive, WWW10

Rumours of a Google powered online storage solution started in 2005, but it was the inadvertent release of suggestive power point slides in early 2006 that really got people's attention.

After a massive bout of online speculation things died down until July 2007, when CorsinCamichel discovered an internal Google GDrive client codenamed Platypus. More recently Tony Ruscoe found that 'GDrive' was available to some users as a service within Google Apps, fueling speculation of a possible public release.

Original Speculation: March 2005.
Last Heard From: September 2007.
Suggested Release Schedule: Unknown. Likely to be part of Google Apps.
Trending: Stagnant.
Likelihood of imminent release: High.


Google's Social Application
Alias: Makamaka, Ninianne Wang's Social Project, Google World

Google's decidedly underwhelming Orkut service has led to speculation that Google intends to release an alternative social application that takes a radically different approach. Revelation's in May 2006 that star Googler Niniane Wang was heading up a new project in the social space led to speculation that the project might be a killer combination of Facebook and Second Life leveraging Google Earth.

More recently Google Operating System highlighted Google's investment in SocialStream (a social networking aggregation project), and the accidental leak of a Google training video described the 'big social effort' at Google (Makamaka), as the framework for Google's social efforts.

Original Speculation: April 2005.
Last Heard From: September 2007.
Suggested Release Schedule: Unknown.
Trending: Upwards.
Likelihood of imminent release: Low.


GoogleTV
Alias: Google Television

Google TV has been rumour fodder since before the launch of Google Video in January of 2005.

In March of 2006 job openings for an Interactive TV Product Manager and Software Engineers with experience in 'emerging TV standards' and 'deploying robust, high-volume applications for consumer devices' fueled speculation that a GoogleTV set-top-box might be on its way.

In January 2007 an brilliantly spoofed 'how-to guide' to register for the GoogleTV Beta program was released on YouTube sparking a surge of interest as hope overcame common sense before the hoax was revealed.

In March Google announced a television AdSense trial, and in August Vint Cerf (VP at Goolge) suggested that television is approaching it's 'iPod moment', when most users will be downloading their television.

Original Speculation: 2004.
Last Heard From: August 2007.
Suggested Release Schedule: Unknown.
Trending: Stagnant.
Likelihood of imminent release: Low.


GoogleTalk Phone-Out
Alias: Google Voice, Google SIP

When Google launched GoogleTalk in August 2005 with audio conferencing using the open source libjingle library,there was wide-spread expectation that a Skype style PC-to-phone service would follow.

In July of 2006 GoogleTalk was updated to provide 'voice mail' for missed audio calls and in May this year the accidental release of a Google slideshow including a screen-capture of an updated GoogleTalk client including a 'dialpad' renewed speculation that GoogleTalk would soon be upgraded to include a PC to phone service. A month later Google acquired GrandCentral, a 'one number for life' phone management startup.

Original Speculation: August 2005.
Last Heard From: June 2007.
Suggested Release Schedule: Unknown.
Trending: Stagnant.
Likelihood of imminent release: Moderate.


Google Office
Alias: Presently, Google Wiki, JotSpot

The Google Office suite (or MS Office killer) has been a target of speculation GMail's release in 2004, but only really grabbed hold in March of 2006 when Google purchased collaborative online document editor Writely. Since then Google has added a Calendar and Spreadsheets to there Office suite, and has packaged all three tools as 'Google Docs' and embedded them with the Google Apps service.

More recently Google has acquired business focused wiki JotSpot, and online presentations software creator Tonic Systems. Neither acquisition has yet resulted in a Google offering, though Information Week suggests that the release of Presently (Google's PowerPoint offering) is a dead certainty for Tech40 today.

Speculation continues regarding an offline component to Google Docs, and the release of a JotSpot powered wiki component.

Original Speculation: 2004.
Last Heard From: September 2007.
Suggested Release Schedule: September 17, 2007.
Trending: Upwards.
Likelihood of imminent release: Near certainty.

Friday, September 14, 2007

Google Mashup Editor Goes Social

Isn't it great when you get exactly what you ask for?

The latest release of the Google Mashup Editor lets your mashups share data between users, letting you create real social apps within the GME. So My Travel Maps now includes 'Their Travel Maps', a tab where you can see your friends' Travel Maps.

Sign in and add your friends' GMail addresses to the 'Their Travel Maps' tab, then select a friend to see their trips (and their Picasaweb albums). Add me as a friend -- my GMail is Reto.Meier at gmail.com -- to see the result.

Along with social application support this release has a bunch of new features, including the ability to add labels and rating to external feeds, support for editing HTML and CSS project files within the editor, plus better styling and CSS support along with general performance improvements and bug fixes.

It's an impressive new release that's moving the GME further along the path to full-blown online GoogleOS development IDE.

Wednesday, September 12, 2007

Massive 7.9 Earthquake Hits Sumatra

A massive earthquake registering 7.9 on the Richter scale has been recorded just off the coast of Sumatra in Indonesia.

Earthquake! illustrates the size and scale of the quake, the light red 'felt' region extends over much of south east Asia as far away as Sri Lanka and Myanmar and the dark red damage zone covering a fair chunk of the Sumatran coast line.

There's currently a Tsunami alert in effect for the surrounding region.

Thursday, September 06, 2007

My Google Library

Wow. Google has just announced an incredible new service on the official Google Blog.

Book lovers rejoice, you can now create a virtual library of your book collection using Google's Book Search. You can maintain your entire collection by adding books using ISBNs, using Book Search, or copying from other people's libraries.


Once added, books can be rated, tagged, and reviewed, and you can browse in cover view, detail view, filter by tag, and search your library. Viewing a book's details gives you a varied wealth of information, including book publishing details, online reviews, online references, references from other books, regularly quoted passages, related books, and in some cases even a map of places mentioned within the books pages.

Your library is public (my library) so you can share your collection with your friends, or use your friend's collections as inspiration for your own reading.
There's even an RSS feed of new additions and an XML feed of your collection to download or mashup in your own applications. The XML feeds include ISBN, author, title, your tags, reviews, and rating -- the RSS feed also includes the cover art.

At the moment it's a little US-centric, with cover art and detailed book details missing for books published overseas -- which is a bit of a problem for those of us in the UK or Australia. That's not going to stop me from importing my 1000 book database into
My Library later tonight though!

I hope they extend the data feeds further.
I'd dearly love to be able to add books to my collection (and rate, review, and label them) using a GData feed like PicasaWeb; I'd also love to have access to some of the wealth of book information Google have aggregated for each book. In fact, while we're at it, I think they should extend 'My Library' to include music and movies I own as well as books.

I don't know many people that were big users of Google Books, but just about everyone I know with a collection of more than 100 books has some way of cataloging their books (Excel spreadsheets, custom software, etc). I think this is a wise move precisely because it gives people a new reason for regularly visiting the site.

Distances on Google Maps

As of today Google Maps will display the length of any line you draw on a map (you can add lines in the 'My Maps' tab). Just click on any completed line to get a total distance.

Finally I can see exactly how much longer the 'scenic route' to work is.




They didn't invent this, Yahoo! has done it for a while and I know of a couple of mashups that do the same thing, but still -- it's pretty handy!

At the moment all distances are shown in yards and miles -- maybe the next release can show us some metric love?

Wednesday, September 05, 2007

Google Reader UI Update

I noticed a general update of the Google Reader UI this morning.

There's now a gray arrow button between your list of subscriptions and the reading panel, just like the one in Google Maps between your map and the search results. Just like in Maps, clicking it will hide your subscriptions list, replacing it with a 'My Subscriptions:' dropdown.



It's a nice UI tweak that gains me an extra 30% - 50% of horizontal reading space when I'm going through my feeds in the morning.

They've also updated the blue 'loading' dialog, replacing the blue beaker with a smaller orange loading message that sits at the top of the page.

I've seen this update come-and-go all morning, so it looks like they're in the process of testing / rolling it out.

Update (6 Sep 2007): They've also added search functionality! You can now search through any of your folders to find specific feed items. Neat.

Wednesday, August 22, 2007

Guest Post on Google Mashup Editor

The good people behind the Google Mashup Editor recently invited me to share my thoughts on my experience with the GME.

Check out my ramblings on the Google Mashup Editor Blog.

I will be adding 'pioneer' to my resume later tonight...

Tuesday, August 21, 2007

Easily Embed Google Maps with HTML

Google Maps has released a new feature that lets you embed any Google Map into a web page using straight HTML -- no JavaScript or API key required. It works for address, or business search results:


View Larger Map

As well as fully interactive My Maps maps (this map shows the cricket stadiums used in World Cup 2007):


View Larger Map

This is really useful, there's plenty of times when a map would be the perfect thing to illustrate a point online, but setting up a 'real' mashup is just overkill.

Announcing 'My Travel Map'

I've always wanted a great big map of the world with pieces of red string tracing my trips from city to city. I always figured it would look cool to see the combination of 'hubs' with lots of lines coming out, then seeing the little snail trails as I trekked across western Europe.

But let's face it red string on a poster map is so 1986. Presenting My Travel Map.


Sign in and start adding your trips on the 'My Travel' tab and watch with barely restrained glee as your global jaunts are plotted automagically. And because a trip worth noting probably has photos, your public, geotagged Picasaweb albums will automagically be added as map markers as soon as you sign in.


While you're there you can record the date of each trip, rate it, add a description, and remember a related link.


As you might have come to expect by now, My Travel Map was written entirely using the Google Mashup Editor.

Sign in to My Travel Map and create your own travel map.

Thursday, August 09, 2007

Earthquake! With Damage and Rumble Radii

I visited the Natural History Museum in New York earlier this year and was seriously impressed by the real-time earthquake display. Despite my earnest pleas they cruelly refused to let me take it home with me; instead I stole copied created my own version of their concentric circle filled goodness.

Like the exhibit that inspired it, Worldwide Earthquakes shows not just the epicentres, but also an approximated 'damage zone' (inner circle, dark shading) and 'felt zone' (outer circle, thick border) to give an impression of the areas likely to be affected by each earthquake. Zoom in to see which cities and suburbs will feel the tremor, and which are at risk for property damage.



Red circles show quakes within the last 24 hours, yellow are within the last two days, and grey are everything that's left (up to the last 2 months).

As a bonus, unlike the IRIS/USGS display at the museum, I use multiple data sources to get better world-wide coverage. I include feeds from the Geoscience Australia, the US Geological Survey (USGS), and the European-Mediterranean Seismological Centre.

Big quakes (>5) should be picked up by all the agencies -- but in any case, I've mashed up all three feeds to produce the 'World' tab that shows only earthquakes that people can feel (>3).

Now, if you've got a 30" plasma, you can have you own 'at home' real-time earthquake display. How sweet is that?


Note. The Worldwide Earthquake mashup was constructed using Google's Mashup Editor, with additional data processing done using Yahoo Pipes. Read more information on using Pipes to help construct mashups with GME.


UPDATE (10/08/07): Fixed for IE, circles now draw properly in IE (yay!)

Wednesday, July 18, 2007

Fuel Price Mapplet: Developing Mapplets vs Mashups

About a week ago Google opened Mapplets to everyone, and now, the WA Petrol Map Mashup is available as a Google Maps Mapplet! Find the cheapest petrol stations while you're getting directions and searching for businesses. Bookmark your commute for easy reference and use waypoints to take a detour to the nearest, cheapest petrol.

Mapplets are found in the 'My Maps' tab on Google Maps when you're signed in to Google. You can overlay multiple Mapplets giving you the power to create a customized Google Maps interface with useful information overlaid over your normal map search results, directions, and business listings.

In Part 1 I'll show you how to use the Petrol Price Mapplet to find the best place to refuel on your commute, developers might want to skip straight to Part 2 where I continue from last week's post on creating a mashup with GME and Pipes, and describe the simple process of creating a mapplet using Yahoo Pipes as a geocoded KML data source.

Part 1: Still in Perth? Still Want Cheap Petrol?

What's better than a mashup with the best petrol prices in your usual suburbs? A mapplet! See where the best petrol prices are on your commute -- and get directions to include the cheapest station on the way.

Login to Google Maps, then add the mapplet using the gallery (or 'add by url' with this url). When it's on your list of mapplets check the checkbox to enable it. You should see something like the image below.

Click 'Change Settings' and chose three suburbs where you normally fill up. When you save your changes, you should see the markers move to show you the cheapest 15 locations from those three suburbs. Clicking a marker will show you the price at that station plus the cheapest overall price.

Now click 'Search Results' and choose the 'directions' tab (under the search box). Enter your home address in one box and your work address in the other and search. You should now see you morning commute with the cheapest petrol stations overlaid on top.




Your commute probably isn't quite right (mine isn't). I have to click 'avoid highways' as I never travel the freeway in rush-hour, then I left-click drag my route from Harbourne over to Pearson -- Google Maps recalculates my journey in real time. I want to check this whenever I need to refuel, so I click 'link to this page' and copy the result from the popup box and paste it back into the address bar; then I bookmark it 'My Daily Commute'. Now whenever I need petrol I just open that link, enable the 'WA Petrol Mapplet' and I can see where to fill up.

Today I see that the station on my way is 14c/l more expensive than the cheapest. Knowing the cheapest isn't far out of my way, I right click the map next to the Karrinyup Caltex and choose 'Add to journey' and move it up the list on the left. Google revises the journey (it's less than 10mins out of my way) and I save 14c/l on filling up.


Part 2: How to Make a Mapplet in Under 2 Hours -- and Why?

Mapplets can be even simpler than mashups, but let's start with why you should bother with a mapplet at all, Mapplets:
  • give people access to all the Google Maps functionality (traffic view, street view, directions, drag-and-drop re-routing, etc.) out of the box.
  • work as part of Google Maps, so people don't have to login to different websites.
  • can be 'layered' so your mapplet can be used in conjunction with other people's (traffic congestion + petrol prices + ?)
That's not to say you should abandon your stand-alone mashup. Leverage the mapplet to drive traffic to it:
  • The Mapplet interface is limited. The best use case is to 'enable' the mapplet, then switch back to the search results view. Side-effect: Any and all useful information you have, has to be shown in the marker info-windows (or with the marker itself, try and use customised markers if possible). Use the window to say there's more to see at your full site (and provide a handy link!)
  • Your ability to save user data in Mapplets is limited. Stand-alone mashups are much better if you're storing more than simple user preferences.
  • Keep it simple. Mapplets work best as useful markers that sit on top of a normal map, like a layer in Google Earth. Keep complex interactions and data presentation to standalone mashups. Remember: A mapplet is a side-order to the map, a mashup is a main course.

With keeping it simple in mind, my mapplet source code is about as basic as you could hope for. Mapplets are 90% Javascript (10% XML). There's no editor or built-in hosting (unlike GME -- maybe coming soon?), but there is a 'scratchpad' that you can should use to develop and test your code. When you're done, you can host it in a variety of Google Places -- Groups, Pages, or the GME itself.

Writing the Mapplet

There's three things I want to achieve in my mapplet, I want

  • users to be able to enter a few suburbs to look at on the map (arbitrary number -- 3).
  • to display the cheapest (arbitrary number -- 15) petrol stations as markers on the map.
  • to indicate the overall cheapest petrol available in those selected suburbs.

User Prefs

Mapplets handle user preferences well. Add require feature="setprefs" within the moduleprefs, then add UserPref definitions, one for each preference:

userpref name="SuburbOne" display_name="Suburb 1" default_value="West Perth" datatype="string"

Then you can access these values like this:
var prefs = new _IG_Prefs(__MODULE_ID__);
var s1 = prefs.getString("SuburbOne");


Show the Petrol Stations

I hate doing XML manipulation in JavaScript. Luckily I don't have to. Mapplets let you pass in a GeoRSS or KML file in and it will automatically plot the placemarks on your map. Use the GeoRSS function like this:

var geoXml = new GGeoXml(kmlFileURLString);

map.addOverlay(geoXml);

Now all you need is a pre-manipulated KML link (here's one I prepared earlier). Once again our friend and saviour -- Yahoo Pipes (how is this not a Google product?!), where I do all my XML manipulation.

I create a new pipe, 'combined petrol prices', that takes three user inputs as input to our existing 'Petrol Price by Suburb' pipe, and uses a 'union module' to combine them. The I sort the result by fuel price and truncate it to 15 items. Then I add a 'Location Extractor'* module (which allows you to export your pipe as a KML file) and I'm done. Three inputs (my user prefs), sorted and truncated to 15 cheapest stations, outputted as KML.

Back in the mapplet I write a bit of JavaScript to construct the URL with the user prefs as parameters for the pipe url. Then I pass this URL into the constructor for a GeoRSS overlay and add the overlay to the map. Unfortunately Pipes doesn't give you the ability to hand tinker with the KML output, which means you can't specify a custom marker / placemark icon in the feed. Rather than forgo the simple / handy GeoRSS functionality I'm going to live with the plain blue markers -- mainly because I'm lazy.

*A note on the Location Extractor Pipe module. It's a little… finicky. The best way I've found to have it reliably parse geolocations is to ensure your feed has 'geo:lat' and 'geo:long' fields. You'll know it works when the output from the Location module includes a populated 'y:location' field.
You can test that the Pipes KML feed is working by running it within Pipes itself, you should see your stations on a Yahoo Map. To double check, just paste the Pipe's KML output address into your Google Maps search box and it will magically render it on the map for you.

Always Show the Cheapest Petrol

I still want to append the cheapest available petrol to each station marker's description.

I create another new Pipe and drop the 'combined' Pipe from above into it (hooking up appropriate user inputs so it takes the same parameters). Then I add a 'foreach annotate' module, and use a new instance of the combined pipe as the source. On the dropdown choose 'first only' -- this will add a new node to each item that contains the first item in the source feed (Ie. The cheapest station). Bring out the regex hammer to nail that info onto the bottom of the description field and
I'm done. I Don't even have to touch the mapplet code.

That's It?

Upload your Mapplet XML somewhere, then click 'Add Content' and choose 'add by URL' (next to the search button). Paste in your address and you're done. Once you're happy that everything works, you can
submit your Mapplet to the gallery for the world to enjoy.

Here's a few tips:
  • Track your mapplet use with Google Analytics (here's how).
  • Show your user prefs in you mapplet output panel. If you state what the current settings are, there's a better chance that people will change them to something more suitable.
  • Like a mashup, make sure the 'default' result on installation shows something useful / interesting. Most people will add --> judge --> remove, well before they start playing with user preferences.
  • Keep the overhead low. Don't add 10,000 markers at a time -- people will turn it off very quickly indeed. If you have a lot of data use the Marker Manager, the Panaramio mapplet is a good example of how and when to do this.
  • Host it for free. If you don't have a server handy, you can host your mapplet on a number of Google properties.
  • All the data fetching (XML/GeoRSS/HTML) routines within mapplets are cached every 30mins. If you need data fresher than that you'll need to increase that refresh rate. Don't if you don't have to, caching is a Good Thing.

Criticisms, Suggestions, and Conclusions

My Maps / Mapplets in Google Maps is seems based on the idea of layers and 'custom placemarks' in
Google Earth, and in a lot of cases it makes a lot more sense to show this layered information in the context of your usual Google Maps use, rather than a collection of standalone mashups.

Things like weather, petrol, road congestion, speed camera locations, and panaramio pictures are excellent examples of data I'd like to see on my Google Map all the time, and together -- once we get full Google Maps as an in-car GPS, the world will truly be a brighter place.

That said, here's some things missing from Mapplets that would be nice to see in future releases:

  • No hosting or built in web editor. Let us use the Google Mashup Editor to write, host, and test our mapplets.
  • You can't assign custom markers to a KML / GeoRSS feed. Makes sense, as you should be able to put the marker definitions into the feed itself -- but what if you can't? Let us specify a default marker setting.
  • Selected Mapplets don't persist. Each time I load Google Maps I need to activate the mapplet / my maps I want to overlay. Lets us persist them between sessions (or at least create a link with them included. I *always* want to have certain mapplets turned on, making people turn them on each time makes them less likely to be used.
  • Adsense revenue. Please.
  • User settings saving is patchy. Using the 'back' button on your browser almost guarantees the user settings are lost.
  • …and one for Yahoo Pipes: Let us tinker with the KML output please!