Getting your News Manually Blows: A Reply

Last night Holden Page wrote a pretty good blog post entitled: Getting Your News Manually Blows (http://pagesaresocial.com/2011/04/05/getting-your-news-manually-blows/).

It was late, so I thought I’d reply now when I’m fully awake :).

Holden’s point was that when you use a service like my6thsense that auto-curates the news and presents this to you, it’s much easier than using Twitter (and by extension Google Reader etc) to get your news. Essentially, it’s easier to have the news pushed to you rather than to have to go off and pull it from various services.

Essentially, Holden is arguing for the curation model rather than e co sunroom model. This is infect something that I’ve noticed myself. There is consistent lack of content, even using Feedly and Twitter and Friendfeed to get my news.

Now I got an iPad about 2 months ago. And promptly installed Flipboard. I mention this because the experience is as important, if not more so, as the content in that experience. This rapidly warmed me to the iPad as a digital newspaper, complete with page turns and layout. Now it’s blatantly obvious, but the iPads ability to BECOME the app that’s running is a singular experience. As a dead tree newspaper reader, the fuss of a broadsheet just melts away on the iPad. Turning pages on a broadsheet can be a torturous experience. Flipboard showed me how that just melts away.

Thus I went off to seek actual newspaper apps to use.

Now before you groan and call newspapers dead tree media of the past, sit down and think about it. Newspapers were the my6thsense of the dead tree media (albeit it political persuasions, rivalries and narcissistic owners took thee place of algorithms). Decades worth of experience curating the news still produces some damn fine newspapers.

That’s a fact. Take the Times of London. I’ve been a Times Reader for years, even though it is a Tory paper. The iPad apps for the Times and the Sunday Times are incredibly good. They preserve the newspaper’s look and feel whilst incorporating video and some innovative layouts. I like it so much I signed up for the monthly subscription.

Here’s the scary bit: I open up The Times app and read it before I open up Feedly. No kidding. It’s curated news that covers a wide variety of topics succinctly. It’s quick and easy to browse through.

“Hang on a minute” I hear you say, “there’s no sharing or linking or liking or anything! It’s a Walled Garden”. And that’s the truly scary part: I don’t care.

Now i’m not at all suggesting that we abandon our feed readers and start reading digital newspapers. Quite the opposite. I’m saying that if we’re looking for sources of curated news, digital newspapers had better be one of those sources. Indeed, Feedly still gets used everyday. It’s invaluable to me. (Today, for example, the Falcon 9 Heavy story is nowhere to be found in The Times).

There other good newspaper app I found was the USA Today app. It’s nice and clean, with a simple interface that focusses on content. As a bonus, you can share articles to your hearts content. Plus, it’s US centric for the Americans among us šŸ˜‰

I mentioned above that looking through my feeds for good content or through Twitter and Friendfeed was/is becoming a it of a chore. I’m finding more and more time where i’m looking at absolutely nothing. I probably need to subscribe to better feeds or better people. I probably need to reorganise my feeds to better layout content, and cull the boring ones. But here’s the thing, I don’t have the time to do all that.

As Apple would say, There’s an App For That!

The difference between Facebook and Twitter

I just left the following comment at Shel Isreal’s latest blog post (read it first – the comment makes more sense in context):

I’d sign up for that.

Facebook is too unpredictable for my tastes. Even though i have people constantly asking me to friend them on it.

Twitter is a good example of balancing users and advertisers interests. Their private accounts are private. And advertising is only now becoming more of a piece of twitters strategy (@earlybird, promoted tweets etc). However, it is not being done at the users expense. Its an explicitly opt – in thing.

In other words, Twitter has respected its users, working its business model around them.

In the end, everybody wins.

I think it makes sense. Any thoughts?

Web API’s have an Identity Problem (In response to and in support of @davewiner)

If you’ll remember, a while back I announced I was implementing RSSCloud on Windows Azure. By and large this is going well and I expect to have a demo up and running soon.

