Archive for the ‘Technology’ Category

Filtering the Blog Avalanche

Tuesday, May 27th, 2008

What do you do if you have subscribed to a bunch of blogs and feeds, but now find that you are inundated with an avalanche of information, only some of which is really critical? How can you sort and filter this information and add some relevancy?

Here are three techniques to consider:

  • Automated Manual Filters - online tools that help you filter blog posts by keywords
  • Aggregated Global Social Filters - online tools that rank posts in a blog by how the global population treats that post
  • Human Filters - online social tools that let you subscribe to posts filtered by friends

These techniques all offer a different type of filtering. Choose whichever suits your needs.

Automated Manual Filters

An obvious technique in adding relevancy is to filter out the irrelevant based on a keyword search. In other words, match each post within a feed against some criteria, and if there’s a match, either keep or remove that post.

feedrinse.jpgmys.jpg

I sometimes use Feed Rinse to do this, though there are other filters on the market such as mySyndicaat and more. You can even use Yahoo Pipes. So what does Feed Rinse do? (Feed Rinse is the most intuitive for the everyday blog reader, though I’ve had a few problems with Atom feeds.)

Essentially, it allows you to import your feeds (individually, or via OPML), apply filters to the feeds (only allow a post if it contains the words “Stephen Fry”, or only allow a post if the title contains “Wilde” and so on), and it then spits out a new, filtered feed that you have to subscribe to. This new feed will only contain items that match your filters.

This is an effective way to cut down on the extraneous material, and Feed Rinse tries to make it easy by allowing you to import en masse, apply filters to individual feeds, aggregate individual feeds into channels, apply filters to channels and so on. In other words, I could grab several feeds from various news organizations, add them to a channel, and apply a filter to the channel. The result would be a single feed that only contains items from across all the organizations that match the filter.

Aggregated Global Social Filters

A very different way to look at information coming from a feed is to filter it by ranking the posts within the feed and only viewing those posts that are “good enough”. In other words, instead of consuming the entire feed, you can simply subscribe to a percentage of those posts.

aiderss.jpgFor this kind of filtering, I use aideRSS. aideRSS uses what I call a global social filter - it looks at how the world is reacting to posts within a feed. For each post, it examines at least the following: its digg rating, how many folk tweeted the post, its del.icio.us ranking and how many comments were left on the post. You can then subscribe to a percentage of these posts by subscribing to the “good, great, best or top 20″ posts within that feed.

In other words, aideRSS filters the posts within a feed based on some ranking, and then presents you with a new feed that you have to subscribe to (that contains only those relevant items).

It’s a pretty nifty service, and though you may not want to use this kind of filtering everywhere, it’s an awesome tool to have.

Human Filters

greader.jpgA few blog readers such as Google Reader let you apply the nous of your local social circle to filter posts. In this form of filtering, you let your friends tag or flag or “mark as shared” items that they read in blog posts, and you subscribe to this shared feed.

It’s not ideal: there’s no way to rate an item based on multiple people, nor is there a way to share an item to a “shared feed” to which multiple people can post.

Nevertheless, this can be useful if you have a domain expert reading the posts anyway. He’ll be filtering, and if there’s prior agreement as to what he’s sharing and why, this can be very useful.

See the “Settings/Tags” menu option to set up or change sharing options in Google Reader.

(You could get into a more complicated scenario where you feed multiple human filters through a feed combiner, but that seems a little OTT. What we really want is a social aggregator.)

Postscript

I wish Google Reader or NetNewsWire supported additional features to help readers filter posts. For example, I can’t highlight blog posts that meet certain criteria, which I thought would have been a basic need. In NetNewsWire I can create a “smart feed”, but that’s not quite the same thing. Neither can I automatically filter out duplicates, which is an absolute drag, especially as I subscribe to feeds as well as aggregations of feeds.

There’s still a long way to go in filtering the blog avalanche, and I’ve seen surprisingly few client side features to help. Hopefully these three techniques will help you out while our blog reader clients mature.

Technorati Tags:
, ,
, ,

Building Offline Salesforce Apps with Google Gears

Friday, September 7th, 2007

“You’re on the road meeting a client at a coffee shop, flip open your laptop, and notice that there’s no internet connection. This doesn’t stop you connecting to your Salesforce.com web application and viewing account and contact information though, much to your client’s obvious surprise. While your end users have been able to use Salesforce Offline Edition to access CRM data in this disconnected way, now developers can use new offline technologies to make any of their on-demand applications work off-line.Google Gears lets you create Web applications that allow you to perform this conjuring trick. You can access these Web applications just as you ordinarily would, even though your internet connection is down. That’s because Google Gears is an open source browser extension that lets you create web applications that can run offline. It replaces the dreaded “404 page not found” message with a local database, a local cache and more.”So begins an article I wrote for Salesforce’s apex developer network. I wrote it a month or two ago, and it’s just been published:

