Archives for July 2007

Hell is mobile phone operators

Okay so it sounds like I probably want a Nokia N73 and probably on T-Mobiles Flext 25 + Web & Walk. I'm not entirely convinced by 3 or the X-Series pitch and W&W seems ideal. However I am not prepared to take an 18-month contract. I really don't like the way that's heading.

It seems like this switch might actually end up cutting my bill since I often end up paying for a lot of non-inclusive minutes with my current Orange contract and will get data as well. It seems I have little to lose by finally ditching Orange. I've stuck with them because, broadly, I've never been convinced I'd get any less shitty service elsewhere but I suppose you have to set a threshold somewhere and I'm fed up of arguing with them.

However I am now embarking on a journey of discovery about PAC codes, delays, and overcharging.

To transfer my number to T-mobile will require a Porting Authority Code (PAC) code from Orange. Orange tell me this has to be despatched to me in a letter which takes up to 48hrs. Why? Company policy. If it doesn't turn up within about 3-4 days I can request the code be SMS'd to me, but they have to send the letter first. Why?

I can then take my PAC code to T-mobile and get a new phone. Then wait 7-10 days to transfer the number. I'm sorry?! SEVEN TO TEN DAYS? Are they transferring it by camel? Oh wait, that's not the worst of it... I still have to pay Orange for 30 days service from the time I request the PAC code. This means that if they pull their finger out and send me the PAC code within 48 hours and transfer the number in 7 days I will pay for 21 days service that I didn't use and couldn't use since the number had been transferred from their network. Why? Company policy.

I would say this leaves me with a very sour taste in my mouth but my mouth has already been so soured by years of this that my capacity to judge sourness has been impaired. It makes my thoughts wander towards what might be done to make life for mobile phone operators as unpleasant as they like to make it for their customers. Suggestions for how this can be achieved are welcome.

30/07/2007 18:07 by Matt Mower | Permalink | comments:
More about:

New phone blues

So I've gotten the idea into my head that I would like a phone with a decent camera and web browser. The Nokia N73 seems to be a decent choice with one caveat: like a lot of Symbian based phones it seems prone to dropping calls and other irritating glitches unless you are running the latest firmware.

I spent a few hours over the weekend trying to work out a decent package for an N73 with web and I'm hopelessly lost. I use Orange today but I would be quite happy to switch. I'm especially concerned that they seem to mess with the firmware of phones they supply. Would that get in the way of using the latest firmware from Nokia? I'm not sure if the other operators do this.

3's X-Series and T-Mobiles web & walk seem appealing although they have so many caveats and clauses that it's hard to work out what you're really buying. X-series in particular seems to be bonding you to specific applications. I don't use Windows Live Messenger nor do I have any wish to. Just give me IP please. I also object to this unlimited nonsense.

Sidebar: We all know that unlimited is short for "unlimited subject to a fair usage policy that means it's effectively (if you're lucky) 1gb per month before we cut you off" so why not just advertise it as 1gb per month?

I think the reason is because if you begin to advertise how much data you are offering then it becomes an element of competition. I sense that there is some kind of data cartel operating where supply is deliberately constrained and priced are hiked. I realise that there are constraints in the network but without competition where is the impetus for these companies to innovate and improve their networks?

I complained to the Advertising Standards Agency that this was, at the very least, misleading but they said they wouldn't act because a companies website was not considered to be an advert. Really? Pathetic.

I've got no experience of anyone other than Orange. Orange's basic service has been reliable but, as a company, they are useless and annoying. They bill me for services I asked to have removed and then won't give me back the money. They also seem happy, against my express wishes, to provide my details to every one of their resellers who then feel free to call me at any time and pester me about upgrades. I really want to stop giving Orange any more of my money.

I'd really be grateful if anyone could give me a recommendation for a provider who are likely to offer good service for the next 12-18 months with a usable and reasonably priced data plan.

Can you help me out?

30/07/2007 12:00 by Matt Mower | Permalink | comments:
More about:

Mid-life crisis came early this year

