<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6834746</id><updated>2011-12-01T08:49:39.073Z</updated><title type='text'>adrian's wall</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6834746.post-3190548647815121047</id><published>2011-09-20T07:38:00.000Z</published><updated>2011-09-20T07:38:47.407Z</updated><title type='text'>Speculations about developing with iCloud</title><content type='html'>It's been three months since Apple revealed it's vision of the cloud to the world. After its introduction, much was written (e.g. &lt;a href="http://techcrunch.com/2011/06/08/apple-icloud-google-cloud/"&gt;It Just Works&lt;/a&gt;) about how iCloud compares 'philosophically' with others, most obviously Google. Now, supposedly close to launch and with iCloud in the hands of developers, there seems to be surprisingly little written about how that philosophy translates into developing a modern iOS app.&lt;br /&gt;
&lt;br /&gt;
Apple promises consumers that things 'will just work'. Just keep using apps in the same way and they will magically remain up-to-date across all your devices - in truth I'm not sure more magic was promised. Apple might be making a similar offer to developers. In principle iCloud means that an ObjectiveC developer with XCode can create and distribute apps containing this magical ingredient without having to learn any new skills, without having to develop any cloud-based components at all. What's more, with relatively little extra work, they can support the Mac as well. &lt;br /&gt;
&lt;br /&gt;
Of course, even within the Apple eco-system, this simplified development model is only true for a certain class of app, specifically those where the user is essentially creating/editing a document that can be synced via the cloud. Nevertheless that class can cover everything from task management apps (like iNote) to adding personalisation features such as 'favorites' to apps that consume third-party web services.&lt;br /&gt;
&lt;br /&gt;
As always there is a cost: no support for Windows PCs, no support for Android devices, no support for the web.&lt;br /&gt;
&lt;br /&gt;
Without direct knowledge of the iCloud API it's hard to be precise, but one can guess at some of its key features. For example it seems likely that an app developer can read or write a document at anytime - a considerable convenience over talking to a web service that may, or may not, be accessible. However a model that provides such a convenience must, necessarily, introduce some additional conceptual wrinkle elsewhere, for example some form of asynchronous updates. To help with some of these issues, the iCloud framework seems to make heavy use of the concept of versions. According to &lt;a href="http://5by5.tv/talkshow/47"&gt;John Gruber&lt;/a&gt;, versions also lie at the heart of the solution of another tricky technical problem; that of handling conflicting updates. According to Gruber, iCloud will not advertise the notion of conflicts, rather it will determine it's version of 'truth' in the cloud and push it to all devices. Although managing conflicts may be less common in day-to-day, single user environments they do happen and surely some apps (at least) will be able to access conflicting versions in the cloud and allow a user to interactively manage the merging.&lt;br /&gt;
&lt;br /&gt;
There are alternative approaches to handling conflicts - for example you can do away with the concept of versions altogether at the expense of requiring online access whenever you wish to access a document. That approach - of having a single version of the document held in the cloud, accessed on demand and being updated at the level of every key-stroke - is already available in Google Docs. The truly dynamic nature of this approach is best demonstrated when a document is being shared and edited by multiple authors simultaneously - a feature that (based on what isn't said) isn't addressed by iCloud at all.  But, just as I am sure iCloud will address shared access in time, Google is in the process of adding off-line access to Google Docs. It will be interesting to see how Google address conflicting updates.&lt;br /&gt;
&lt;br /&gt;
It has been repeatedly stated that iCloud is more than just storage in the cloud; for example it involves computing deltas, pushing updates and client side version handling. Intriguingly iCloud has identified a generic set of operations that can be used across a wide range of apps. As such iCloud represents an abstraction of synchronised, cloud based app storage. It is an abstraction that presents a simple API to client based app developers on the one side and hides a complex combination of cloud based services and OS components on the other. It significantly narrows the range of technologies that an app developer needs to work with. Even the idea of having apps resolve conflicts has its merits; after all an app is particularly well-placed to present domain specific content.&lt;br /&gt;
&lt;br /&gt;
if iCloud provides a useful abstraction, then I wonder how long it will be before somebody else offers an alternative, more open, implementation? Maybe it wouldn't have all of the advantages of iCloud - it wouldn't be baked into the OS and I don't imagine anybody would be offering it for free - but it could offer simplified app development while not being restricted to purely Apple products. In fact one could even envisage an HTML5 based SDK making it available to web developers. Of course Apple will have already thought of that...&lt;br /&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-3190548647815121047?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/3190548647815121047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=3190548647815121047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/3190548647815121047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/3190548647815121047'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2011/09/speculations-about-developing-with.html' title='Speculations about developing with iCloud'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-2473410901830911883</id><published>2010-09-21T20:04:00.002Z</published><updated>2010-09-21T20:09:58.004Z</updated><title type='text'>Social DNA</title><content type='html'>&lt;b&gt;There has been a lot of &lt;a href="http://gigaom.com/2010/08/04/slide-vic-gundotra-the-un-social-reality-of-google/"&gt;discussion&lt;/a&gt; recently about whether Google has, in their DNA, what it takes to 'get' social.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Well I think I 'get' social but I'm not sure how much my life is improved by getting the news 30 mins ahead of everybody else and I'm pretty certain that I don't need&amp;nbsp;to actually see people go through the arduous process of constructing a reply in real-time. So I'm well disposed to the idea of a '&lt;i&gt;social layer&lt;/i&gt;' that improves the processes I'm already familiar with - although a better analogy might be a '&lt;i&gt;social render&lt;/i&gt;' that can be used to fill in the gaps and smooth over the rough transitions.&lt;br /&gt;
&lt;br /&gt;
A good test will be how Google contacts are handled.&lt;br /&gt;
&lt;br /&gt;
Google contacts is a tremendous asset. With an Android phone, all you need to do is enter your Google credentials and your email, calendar and contacts are there. I've got an iPhone and, with slightly more configuration, you can do the same thing. The thing is that Google contacts was a the right place at the right time. Originally my contacts were in Outlook and then, via some complex synchronisation story from Plaxo, they ended up in Google. I can't see a compelling reason to move them. Sure I can think of some 'nice-to-haves' but most of the alternatives have fundamental flaws.&lt;br /&gt;
&lt;br /&gt;
For example, could I use Facebook instead? On Facebook I don't have to worry about changes to my friends' contact details - I see the updates pretty much as soon as my friends make them. Very nice to have. But, at the moment Facebook, doesn't handle all those contacts who don't have a digital presence, and there are - and will remain - plenty of those.&lt;br /&gt;
&lt;br /&gt;
On the other hand it would be nice if Google could, for those of us that have defined a profile (even if it was only to test out Buzz) provide some sort of live link to those of our contacts that have also defined a profile (and set suitable sharing options etc etc). Technically it wouldn't appear to be that hard, afterall it's a basic construct of something like Facebook. Clearly there must be hidden complexity because it wasn't built in at the start that relates to the number and range of services that Google offers. For example it was only recently that your profile could be properly tied to Picasa web albums.&lt;br /&gt;
&lt;br /&gt;
Of course Google might have no intention of beefing up 'contacts'. Maybe they will build on top of the Buzz infrastructure and provide a new way to add contact info into the list of people you are following.&amp;nbsp;But that would seem to increase the 'conceptual count' yet further.&lt;br /&gt;
&lt;br /&gt;
Personally I'm looking/hoping for my contacts to become more intelligent and gain a social element and for that enhancement to carry across to my phone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;On an unrelated note,&amp;nbsp;how does 'social DNA' compare with 'the selfish gene'?&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-2473410901830911883?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/2473410901830911883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=2473410901830911883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/2473410901830911883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/2473410901830911883'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2010/09/social-dna.html' title='Social DNA'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-3501175988206266119</id><published>2010-09-18T19:24:00.001Z</published><updated>2010-09-18T19:28:05.893Z</updated><title type='text'>Why do I do it?</title><content type='html'>&lt;b&gt;I don't blog much and I'm curious as to what, on those odd occasions, finally drives me over the edge.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
It seems to be a desire to clear my head of some on-going irritation or a minor thought that just won't go away and needs to be expressed. Writing it down seems to be a way of exorcising it - just like writing a note to myself and leaving it on the kitchen table helps me sleep if I'm travelling the next day.&lt;br /&gt;
&lt;br /&gt;
Of course &lt;b&gt;blogging&lt;/b&gt; about it brings in the dubious advantage of turning the whole process into a public display. There is a possible upside - the right to wear an "I told you so" T-shirt when the rest of the world realises that you really did identify the crux of the problem and offered a simple "Why don't they just...." solution. The downsides seem rather more numerous and more likely; people are privy to the odd things that bother you and, worse still, you're not even right about them.&lt;br /&gt;
&lt;br /&gt;
I write this because I feel a deep resevoir of irritations developing that will need release in the near future.&lt;br /&gt;
&lt;br /&gt;
But, in an attempt at some level of objectivity, I need to look back at my&lt;a href="http://adriancuthbert.blogspot.com/2010/01/can-they-do-it-again.html"&gt; January post&lt;/a&gt;. It was written just before the launch of the iPad.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
T-shirt score to date : zero out of one.&amp;nbsp;&lt;/div&gt;
&lt;br /&gt;
The iPad did not have a revolutionary approach to content input - more importantly it didn't need one. It was already significant for being a better way to consume [various types of] content. Why wasn't that enough for me?&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-3501175988206266119?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/3501175988206266119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=3501175988206266119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/3501175988206266119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/3501175988206266119'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2010/09/why-do-i-do-it.html' title='Why do I do it?'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-4977884792910458495</id><published>2010-01-18T21:01:00.002Z</published><updated>2010-01-19T00:23:44.560Z</updated><title type='text'>Can they do it again?</title><content type='html'>What does it take to start blogging again? A new year? A new decade? Or the opportunity to pointlessly speculate about an as yet unannounced product? &lt;div&gt;
&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;The question that keeps coming back to me is "&lt;i&gt;Can they do it again?&lt;/i&gt;"&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;Not "&lt;i&gt;Can they break into a new, billion dollar market?&lt;/i&gt;", not "&lt;i&gt;Can they redefine the way we distribute and buy apps?&lt;/i&gt;" but "&lt;i&gt;Can they reinvent the way we interact with mobile devices?&lt;/i&gt;"&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;I remember the time before the iPhone was launched. We had an HTC running Windows Mobile in the office with a touch screen and a dinky little stylus - you could use your finger nails if you angled them just right. OK, it was a bit fiddly but it took most of the fear away when entering a long URL into the browser's address bar. But we knew there were better things coming. We had all seen those iPhone mockups - the one's with a virtual, circular scroll-wheel floating over the interface. We couldn't wait.&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;And then there it was ...  and it had a whole new vocabulary of gestures; slides and flicks and pinches and you could type with your actual fingers and there were '.com' and '@' buttons when you needed them and the interface was simple and hidden and only came to life when you actually &lt;i&gt;touched&lt;/i&gt; it. And before the hour was out you knew that was how it was supposed to be and when you actually got one in your hands you just smiled at how much fun it was. And the best part was nobody knew a thing.&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;Can they possibly do that again? &lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;Maybe they don't have to. A tablet with the touch interface of an iPhone would be a fun way of consuming digital content - but $500-$1000 worth of fun? Surely it's got to be as good as, if not better, than the iPhone when it comes to creating content, when it comes to &lt;i&gt;text entry&lt;/i&gt;. And the point is that if it does just what the iPhone does, it won't be better - it will be worse &lt;i&gt; - &lt;/i&gt;because you can use both thumbs on an iPhone or you can use it one-handed and I bet you won't be able to do that with a 10" tablet. &lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;OK, so this time they don't have to invent, and keep under wraps, a whole new way of interacting with a mobile device; all they need to do is invent a new  way to allow me to write next years blog entry on a tablet. Except that inventing things is hard and rare. &lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;
&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-4977884792910458495?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/4977884792910458495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=4977884792910458495' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/4977884792910458495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/4977884792910458495'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2010/01/can-they-do-it-again.html' title='Can they do it again?'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-113702558958805379</id><published>2006-01-12T00:10:00.000Z</published><updated>2006-01-12T00:37:28.410Z</updated><title type='text'>Advertising on Google Local</title><content type='html'>&lt;p&gt;&lt;a href="http://www.davidgalbraith.org/archives/000995.html"&gt;David Galbraith&lt;/a&gt; has noticed Google testing out what he calls 'adballoons' on Google Local.&lt;/p&gt;
&lt;p&gt;Searching for &lt;a href="http://www.google.com/local?hl=en&amp;lr=&amp;q=hotels&amp;near=New%20York,%20NY"&gt;hotels in New York&lt;/a&gt; brings up a pair of &lt;span style="background:#def;"&gt;blue sponsored links&lt;/span&gt; for two specific hotels ('W Court Hotel' and 'Courtyard Manhattan Hotel'). Clicking on these brings up the balloon on the map.&lt;/p&gt;
&lt;a href="http://www.flickr.com/photos/acuth/85418187/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/9/85418187_40c9a525bf_m.jpg" width="240" height="173" alt="nyhotels" /&gt;&lt;/a&gt;
&lt;p&gt;By comparison, searching for &lt;a href="http://www.google.com/local?hl=en&amp;lr=&amp;q=hotels&amp;near=San%20Francisco,%20CA"&gt;hotels in San Francisco&lt;/a&gt; brings up a generic sponsored link for 'San Francisco Hotels' which takes users to a new page.&lt;/p&gt;
&lt;a href="http://www.flickr.com/photos/acuth/85418188/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/43/85418188_d25dc24a65_m.jpg" width="240" height="173" alt="sfhotels" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-113702558958805379?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/113702558958805379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=113702558958805379' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/113702558958805379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/113702558958805379'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2006/01/advertising-on-google-local.html' title='Advertising on Google Local'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-113225155984159354</id><published>2005-11-17T18:12:00.000Z</published><updated>2006-01-11T22:28:51.813Z</updated><title type='text'>Google Base doesn't like 'geotagged'</title><content type='html'>&lt;p&gt;I've just tried creating an item in Google Base of a new item type &lt;span style="background-color:#ffd"&gt;&lt;code&gt;Spatially Referenced Photo&lt;/code&gt;&lt;/span&gt; with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;two details called &lt;span style="background-color:#ffd"&gt;&lt;code&gt;geo lon&lt;/code&gt;&lt;/span&gt; and &lt;span style="background-color:#ffd"&gt;&lt;code&gt;geo lat&lt;/code&gt;&lt;/span&gt; (&lt;i&gt;I tried including the colons but it strips them out&lt;/i&gt;) with values of type &lt;span style="background-color:#ffd"&gt;&lt;code&gt;Number&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;a label of &lt;span style="background-color:#ffd"&gt;&lt;code&gt;geotagged&lt;/code&gt;&lt;/span&gt; - &lt;i&gt;unfortunately the label was rejected as 'misspelled'&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I've asked for an exemption so here's hoping...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; as of Nov 21, 2005 6:42 PM Google Base does like 'geotagged', check out a Google Base item pointing to a geotagged Flickr picture of the &lt;a  href="http://base.google.com/base/items?oid=5871147248685824738"&gt;Mill Race&lt;/a&gt; in Cambridge.&lt;/p&gt;
&lt;div style="background-color:#dff"&gt;Tags: &lt;a href="http://www.technorati.com/tag/geotagging" rel="tag"&gt;geotagging&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-113225155984159354?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/113225155984159354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=113225155984159354' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/113225155984159354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/113225155984159354'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/11/google-base-doesnt-like-geotagged.html' title='Google Base does&lt;span style=&quot;color:#bbb&quot;&gt;&lt;strike&gt;n&apos;t&lt;/strike&gt;&lt;/span&gt; like &apos;geotagged&apos;'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-113045589668222924</id><published>2005-10-27T23:24:00.000Z</published><updated>2005-10-27T23:31:58.463Z</updated><title type='text'>Third parties indexing Google Base</title><content type='html'>&lt;p&gt;&lt;i&gt;So, before hard evidence comes to light, let me speculate...&lt;/i&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;I can submit structured data to Google Base for them to do with as they please. No doubt there will be a facetted-browser for users to search through that data and maybe even an API. &lt;b&gt;But will third-party search engines be able to index any of it?&lt;/b&gt; Web sites can be crawled/scraped, blog publishing provides a pinging mechanism. Will Google Base provide a mechanism that doesn't fall foul of Google's terms and conditions of use?&lt;/p&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-113045589668222924?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/113045589668222924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=113045589668222924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/113045589668222924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/113045589668222924'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/10/third-parties-indexing-google-base.html' title='Third parties indexing Google Base'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-113041676713549496</id><published>2005-10-27T12:33:00.000Z</published><updated>2005-10-27T23:34:18.900Z</updated><title type='text'>Splogs</title><content type='html'>&lt;p&gt;Well Google do seem to be trying to do things to limit the problem of spam blogs hosted on blog*spot. They've introduced a 'type in the letters' test when posting to a blog that looks suspicious. Of course if you're posting via the Blogger API then its just rejected.&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;i&gt;More recently I note that the Atom feed for a blog*spot hosted blog has a &lt;code&gt;&amp;lt;summary&amp;gt;&lt;/code&gt; tag with all the markup removed. By contrast a blog that is FTPed to an alternate host has a &lt;code&gt;&amp;lt;content&amp;gt;&lt;/code&gt; tag with markup present.&lt;/i&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color:red;font-weight:bold"&gt;UPDATE:&lt;/span&gt; seems to be back to normal - I know it just looks like I might have flipped the 'summary' switch but...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-113041676713549496?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/113041676713549496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=113041676713549496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/113041676713549496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/113041676713549496'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/10/splogs.html' title='Splogs'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-112955887749434167</id><published>2005-10-17T14:06:00.000Z</published><updated>2005-10-17T14:23:47.876Z</updated><title type='text'>Feeds of Feeds</title><content type='html'>&lt;p&gt;There doesn't seem to be many rules/conventions governing what you get when you request a feed representing the on-going results from a search. For example at the botton of a Google Blog Search page you can get an RSS or Atom feed with 10 or 100 items. With Technorati you can add a search to your Watchlists and then get an RSS feed. In Bloglines you can subscribe to a search but you never see the feed itself - or at least if you try to edit the subscription you don't.&lt;/p&gt;

&lt;p&gt;However I am more interested in the feed itself. They all work fine if all you want to do is subscribe to them in a news reader, but what if you want to process the results further? Such feeds supply the necessary &lt;code&gt;&amp;lt;link rel="alternate" type="type="text/html" ...&lt;/code&gt; but couldn't they also supply the associated third-party feed itself?&lt;/p&gt;

&lt;p&gt;Consider the simple example of looking for 'geotagged' blog entries: its easy enough to get a set of references to blog entries which match the search engines idea of 'geotagged'. But if you want to go further and retrieve the associated location (if any) then its easier to deal with the blog's feed than it is its HTML representation.&lt;/p&gt;

&lt;p&gt;Could this be handled by including some additional &lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt; with either a suitable &lt;code&gt;rel&lt;/code&gt; attribute or infer it from the &lt;code&gt;type&lt;/code&gt; attribute?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-112955887749434167?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/112955887749434167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=112955887749434167' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/112955887749434167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/112955887749434167'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/10/feeds-of-feeds.html' title='Feeds of Feeds'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-112751398825208051</id><published>2005-09-23T22:19:00.000Z</published><updated>2006-05-30T15:47:24.266Z</updated><title type='text'>Villandry</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/acuth/44614824/" title="photo sharing"&gt;&lt;img src="http://static.flickr.com/31/44614824_6e30e8f17d_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/acuth/44614824/"&gt;CNV00014-1&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/acuth/"&gt;acuth&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;So Flickr knows how to post to Blogger!&lt;br/&gt;geo: &lt;span class="geo"&gt;(&lt;span class="latitude"&gt;47.3399&lt;/span&gt;,&lt;span class="longitude"&gt;0.5116&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;
tags: &lt;a href="http://www.wikipedia.com/wiki/geotagged" rel="tag"&gt;geotagged&lt;/a&gt;

&lt;div style="width:240px;padding-left:5px;padding-right:5px;color:#444;background-color: #ddd;border-top:solid 2px #eee;border-bottom:solid 2px #bbb;border-left:solid 2px #eee;border-right:solid 2px #bbb;"&gt;
&lt;b&gt;geo:&lt;/b&gt;&lt;span class="geo"&gt;
(&lt;span class="latitude"&gt;47.3397533&lt;/span&gt;,
&lt;span class="longitude"&gt;0.5108643&lt;/span&gt;)
&lt;/span&gt;
&lt;div&gt;Check this out on 
&lt;a style="text-decoration:none" href="http://www.mylocalguru.com/map?provider=google&amp;amp;z=13&amp;amp;ll=47.339753,0.510864"&gt;&lt;span style="font-family:'Trebuchet MS','Lucida Grande',Verdana,Arial,Sans-Serif;font-weight:bold;color:#f80;"&gt;mylocalguru&lt;/span&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-112751398825208051?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/112751398825208051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=112751398825208051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/112751398825208051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/112751398825208051'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/09/villandry.html' title='Villandry'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-111797339728021554</id><published>2005-06-05T12:07:00.000Z</published><updated>2005-06-05T14:01:24.706Z</updated><title type='text'>hReview and hContainer</title><content type='html'>&lt;p&gt;Looking over my previous &lt;a href="http://adriancuthbert.blogspot.com/2005/05/review-of-hreview.html"&gt;post&lt;/a&gt; on hReview, I have to confess that it doesn't look as supportive as I had intended. So here - with my apologies - is a mark two...&lt;/p&gt;

&lt;p&gt;hReview defines a microformat that can be used in both traditional web pages and blog posts. It can do this because it is essentially self-contained and makes no assumptions about how the content is published. This post considers the question of whether microformats, in general, should take advantage of different publishing techniques and, if so, how.&lt;/p&gt;

&lt;p&gt;I start with the observation that a number of the elements of hReview would appear to mimic elements familiar to typical a blog publishing environment. For example comparing &lt;a href="http://developers.technorati.com/wiki/hReview"&gt;hReview&lt;/a&gt; with &lt;a href="http://www.ietf.org/internet-drafts/draft-ietf-atompub-format-08.txt"&gt;Atom (0.8)&lt;/a&gt;:&lt;/p&gt;

&lt;table width="100%"&gt;
&lt;tr&gt;&lt;td&gt;&lt;b&gt;hReview&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Atom&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-color:#eee;"&gt;&lt;td&gt;summary&lt;/td&gt;&lt;td style="color:#800;"&gt;title&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="color:#800;"&gt;reviewer&lt;/td&gt;&lt;td&gt;&lt;span style="color:#800;"&gt;author&lt;/span&gt;&lt;br /&gt;contributor&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-color:#eee;"&gt;&lt;td style="color:#800;"&gt;dtreviewed&lt;/td&gt;&lt;td&gt;published&lt;br /&gt;&lt;span style="color:#800;"&gt;updated&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;permalink&lt;/td&gt;&lt;td style="color:#800;"&gt;id&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;br /&gt;

&lt;p&gt;where required fields are shown as &lt;span style="color:#800;"&gt;field-name&lt;/span&gt;.&lt;/p&gt;
  
&lt;p&gt;The question arises about what should happen if an hReview is published as [part of] a blog post? For example what happens if the summary and permalink fields are not present; could or should some review indexer use the blog equivalents? Obviously the answer is no if a blog post contains multiple hReviews. But, for the moment, lets consider what I would consider to be the more common situation when there is a single hReview in a blog post.&lt;/p&gt;

&lt;p&gt;I would suggest modifying the rules of how a review indexer should obtain metadata about a review; some metadata comes from markup in the review itself and some comes from its context. In the context of the blog post, the extent of the review is merely the extent of the post. Thus there is no need for an enclosing element with &lt;code&gt;class="hreview"&lt;/code&gt;. It would be sufficient to mark the entire blog post with a suitable tag, for example:&lt;/p&gt;

&lt;div style="background-color:#fed;border-style:solid;border-width:1px;"&gt;&lt;pre&gt;&amp;lt;a href="http://www.technorati/com/tag/hreview_instance"
  rel="tag"&amp;gt;hreview_instance&amp;lt;/a&amp;gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;p&gt;For an hReview published as a blog post the only &lt;i&gt;required&lt;/i&gt; elements would be the hreview_instance &lt;b&gt;tag&lt;/b&gt; and the &lt;b&gt;item info&lt;/b&gt; field. For an hReview published as a standard web page, the requirements could be the same provided there is a way of establishing the context, most obviously defining the extent of review. Rather than use an hReview specific &lt;code&gt;class="hreview"&lt;/code&gt; element, the review extent could be defined by a generic container that can carry the same information as a blog post context. I would propose an hContainer which could be reused in this role across multiple microformats that must define an extent.&lt;/p&gt;

&lt;p&gt;Thus the review:&lt;/p&gt;

&lt;div style="background-color:#fed;border-style:solid;border-width:1px;"&gt;&lt;pre&gt;&amp;lt;div&gt;
 &amp;lt;span&gt;5 stars out of 5 stars&amp;lt;/span&gt;
 &amp;lt;h4&gt;Crepes on Cole is awesome&amp;lt;/h4&gt;
 &amp;lt;span&gt;Reviewer: &amp;lt;span&gt;Tantek&amp;lt;/span&gt; - 
 April 18, 2005&amp;lt;/span&gt;
 &amp;lt;blockquote&gt;&amp;lt;p&gt;
  Crepes on Cole is one of the best little 
  creperies in San Francisco. Excellent food 
  and service....
 &amp;lt;/p&gt;&amp;lt;/blockquote&gt;
 &amp;lt;p&gt;Visit date: &amp;lt;span&gt;April 2005&amp;lt;/span&gt;&amp;lt;/p&gt;
 &amp;lt;p&gt;Food eaten: &amp;lt;span&gt;Florentine crepe&amp;lt;/span&gt;&amp;lt;/p&gt;
&amp;lt;/div&gt; 
&lt;/pre&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;p&gt;becomes:&lt;/p&gt;

&lt;div style="background-color:#fed;border-style:solid;border-width:1px;"&gt;&lt;pre&gt;&amp;lt;div class="&lt;b&gt;hcontainer&lt;/b&gt;"&gt;
 &amp;lt;span&gt;
  &amp;lt;span class="rating&gt;5 stars out of 5 stars&amp;lt;/span&gt;
 &amp;lt;/span&gt;
 &amp;lt;h4 class="&lt;b&gt;title&lt;/b&gt;"&gt;
  &amp;lt;span class="item fn"&gt;Crepes on Cole is awesome&amp;lt;/span&gt;
 &amp;lt;/h4&gt;
 &amp;lt;span&gt;Reviewer: 
  &amp;lt;span class="&lt;b&gt;author&lt;/b&gt; fn"&gt;Tantek&amp;lt;/span&gt; - 
  &amp;lt;abbr class="&lt;b&gt;updated&lt;/b&gt;" title="20050418T2300-0700"&gt;
   April 18, 2005
  &amp;lt;/abbr&gt;
 &amp;lt;/span&gt;
 &amp;lt;blockquote class="description"&gt;&amp;lt;p&gt;
  Crepes on Cole is one of the best little 
  creperies in San Francisco. Excellent food 
  and service....
 &amp;lt;/p&gt;&amp;lt;/blockquote&gt;
 &amp;lt;p&gt;Visit date: &amp;lt;span&gt;April 2005&amp;lt;/span&gt;&amp;lt;/p&gt;
 &amp;lt;p&gt;Food eaten: &amp;lt;span&gt;Florentine crepe&amp;lt;/span&gt;&amp;lt;/p&gt;
 &amp;lt;span style="visibility:hidden;"&gt;
  &amp;lt;a href="http://www.technorati/com/tag/hreview_instance" 
   rel="tag"&gt;&lt;b&gt;hreview_instance&lt;/b&gt;&amp;lt;/a&gt;
 &amp;lt;/span&gt;
&amp;lt;/div&gt; 
&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;p&gt;This is essentially the same as the current hReview proposal, except that some of the field names have been changed to make them more generic and the &lt;code&gt;hreview_instance&lt;/code&gt; tag has been added.&lt;/p&gt;



&lt;div style="background-color:#dff"&gt;Tags: &lt;a href="http://www.technorati.com/tag/hreview"&gt;hreview&lt;/a&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-111797339728021554?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/111797339728021554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=111797339728021554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111797339728021554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111797339728021554'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/06/hreview-and-hcontainer.html' title='hReview and hContainer'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-111797025761417717</id><published>2005-06-05T10:55:00.000Z</published><updated>2005-06-05T11:55:31.906Z</updated><title type='text'>Search and Bloglines</title><content type='html'>&lt;p&gt;I'm glad to see that Bloglines intends to do something about &lt;a href="http://www.businessweek.com/the_thread/blogspotting/archives/2005/05/bloglines_ceo_p.html?campaign_id=rss_blog_blogspotting"&gt;search this summer&lt;/a&gt;. Afterall web-based news aggregators have such potential; they have a far more intimate understanding of what a person is interested in than any web-based search engine and they have access to a far more complete set of data than any desktop-based news aggregator.&lt;/p&gt;

&lt;p&gt;Clearly some of it is going to relate to improving the results that come back from the 'search' box. Here's hoping that includes a personalised component. By their very nature news aggregators make use of a user profile; specifically a personalised list of subscribed feeds. Furthermore a feed seems to be a new and useful unit to work in. There are things I can say about my relationship to a feed that I cannot say of individual posts.&lt;/p&gt; 

&lt;p&gt;For example I might wish to say 'ignore any unread posts more than two days old' for some feeds. Obviously such an ability would not only relate to search, it would have a direct impact on the everyday user experience of a news aggregator. But it is precisely that streamlined user experience that made news aggregation so much better than its predecessor. As news aggregation becomes ever more successful, that streamlined user experience is itself beginning to be a bit more of a chore. What is needed is a way of pruning out some of the posts without throwing out that delightful 'a-ha' discovery moment.&lt;/p&gt;

&lt;p&gt;Consider another example; I think I could easily categorize my subscribed feeds into those representing 'though-leaders', those that should be 'watched' and 'others'. The idea is that 'watched' feeds only occasionally contain something that interests me - I don't want to be informed about every new post. The criteria for bringing a post to my attention is that it has been referenced by two or more posts from 'though-leaders'.&lt;/p&gt;

&lt;p&gt;Getting the user to provide additional information &lt;i&gt;explicitly&lt;/i&gt; to a news aggregator (more than just a set of subscribed feeds) may seem old-fashioned compared to those efforts that seek to glean more information about the user from their behaviour. However it appears to me to build upon one of the things that set news aggregators apart in the first place. Furthermore the concept of a 'feed' provides the necessary high-level construct about which to collect such information.&lt;/p&gt;

&lt;div style="background-color:#dff"&gt;Tags: &lt;a href="http://www.technorati.com/tag/bloglines" rel="tag"&gt;bloglines&lt;/a&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-111797025761417717?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/111797025761417717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=111797025761417717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111797025761417717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111797025761417717'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/06/search-and-bloglines.html' title='Search and Bloglines'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-111765709465381639</id><published>2005-06-01T20:17:00.000Z</published><updated>2005-06-01T22:12:03.080Z</updated><title type='text'>What Unicorn? - an hReview</title><content type='html'>&lt;div class="hreview"&gt;
  &lt;h2 class="summary"&gt;
    What Unicorn? - an hReview
  &lt;/h2&gt;
  &lt;abbr class="dtreviewed" title="20050601T2121"&gt;
    Jun 1, 2005
  &lt;/abbr&gt;
  by &lt;span class="reviewer fn"&gt;adrian cuthbert&lt;/span&gt;
&lt;span class="type" style="display:none"&gt;product&lt;/span&gt;
  &lt;a href="http://www.imdb.com/title/tt0083658/" class="item url fn"&gt;
  Blade Runner
    &lt;/a&gt;
  &lt;blockquote class="description"&gt;&lt;p&gt;
  &lt;abbr class="rating" title="5"&gt;&amp;#9733;&amp;#9733;&amp;#9733;&amp;#9733;&amp;#9733;&lt;/abbr&gt;
I managed to see the director's cut of this film with an individual who asked at the end &lt;i&gt;'What Unicorn?'&lt;/i&gt; - you know who you are!&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;

&lt;div style="background-color:#fed"&gt;&lt;code&gt;
&amp;lt;div class="hreview"&gt;
  &amp;lt;h2 class="summary"&gt;
    What Unicorn? - an hReview
  &amp;lt;/h2&gt;
  &amp;lt;abbr class="dtreviewed" title="20050601T2121"&gt;
    Jun 1, 2005
  &amp;lt;/abbr&gt;
  by &amp;lt;span class="reviewer fn"&gt;adrian cuthbert&amp;lt;/span&gt;
&amp;lt;span class="type" style="display:none"&gt;product&amp;lt;/span&gt;
  &amp;lt;a href="http://www.imdb.com/title/tt0083658/" class="item url fn"&gt;
  Blade Runner
    &amp;lt;/a&gt;
  &amp;lt;blockquote class="description"&gt;&amp;lt;p&gt;
  &amp;lt;abbr class="rating" title="5"&gt;&amp;amp;#9733;&amp;amp;#9733;&amp;amp;#9733;&amp;amp;#9733;&amp;amp;#9733;&amp;lt;/abbr&gt;
I managed to see the director's cut of this film with an individual who asked at the end &amp;lt;i&gt;'What Unicorn?'&amp;lt;/i&gt; - you know who you are!&amp;lt;/p&gt;&amp;lt;/blockquote&gt;
&amp;lt;/div&gt;
&lt;/code&gt;
&lt;/div&gt;

&lt;p&gt;Generated using Ryan King's &lt;a href="http://theryanking.com/microformats/hreview-creator.html"&gt;hReview Creator&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-111765709465381639?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/111765709465381639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=111765709465381639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111765709465381639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111765709465381639'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/06/what-unicorn-hreview.html' title='What Unicorn? - an hReview'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-111540037047876561</id><published>2005-06-01T18:41:00.000Z</published><updated>2005-06-01T17:41:54.810Z</updated><title type='text'>What Unicorn?</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;   &lt;a href="http://www.imdb.com/title/tt0083658/" rev="review"&gt;Blade Runner&lt;/a&gt; is one of my favourite films.           &lt;br/&gt;  Tags:          &lt;a href="http://www.technorati.com/tag/this_is_an_hreview_2" rel="tag"&gt;this_is_an_hreview_2&lt;/a&gt;  &lt;/p&gt;  &lt;div style="background-color: rgb(255, 255, 221);"&gt;   &lt;code&gt;    &amp;lt;p&amp;gt;     &amp;lt;a href="http://www.imdb.com/title/tt0083658/" rev="review"&amp;gt;Blade  Runner&amp;lt;/a&amp;gt; is one of my favourite films.          &amp;lt;br/&amp;gt; Tags:           &amp;lt;a href="http://www.technorati.com/tag/this_is_an_hreview_2" rel="tag"&amp;gt;this_is_an_hreview_2&amp;lt;/a&amp;gt;    &amp;lt;/p&amp;gt;   &lt;/code&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-111540037047876561?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/111540037047876561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=111540037047876561' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111540037047876561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111540037047876561'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/06/what-unicorn.html' title='What Unicorn?'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-111539850912766822</id><published>2005-05-06T16:49:00.000Z</published><updated>2005-05-15T19:12:40.483Z</updated><title type='text'>A Review of hReview</title><content type='html'>&lt;p&gt;&lt;a href="http://developers.technorati.com/wiki/MicroFormats"&gt;microformats&lt;/a&gt; may well represent a path from where we are today to the [lowercase] semantic web. If so, one of the first waypoints along such a path could be the emergence of aggregators capable of taking advantage of suitably marked-up content.&lt;/p&gt;

&lt;p&gt;Applying a 'microformat' approach to tagging, Technorati introduced the 
&lt;a href="http://developers.technorati.com/wiki/RelTag"&gt;&lt;code&gt;rel="tag"&lt;/code&gt;&lt;/a&gt; approach to marking-up tags. Technorati also supply the corresponding aggregation service, e.g. see posts tagged with &lt;a href="http://www.technorati.com/tag/microformat"&gt;microformat&lt;/a&gt;. Given this minimalist approach to tagging, the &lt;a href="http://developers.technorati.com/wiki/hReview"&gt;hReview&lt;/a&gt; specification comes as something of a surprise. It seems to represent a format developed independently of the environment in which it is most likely to be used.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;rel="tag"&lt;/code&gt; approach makes a major, simplifying assumption. This is that the tag refers &lt;span style="background-color:#fed;"&gt;'to a major portion of the current page (i.e. a blog post)'&lt;/span&gt;. I am assuming that it could apply equally to a blog entry in an RSS/Atom feed. Thus an aggregator can associate a tag with two pieces of metadata obtained from its context, namely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;title:&lt;/b&gt; the title of the web page/blog entry&lt;/li&gt;
&lt;li&gt;&lt;b&gt;permalink:&lt;/b&gt; the URL for a web page or the 'alternate' link for a blog entry&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach can be extended in a minimal way to support reviews, all that is required is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;review:&lt;/b&gt; a mechanism to indicate this web page/blog entry is indeed a review.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;review-target:&lt;/b&gt; a mechanism to identify what is being reviewed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first requirement could be handled with a tag. Obviously not the &lt;a href="http://www.technorati.com/tag/hreview" rel="tag"&gt;hreview&lt;/a&gt; tag itself, but maybe a &lt;a href="http://www.technorati.com/tag/this_is_an_hreview_2" rel="tag"&gt;this_is_an_hreview_2&lt;/a&gt;(&lt;a href="#footnote"&gt;*&lt;/a&gt;) tag. &lt;i&gt;I've added the '_2' because clearly this doesn't represent an hReview in any formal sense.&lt;/i&gt; With such an approach the underlying assumption is that the review is the enclosing web page/blog entry. However the hReview specification wants to identify the limits of a review far more explicitly by having an enclosing element with a &lt;code&gt;class="hreview"&lt;/code&gt; attribute. Although this permits multiple reviews per web page/blog entry, it seems to raise the bar unnecessarily.&lt;/p&gt;

&lt;p&gt;The second requirement is more complex. The hReview specification says that a &lt;span style="background-color:#fed;"&gt;"universal object identifier"&lt;/span&gt; is out of scope. I can understand the reluctance to get into the quagmire of trying to define a universal identification scheme, but it does seem essential to the entire process. Furthermore a 'good-enough' solution to get things started would appear to readily at hand: by adding &lt;code&gt;rev="review"&lt;/code&gt; to a hyperlink, a web page/blog entry indicates that the destination of that hyperlink is the subject of the review. The linked page SHOULD exist and it is the linked page that identifies the reviewed item. The link label provides an optional human readable version, e.g.&lt;/p&gt;

&lt;pre&gt;
&amp;lt;a href="&lt;a href="http://www.imdb.com/title/tt0083658/"&gt;http://www.imdb.com/title/tt0083658/&lt;/a&gt;"
   rev="review"&amp;gt;Blade Runner&amp;lt;/a&amp;gt;

&amp;lt;a href="&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0345404475"&gt;http://www.amazon.com/exec/obidos/ASIN/0345404475/&lt;/a&gt;"
   rev="review"&amp;gt;Do Androids Dream of Electric Sheep?&amp;lt;/a&amp;gt;

&amp;lt;a href="&lt;a rev="review" href="http://developers.technorati.com/wiki/hReview"&gt;http://developers.technorati.com/wiki/hReview&lt;/a&gt;"
   rev="review"&amp;gt;hReview&amp;lt;/a&amp;gt;(&lt;a href="#footnote"&gt;*&lt;/a&gt;)
&lt;/pre&gt;


&lt;p&gt;If one wanted to pursue the tagging parallel to its own English-contorting conclusion then you could use &lt;code&gt;rel="review-target"&lt;/code&gt; instead, thanks to &lt;a href="http://edward.oconnor.cx/"&gt;Edward O'Connor&lt;/a&gt; for putting me straight on this.&lt;/p&gt;

&lt;p&gt;Obviously reviews of the same item should link to the same page. Providing a general purpose solution to this problem is not trivial. However offering a set of conventions that cover a large percentage of cases is very much easier, especially if we are prepared in the short-term to single out and use indexes such as Amazon and IMDb. Looking forward, some of the 'value-add' of an aggregator would be their ability to identify 'related' review items.&lt;/p&gt;

&lt;p&gt;The hReview specification goes on to detail a good number of the components typical to a review, including a star rating scheme. All of this builds on other microformat work where possible. For example the reviewer is identified using an hCard. But it also seems to be reinventing some mechanisms. Permalinks are implemented by using a &lt;code&gt;rel="self bookmark"&lt;/code&gt; attribute on a hyperlink that  exists somewhere inside the &lt;code&gt;class="hreview"&lt;/code&gt; element that points back to itself. While this opens up publishing reviews in simple web pages, it seems overkill for blog entries where a permalink mechanism already exists.&lt;/p&gt;

&lt;p&gt;Obviously we all expect 'review' tools to be folded into blog authoring software once a consensus emerges. For example a separate field to input the name of a film/book/album that determines and validates a 'universal object identifier' before the review is published. See Alf Eaton's &lt;a href="http://alf.hubmed.org/rvw.htm"&gt;rvw!&lt;/a&gt; tool that posts reviews to del.icio.us for a taste of things to come. Nevertheless I can't help but think that I should be able to trivially publish a review today with my current blog authoring software if I'm prepared to add a &lt;i&gt;few&lt;/i&gt; angle-brackets here and there. By way of experiment I have generated an &lt;a href="http://adriancuthbert.blogspot.com/2005/05/what-unicorn.html"&gt;example&lt;/a&gt; of a minimal hReview according to the approach outlined above. I'm not sure I would be able to do the same thing with the proposed hReview specification except with considerably more effort.&lt;/p&gt;

&lt;br /&gt;
&lt;hr /&gt;

&lt;p&gt;&lt;i&gt;&lt;a id="footnote"&gt;(*)&lt;/a&gt; obviously this post contains components sufficient to represent a review.&lt;/i&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-111539850912766822?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/111539850912766822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=111539850912766822' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111539850912766822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111539850912766822'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/05/review-of-hreview.html' title='A Review of hReview'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-111393215611961899</id><published>2005-04-19T17:34:00.000Z</published><updated>2005-05-04T23:18:15.560Z</updated><title type='text'>SmartLink Test: Event</title><content type='html'>&lt;p&gt;&lt;i&gt;This is a test post in support of SmartLink of which more later...&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;I've encoded an event based on &lt;a href="http://developers.technorati.com/wiki/hCalendar"&gt;hCalendar&lt;/a&gt;, namely
&lt;span class="vcalendar"&gt; 
 &lt;span class="vevent"&gt;
  &lt;a class="url" href="http://www.web2con.com/"&gt;&lt;span class="summary"&gt;Web 2.0 Conference&lt;/span&gt;: &lt;abbr class="dtstart" title="20051005"&gt;October 5&lt;/abbr&gt;-&lt;abbr class="dtend" title="20051007"&gt;7&lt;/abbr&gt;, at the &lt;span class="location"&gt;Argent Hotel, San Francisco, CA&lt;/span&gt;&lt;/a&gt;
 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;An example of a page with more events encoded in hCalendar can be found &lt;a href="http://tantek.com/log/2005/04.html"&gt;here&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-111393215611961899?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/111393215611961899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=111393215611961899' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111393215611961899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111393215611961899'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/04/smartlink-test-event.html' title='SmartLink Test: Event'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-111393011438273353</id><published>2005-04-19T17:00:00.000Z</published><updated>2005-04-19T17:01:54.383Z</updated><title type='text'>SmartLink Test: UK Address</title><content type='html'>&lt;p&gt;&lt;i&gt;This is a test post in support of SmartLink of which more later...&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;Without giving away too much, here is my UK test address &lt;span class="smartlink" type="address"&gt;CB4 0WS&lt;/span&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-111393011438273353?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/111393011438273353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=111393011438273353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111393011438273353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111393011438273353'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/04/smartlink-test-uk-address.html' title='SmartLink Test: UK Address'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-111375702675801506</id><published>2005-04-17T16:46:00.000Z</published><updated>2005-05-07T09:41:47.513Z</updated><title type='text'>SmartLink</title><content type='html'>&lt;p&gt;In a previous &lt;a href="http://adriancuthbert.blogspot.com/2005/03/autotag-autolinksmarttags-done-right.html"&gt;post&lt;/a&gt; I tried to describe how I thought technologies like SmartTags and AutoLink ought to behave. With greasemonkey in Firefox I've been able to build a proof-of-concept demonstrator. For the moment I'm calling it Smart&lt;strike&gt;&lt;font color="red"&gt;Tag/Auto&lt;/font&gt;&lt;/strike&gt;Link.&lt;/p&gt;

&lt;p&gt;SmartLink is based upon the idea that content authors should mark-up content that can be 'smart-linked', using standard XHTML constructs. This has two advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;it effectively provides an 'opt-in' mechanism for content providers&lt;/li&gt;
&lt;li&gt;it doesn't require 'magic' to identify what can be smart-linked and thus provides a  much more extensible approach.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;of course there is one fairly major disadvantage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;there isn't any suitably marked-up content out there, with the exception of some test posts I've put together for the purpose.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Getting Started&lt;/h3&gt;

&lt;p&gt;If you want to know a bit more about SmartLink then click &lt;a href="http://www.myjavaserver.com/~adriancuthbert/SmartLinkIntro.jsp"&gt;here&lt;/a&gt;. Alternatively if you want to see how SmartLink behaves and you're using Firefox then you need to follow these steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you haven't already, install the excellent &lt;a href="http://greasemonkey.mozdev.org/"&gt;greasemonkey&lt;/a&gt; Firefox extension. I'm running 0.3b, you need a version with the GM_log and GM_xmlhttpRequest objects.&lt;/li&gt;
&lt;li&gt;Open up &lt;a href="http://www.myjavaserver.com/~adriancuthbert/SmartLink.user.js"&gt;this&lt;/a&gt; user script (in Firefox).&lt;/li&gt;
&lt;li&gt;From the "Tools" menu, select "Install User Script.." and confirm all of the various prompts&lt;/li&gt;
&lt;li&gt;Check out &lt;a href="http://adriancuthbert.blogspot.com/2005/04/smartlink-test-address.html"&gt;this&lt;/a&gt; test post. You should see an &lt;img src="http://www.myjavaserver.com/~adriancuthbert/sl.jpg" alt="SL" /&gt; icon at the bottom of the page with a link labelled &lt;span style="text-decoration:underline;color:#800;"&gt;&lt;i&gt;New!&lt;/i&gt; SmartLink&lt;/span&gt;. Selecting this link will bring up a page allowing you to select how you want to view 'address like' smart-links. To see a smart-link select any option other than 'ignore' and click on "Update".&lt;/li&gt;
&lt;li&gt;Now go back to the test post and wait a moment. There should now be two &lt;img src="http://www.myjavaserver.com/~adriancuthbert/sl.jpg" alt="SL" /&gt; icons on the page, one at the bottom with a link labelled &lt;span style="text-decoration:underline;color:#800;"&gt;configure SmartLink&lt;/span&gt; and one next to a newly visible smart-link. Click on the latter to see a map.&lt;/li&gt;
&lt;li&gt;Try it on additional test pages &lt;a href="http://adriancuthbert.blogspot.com/2005/04/smartlink-test-books-and-films.html"&gt;here&lt;/a&gt; (books + films), &lt;a href="http://adriancuthbert.blogspot.com/2005/04/smartlink-test-company-profile-1.html"&gt;here&lt;/a&gt; (address + stock), &lt;a href="http://adriancuthbert.blogspot.com/2005/04/smartlink-test-company-profile-2.html"&gt;here&lt;/a&gt; (address + stock again), &lt;a href="http://adriancuthbert.blogspot.com/2005/04/smartlink-test-uk-address.html"&gt;here&lt;/a&gt; (UK address) and &lt;span style="background-color:#ff0;"&gt;&lt;font color="#f00"&gt;&lt;i&gt;New!&lt;/i&gt; &lt;/font&gt;&lt;a href="http://adriancuthbert.blogspot.com/2005/04/smartlink-test-event.html"&gt;here&lt;/a&gt; (event - &lt;i&gt;using hCalendar&lt;/i&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note that preferences are stored in a 'SmartLinkPrefs' cookie with host http://www.myjavaserver.com/. [&lt;i&gt;Please be patient, MyJavaServer can be slow. I know, I know...it could have been written in a couple of lines of Python but not by me.&lt;/i&gt;] Greasemonkey's ability to call out of the usual Javascript sand-box makes it possible to centralise the preferences this way. In addition, having a server-side component means that it is easy to add new types of smart-link and new options for existing types.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-111375702675801506?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/111375702675801506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=111375702675801506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111375702675801506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111375702675801506'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/04/smartlink.html' title='SmartLink'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-111375634363057281</id><published>2005-04-17T16:44:00.000Z</published><updated>2005-04-17T16:45:43.630Z</updated><title type='text'>SmartLink Test: Company Profile 2</title><content type='html'>&lt;p&gt;&lt;i&gt;This is a test post in support of SmartLink of which more later...&lt;/i&gt;&lt;/p&gt;

&lt;h3&gt;Apple&lt;/h3&gt;

&lt;p&gt;I found this address on their web-site:&lt;/p&gt;

&lt;ul&gt;
1 Infinite Loop&lt;br /&gt;
Cupertino, CA &lt;span class="smartlink" type="address"&gt;95014&lt;/span&gt; 
&lt;/ul&gt;

&lt;p&gt;There are listed on the Nasdaq with a stock symbol of &lt;span class="smartlink" type="stock"&gt;AAPL&lt;/span&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-111375634363057281?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/111375634363057281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=111375634363057281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111375634363057281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111375634363057281'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/04/smartlink-test-company-profile-2.html' title='SmartLink Test: Company Profile 2'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-111375613049180410</id><published>2005-04-17T16:38:00.000Z</published><updated>2005-04-17T16:44:00.246Z</updated><title type='text'>SmartLink Test: Company Profile 1</title><content type='html'>&lt;p&gt;&lt;i&gt;This is a test post in support of SmartLink of which more later...&lt;/i&gt;&lt;/p&gt;

&lt;h3&gt;Google&lt;/h3&gt;

&lt;p&gt;I found this address on their web-site:&lt;/p&gt;

&lt;ul&gt;
1600 Amphitheatre Parkway&lt;br /&gt;
Mountain View, CA  &lt;span class="smartlink" type="address"&gt;94043&lt;/span&gt; 
&lt;/ul&gt;

&lt;p&gt;There are listed on the Nasdaq with a stock symbol of &lt;span class="smartlink" type="stock"&gt;GOOG&lt;/span&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-111375613049180410?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/111375613049180410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=111375613049180410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111375613049180410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111375613049180410'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/04/smartlink-test-company-profile-1.html' title='SmartLink Test: Company Profile 1'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-111375581984952602</id><published>2005-04-17T16:34:00.000Z</published><updated>2005-04-17T16:36:59.850Z</updated><title type='text'>SmartLink Test: Address</title><content type='html'>&lt;p&gt;&lt;i&gt;This is a test post in support of SmartLink of which more later...&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;I've never lived in the States so when I'm short of a test address I always resort to Beverley Hills &lt;span class="smartlink" type="address"&gt;90210&lt;/span&gt;, how sad is that?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-111375581984952602?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/111375581984952602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=111375581984952602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111375581984952602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111375581984952602'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/04/smartlink-test-address.html' title='SmartLink Test: Address'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-111375540562533754</id><published>2005-04-17T16:27:00.000Z</published><updated>2005-04-18T07:34:59.016Z</updated><title type='text'>SmartLink Test: Books and Films</title><content type='html'>&lt;p&gt;&lt;i&gt;This is a test post in support of SmartLink of which more later...&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;One of my favourite films is &lt;i&gt;&lt;span class="smartlink" type="film"&gt;Blade Runner&lt;/span&gt;&lt;/i&gt;, I'm pretty sure I prefer it to &lt;i&gt;&lt;span class="smartlink" type="book"&gt;Do Androids Dream of Electric Sheep?&lt;/span&gt;&lt;/i&gt; from which it is derived.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-111375540562533754?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/111375540562533754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=111375540562533754' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111375540562533754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111375540562533754'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/04/smartlink-test-books-and-films.html' title='SmartLink Test: Books and Films'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-111053237277766155</id><published>2005-03-11T09:12:00.000Z</published><updated>2005-03-11T09:12:52.776Z</updated><title type='text'>Trying to understand Technorati</title><content type='html'>&lt;p&gt;So here's my &lt;a href="http://www.technorati.com/claim/yvxc2q7uq" rel="me"&gt;Technorati Profile&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-111053237277766155?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/111053237277766155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=111053237277766155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111053237277766155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111053237277766155'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/03/trying-to-understand-technorati.html' title='Trying to understand Technorati'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-111030525441266040</id><published>2005-03-08T18:05:00.000Z</published><updated>2005-03-11T11:53:08.840Z</updated><title type='text'>AutoTag: AutoLink/SmartTags done right</title><content type='html'>&lt;p&gt;In all the debate about Google's AutoLink feature I've seen virtually nothing about how the AutoLink/SmartTag (AutoTag anyone?) concept could be made to work better &lt;i&gt;with the notable exception of Don Park who was right on the money weeks ago &lt;a href="http://www.docuverse.com/blog/donpark/default.aspx?date=2005-02-22"&gt;Fixing AutoLink&lt;/a&gt;&lt;/i&gt;. Obviously there are points of principle that need to be debated; the right of an author not to have their content altered and allowing users to escape from a mass of inward-looking links.&lt;/p&gt;  

&lt;p&gt;But rather than complaining and hoping the problem will go away, how about trying to address these issues by building a better AutoTag?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Require authors to opt-in by requiring them to make their content explicitly auto-taggable. For example have them mark-up such content [see
&lt;a href="http://adriancuthbert.blogspot.com/2005/02/semantic-markup-and-autolink.html"&gt;previous post&lt;/a&gt;]
&lt;pre&gt;&amp;lt;span class="autotag" type="address"&amp;gt;
This is an address
&amp;lt;/span&amp;gt;&lt;/pre&gt;&lt;/li&gt; 

&lt;li&gt;The first time auto-taggable content of a particular 'type' is found, ask the user if (a) they want such content auto-tagged and if so then (b) which of a selection of services do they wish to link to.&lt;/li&gt;
&lt;/ol&gt;  

&lt;p&gt;An additional benefit of (1) is that it can be easily extended to handle different types of content - no need to code the magic required to identify content and its 'type'. Consequently it would be possible to identify both books and films by name.&lt;/p&gt; 

&lt;p&gt;With respect to (2) it should be noted that Google already provide access to a variety of mapping services, but they default the service to their own.&lt;/p&gt;

&lt;p&gt;From my perspective as a user, there is a lot to be gained from AutoTag functionality done right. And it doesn't stop at linking up to remote web services. The same approach can be used to link from web pages to desktop applications. For example it is frustrating to have to cut information from a web-site and then paste it piece-meal back into a form to update contact/event information, especially when there are perfectly good machine readable formats to do the job.&lt;/p&gt;

&lt;p&gt;Clearly it is unreasonable to expect a lone web-site author to do the work required to convert the human-readable information they have at hand into the arcane machine-speak required to talk to Outlook, let alone a range of desktop and service based apps. But perhaps the same author could be persuaded to wrap a few angle-brackets around what they know to be the crucial information. The problem could be solved with the help of a few remote 'helper' services that could accept text fragments, parse them and return suitably formatted and mime-typed responses.&lt;/p&gt; 

&lt;p&gt;I don't know how difficult it is to write an IE toolbar or a Firefox extension, but I'm hoping/guessing that most of the heavy-lifting is being done by the services that are being linked to. Thankfully there are mapping services that can deal with addresses and don't have to be talked to politely using coordinates.&lt;/p&gt; 

&lt;p&gt;What we need is a neutral switch embedded in the browser that can route auto-taggable content from the web-pages we view to the services of &lt;i&gt;our&lt;/i&gt; choice.&lt;/p&gt;

&lt;p&gt;Technorati tag: &lt;b&gt;&lt;a href="http://technorati.com/tag/autolink" rel="tag"&gt;autolink&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-111030525441266040?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/111030525441266040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=111030525441266040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111030525441266040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/111030525441266040'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/03/autotag-autolinksmarttags-done-right.html' title='AutoTag: AutoLink/SmartTags done right'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-110961447553992085</id><published>2005-02-28T18:45:00.000Z</published><updated>2005-03-01T21:04:03.606Z</updated><title type='text'>Semantic Markup and AutoLink</title><content type='html'>&lt;p&gt;RSS/Atom is the proof that, given the right incentive, people/systems can be developed to publish semantically marked-up content. Building the semantic web, however, seems to have fractured into two; build it using the correct technologies (RDF + OWL) or bootstrap it by encouraging people to semantically mark-up some of their content. Jon Udell, as far as I understand the argument, has been consistent and imaginative in his support of the latter. He has suggested that what is needed is some mechanism to reward those people that go through the pain of marking-up their content. I just wonder whether an appropriately implemented 'AutoLink' capability could do that?&lt;/p&gt;
&lt;p&gt;The need for an 'appropriate' implementation is, in part, a response to the furore that has arisen from Google's toolbar (e.g. Dave Winer's &lt;a href="http://www.thetwowayweb.com/2005/02/22#a272"&gt;Google's toolbar and content modification&lt;/a&gt;). IMHO this isn't a question of whether the reader is prepared to accept having the content they are reading modified, it's a question of whether the author is prepared to allow their content to be modified. One approach is to have authors explicitly opt-in by marking-up content that can be 'auto-linked'. For example:
&lt;pre&gt; 
&amp;lt;p&amp;gt;This is a small post that contains an address. &lt;br /&gt;I found the address on Google's web-site:&amp;lt;/p&amp;gt;

&amp;lt;ul&amp;gt;
Google Inc.
&lt;b&gt;&amp;lt;span class="autolink" type="address"&amp;gt;&lt;br /&gt;1600 Amphitheatre Parkway
Mountain View, CA 94043
&amp;lt;/span&amp;gt;&lt;/b&gt;
USA
&amp;lt;/ul&amp;gt;
&lt;/pre&gt;
&lt;p&gt;(taken from &lt;a href="http://adriancuthbert.blogspot.com/2005/02/testing-googles-autolink.html"&gt;Testing Google's AutoLink&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;To quote Jon Udell's &lt;a href="http://www.xml.com/pub/a/2003/12/23/udell.html"&gt;The Social Life of XML&lt;/a&gt;, this uses CSS to smuggle in the metadata. Explicitly marking-up the content to be auto-linked and giving it a 'type' has the desirable consequence that the author is adding some semantic content. The explicit 'type' attribute also has the significant advantage that the approach is extensible beyond the point where Google's magic is able to identify a context. For example films, books and companies could all be identified by name.&lt;/p&gt;
&lt;p&gt;Adding new types of auto-link could be reduced to the code required to manipulate the marked-up content into a suitable query string and the URL of an appropriate 'helper' service. Nor would it be anymore difficult to add support for alternate 'helper' services for the same type of auto-link (as Google already does for mapping street addresses). Of course having services work more or less directly with the sort of content that an author has access to is the genius of the whole thing. For example street addresses are a lot easier to come by than lat/long coordinates.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-110961447553992085?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/110961447553992085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=110961447553992085' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/110961447553992085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/110961447553992085'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/02/semantic-markup-and-autolink.html' title='Semantic Markup and AutoLink'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-110961553755043304</id><published>2005-02-28T18:30:00.000Z</published><updated>2005-04-16T16:26:56.030Z</updated><title type='text'>Testing Google's AutoLink</title><content type='html'>&lt;p&gt;This is a small post that contains an address. I found the address on Google's web-site:&lt;/p&gt;

&lt;ul&gt;
Google Inc.&lt;br /&gt;
1600 Amphitheatre Parkway&lt;br /&gt;
Mountain View, CA &lt;span class="smartlink" type="address"&gt;94043&lt;/span&gt;&lt;br /&gt;
USA
&lt;/ul&gt;

&lt;p&gt;My question is will people be able to auto-link it?&lt;br /&gt;
&lt;i&gt;And the answer is YES!&lt;/i&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-110961553755043304?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/110961553755043304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=110961553755043304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/110961553755043304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/110961553755043304'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/02/testing-googles-autolink.html' title='Testing Google&apos;s AutoLink'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-110760525912711146</id><published>2005-02-05T11:58:00.000Z</published><updated>2005-02-05T12:50:32.616Z</updated><title type='text'>Where is my Apple remote control? Ask Sony!</title><content type='html'>&lt;p&gt;In some quarters &lt;a href="http://www.pbs.org/cringely/pulpit/pulpit20050120.html"&gt;speculation&lt;/a&gt; has been running rampant about 'What is the &lt;span style="font-style:italic;"&gt;hidden&lt;/span&gt; intent of the Mac mini?'. Some have pointed to the appearance of Mr Ando of Sony at MacWorld as being significant.&lt;/p&gt; 

&lt;p&gt;To my mind the missing ingredient of any truly distributed home entertainment system is the &lt;a href="http://adriancuthbert.blogspot.com/2004/07/remote-control-from-apple.html"&gt;remote control&lt;/a&gt;. Using a remote to manipulate menus on your TV is just plain silly if you are trying to get music stored on your 'digital hub' to play on speakers in the kitchen. The remote needs to have a screen.&lt;/p&gt;

&lt;p&gt;As well as a screen, it needs just a few controls to manipulate the menus - not a tabletPC, not a PDA with a stylus and not a mobile phone. Enter the gaming consoles. Who has user interaction with screen-based, domestic mobile devices sorted out better?&lt;/p&gt; 

&lt;p&gt;A Wi-Fi enabled PSP might be overkill but it would be a start. With a price in excess of $249 for the Wi-Fi option it also looks pricey, until you see what &lt;a href="http://www.sonos.com/"&gt;Sonos&lt;/a&gt; is all about and how much they charge for a remote (answer: $399).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-110760525912711146?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/110760525912711146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=110760525912711146' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/110760525912711146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/110760525912711146'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2005/02/where-is-my-apple-remote-control-ask.html' title='Where is my Apple remote control? Ask Sony!'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-110209423495337953</id><published>2004-12-03T17:10:00.000Z</published><updated>2004-12-03T17:32:07.220Z</updated><title type='text'>What is a richer browser?</title><content type='html'>&lt;p&gt;In a recent Info World &lt;a href="http://www.infoworld.com/article/04/11/26/48FEhostedgui_1.html"&gt;article&lt;/a&gt; Jon Udell makes the point that Firefox's success may persuade people to reconsider how they can build richer applications without throwing the baby out.&lt;/p&gt;
&lt;p&gt;If part of the problem is &lt;quote style="background-color:#ffffaa;"&gt;'managing complex interaction on the client'&lt;/quote&gt; then perhaps the place to &lt;quote style="background-color:#ffffaa;"&gt;'selectively and strategically enrich the browser'&lt;/quote&gt; is at the level of an application controller? Something that can maintain client state between a pages.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-110209423495337953?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/110209423495337953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=110209423495337953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/110209423495337953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/110209423495337953'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2004/12/what-is-richer-browser.html' title='What is a richer browser?'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-109345413147483309</id><published>2004-08-25T17:12:00.000Z</published><updated>2004-08-25T20:01:43.393Z</updated><title type='text'>Questions about embedding microcontent in an Atom feed</title><content type='html'>&lt;p&gt;Imagine I wanted to write a new type of aggregator that could extract microcontent from feeds and then present that content in a way different from a normal 'news' aggregator. For example I might want to allow people to include 'event' information in their feeds and have my aggregator provide a calendar-like view onto all the events it had encountered.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Does the Atom Syndication Format help me do that?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Lets make the simplifying assumption that there is some well-defined, commonly-used way of representing a calendar event in XML with its own mime-type (lets postulate text/vcalendar+xml). I want to include both this 'structured' microcontent as well as my usual 'unstructured' ramblings into a single entry. My question is how is such hybrid content supposed to be included in an Atom feed?&lt;/p&gt;
&lt;p&gt;AFAICT entries in Atom may have multiple &amp;lt;content&amp;gt; elements. Thus you could include the calendar event information and the wordy bits in separate &amp;lt;content&amp;gt; elements, each with the appropriate type attribute. However my understanding of things I have read elsewhare (but I can't find them now so this may be madness &lt;span style="color: rgb(255, 102, 102); font-size:85%;"&gt;&amp;lt;UPDATE&amp;gt; more below &amp;lt;/UPDATE&amp;gt;&lt;/span&gt;) is that under such circumstances the aggregator should pick a single content element to deliver. A possible example might be an aggregator that is delivering to a mobile device with limited capabilities. Under such circumstances content of type 'text/plain' might win out over content with type 'application/xhtml+xml'. What it would do faced with 'text/vcalendar+xml' and 'application/xhtml+xml' is anybody's guess.&lt;/p&gt;
&lt;p&gt;However the multiple &amp;lt;content&amp;gt; element route has other issues. For example I suspect most blog authoring software does not make it easy to deliver multiple content elements. Finally, even if they did, how does this approach handle the situation when the entry needs to reference a pair of calendar events? (or is the 'rel' attribute is available on the 'content' element?)&lt;/p&gt;
&lt;p&gt;So I am driven to ask the question whether it is possible/legal/good manners to put structured microcontent directly into the XHTML content?&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;I have just found some words about consumers of Atom only rendering a single content element. However this is based on a content element with type 'multipart/alternative'. Taken from &lt;a href="http://www.ietf.org/internet-drafts/draft-ietf-atompub-format-01.txt"&gt;IETF Draft&lt;/a&gt; of the Atom Syndication Format:&lt;/p&gt;
&lt;blockquote style="font-family: courier new;"&gt;If @type="multipart/alternative", @mode MUST NOT be specified, and content element MUST contain 1 or more content elements. These content elements MUST NOT specify @type="multipart/alternative" (i.e. only one level of nesting is allowed). Consumers SHOULD look at all alternative content elements and determine which one is most suitable, based on which @type and @mode the consumer supports, and preferences specified by the end user (if any). Consumers SHOULD NOT render more than one content alternative.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-109345413147483309?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/109345413147483309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=109345413147483309' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/109345413147483309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/109345413147483309'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2004/08/questions-about-embedding-microcontent.html' title='Questions about embedding microcontent in an Atom feed'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-109016460661197505</id><published>2004-07-18T15:22:00.000Z</published><updated>2004-07-18T20:12:03.396Z</updated><title type='text'>A remote control from Apple</title><content type='html'>&lt;p&gt;With &lt;a href="http://www.apple.com/airportexpress/"&gt;AirPort Express&lt;/a&gt; Apple really have begun to show how a Mac sitting somewhere in the house could be a 'digital hub'. Music stored on iTunes syncs to a portable iPod or is beamed wirelessly to the audio system in the lounge. &lt;i&gt;But I've got to go into another room to select a different album!&lt;/i&gt; So what I want from Apple this Christmas is a remote control&lt;/p&gt; 
&lt;p&gt;It could be boring; iPods already show how to control music on-the-move. So just put the same interface on some Wi-Fi enabled remote or maybe even provide some Wi-Fi add-on for an existing iPod. Alternatively...&lt;/p&gt; 
&lt;p&gt;Invent a new category of mobile device; a Wi-Fi enabled mobile client. Sure its got to be small and mobile, but if its use is restricted to 'in the home/office' it doesn't have to have the form-factor of a mobile phone that can be hidden in a smart suit, it could be more like a PDA - even a bulky PDA. But it doesn't have to operate &lt;i&gt;standalone&lt;/i&gt; like a PDA. For a device that can be assumed to be always Wi-Fi connected, then lets make the simplifying design decision that it carries no specific user data at all. No more syncing, just access the data when you need it.&lt;/p&gt; 
&lt;p&gt;What would run on this mobile device? Obviously some cut-down iTunes controller/gadget, a way of reading my email, Spotlight to find stuff, a mobile version of Preview to read stuff, maybe even a VOIP client but also, I would hope, some sort of browser.&lt;/p&gt;
&lt;p&gt;Although browser's don't offer the full richness of a desktop application, they do provide a remarkably flexible, good-enough solution to deliverying information. For example I would want access to the data in Address Book and iCal. People already have multiple interfaces to such data via the desktop, the .mac web-interface and even via an iPod. A web-like interface, albeit mindful of the reduced form-factor, is not impossible. Indeed Apple have precisely the sort of experience required to make a go of it. A browser-like environment might also give acess to some subset of all those gadgets that are going to be built for Dashboard.&lt;/p&gt;
&lt;p&gt;Did I say 'No more syncing'? Well, not quite. Apple have done remarkable things to make syncing as seamless and painless as possible. Syncing to a .mac account offers both security and remote access. Maybe our Wi-Fi enabled mobile client could talk securely to a .mac account through any Wi-Fi hot-spot.
 &lt;/p&gt; &lt;p&gt;So, ideally before Christmas 2004,  new hardware and an operating system to run on it, a number of new apps and 'small' web versions of others and integration with .mac. Doesn't seem too much to ask.
 &lt;/p&gt; 
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-109016460661197505?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/109016460661197505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=109016460661197505' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/109016460661197505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/109016460661197505'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2004/07/remote-control-from-apple.html' title='A remote control from Apple'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-108858378757833947</id><published>2004-07-01T21:14:00.000Z</published><updated>2004-07-02T11:47:02.960Z</updated><title type='text'>Architectures for 'richer' web applications</title><content type='html'>&lt;p&gt;Now that JavaOne is over (not that I got to go) and we are all more up-to-date with where Java is going, I have a simple question: as Java developers are we in a better position to develop web applications that offer a &lt;i&gt;richer&lt;/i&gt; user experience? To this end I have developed a simple test scenario:&lt;/p&gt;

&lt;blockquote&gt;
&lt;b&gt;test scenario&lt;/b&gt;
&lt;br /&gt;
&lt;p&gt;I have a service that can provide the metadata for several thousand items (id, title, creation date, status, etc) and a service that can deliver an HTML description giving further details of an item specified by its id. I want to develop a web application that displays the metadata in a table on the left (allowing the user to resize, reorder columns etc) and the HTML description of a 'selected' item on the right. When the user selects a row in the table, the HTML description on the right is updated. As a complication the description may also reference zero or more other items. Selecting one of these links should update the both the description and reset the selection in the table.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I can imagine a number of responses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Java WebStart:&lt;/b&gt; create a WebStart application using the JDNC table component and the JDIC browser component.  The interaction between the two components would be defined in Java. While I have no doubt this would provide a fine user interface, I suspect that WebStart solutions are just not percieved as being 'standard' web apps.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;JSF:&lt;/b&gt; create a web app using some [yet to be developed?] table JSF component. Altough a JSF table may be able to handle the reodering of columns and the like, the concern is round-tripping to the server each time to deliver a large table.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;something else...&lt;/b&gt; my preference would be for a JDNC table component embedded in one frame (as an applet) and the item's HTML description displayed in a second frame and have the interaction between the two defined in Javascript.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Currently the last solution is not possible because JDNC components cannot be scripted. My understanding is that the resources were not there to both develop the components and a scripting solution. This post is something of a test to see whether there is any interest in trying to plug that gap.&lt;/p&gt; 
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-108858378757833947?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/108858378757833947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=108858378757833947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/108858378757833947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/108858378757833947'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2004/07/architectures-for-richer-web.html' title='Architectures for &apos;richer&apos; web applications'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-108849519067734391</id><published>2004-06-29T07:28:00.000Z</published><updated>2004-06-29T20:00:35.843Z</updated><title type='text'>WebStart and Web Browsers </title><content type='html'>&lt;p&gt;I posted the previous post (&lt;a href="http://adriancuthbert.blogspot.com/2004/06/jdnc-and-rich-internet-applications.html"&gt;JDNC and Rich Internet Applications&lt;/a&gt;) to the JDNC &lt;a href="http://www.javadesktop.org/forums/forum.jspa?forumID=53"&gt;forum&lt;/a&gt; and got a timely and well-considered reply from Mark Davidson. It has made me realise that I have completely failed to articulate what I find so attractive about the browser metaphor and, by extension, my perception of what a RIA should be.&lt;/p&gt;

&lt;p&gt;RIA is an acronym I saw first used by Macromeduia in conjunction with its Flex product. But I have seen it more generally used by those with a server-side Java perspective, trying to describe what are essentially web applications but with a &lt;i&gt;richer&lt;/i&gt; interface. There are a variety of technologies for doing this but most share a common architecture. Rather than delivering HTML, the server-side is responsible for constructing an XML payload (which typically includes both declarative and procedural elements) that is delivered (sometimes via a proxy) to the browser. The browser (or a plug-in hosted by the browser) then presents the application to the user.&lt;/p&gt;

&lt;p&gt;To recap: as a server-side Java developer I swap all the capabilities of the user's browser (its handling of D/X/HTML, CSS, DOM, Javascript, plugins...) for somebody's proprietary XML dialect and hope for the best? Perhaps - if the company is big enough and has the resources and is spending the time (Microsoft, 2006+, XAML anybody?). If I had to categorise WebStart I would have to put it into this camp. The differences are that it is honest enough to do away with the browser and Java provides a hugely rich environment.&lt;/p&gt;

&lt;p&gt;If I look at the applications I use day-in/day-out, there is a spectrum to how complex and interactive they are. What I am struck by is how many of them are now 'browser-based', despite all the compromises that must bring. Obviously this is also a matter of taste, but I am with those that do not believe that the browser has reached the end of its development. For the record, here is a list of things I use a browser for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;browsing ;-)&lt;/li&gt;
&lt;li&gt;blogging (Blogger &amp;amp; Bloglines)&lt;/li&gt;
&lt;li&gt;documentation/design (Twiki)&lt;/li&gt;
&lt;li&gt;bug tracking (Bugzilla)&lt;/li&gt;
&lt;li&gt;filling out my tax form (something from the UK tax office)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;...and here is a list of things I don't do with a browser:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;email (Outlook)&lt;/li&gt;
&lt;li&gt;music (iTunes)&lt;/li&gt;
&lt;li&gt;cutting code (Eclipse)&lt;/li&gt;
&lt;li&gt;presentations (PowerPoint)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Obviously I don't always choose a browser-based solution for its user-interface. For example Bloglines has the advantage that it can keep track of what I've read, irrespective of where I've read it. Many of these browser-based solutions would benefit from a &lt;i&gt;richer&lt;/i&gt; user-interface. Blogger, Twiki and Bugzilla would benefit from some form of 'text-editor' component, Bugzilla from a 'table' component and Blogger from a 'calendar' component.&lt;/p&gt;

&lt;p&gt;There is an inherent attraction of having a number of browser-based applications; they can be seamlessly tied together. Its not just because its trivial to put a link on a page, but also because these aplications live in the same environment and follow the same rules (eg I can go back to that page, I can bookmark it, I can send a link via email, I can open it in a new tab). Finally browser-based applications often just plain look better. In an application where most of the information is read-only, the ability to easily control how that information is rendered is a big plus.&lt;/p&gt;   

&lt;p&gt;My problem is what is the way forward for a Java developer who wishes to offer a richer user-experience while retaining the benefits of a browser-based solution?&lt;/p&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-108849519067734391?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/108849519067734391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=108849519067734391' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/108849519067734391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/108849519067734391'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2004/06/webstart-and-web-browsers.html' title='WebStart and Web Browsers '/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-108836044508075814</id><published>2004-06-27T18:09:00.000Z</published><updated>2004-07-20T08:23:39.456Z</updated><title type='text'>JDNC and Rich Internet Applications</title><content type='html'>&lt;p&gt;It seems impossible to find out whether JDNC (JDesktop Network Components) are really designed to contribute to the development of RIA or not. When used in a web-page, JNDC are essentially applets but they can be configured with the same XML configuration files as their desktop equivalents. Futhermore the components, because they are 'network' aware, can fetch their data from the originating web-site. Thus they have precisely the characteristics to make them a valuable component on a web-page.&lt;/p&gt;
&lt;p&gt;But the documentation seems only too keen to point out the problems with using them on web-pages (variable Java support, longer load times, the need to reload after a page refresh). JDNC demos are all WebStart based and nobody is saying anything about scripting JDNC or allowing them to interact with other page content, be it HTML content accessible through the DOM or a Flash component. While it might be possible to drive JDNC components with Javascript (just because it can already speak to applets) the real question is whether they are &lt;i&gt;designed&lt;/i&gt; to be scripted. For example can Javascript be used to scroll a JDNC 'table' component to a selected row or, more revealingly, can a row selection in a JDNC 'table' component trigger some Javascript?&lt;/p&gt;
&lt;p&gt;With JDNC and JDIC Sun is obviously making a renewed effort on the desktop. But from the 'vision thing' point of view the most significant thing would seem to be Java WebStart. This brings many, if not virtually all, of the deployment advantages of pure web applications to the desktop. Whereas initiatives like JDNC and JDIC are [just] new tools for building conventional desktop applications in Java, albeit far more productively. But web deployable, desktop applications are not RIA. Where is the 'vision thing' for Java and RIA? It would have to be something that acknowledges the existence and importance of the web-browser as a primary tool of user interaction. With the web-browser comes a set of expectations related to choices and technology and the ability to combine them. If JDNC is part of a Java/RIA vision then it has to acknowledge that Java-based components, no matter how functional and how rich they are, are just that; &lt;b&gt;components&lt;/b&gt; to be mixed and matched with any other Internet capable component.
 &lt;/p&gt; 
&lt;p style="color: rgb(255, 102, 102);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;[UPDATE]&lt;/span&gt;&lt;/span&gt; a reply to this post from Mark Davidson has prompted me to try an articulate things better in &lt;a href="http://adriancuthbert.blogspot.com/2004/06/webstart-and-web-browsers.html"&gt;another post&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-108836044508075814?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/108836044508075814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=108836044508075814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/108836044508075814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/108836044508075814'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2004/06/jdnc-and-rich-internet-applications.html' title='JDNC and Rich Internet Applications'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-108784742087607690</id><published>2004-06-21T19:42:00.000Z</published><updated>2004-07-20T08:24:15.460Z</updated><title type='text'>clevercactus share</title><content type='html'>&lt;p&gt;Congratulation to the people at clevercactus, there is now a public release of clevercactus share, described on the site as:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;a href="http://www.clevercactus.com"&gt;&lt;b&gt;clevercactus share&lt;/b&gt;&lt;/a&gt; is a private and secure environment to share files with people you know.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;/ul&gt;
&lt;p&gt;clevercatcus takes something we all thought we understood, namely the internet, back to basics. Make it possible for pairs/groups of people to communicate directly with each other. No need for DNS, no need for FTP servers, no need for special handling of firewalls and the like. Just secure, ad-hoc, point-to-point connections between machines out on the edge.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;the technology&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Its Java based &lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(255, 102, 102);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;[UPDATE]&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 102);"&gt; using their own P2P framework, not JXTA,&lt;/span&gt; &lt;/span&gt;and they have gone to great lengths to provide a quality desktop look and feel. clevercactus has both desktop and web components. The desktop component installs itself nicely into your &lt;i&gt;'whatever it is called - bottom right on windows'&lt;/i&gt; bar. &lt;span style="color: rgb(255, 102, 102);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;[UPDATE]&lt;/span&gt;&lt;/span&gt; It also updates itself, like JWS, but they've done it themselves and it looks much better. &lt;/span&gt;
 &lt;/p&gt;
&lt;p&gt;&lt;b&gt;the design&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;I'm intrigued if they ever considered an architecture with a WebStart deployed 'share' engine which installed itself on the bar with a basic start/stop popup-menu interface and then have the engine able to project a web-interface. That way they could have unified the web+desktop components. Maybe it was an issue of expertise, they certainly have worked very hard at providing a pretty Swing interface.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;the niggles&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;I've used two versions of 'share' to coordinate data at home and work. However my current version (v1.38 beta) seems to show up some oddities of my office environment, maybe a flakiness of the internet connection. The problem is that 'share' looses its connection and doesn't seem to be able to enable it again - maybe this version doesn't try.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;wishlist&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;There would appear to be a trend towards people having an excess of diskspace (I'm not storing movies yet) and a surplus of connection bandwidth (at least when averaged over 24hrs). This would support an alternative mode of sharing; basically synchronising a folder amongst a group of people. Rather than have people search and pull back from a shared folder on demand, assume that everything is wanted and pull it across when it comes available. A new person joining the group would come back n hours later and find the entire folder copied over. clevercatus share already seems to do much of the complicated stuff, retrieving a folder repeatedly over a number of days seems to keep it correctly synchronized and minimises the files transferred.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-108784742087607690?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/108784742087607690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=108784742087607690' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/108784742087607690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/108784742087607690'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2004/06/clevercactus-share.html' title='clevercactus share'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-108616567716801038</id><published>2004-06-02T08:24:00.000Z</published><updated>2004-06-02T22:17:22.660Z</updated><title type='text'>At last....</title><content type='html'>&lt;p&gt;At last Sun has released something that acknowledges the need for a Java response to rich internet applications. The article introducing &lt;a href="http://javadesktop.org/articles/jdic/index.html"&gt;Java Desktop Integration Components&lt;/a&gt; talks of a desire to bridge the gap between 'browser-based applications' and 'rich desktop applications'.&lt;/p&gt;
&lt;p&gt;JDIC is just one of a number of Java technologies that can deliver on the desktop, &lt;a href="http://www.javadesktop.org/articles/JDNC/index.html"&gt;Java Desktop Network Components&lt;/a&gt; is another. What is still missing is a clear vision of how all these parts are supposed to be used together for different types of application. &lt;/p&gt;
&lt;p&gt;For what its worth, my own preoccupation is with RIA - a possible convergence of 'browser-based' and 'rich desktop' apps accessed through a browser. Sun has seeded the JDIC project with an HTML rendering component and that ought to make a difference, but it has kept to its WORA principles (will the Java Desktop ever get a preferred status?) Consequently the level of control offered is very high-level. Making an HTML canvas available to a Java app, rather than making Java available to the browser still seems to be 'inside-out'.&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-108616567716801038?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/108616567716801038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=108616567716801038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/108616567716801038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/108616567716801038'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2004/06/at-last.html' title='At last....'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-108420611920717183</id><published>2004-05-11T09:21:00.000Z</published><updated>2004-05-11T07:37:18.700Z</updated><title type='text'>RIA and Mozilla</title><content type='html'>&lt;p&gt;With Longhorn, Microsoft are busy building a richer environment for delivering applications to the desktop. In the meantime some in the non-Microsoft world have been busy pushing the concept of Rich Internet Applications. Two of these (Laszlo System's presentation server and Macromedia's Flex) leverage the ubiquity of Flash. But the gamble that Microsoft is taking is that you really need to extend the browser. Microsoft need to deploy XAML compliant browsers to support their approach. In the same time-frame couldn't an open-source browser like Mozilla be extended to make it the preferred target for advanced RIA? Afterall it already contains functionality that has no equivalent in IE (e.g. XUL). And just how long will it be before there are more XAML capable browsers than Mozilla?&lt;/p&gt; 

&lt;p&gt;I don't want to tread on anybody's definition of what a RIA is - or how they compare to what Microsoft is planning to do - so let me just be clear about what I would like to see from a future Internet application as a user:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Easy deployment:&lt;/b&gt; I can access/invoke the application through a browser. A RIA may download/install software, ask for access to local resources etc. but the starting point is my everyday browsing experience. The more transparent it is, the better&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A richer experience:&lt;/b&gt; this is probably more about removing some of the limitations that afflict pure web-based applications, rather than an absolute requirement for more 'richness'. Such limitations include; 
&lt;ul&gt;
&lt;li&gt;a lack of responsiveness - some essentially trivial but uncommon validation tasks require a round-trip to the server,&lt;/li&gt;
&lt;li&gt;difficulty in being able to dynamically update parts of a page,&lt;/li&gt;
&lt;li&gt;a limited set of standard 'widgets' available to forms builders.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;An uninterrupted experience:&lt;/b&gt; ideally I should be able to continue accessing the application through the browser from which it was originally invoked.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;and two 'nice to haves'...&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Roaming personalisation:&lt;/b&gt; if the application supports some level of personalisation, then ideally it will move with me even when it is accessed from a different browser on a different continent.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Unfettered access:&lt;/b&gt; if the application deals with remote resources, then ideally it should be able to access them anywhere on the Internet and not be restricted to the source location of the application itself.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;I feel a bit churlish writing this, I'm using the new Blogger web interface which has a 'Preview' function that works instantly and doesn't require a server round-trip!&lt;/em&gt;&lt;/p&gt; 
   
&lt;p&gt;I've been involved in some sizable web applications in my time. Although Laszlo and Macromedia offer to hide much of the plumbing and reduce my job to delivering LZX/MXML, I can't help but feel you cannot hide the browser/server connection. It has to be recognized for what it is. My preferred architecture probably borrows more from a desktop application. My version of an Internet application would be a browser download that:&lt;/p&gt;
&lt;ul&gt; 
&lt;li&gt;takes responsibility for handling 'session' state,&lt;/li&gt;
&lt;li&gt;interacts with the browser via events directed to it from the page, and an ability to inspect/manipulate the content of the page,&lt;/li&gt;
&lt;li&gt;talks to remote web services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Standards exist for much of this (DOM, update via DHTML, communication with web services via SOAP), the big problem is downloading an application &lt;em&gt;into&lt;/em&gt; the browser. Essentially this is a downloadable application that uses a browser to present its user-interface rather than building its own. Compared with other browser downloads, the distinction is that it runs in the browser itself, not in an individual page. It's job is not to do simple things like validate user-input before passing control back to a server. It's job is to be responsible for the application as a whole, coordinating the various steps in the process, calling upon web services as and when they are required. These services can themselves be simplified; for example they may no longer need to handle state or presentation details, making them more usable across a range of applications.&lt;/p&gt;

&lt;p&gt;I must now declare myself a frustrated Java developer. I've managed to prototype some of these ideas but there has always been a piece missing, a technical hurdle that is way too high. Java has an evolving story about talking to remote web services, and it just gets better. Java Web Start, IMHO, does a good job of downloading application code but then more or less forces you to use Swing for the user-interface. This would be better if you could include components that can handle HTML. However a better solution would be to have Java running inside the browser. I've built pages that dynamically fetch new data to update parts of themselves by calling upon the services of a featureless Java applet running in a separate frame, but the applet is sandboxed and cannot talk to the whole web. I might have been tempted to use James Gosling's &lt;a href="https://jnn.dev.java.net/"&gt;JNN&lt;/a&gt; more (a minimal RSS reader with some nice layout and drag-and-drop features) if I didn't have to manage both its window and the browser window that needs to accompany it.&lt;/p&gt;

&lt;p&gt;Is it possible to build Internet applications this way? Does anybody else want to?&lt;/p&gt;


&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-108420611920717183?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/108420611920717183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=108420611920717183' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/108420611920717183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/108420611920717183'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2004/05/ria-and-mozilla.html' title='RIA and Mozilla'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6834746.post-108290935980548535</id><published>2004-04-25T16:06:00.000Z</published><updated>2004-05-07T23:24:33.343Z</updated><title type='text'>What is the best way to coordinate data over the Internet?</title><content type='html'>&lt;p&gt;I've recently been subject to spam-like levels of Plaxo requests. Although Plaxo does some things I like (provides a remote copy of my contacts and a way to sync work and home contact lists) I would like to think there were alternative ways to handle the coordination aspect of what they do, i.e. keeping your contacts updated automatically.&lt;/p&gt;

&lt;p&gt;If a number of users wish to coordinate data over the Internet, what tools are available to them? There are various ways in which a casual user can serve data; they could set up a web-site/web-service or join some P2P network. However if the problem is simplified to merely becoming a source of data then they can send it out as messages, the most obvious form being email.&lt;/p&gt;

&lt;p&gt;I've seen estimates suggesting there are about 25 million web-sites out there, about 2 million users of some file-sharing network and goodness knows how many virus infected PCs that could act as servers to somebody. But Plaxo relies on messaging; you install an Outlook plugin which can update things automatically based on the content of Plaxo generated emails.&lt;/p&gt;

&lt;p&gt;Is that really the best way to do things? Windows and Outlook is not for everybody, and requiring a plugin reduces the numbers even more, but that combination must rank pretty high in terms of numbers.&lt;/p&gt;

&lt;p&gt;Somehow I find all that a bit depressing...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6834746-108290935980548535?l=adriancuthbert.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://adriancuthbert.blogspot.com/feeds/108290935980548535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6834746&amp;postID=108290935980548535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/108290935980548535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6834746/posts/default/108290935980548535'/><link rel='alternate' type='text/html' href='http://adriancuthbert.blogspot.com/2004/04/what-is-best-way-to-coordinate-data.html' title='What is the best way to coordinate data over the Internet?'/><author><name>Adrian Cuthbert</name><uri>https://profiles.google.com/109644984813566349799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-cKKUNUf1VkA/AAAAAAAAAAI/AAAAAAAABBo/-de2kS5CH7E/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