It uses a boatload of interesting technologies: Ajax (via GWT), client side browser database (via Google Gears), RPC between the client and server (Google Web Toolkit), web services between the server and Salesforce.com (apache axis). I’d recommend Gears and GWT - they were a pleasure to use. Some APIs suck. These were intuitive; I hardly looked at the documentation…

Web 2.0 Meltdown. Someone please reboot.

Thursday, September 6th, 2007

There was a complete web 2.0 meltdown today. I needed to write a little blog post about Enterprise 2.0, and so I needed to point to some Web 2.0 stuff. The first meltdown came while trying to lookup a definition of Enterprise 2.0 in the hallowed library of web 2.0 itself, wikipedia. This is what I got:

I then tried to look up the very definition of web 2.0:

Not looking good. So I decided to rely on that poster child of the social aspects of web 2.0, tapping into the wisdom of the crowd. Yep, I thought I’d use twitter. This is what I got:

It really hasn’t been a good day at all.

Iniquitous social platforms - free my data!

Monday, August 20th, 2007

Scarcity power over your social connections is the lynchpin of many social networking sites. If only LinkedIn has the power to connect you to a business colleague, because that’s where your contacts, your social graph, resides - well that’s going to do LinkedIn a lot of good. If on the other hand you open your social graph, free it from the grip of LinkedIn (or Plaxo, or Facebook, or …), where does that leave the likes of LinkedIn? Will they be far less competitive without your social graph? Undoubtedly. Will Facebook? Perhaps not - Facebook has a platform built around the graph, which provide an abundance of additional functionality.

A while back I wanted a website where I can share and record books that I’m reading. After a few searches, I ended up on goodreads, which has a lot of nice functionality. Cool, I thought. Then I started experimenting with Facebook, and goodreads didn’t have any Facebook integration then so I started using “Visual Bookshelf” on Facebook. Great, now I could share the books I read with friends in my Facebook social network. And it works too. But in my excitement I forgot to check on something: can I export my data from Visual Bookshelf? The answer appears to be a resounding no.

This cuts to the heart of open data. This is what makes Visual Bookshelf iniquitous (I’m reading Wodehouse) - it is utterly unacceptable for a site not to provide export functionality of my data. Flickr does it, which is why I trust it with my photos. Okay, it doesn’t provide an export button, but searching for export in the help makes it clear how easy it is. Visual Bookshelf does not.What’s linking these two thoughts? I recently read this great article on wired, Slap in the Facebook: It’s Time for Social Networks to Open Up, damning the Facebooks and MySpaces for holding onto our data. Artur Bergman then pointed out the manifesto, Thoughts on the Social Graph, which makes a great point at explaining how these social networks, from Facebook to LinkedIn, are holding on to my social graph, and what you can do about it.

I think the problem area should be expanded a little, especially when social networks become platforms as Facebook has done. I want Facebook to liberate my social graph, but I also want the applications that I use on Facebook to liberate my data too. Trawling around goodreads, I found that they now have an API. So I’m in the process of dumping Visual Bookshelf and returning to goodreads, in the hope that they’ll make it dead simple for me to export my reviews in future, and that they fix their abysmal Facebook integration.But a question remains: What makes people so eager to use an application without thinking about the consequences of what it means to their data? Why do millions of people continue to store their book reviews in goodreads and visual bookshelf and Amazon?

  • Do they expect these companies to be around in a decade or two? In other words, do they expect permanence?
  • Do they expect that these companies will act in good faith and provide an export feature in future?
  • Are they not interested in the data? Perhaps they just want to express themselves now - if it’s temporary well that’s okay.

It’s quite okay to be in the temporary camp. My throwaway data may be your bread and butter; that’s okay.For those in the permanence camp and good faith camps - we need to do a lot more to ensure our data survives the company hosting it. Is it really too much to ask that our contributions to Amazon and LinkedIn and Facebook remain ours? Even if I publish my liberated book reviews on my own site, that’s not going to undermine the true value of Amazon (selling the book) or goodreads (aggregating my book shelves).I’m still willing to make use of these services, just let me have my data.

Learning Something New Every Day

Wednesday, August 15th, 2007

I follow the advice given by the Prags of learning a new (computer) language every year. Or rather, the broader advice of investing in yourself. So many developers are stuck in their old jobs, using the same old languages, solving the same problems using the same techniques. We work in an industry where knowledge and experience count for a lot. We also work in an industry that moves at a lightning fast pace. Learning something new broadens horizons, emphasizes connections and makes it even easier to learn that next language. Learning lets you stay with that wave, instead of falling behind it.It also lets you meet a whole bunch of people you wouldn’t otherwise have met, which was an unexpected benefit. This year I’ve dabbled in a few things myself, and every once in a while I manage to write up my little experiments in article form.