I'm not sure if I should be worried or not. I've just been playing with my new gadget (after waiting overnight for it to charge up) and it's great, I keep thinking of new places I can use it. Is it a camera phone? No. Is it a GPS? No. Some kind of personal FMRI scanner? I wish! No it's my new Dustbuster Pivot hand-vac! It's powerful, gets into the crevices, and convenient to empty. What's not to like?

Well the Black & Decker website for it does suck pretty bad. It's a typical example of Flash bling over usability. It takes ages to load, is unintuitive to navigate, and some of the "pages" didn't seem to work for me at all. Still what the website lacks the product more than makes up for.

Now, in order to restore my geek cred, I should stop looking at utility belts and start choosing my new camera phone...

30/07/2007 11:00 by Matt Mower | Permalink | comments:
More about:

The iStockPhoto swindle

I've seen others write about this so I knew, sooner or later, it would be coming:

This message is a friendly reminder to you that iStockphoto credits expire within 1 year of the date of purchase. You have credits in your account that will expire in the next 90 days if not used:

Thank you so much iStockPhoto for your friendly reminder that you are about to put your hand in my pocket and help yourself.

As an occasional user of stock photos I thought that iStockPhoto had a good selection and reasonable search & navigation and that the price wasn't too bad. All in all I guess I was a happy, if low volume, user of their site.

But tell me how does a credit just go and expire? What kind of low-quality credits are these people using? Or is it that their database is whithering away faster than they can shore it up. I imagine desperate scenes in their datacentre as they race against time to rescue as many credits as they can!

No, I can't think of any legitimate reason why my credits should "expire" other than as a means of stealing value that rightfully belongs to me. What kind of company feels the need to steal from its customers? In my view a reputable company would not "expire" my credits or, if there is some legitimate reason for the expiry, refund me the cash equivalent of what I paid for the unused credits.

See me give money or recommendations to this company now.

30/07/2007 09:16 by Matt Mower | Permalink | comments:
More about:

Your primary learning style is: The Auditory/ Verbal Learning Style

I took the DVC Learning Styles Inventory test:

The results of 's learning inventory are:
Visual/Nonverbal 20 Visual/Verbal 24 Auditory 26 Kinesthetic 14

Your primary learning style is:

The Auditory/ Verbal Learning Style

You learn best when information is presented auditory in an
oral language format. In a classroom setting, you benefit from
listening to lecture and participating in group discussions. You
also benefit from obtaining information from audio tape. When
trying to remember something, you can often "hear" the way
someone told you the information, or the way you previously
repeated it out loud. You learn best when interacting with
others in a listening/speaking exchange . 

Strategies for the Auditory/ Verbal Learner: 

Join a study group to assist you in learning course material. Or,
work with a "study buddy" on an ongoing basis to review key
information and prepare for exams. 

When studying by yourself, talk out loud to aid recall. Get
yourself in a room where you won't be bothering anyone and read
your notes and textbook out loud. 

Tape record your lectures. Use the 'pause' button to avoid taping
irrelevant information. Use a tape recorder equipped with a 3-digit
counter. At the beginning of each lecture, set your counter to '000.'
If a concept discussed during lecture seems particularly confusing,
glance at the counter number and jot it down in your notes. Later,
you can fast forward to that number to review the material that
confused you during lecture. Making use of a counter and pause
button while tape recording allows you to avoid the tedious task
of having to listen to hours and hours of lecture tape. 

Use audio tapes such as commercial books on tape to aid recall. Or,
create your own audio tapes by reading notes and textbook
information into a tape recorder. When preparing for an exam,
review the tapes on your car tape player or on a "Walkman" player
whenever you can. 

When learning mathematical or technical information, "talk your way"
through the new information. State the problem in your own words.
Reason through solutions to problems by talking out loud to yourself
or with a study partner. To learn a sequence of steps, write them out
in sentence form and read them out loud.

I have always known that I was slightly biased towards the auditory rather than visual senses. Their lecture taping strategy is pretty sophisticated, I never quite managed to tape my lectures last time around. I think I'd try harder in the future. I certainly do prefer learning with others and learning while performing and/or teaching.

What's missing here are strategies for coping with the inevitable situations in which you have to deal with visual/spatial information.