PS. what follows below is based on an email I sent to my Honours Year supervisor at University and some of this will make it into my thesis too.

The RSSCloud API relies on HTTP POST for messages in and out. And I initially thought Windows Communication Foundation was the way to go.

(bear with me, I’m using this to illustrate my point)

Up until now, WCF has been working. However, in order to actually test the RSS Cloud code, I’ve had to have it the WCF Operation Contracts written as a REST service. Its clearly HTTP POST, but its not in the RSSCloud specification. Though arguably, it should be. Why do i say this? Developers should be able to write code they are comfortable with. Whether than is REST or POST or SOAP or its against an WSDL generated API client.

Back to my little problem. So instead of:

[WebInvoke(Method = "POST", UriTemplate = "/ping?url={value}")]

        [OperationContract]

        String Ping(string value);

I had to use:

[WebInvoke(Method = "POST", UriTemplate = "/ping/url/{value}"/)]

        [OperationContract]

        String Ping(string value);

There is a subtle difference. HTTP post uses the query string, where as REST uses the url itself to transmit information.

Sending a HTTP POST to the first method (where the query string is of the form" ?url={value}&port={value}&…..") hangs the test client. The request is accepted, but it never returns. I can’t even debug the method. Using a pure REST url (the second method), things work perfectly.

In order for project as a whole to conform to the project specification (by which I mean the interoperability of the program and its compliance with the HTTP POST methods defined in the RSSCloud specification), being able to accept HTTP POST is paramount.

I spoke to one of my WCF savvy lecturers. Basically he said that there were two ways to doing this: either stick to using a REST. Or encode the url as part of the POST data. Neither of which solve the problem of sticking to the specification and using HTTP Post.

So, I was digging around ASP.Net MVC 2  yesterday. I was building the page that will actually display the posts in a feed on the page. I noticed that the Controller actions that handle the request  (i.e the feed id to get) have a [HttpPost] attribute above them. I’d never really given that much thought until yesterday.

After my little chat, I had a hunch. Using MVC, I simply added a controller action like so:

[HttpPost]

        public RedirectToRouteResult ThePing()

        {

            string url = (string) Request.QueryString["url"];

            url = url.ToLower();

            ……..

And it worked flawlessly. After all my wrestling with WCF configurations and what not, i was actually quite shocked that it worked first time. One of the problems with working with new frameworks is that you keep discovering new things, but only long after you shoud’ve known.

So, to hit the ThePing method above, the url is http://rsscloudproject/Cloud/ThePing?url=….... (obviously this isn’t deployed yet)

Why does this work?

The reason is quite simple: As I understand it, MVC exposes the Request object for you to use directly, while WCF hides this somewhere in the bowels of its inner workings. So, without getting a handle on the Request object, I can’t force WCF to process the query string differently. Hence, WCF was the wrong choice of framework for this.

So my code is now 100% in compliance with the HTTP POST methods defined in the RSSCloud Specification

Now, what does this mean for the WCF REST project?

I’m keeping it as part of the project. It gives a REST interface, and it gives WSDL that developers can use to build against my service.

Not so much the case with REST, but I personally think that the concept of a WSDL is under-represented when it comes to web based APIs. Adding these two additional interfaces to the RSSCloud specification will be one of my recommendations in the final report. I feel strongly that a web based API needs to give developers as many alternative interfaces as possible. Its no fun when you know one way of doing things, but this API is only provided in another.

For example. I wish Smugmug provided a WSDL that I could point Visual studio to and generate a client for.

Both of these situations illustrate a problem among Web API’s.

I wrote a while  back that Bill Buxton’s Mix 10 keynote about designing natural user interfaces, interfaces that respect the abilities and the skills acquired by the user also applies to designers of API’s.

Bill gives this wonderful example of a violin. The violin itself may be worth millions of dollars (if I remember correctly, Joshua Bell paid $4.5 million for his Stradivarius). The bow of the violin for any first violinist in any symphony orchestra is never less than $10,000. Remember these are musicians. They make a pittance. So as a proportion of income, it’s a fortune. But it’s worth it. Why? Because it’s worthy of the skills that those musicians been acquired over decades.

Dave Winer today published a post about Facebook not providing XML API responses. And bemoaning that Twitter is going to do the same. Dave does not want JSON. He wants XML. Why? He feels comfortable with it, and he has to tools to work with it. Clearly the new API changes do not respect Dave Winer and the abilities he has acquired of decades.

I left the following comment:

I totally understand where you are coming from.

On the other hand, tools will always be insufficent. I don’t think .Net, for example, has JSON support built in, either.

Technology moves so fast, as you say, that next week there will be something new and shiny. Developers find themselves in the curious position for having to write for today, but to prepare for next weeks new thing – they have to find a way to straddle that fence between the two. Open Source is not the complete answer to this problem ( its part of it tho).

  • So, API developers have the responsibility to provide for developers.
  • Tool developers (closed or open source) have a responsibility to provide the tools in a timely fashion.
  • And developers have the responsibility to have reasonable expectations for what they want supported.

This is a large and deep problem in the world of web API’s. They don’t have to be Just JSON or Just XML or Just HTTP POST or Just XML-RPC or Just SOAP or Just WSDL. This collection of formats and standards can co-exist.

And co-exist they should. An API should be available to the widest possible cross section of developers, to respect the individual skills that these developers have acquired of years and decades.

Because when you don’t do that, when you don’t respect that, you make people like Dave Winer stop coding against your API.

Scobles’ Molecules of Infomation

Devotion to Duty

Scobles’  molecules of information post reminded me of something. Blog posts are the original molecules of information. A blog post is a place to bring tweets, pics and youtube videos together. Since blogging took off, we have a host of new tools to add to the army knife. We have foursquare check-ins for example. they provide an awful lot of context to location sensitive tweets.

Thats why I’m sharing this here rather than going straight to Friendfeed and Twitter. 

I commented on Scobles’ post:

Er, Scoble. You can tag tweets. Its called hashtags. What we DON’T have is the ability to search and mine that information.
Friendfeed has hashtags as well. And FF has a far more power search engine for all these little atoms of information.
Friendfeed is way ahead of you. They show you related items.
The future is here, its just not evenly distributed yet.

To which Scoble replied (Disqus comments with replies are awsome, BTW)

Nice try. Hashtags are NOT tags. At least they aren’t anything like the tags that Flickr photos have. FriendFeed does NOT have tags. It has comments. Not the same again. Not even close. FriendFeed’s related items? They are to remove some duplication noise and that feature doesn’t work anywhere close to as well as a human curated system would. Try again.

To which I responded:

Robert, hashtags need a systematic engine for them to work as actual
tags. Twitter should add this.

But nonetheless they provide a way of categorising tweets. Tweetdecks
tweet filtering works primarily due to hashtags. For events, for
example, hashtags are brilliant.

Friendfeed related items link may primarily be for noise reduction,
but this functionaity could be greatly extended. Comments are content
as well, but quite often they provide context too. See Jesses’ FF3.0
FF posts this morning for an example. Where links between FF items are
posted in the comments.

If this were extended to solidify the relationtionship between items
beyond simply showing the items linking to the same page, we’d have
your information molecules.

The sum total of tweets, posts, videos, foursquare check ins, you name
it about something often ends up providing more context than any one
single service or method can provide.
Typically speaking blog posts have filled this need for creating
context, collateing all this related information together in a single
article. This tweet, that twitpic, this video. The first instance of
an information molecule.

As noted above we already have been manually adding in links between
related content. Geolocation services have always created information
molecules, combining tweets and google maps. In like manner, the
services concerned need to solidify these methods for other types of
information.

What do you think?

To Each His Own RSS Reader

So there’s a bit of a thing going on here where Robert Scoble is now using Twitter Lists for his RSS feeds.

I take issue with this, but I’ll say right now: to each his own RSS Reader.

Twitter is the online manifestation of the local coffee shop on a sunday morning. Why? On a sunday morning, people are reading the sunday papers. Again to each his own paper.

What happens when one guy finds a good article – he shares it. So the paper gets passed round for people to read the article. I chose sunday for a specific reason – Sunday papers have the most insightful analysis based on a whole weeks worth of events.

Similarly on twitter, links get passed around for people to read becuase they are worthwhile reading.

Hence, i don’t have to follow every single twitter account, just those that pick out the most interesting or relevant news. The news will find me, where ever I am.

Blogs too will engage in similar behavior. At a much smaller scale tho. But a blog will not simply regurgitate the link. A blog will more often than not, provide some context about that link. By way of a response, a rebuttal, an agreement or adding fuel to the fire. Again, the news will find me where ever I am.

Friendfeed is a shining example in this regard. Its friend of a friend feature is something that Twitter retweets does not quite replace. Again, this allows the most relevant and talked about news show up in my stream – even if i’m not subscribed to that person. But this is based on a) the number of likes and b) the number of comments and c) how recent the last comment is.  This provides an awful lot of context to digest.