Mashups

I wanted to figure out what all the hype was about, so I started playing with mashups. In doing so, I also learned a little about software as a service, and a lot more about Salesforce.com. And I met a bunch of interesting folk over at Salesforce: Adam, Paul, Kavindra, Ron, Nick, Rick and more. I wrote up the result in a little article: Mashups: The What and Why

Adobe Flex

I met James Ward (self styled RIA cowboy) at the excellent JavaPolis conference in Antwerp a few years ago, where he tried to convince folk to start using Adobe Flex. Well, he succeeded. Flex is fun, and cured my aversion to writing client-side code. Building on that, I wrote another article: Creating Flex Salesforce Mashups.

Future

Right now I’m learning a little about Google Web Toolkit and Google Gears. They’re both fun, and have transformed the way I look at Ajax and web applications. As I find time, I’ll be writing up these too (in fact, I spent Sunday cleaning it up so it’s almost done). What next? Well, AIR looks interesting!

Practical Advice on Becoming a Better Blogger

Wednesday, August 8th, 2007

Part of my day job is working as a community manager consultant, and part of any community manager’s job is content creation, as Dawn Foster points out. Over on a Dev2Dev we have a burgeoning number of bloggers, and we want them to become better at it. So I wrote Practical Advice on Becoming a Better Blogger to guide bloggers in improving the way that they blog (and to solicit some feedback from the community).To summarize the advice:

  • Write what you know and Be yourself
  • Link Love: Read blogs, Point to relevant, related blogs, Write something that continues the conversation
  • Participate, leave comments
  • Promote your blog: Put your blog address in your email footer, blog interesting material instead of emailing it
  • Play Tag (technorati etc.)
  • Add yourself to relevant aggregators
  • Don’t worry too much about comments: Maintain a blogging frequency
  • Add images when appropriate
  • Preview your posts, check your links
  • Don’t fundamentally change the post

There’s more in the article.

Rebooting

Thursday, July 26th, 2007

This blog is rebooting, please adjust your settings. It’s going to take a while too. New purpose you see. Oh, it has a new feed address.I’m also hacking the theme - using the excellent Sandbox. It has the correct layout and elements right now, it just looks awful. Need to brush up on CSS - any handy Sandbox themes out there?

Status and Longevity

Friday, September 15th, 2006

Over on the Radar, Dale writes about Desperately Seeking Status. Dale’s a bit perturbed by the rather cold statement: “It never hurts to remind yourself of the business you’re really in: providing your customers and clients with status.” Though I agree, I also think that we don’t see enough conversation around this important topic.

As we enter the Web 2.0 era, where the social aspect of computing plays an increasingly important role, we need to see more social psychology and research being applied too.Much of harnessing collective intelligence is really also about groups and group behaviour. While Dale doesn’t think in terms of status, the majority of people do-perhaps unconsciously. We live in groups, and status within these groups and the hierarchies that we build are innately human things.

I’ve just started reading a fascinating book the subject: Michael Marmot’s Status Syndrome. Primarily a thesis about health inequalities, he provides some interesting research showing how our position with a hierarchy is reflected in our longevity. The social gradient in health seems to be based in our work and life circumstances-our social arrangements, status and position within the hierarchy.An example: Academy Award-winning actors and actresses live four years longer than their co-stars and the actors nominated who did not win. That’s a long time, and he argues that this is primarily due to their elevated status.

This health gradient is reflected in many different hierarchies (some overlapping): for example, income, amount of schooling, parent’s social classs. But, he argues, it’s not about how much money people have, but about two features of societies: hierarchies and cooperation, which he translates as how much control individuals have over their lives and how widely spread are the opportunities for social participation.

The knowledge economy has its own hierarchy:perhaps Tim’s alpha-geeks are nearer the top. If I learn more Ruby and Web 2.0 and mashups I will undoubtedly be improving my status within my group of peers. I am acquiring status skills, whether I like it or not. And if there’s any truth in Marmot’s research, I’m also going to live longer because of it. That’s a good enough reason for me.

The problem with mail is that messages aren’t intrinsically addressable

Sunday, July 9th, 2006