23/07/2007 09:31 by Matt Mower | Permalink | comments:
More about:

Transference launched

Diffly took me, on and off, about three months to write. It was my first Cocoa app and I made a lot of mistakes and took quite a few wrong turns (most notably not starting with a Cocoa document architecture). By contrast my new application Transference has taken about a week, on and off, and was a much smoother project although I am beginning to question the wisdom of not using the Document architecture this time as well.

What is it? It's an alternative to Finder for something I do a lot of: copying and moving files.

Drag and drop is a marvellous thing but really Finder can be a pain to work with sometimes. Having to have multiple windows open, dragging the wrong things, losing selections, difficult selections, finding the right file, disappearing windows, the wrong folder springing open, Finder switching to another window after you drop, and so on, and so on. It seems Finder has myriad possibilities for making life awkward.

I tried PathFinder but where I was looking for simplification the guiding principle of PathFinder appears to be "more bells, more whistles." I'm sure it's a great file manager but it wasn't what I was looking for. Then it struck me that this was the kind of problem I enjoy solving and I needed more experience writing Cocoa applications. The end result is Transference:

Transference in action

It's a two-pane file copy & move utility. What it does it makes dead simple. What it doesn't do it leaves to Finder (although, inevitably, I am sure it will acrue some useful functions over time). The main features are:

  • Type paths right into the interface (and get path completion with F5 or Escape). It keeps a comprehensive history of source and destination paths that you can pick from. You can also browse, switch source & destination, etc...
  • Filter immediately. The interface has a search filter built right in to immediately narrow down the files you want to work with (in the screenshot you can see I am restricting it to files with a ".m" extension).
  • Sticky selection. Multiple selections in Finder is tricky at best. Transference uses checkboxes to select which files will be transferred.
  • Nothing else gets in the way!

The end result is that Transference is a lean, mean, file transferring machine!

Once again I am using Andy Matuschacks excellent Sparkle library to do automatic updates. I have also made Transference an open source project under the liberal MIT license and it's available right now from Google Code. If you try it, I hope you find it useful. If there's something missing let me know or, send me a patch :-)

08/07/2007 18:38 by Matt Mower | Permalink | comments:

Automating Sparkle deployment

As I've mentioned before Sparkle is a great auto-update framework for Cocoa applications. I use it in Diffly and I'm going to use it for Transference too. I've also managed, more or less, to automate the deployment process. Here is what I do and I'd welcome any suggestions for improving it.

The first step is building the .tgz archive Sparkle will update from. I used to do this by hand, then I figured out I could use an XCode run script build phase to create an archive but couldn't figure out how to get the version info so I had to rename it by hand. A few days ago I realised I could use Ruby for the build script (by changing the executable path from the default of /bin/sh) and using Ruby it was easy to get the right name. (I realise you could do this with a shell script but by bash-fu is weak). Here is my build script:

APP_NAME = ENV['TARGET_NAME']
BUILD_DIR = ENV['TARGET_BUILD_DIR']

Dir.chdir( BUILD_DIR  ) do
    app_path = "#{APP_NAME}.app"
    plist_path = File.join( File.expand_path( app_path ), 'Contents', 'Info' )
    version=`defaults read #{plist_path} CFBundleVersion`.chomp
    tar_name = "#{APP_NAME}_#{version}.tgz"
    command = "tar czf #{tar_name} #{app_path}"
    system( command )
end

After XCode has built the application this script is invoked and pulls the version information from the Info.plist file then builds an appropriately named archive. So after clicking build I end up with the application and also Diffly_1_0.tgz (or whatever the version happens to be) ready to be uploaded.

The next step is publishing the archive and it's Sparkle appcast feed. The appcast feed is an RSS feed that contains release information and enclosures for the app itself. Diffly reads this feed when it starts up to see if there is a new version available. Building and publishing this feed is admirably handled for me by Feeder from Reinvented Software.

I just create a new item in my Diffly feed, point at the archive file on disk, copy in the release notes then click publish. Feeder does the rest.

A new item in Feeder