The usefulness of the FoaF feature cannot be understated. I’ve seen threads that go on for months, with comments constantly providing new information and developments. This is something that blogs rarely, if ever, do.

If you want more on Freindfeed versus Twitter and What Scoble has to say about it, Jesse Stay wrote a brilliant article here: http://bit.ly/5oZm1I

The news finds me where ever I am.

Lets go back to Twitter. Let me ask you this: How much context can be passed around in 140 characters, minus the link???

Granted, watchers of my tweet stream will see me posting Google Reader Shares that have exactly that. But you will also know that I will take the time to manually share a post with a recommendation.

I have a fairly modest amount of RSS subscriptions. About 250. Yet most of the news that is out there, I get.

In contrast, Scoble has 500 brands in his tech-news-brands list. There is a lot of duplication. In twitter, you get bombarded by it. So far, since i started writing this post, 106 new tweets have landed in the list.

In the world of RSS we handle mass duplication by picking a select few outlets. We handle it the same way with newspapers – we buy the same newspaper all the time. I buy the Sunday Times every Sunday. Why?? Because its a respectable news outlet, whose commentary I enjoy. Its rather like subscribing to Endgagdet rather than Mashable because I prefer the jokes.

Then there is the tech-news-people list. Which is people like Ryan Block of gdgt etc. As I memorably said to Scoble earlier today:

Capture

I don’t. There is a reason that I have a ā€œcomicsā€ category in Google Reader.

Scoble has solved this problem by having a brand news list and a people news list. How practical is this solution?? It depends on how many screen you have  to watch twitter on. Now Scoble tells me that he was using his iPhone at the time of this particular exchange.  Scoble has 40 lists as of time of writing. How practical is this?? Hold that thought.

So what is content?? Is it tweets?? Clearly not since tweets simply point elsewhere.

If you click on my google reader links in my tweet stream, you’ll notice it takes you to Friendfeed first. This actually an option you can toggle. So i could make the short link take you straight to the source. I’ve pondered many times if I should do that.

But the Freindfeed post together with the likes and comments is almost like a crowdsourced op-ed piece. It is CONTENT.

Now lets compare that experience with feedly.

Capture2

(Yes – that is feedly running in Chrome)

Which is the better experience??

Since we’re talking about Tech news:

Capture3

Lets compare this to one of Scoble’s lists:

image

To make this a totally fair fight, lets use Google’s Reader’s Sort By Magic function:

Capture4

Which way of reading RSS feeds brings you the most value??

Which tech stores or highlighted the best here??

Of the three ways, I prefer Feedly.

image

As you can see, at the bottom of every post, feedly includes this summary of the article’s impact around the web.

At a glance you can see exactly what people are saying about a particular article. Once Twitter Retweets are included, this feature is going to be even more useful.