If we had URNs for mail items, we’d have a much easier time finding emails. Think about it. You can find the address of a web page, of a blog item, of just about anything that matters. But you can’t do it for a mail message. At least not in a way that’s useful. That’s absurd.It doesn’t matter what operating system you use: why can you not construct a list of email addresses (say in another email). Why can’t I point to an email message, right click, and select “Copy link” and then write “Hey Jim, you haven’t answered <paste>mailid:foobar” Surely it’s simple to do too? Doesn’t every mail message have a unique ID, Message-Id. On OS X, surely Mail can locate a message given an ID, and surely we can rewire the internals to recognize a different type of URN? We have “http:” and a few others, so how about “mailid:fooobar@zap.com” being a link, and if I click on it, Mail locates the message? And if the message is not there, give me a 404. What am I missing here? Doesn’t a sent mail have the same Message-Id as the received email? This would be so useful, there must be a reason why somebody hasn’t implemented it. Extensions could offer support for naming the attachment in a message too.What brought this on? I was playing with Kinkless GTD, following some of Merlin Mann’s excellent advice. Here I am organizing projects and actions and reference material. I can drag AddressBook items, spreadsheets, documents, you name it. Woo hoo. I can’t drag Mail items though. WT! This would be useful here, for programs like kGTD, but elsewhere too. Mail messages should be intrinsically addressable.Aside: If you’re interested extensions to Mail.app, check out Hawk Wings.

Every bug becomes equally important over time

Tuesday, November 8th, 2005

I was going to give some naff advice about “consider all common use-case scenarios very carefully before assigning a priority to a bug” before my left brain kicked in to tell me that “As the number of users of a product increases, so too does the number of use-cases. Every bug becomes equally important over time, as enough use-cases develop that intersect with the bug.” What led me to this was the following: I can finally consider switching to Firefox. Firefox 1.5 in particular. The reason? They’ve just fixed a bug that has prevented me switching. Essentially, if you navigated to a URL, and for whatever reason you couldn’t get the page loaded, a blank page would result (and an error dialog). The problem was that you couldn’t discover the URL of the page that you were trying to visit after the error.My browser usage pattern is to use tabs. I read a page, it may have several links I’m interested in, and so I open them on separate tabs and continue reading. When I’ve finished with my current tab, I kill it, move on to the next, and repeat. So if some pages don’t load…well, I’ve lost them. And that is unacceptable. It was also inevitable - until recently I lived on a 56k modem - timeouts, congestion, whatever. So now I can finally consider switching from Safari.What’s interesting is that this was not a show-stopper bug. But it was for me. It was probably not very interesting, technically, nor did it impact on many other aspects of Firefox. But it interrupted my usage pattern. It was a show-stopper for my common use-case scenarios.

Podcasting Project Gutenberg - LibriVox

Tuesday, October 11th, 2005

I’ve long been a fan of Project Gutenberg, and read many books that they’ve made available. With the advent of podcasting, it makes sense then to “acoustically liberate” these books. LibriVox is such an attempt. I think they need to automate the process a little more and let anyone contribute any chapter of any book (appealing to people’s personal tastes instead of waiting to find someone interested in the book du jour - reach the long tail). Next step: an addition to the iTunes directory?

Conferences and the Long Tail

Saturday, May 7th, 2005

The ETech’05 Keynote was pretty interesting. I enjoyed the patterns that Tim and Rael present, and I repeat a few of the them here, drawing a lesson at the end:

  • “Design for Participation” - success lies in small pieces loosely joined
  • “User-centered development” - great benefit to sharing efforts and processes with users
  • “Syndicate e-commerce” - glue together small pieces of others
  • “Users add value to shared data”
  • “Network effects by default” - make participation the default
  • “The long tail” - many of the limiting factors from the physical world are absent on the internet
  • “Software above the level of a single device” - design to integrate services across disparate devices
  • “Packets and shipping containers” - understand the packet size of the application domain, the most effective way to ship

Though I didn’t attend the conference, it appears to have been a great success and well presented - with a novel combination of information sources: Good speakers, great weblog coverage, articles, wikis, tags galore, flickr feeds, the Attention Stream and more. To me, all of these ways of presenting the conference follow on from the patterns. The conference itself seems to have been designed for participation, it’s obviously user-centered and devices like the Attention Stream syndicate other applications. The attendees added value to the conference, and almost all information sources were public and immediately available. Remixing was happening at almost all levels too: direct quotes from the speakers were blogged, thoughts, articles and interviews too. Awesome.I live many thousands of miles away, but could participate at some level. That’s phenomenal. I’d like to be even more involved next time, which makes me think back to some of the other patterns:

  • Above the level of a single device - at a conference, the device is the speaker’s voice and the attendee’s ears. So, how about making everything available to non-attendee’s ears too.
  • Packets and shipping containers - sounds suspiciously like “MP3 and podcasts” to me
  • The long tail - well that’s all the other folk that couldn’t physically attend the conference

Although there are now a few podcasts available, having them available after each speaker would benefit not only those present, but those abroad too. I hope that more conferences move towards the standards set by ETech’05, and beyond. Afterall, permitting the long tail to participate has been shown to deliver unprecedented rewards.