The last step is to run Diffly and check the auto-update proceeds and that the new version works. I think my next task is to add a beta appcast feed and a toggle (a la TextMate) so that I can push new changes to the more adventurous without risking breaking things for everyone. With only one feed it can be unnerving to release a new feature through the appcast.

08/07/2007 15:03 by Matt Mower | Permalink | comments:

Whither net neutrality?

Jon Husband writes links to a piece about the FTC declaring a "free for all" and what consequences there might be when telcos can openly prioritize traffic they charge more for. A couple of things occurred to me:

  • This is in the US, I'm in the UK. Do we have any kind of "net neutrality" here? If not, what impact has that had on our internet?
  • If regulation (government interference) is bad, why is net neutrality regulation good?

Okay maybe most people don't start from an assumption that regulation is a bad thing. But, to my naive perspective, regulation seems to imply monopoly at work. I haven't thought it through too carefully but I am bound to think that attacking the circumstances that permit monopoly power is a better solution than trying to keep them at bay.

We have regulation in the telco market and yet Telco's are some of the worst companies you can imagine:. ponderous, abusive, famously contemptuous of customers. Regulating these beasts seems a bit like offering aspirin to a man bleeding to death.

Take broadband. My own situation is that I get 1mbps ADSL provisioned by BT with Nildram as my ISP. I can pick any ISP I like, more or less, but BT is my provider whichever one I pick. A little under two years ago I had 8mbps cable from Telewest. You can imagine how thrilled I am with ADSL but I have no other reasonable choices. And I live less than 30 miles from the biggest city in Europe in an area steeped in high tech & IT.

06/07/2007 10:38 by Matt Mower | Permalink | comments:

Toolbars galore

I pushed another auto-update of Diffly to version 0.8.3. It contains a few more small, but meaningful, improvements. The most obvious is new buttons on the toolbar for selecting & deselecting files (to go with the keyboard shortcuts) and a toolbar field for filtering which changed files get displayed. This is something I've wanted for quite a while when working in a working copy with a lot of changes.

Note that updating alone may not get you the new toolbar items because toolbar configuration is saved as a preference. If you don't see them hit the "Customise" button on the toolbar and either drag the individual items or the default set onto the toolbar. After that you should be set.

There are also two more subtle improvements that, nevertheless, make Diffly a little nicer to use. In previous versions when you added or reverted an item it refreshes just that item. For things you are reverting this never made sense at all because, after being reverted, the item no longer has any changes and shouldn't show up at all! It wasn't a problem per se but it looked unpolished. Worse was when a folder was added. Subversion automatically adds everything inside the folder too but none of those items would show up, you had to manually refresh to get them, from 0.8.3 onwards you won't.

Assuming none of the auto-update guinea pigsusers report any problems I'll update the website version over the weekend. I also plan to do a screencast and maybe even write some help. Talking to people has demonstrated that, basic as it is, Diffly could still stand to be a little easier to figure out.

I have just one more feature that I plan to add before I call it 1.0, I want to be able to hide files with changes. Sometimes I make a change to a file knowing that I'm never intending to check it in. Yet the file still appears in the changes table which is a distraction and there is the risk I might check it in by accident. I think Subversion even supports this through the [Global Ignore] runtime option so it ought to be easy to add. One wrinkle is that I want it to notice if the file has been changed since it was added to the hidden files list in case I made a new change that I do want to check in.

I've registered another Google Code project for Diffly. I think 1.0 would be a fitting time to make it open source.

05/07/2007 23:23 by Matt Mower | Permalink | comments:

Are comments part of relationships?

Just a thought but we've been talking about relationships, content, and I wonder if comments - which are still a problem - might be solved as part of this problem?

We're talking about a client, or a service, that allows us to establish relationships with each other and maybe, in due course, attach metadata like trust to those relationships. Might this allow us to create a distributed solution to comment tracking (a la trackback) that isn't prone to spam problems?

Dunno, just musing.

05/07/2007 14:25 by Matt Mower | Permalink | comments:
More about:

Incrementalists vs. Completionists

Joel Spolksy has a good article on management books in which he quotes Michael Lopp:

The disagreement reminded me there are two distinct personalities when it comes to devising solutions to problems: Incrementalists and Completionists.