Reading RSS isn’t just about following masses of feeds or people, its about following the right feeds to get the good. A gold mine is only as good as amount of gold that is reachable. If you can’t get the gold, you may as a well not dig the mine.

We may disagree on this Scoble, but there is more than one way to do it. You may find that it suits you, but thats not the way the rest of us feel. Even if we count ourselves as part of the early adopter crowd.

Twitter Lists may be the latest shiny newfangled thing on the interwebs, but it will take time to use it to its full potential.

Its WordPerfect  all over again – just becuase we have 150 fonts does NOT mean we need to use all of them in the same document. Just because we have Lists does not mean we jump our RSS ship.

To each his own RSS Reader.

Why I said that.

Capture

(me being modest as ever šŸ™‚ )

Those of you who follow my twitter stream would have seen the above tweet a few hours back.

I’ve been finalizing what I’ll be doing for my honours year project (Computer Science) and that’s what the tweet is referring to.

I’m penning this post because it comes down to one thing: knowledge.

I took up RSS reading about 5 years ago and never looked back. Over that time I’ve spent countless hours read blogs covering every corner of the tech world. If i hadn’t spend that time, I would not have the foggiest idea what to do for my project.

While all my fellow students are sitting there going ā€œaw shucksā€ (or, in the funnier version ā€œeh, whats up doc??ā€ šŸ™‚ ), I’m planning in detail.

So I’d like to thank everyone of the authors of the blogs I follow for their time, dedication and inspiration. It would be impossible to name them all here.

More recently, twitter has become a valuable resource in connecting with other devs and getting questions answered. Those devs I correspond with regularly, you know who you are. And I thank you.

As academic restrictions permit, I may or may not be able to share project details.

In the mean time, back to work.

PS. For those of you following my work on whs2smugmug, I will do what I can in between. Note I have set up a twitter feed (whs2smugmug) and a friendfeed stream (here)

Update on WHS2SmugMug

Back in January i said I’d get back to writing this Windows Home Server Add-In.

Its now June, 6 months later.  For 3 of those months my camera was back at Nikon being repaired. So I took exactly zero pictures during that time. Its now back and I’m bracing myself for the flood of pictures. I carry 26Gb’s worth of memory cards with me, so I nearly always end up over doing it.

Which brings me to the Add-In. I’ve set up a Codeplex page here. And I’ve made a few check-ins. This is not even pre-alpha code. Let me explain.

A few weeks ago, I asked, via Twitter,  Omar Shahine if I could use his Smugmug Uploader code. now I’m a great fan of the Uploader. I’ve used it for every single uploaded to SmugMug.

So Omar kindly emailed me his code.

So what you will find in the Check-ins, should you be brave enough to take look is Omar’s back-end code sans any UI as part of a WCF service. The WCF service is hosted by a Windows Service (imaginatively called ā€œUploadServiceā€). My plan ( cunning or not) is to have the UI in the Console communicate with the uploader process via WCF. There are other methods, but WCF gives me incredible latitude when it comes to moving data back and forth.

So the Home Server Console tab will simply be a UI for uploading stuff. Instead of Remoting in and using Omar’s uploader. This is an intermediate goal.

My ultimate goal is actually to have a ā€œSmugmugā€ folder and under it a folder for every Smugmug Album in your account. the above mentioned service will monitor those folders for changes and replicate those changes to Smugmug.

So I’m building now with such a convoluted architecture with a view to where i want to get this Add-in to.

So hopefully I can get the Add-in working soon.

I’m a pretty good test case for this, but I will need testers for it.

Watch my twitter account or my FriendFeed account for updates šŸ˜‰

PS If you’re asking why I’ve not moved blogs yet, I’m waiting for the next Oxite Release first.

Blogging: I need my Mojo back

 

Blogs still have a very important place in the on going conversation. There is no medium quite like it, not even Friendfeed. Like books, blogs are the long form, the canvas on which we write our longer thoughts. Whether we use it for venting or ranting, commenting or telling or just plain writing, blogs are the corner stone of the online presence.

The one blogging tip I’ve consistently found is the ā€œstick to itā€ rule: find your subject and stick to it. Which, in all honesty is not something I’ve done very well with this blog. There is so much to talk about and comment on and just plain only chat about that it can be easy to lose your focus :).

This is partly due to the fact that I only joined Twitter and Friendfeed recently, both of which are better for the kind of wide ranging discussion i enjoy.

And its also to do with the fact that, originally, this blog was set up at the drop of a hat, without any thought as to where it would go and what I would be doing online. It was almost an experiment with this newfangled thing that had come along. The whole idea was to witness the internet from the driving seat, rather than from the RSS feeds. This was at the dawn the of the social networking age, before Twitter and Facebook. Before a lot of stuff.

But I digress.

So what is my focus?? All things technology related. But as you can see, everyone else covers this far better than I ever could. Politics is too much of a heated subject for me blog about. Photography, one of my new passions in life, and programming (the passion), and music (the classical kind) and books (I joined Goodreads the other day).

My online presence at the moment is spread throughout Twitter, Freindfeed, Delicious and Smugmug. I’m seeing more and more people moving to bring these strands together in one site. This is perfectly logical and its the right thing to do.

A new site, a new blog, a new platform seems to be what I need. Sometimes I think setting up a WordPress blog is a little too easy. When you put the time and effort into the creation of something, you regard it totally differently.

So that what I’m going to do – set up a new site, part of which will include my blog.  And it’ll be me on the web, a personal presence tying together all of these desperate strands. Kind of like Austin’s Jet:

So I’m on the lookout for a new platform on which to run it. .Net is the preferred option, mainly because I can code it. I’ve looked at Oxite closely and the more I play with it the more I like it.

Why the effort?? You see, I enjoy writing. I really do. I don’t have English teachers after me for essays, or books to write. So writing a blog is the next best thing (maybe THE best). There really isn’t any other medium like it.

Now this particular blog will remain. No doubt I will find some use for it, but all that info is staying on line šŸ™‚

I will continue posting here till things are sorted out, its probably some time away in any case.

Tweets of the Week

Here they are. Hope you like them.

Scott Hanselmanshanselman RT @carlosfigueroa: #MIX09 MVC actually stands for Model-View-ChuckNorris. Controller is just one of his nicknames. about 16 hours ago from TweetDeck

Scott Hanselmanshanselman RT @blowdart: #mix09 List<ScottGu> throws an exception – there is only one ScottGu. about 18 hours ago from TwitterFon

Yuvi Pandayuvipanda RT @codinghorror (Twitter): "Klingon programs don’t do accountancy. For that, you need a Ferengi programmer." about 19 hours ago from TweetDeck

Wil Wheatonwilw Things I didn’t expect to see when I woke up today: 4714 people have looked at a picture of my socks. 51000 people are reading this. Um. 5:13 PM Feb 2nd from twitterrific

Loic Le Meurloic No, I won’t publish any seesmic videos of Bill Gates in #davos bathrooms, I promise 11:04 AM Jan 30th from TwitterBerry

ScottBourneScottBourne RT from @guykawasaki – If you have money and power, you choose Macintosh If you’re oppressed, you use Windows. 11:16 PM Jan 28th from web

Mona  N.Mona I think Napolean Dynamite smells like bacon. 7:54 PM Jan 26th from web

Brent SpinerBrentSpiner Ah, home again. Phoenix was very nice. Gee, Wil Wheaton. What a nice young man. What was I thinking…heh,heh,heh. 6:12 PM Jan 26th from web

Dave Winerdavewiner Facing facts: I am one of the most hated people on the Internet. 7:31 PM Jan 24th from web

Scott AllenOdeToCode 5 minutes of blinding snow followed by 5 minutes of blinding sunlight. I feel like I’m in mother nature’s test suite. 3:17 PM Jan 24th from Witty

There you are.  Some are funny. Some are true. It just my sense of humor.