Incrementalists are realists. They have a pretty good idea of what is achievable given a problem to solve, a product to ship. They're intimately aware of how many resources are available, where the political landscape is at any given moment, and they know who knows what. They tend to know all the secrets and they like to be recognized for that fact.

Completionists are dreamers. They have a very good idea of how to solve a given problem and that answer is SOLVE IT RIGHT. Their mantra is, "If you're going to spend the time to solve a problem, solve it in a manner that you aren't going to be solving it AGAIN in three months."

I think the discussion that Paolo and I are having about Ring is neatly framed by this division. Paolo is, I think, a classic incrementalist and I am a classic dreamer completionist. If I've changed over the years it's that I've realised (due in no small part to acknowledging the things that people such as Paolo and Dave achieve) that I am a completionist and how much it colours my judgement. Realising that makes it easier to compromise.

05/07/2007 13:42 by Matt Mower | Permalink | comments:
More about:

Well worth $1m extra pounds of my money

I use TheyWorkForYou.com to track what my MP, Theresa May, says in Parliament. For example she asked a question about bonuses for Home Office civil servants, here is the answer:

2002-03 - 115 out of 185 SCS staff received performance bonuses. The total costs were £463,552.
2003-04 - 138 out of 215 SCS staff received performance bonuses. The total costs were £672,409.
2004-05 - 180 out of 219 SCS staff received performance bonuses. The total costs were £1,187,000.
2005-06 - 158 out of 232 SCS staff received performance bonuses. The total costs were £1,071,118.

I assume SCS means "Senior Civil Service". Given the stellar performance of the Home Office in recent years it seems only fair that 70% of senior staff should be rewarded with large bonuses taken directly from my back pocket.

05/07/2007 12:05 by Matt Mower | Permalink | comments:

Ring platforms

No, not the things from Stargate but what Ring does.

I've recently read and enjoyed RESTful web services. It's not the kind of book where I walked away, shaking my head, a changed man. But it is a warmly informative book that talks a lot of sense and, at some point, the notion of what REST puts back into the web has sunk in.

There used to be a whole bunch of people doing data storage with a bunch of different web sites offering different kinds of interface for upload files and settings ACL's and so forth. Then Amazon came along with their S3 service and changed the rules. S3 created a platform for controlling arbitrary data with a simple RESTful API for storing, retrieving, and managing that data. They didn't care what the data was and they created a uniform interface for working with it charging by volume stored and transferred.

From this simple seed a thousand storage based ideas and applications have bloomed.

Isn't this exactly the kind of thing we are looking to happen in the SNS space? At the moment it is dominated by a bunch of big players who are, sooner or later, going to be owned by big media companies. They have little interest in working together or giving you ownership of your identity or relationships. By and large an API's, if it is provided at all, is a means to create sub-applications to further lock you in, not to open the walled-gardens.

I envisage a Ring service doing to SNS what S3 has done to storage, creating a fertile new ground. The Ring service would allow people to store and manages identities and relationships whilst being agnostic about those identities and relationships. It would provide a uniform, RESTful, interface that would allow any and all applications to play. Any walls in this garden would be those erected by users, around data that they think is sensitive not barriers to interoperability and profit generators.

Let profits come from building useful applications on top of this platform. MySpace, Facebook, they can all come and play here: if they have your best interests at heart.

05/07/2007 10:19 by Matt Mower | Permalink | comments:

Ring clients and Ring servers: ownership and trust

I'm still reflecting on Ring and the role of client and server in a possible Ring solution. Ton Zijlstra has the hots for a client-based approach as he says in a comment:

I find I favour a client, not a webservice. It seems more fitting to have the Ring to rule them all in my pocket. Not stored in the vault of some jeweller's. I want to own my data, especially this type of network data (even more so if the relationship data is granular like you describe: don't want Google to datamine that!), and provide access myself.

It's a completely reasonable point of view. I want to own my relationship data too. There are some issues with it though which seem to hinge on some kind of push-based approach to existing SNS's. That's okay for those that provide any kind of decent API I guess. Something that worries me is that, in essence, it seems to perpetuate the walled-garden approach. You'll be writing endless plugins for one service after another assuming they bother to let you in at all. Ask yourself this: Amazon have had an API for years but who owns your purchase history?

What I had in mind was something that creates a new space for our relationships to exist in. By defining a space for relationships as a kind of abstract social network to which any application can get access and (with the individuals permission) see someones relationships. The permission aspect is critical to avoiding Ton's no-no situation of Google indexing his relationship metadata. Of course what's to stop Google and Facebook doing a deal to index your relationship data now Ton?

I completely agree with Ton that ownership of the data is vital. My ideals at PAOGA were just the same: individuals own their data, we act on their behalf and in their interests. Same thing for any Ring service: the individual owns their relationships, Ring acts on their behalf. In my mind I imagined that service that would designed to be a commodity: a kind relationship ISP if you will. But an ISP of the old school: providing access but not looking to make a buck off the content.

The individual owns the data about his relationships and can change it, or take it away at will. The service doesn't try and compete with SNS applications on functionality built over relationships. I think there are three keys to making this kind of service a reality:

  • It should be run by a non-profit foundation with a charter that protects it from becoming a corporate asset some day
  • It should have a board of trustee's who can make that work
  • It should be funded by subscribers and donors (but it's a non-profit remember)

With a trusted service available we can shift the tectonic plates of the SNS world and create some new opportunities.

Note that I'm not opposed to the idea of a client in principle and I do see the possible advantages. It's just that I also see so many disadvantages. The entirely push-based, API dependent nature I mentioned above being just one. Ton seems to think a client could avoid issues of ID:

Having Ring would also bypass the need for universal ID's or login's I'd say. When I list my accounts in my client, so that it can connect to each of these services for read/write actions I'm ok.

And how to do you map your contacts to those id's? I think this is just going to be a complete mess. Skype is a distributed client, but they have a central directory to allow one client to find another.

In fact from a client side perspective I think the opportunity is to bypass the existing SNS infrastructure altogether and make the client the network. Ring clients all pushing information and content direct to each other (with maybe some kind of lightweight locator service a la Skype) without the applications in between. Done right this would take the heart out of services like Flickr and Facebook.

I'm still thinking through the client angles. For example: is a relationship a shared resource with an independent existence? I see it somewhat like a child of separated parents, it can't live with both of them although both have a vested interest in it. With a service this is less of an issue because the service can surface the relationship indepdent of the individuals involved. But maybe that's the wrong way of looking at it.

It's all interesting stuff.

05/07/2007 09:31 by Matt Mower | Permalink | comments:

Diffly: now with keys!!

Okay so perhaps it's not that exciting but Diffly now allows multiple-selection in the file-table and has keyboard shortcuts for selecting & deselecting files.

Anyway it turns out a couple of the fellows at work quite like Diffly which is rather gratifying. They had a few suggestions one of which has been a glaring ommission that has bugged me too: it's painful, when you have a lot of files you want to check in, to click them one by one to select them. No more though! Back when I wrote Diffly I didn't know how to implement custom keyboard handling in a table so I left it. However it turns out that I figured this out for my new app, Transference, so on the train home I added it to Diffly. It's in release 0.8.2 which is available for auto-update now with disk image to follow. Also included is an improvement to the default stylesheet by co-worker Stuart Robinson.

At the same time I am pondering making Diffly open source. Keeping it closed wasn't because I figured to sell it but rather that - well - Diffly is my first Objective-C/Cocoa app and perhaps the source isn't everything it ought to be. However I am close to releasing Transference which will be on Google code so Diffly will probably follow in due course.

04/07/2007 21:28 by Matt Mower | Permalink | comments:
More about:

First there was tetris...

...then there was Japanese Tetris. My thanks to colleague Duncan Gough for brightening my day with that one.

02/07/2007 19:21 by Matt Mower | Permalink | comments:
More about:

One Ring to rule them all

Paolo outlines an idea he's had that he calls Ring:

Ring will broadcast to all your contacts your social networking status, letting you decide who will be notified what, and allowing your friends to subscribe to your old Flickr account or your new Twitter page with just one click.

Automatically generated "Action groups" will allow you to quickly invite your friends to a new service, or to find out who is already subscrbing. You will also be able to easily backup and migrate your contents from one network to another.

We've talked a couple of times since his Open Relationship Standards piece. This was an exciting post for me because it got me thinking about some ideas of my own that came up when I was at PAOGA and thinking about how personal information should belong to the individual. At that time I was articulating an idea I called Dataslots as a means for individuals to get a copy of information about them that arose during business (and any other) services. For example my "Amazon" slot would get populated with purchase history information, and so on.

I've been reading RESTful web services recently and I see an interesting parallels to the argument I was making:

For example I don't want Amazon to give me an API to lookup information about my book purchasing history with them. Or the Four Seasons to give me an API to update my room preferences. Or anything which is really about me.

The way I look at it API's are functional. The vendor says "These are the things I bless you to do." But those things may be considerably less than what is possible if I have access to the data. Data is king!

When I was saying "DataSlot" I guess I meant (although I didn't realise it at the time) "Resource" and my comments about wanting to own the data not be spoon fed functionality seem to be broadly inline with the Resource based (vs. RPC) argument. From here it is not a big leap to a resource based service for contact and relationship information. A service that allows the individual to define the rules for using their information and that applications can use to deliver advanced more advanced, domain specific, functionality. In essence making the social network into a commodity.

What I have in mind is a RESTful, Open-ID, based web-service for you to claim an identity that includes your contacts and your relationships with your contacts. Each identity is a resource, each contact is a resource, and each relationship is a resource. To each of these relationships can be attached arbitrary meta-data and meta-meta-data, enough to allow you to express rich relationships with your contacts. The service itself would have no functionality for things like "Will you be my friend?" requests leaving such things to end-user applications where they belong. Only the resulting data is of concern.

If two people assert a compatible relationship then that relationship becomes available as a shared resource. There may be rules around how that resource gets shared. For example "Paolo is my friend. This relationship is available only to other people we are both friends with." or "This relationship is public but certain sections of the relationship metadata is only available to other people with whom we are both friends." or "This relationship is public for Application A but not for Applications B, C, and D." We can imagine quite complex combinations of rules to reflect the complex ways in which we relate to others and them to us.

So, is this Ring?

In Paolo's post he envisages Ring as a client like Apple Addressbook. For myself I think more about the underlying service that would make such a client possible. What's key is that the individual be in control of how much (or how little) of their own information and the information about their relationships is exposed to different applications. So, in essence, I think what I am talking about is Ring. For which there may be many clients (ultimately you'd hope Apple Addressbook would be one!)

I see the clients of Ring being the social applications springing up around us. Any new application, leveraging Ring, could immediately have access to your contact information and, with your permission, your social network. Through a service like Ring your network really, finally, belongs to you. You make it available to an application or take it away as you choose! Part of the agreement for getting this information would have to be a bi-lateral clauses that stated that new contact information would go into the Ring and not be held locally (or only as a cached copy). A sort of GPL for relationship metadata.

I see Ring as a RESTful web service with a lightweight user interface for people to manage basic details and contact info if they aren't currently subscribed to a more functional service (e.g. I might choose to manage my info in Facebook for the most part). As Danny Ayers points out there is already prior art in terms of defining the data exchange formats. Maybe RDF is the right format, but even if it is there is still a lot of work to be done in defining something rich enough to make Ring a good service that will scale to the information demands of the next decade.

One other issue that Danny brings up is that there is already a lot of data out there. I'm not sure if he's angling to say that a distributed approach is a better solution to the problem of open relationships or simply that using existing formats gives you access to more data (Danny?) I guess I'm in favour of a single silo if it's my silo since I think that it gives me a better chance of keeping control over my data. However I think a philosophy about being liberal about what you accept and consume is a good one.

In a Ring based world Social Network Services would have to compete on service not on network. With Ring you can take your network anywhere. That will probably upset a lot of services and it might take some tectonic shifts in the marketplace to make this idea work. Nevertheless I think it could be interesting to get a prototype up and running.

02/07/2007 16:31 by Matt Mower | Permalink | comments: