Archive for July, 2009

What if Facebook was done right?

Friday, July 31st, 2009

Facebook, good God, what is it good for? Absolutely nothing.

Well, that isn’t entirely fair. Consider for the moment if the Web as a whole was lke Facebook. Each Facebook ‘application’ was a website and anyone could create a profile page which contained all the applications they wanted to use. The identity problem would be solved or, at least, would be consistently bad; there would be one distributed ID scheme for everyone. If the Next Twitter arrives, it is immediately part of everyone’s existing experience.

Could this be built using Web-twenty and the drizzle-machine[1]? I think so. Consider a social networking site built around these principles:

  • Don’t make Yet Another Identity System. Choose an ID system that is distributed, like OpenID, and stick to it. Everyone in your network has a preferred ID like this.
  • Don’t implement your own infrastructure. Instead create ‘applications’ that talk to some other Cloud service but don’t store state. These applications would be, in effect, merely views, delegating the controller and model to Cloud APIs. Each view knows how to display its associated service as a main page, inside your profile, as a feed, etc.
  • Create mechanism, not policy. Your profile is made up of views, put wherever you want. A ‘page’ is merely a view of views. Your profile consists of one or more views with one view blessed, by you, as the ‘main profile’.
  • Allow for, and encourage, user generated content. You provide a set of template pages. Certainly you’d include a main profile but also, perhaps, a page which interfaces with the Flickr API to manage photos, a status feed drawn from Twitter, etc. Crucially, there is no difference between your ‘official’ views and views generated by third parties. There is no ‘blessed’ code.
  • Host as little as possible. You don’t want to host pictures. You don’t want to store state that someone else can store. You store just enough to present the views in the right place and give the views enough information to access their service.
  • Don’t re-invent the wheel. Don’t invent a notification and messaging system. Use email. Views use email directly to send notifications.
  • Use soft-security. What stops a spammy view from spamming everyone you know? Nothing, except that you can remove spammy views easily. A spammy view won’t last long. In the same vein, don’t try to make malicious views impossible, just make them easy to identify and remove.
  • Make content discoverable. All the views are bundled together in one place, the ‘view store’. This ’store’ is itself merely a REST-ful database of view providers with a view which can interact with it. You provide a view store but others can do the same. If $COMPANY wants to make their own pay-for view store, they can.
  • Make is easy and safe to play. The Web is an easy playground. People can play with a website by merely visiting a URL. They can stop by just navigating away. In the same way, views are easy to add, either click-install (a la Firefox’s extensions) or drag-and-dropping some URL. Just as importantly, views are easy to remove. Everything is reversible via undo back to your default profile.

What I’ve descibed may sound a lot like a web-framework, a la Django or Drupal. In truth, it is. But unlike other frameworks it is entirely distributed. It is also user-controlled.

With a pragmatic hat on, such a system could never exist. For one, since you, by design, don’t host, control or hold the keys to any content, there is almost no way to monetise the system. Secondly, a system designed to be extensible and accessible to everyone is open to abuse in precisely the same way as the Internet and Web. Malicious web-sites and spam have exact analogues in this utopian social network.

But at the same time, could such a system be built? In essence one could imagine it as a bunch of Cloud services and one page of HTML + JS that you open in your web-browser. State is distributed, replicated and one can migrate as you wish. It truly puts the user in control of their data. Or, more precisely, puts the user in control of who has their data.

[1] Web 2.0 and the Cloud. But I refuse to be cool enough to use those buzzwords in real life. OTOH, Web-twenty and the drizzle machine sound like they would be an awesome band.

BBC complaint (again)

Thursday, July 30th, 2009

Today’s complaint to the BBC:

From http://news.bbc.co.uk/1/hi/technology/8175410.stm:

“Programmes will be streamed without DRM (Digital Rights Management) copy protection but will only be available to people with a UK web address.”

Assuming you are using the common convention of referring to URLs as ‘web addresses’, this statement implies that the programmes will only be viewable by people who have a personal website which is based in the UK. This is clearly absurd.

Instead I imagine the correct phrase is “IP address” or, for the non-technical, “Internet address”, which refers to the unique number associated with your Internet connection.

As it stands, the article is stating something which is markedly different from fact.

Of course I didn’t complain about the fact that they didn’t disclose the MS spokesperson used to be head of the iPlayer at the Beeb…

Twitter Weekly Updates for 2009-07-26

Sunday, July 26th, 2009
  • Playing with Mathematica. Am very impressed at the moment. #
  • Just solved an epically hard sudoku on the whiteboard. #
  • @c_boyle:T: apple.com in reply to c_boyle #
  • After 5 years, my black MacBook finally has given up the ghost. New 13″ MacBook Pro on order. I’m such an #applewhore :). #
  • http://is.gd/1Gsp9 <- The Apollo Guidance Computer source code. Some good comments in there… #
  • RT: @jonobacon:T: Launchpad is now Open Source - fantastic, fantastic news - http://bit.ly/H81Bj :-) #
  • http://is.gd/1Hw10 <- end of BTF1 and start of BTF2 side by side. Witness the two Jennifers and the awesomeness of Doc’s unified ‘Roads?’ #
  • http://is.gd/1HAWZ <- #flynnlives - the start of the viral? #
  • http://is.gd/1HBLa The BBC claims 0 = 1, apparently. #
  • My laptop has been sitting *somewhere* in the department for 5 1/2 hours. Stores have yet to let me collect it :(. #
  • Arrrrgghhh!!! Rage! *takes a chill pill* Ahhh… :) #
  • Once again I appear to completely disagree with those around me :(. #
  • Found my laptop and iPod. Yay! (Turns out that there was a snafu in stores, all forgiven now) #
  • Possibly -1, Old: Search for ‘recursion’ on #Google. #
  • For some reason, I’m angry with everyone and every thing at the moment. Why every body so rubbish? #
  • Thanks for the hugs and nice words. Anger subsiding slightly. If there were a male version of PMT, I have it. #
  • On the plus side, I’ve just managed to SSH into my new iPod Touch. #
  • Mmmm… ssh ipod apt-get install vim. Does life get more satisfying? (without involving those girl things I’ve heard of) #

BBC Claims {0, 1, 2, 3} === 0

Wednesday, July 22nd, 2009

I’ve seen the BBC News magazine section make some stupid claims in my time but never have I seen them assert that 0 ≤ n ≤ 3 ⇒ n = 0.

0-3: Nil points

New computer

Tuesday, July 21st, 2009

I woke up at 5:50am this morning unable to sleep (I had an interesting dream about flying insects — usually a sign I overheated in the night). But this post is not about my insomnia. It is about my laptop.

I have a 5 year old original black MacBook laptop. I’ve been very happy with it over the years. As one might suspect, there have been a few wrinkles over that time. The plastic case has been notched and a bit of the keyboard facing has come away around the edges, the audio jack half broke around 6 months ago making the internal speakers useless in OS X (but still working under Linux) and the iSight never really forgave me for disconnecting it for a bit. In addition I had to replace the hard drive (not entirely my fault) and the battery (my fault but unlikely to be repeated since a non-removable battery is also non-losable).

This morning, however, the audio gave up the ghost fully. That is to say that getting the laptop to play with headphones (and thus not wake housemates) is now fairly impractical without opening the case and replacing the jack myself.

Since it is my birthday next week, I thought I’d use the final death of audio as a good excuse to treat myself to a brand new 13″ MacBook. Now, dear reader, please don’t comment saying ‘What? That laptop sucks for $REASON’. It is the only laptop that satisfies the four requirements of being Linux-possible, being within my price range, being from Apple1 and looking like not-arse2.

This is also my first experience with a ‘mail in rebate’. I’m aware these things are common in the US. In the UK, however, they are relatively rare. In this case, the rebate means I could purchase an iPod Touch for £20, so I did. So far the rebate process has been relatively painless. Then again, so far it is just a case of finding the IBAN for my bank account and filling in a web-form. The actual posting of the various magic labels must happen once I get the laptop in question.

As a side-rant, finding the IBAN was non-trivial. The helpful instructions on my bank’s online banking site being incorrect. I found it in the end using my own wits.

I do wonder why the mail in rebate thing happens at all. Apple know I’ve bought the laptop and iPod; they sold it to me. Why I then have to post back proof of purchase is beyond me. I can see the logic if I buy the things from $RANDOM_SHOP, but I didn’t :). It would be far simpler if the Apple Store just noticed I’d bought the things and chopped the rebate off. This has the added effect of not giving the tax man the VAT (which, BTW, is almost exactly what the remaining 20 quid I’m paying for the iPod appears to be).

The cynic in me does make me wonder if the extra hoops and hurdles is just a way of making sure a percentage of people don’t claim the rebate making the actual mean reduction less.

1 Yes, it has to be a Mac laptop. No, I’m not showing my working :).

2 The white MacBook fails this important test.

Twitter Weekly Updates for 2009-07-19

Sunday, July 19th, 2009
  • Back from holiday. Totally cream-crackered. Slept for nigh on 14 hours. #
  • http://is.gd/1zT5x <- I shall be the ‘host’ for this tonight. Please come along and cheer. #
  • Tip of the day: Putting a space in front of a command does not record it in the bash history. #
  • http://is.gd/1A7o3 <- Live shuttle launch video. Happening now-ish #
  • Just woke up from an amazing dream. It was in Wham-world: a recreation of an 80s village. But run by aliens. And at 1/8 scale. #
  • http://is.gd/1Ai1y <- Made of win. The quad-leafed ones sing anime tunes. #
  • Am now also @richwareham on identi.ca for all you Free software weenies out there :) #
  • God bless never throwing something away. A sacrificial AT Model M just donated it’s foot so that my keyboard may live into it’s 21st year. #
  • RT @mas90: Bought new graphics card, but it’s too big to fit my case, oops! Current solution: http://malc.org.uk/tmp/frankenpc.jpg #
  • Is there a convention for @-addressing crosssite? If I use @richwareham:T for twitter and @richwareham:I for identi.ca, is that reasonable? #
  • @jennielees:T I’m in no way a real social-media junkie. I like to mirror my ‘user generated content’ far and wide :). in reply to jennielees #
  • Follow @AP11_SPACECRAFT:T & followees. ‘Real-time’ twittering of Apollo 11 radio chatter. #
  • I’m getting past-it in my old age. I’m not sure if @Tiffani89:T is a spambot or not :). Apologies to @Tiffani89:T if she isn’t. #
  • @mas90:T works here (stock Jaunty) in reply to mas90 #
  • @mas90:T The .bashrc in /etc/skel includes ‘export HISTCONTROL=ignoreboth’ which appears to be the magic runes controlling this. in reply to mas90 #
  • http://is.gd/1AXmq <- A bit more of an in depth thought about @username:site addressing. #
  • RT @crazyscot:LJ: http://is.gd/1AXAv <- a possibly explanation for an erroneous 23 quadrillion bank charge? #
  • http://is.gd/1AZed <- What this doesn’t say is that the ‘easily guessed’ password was, in fact, ‘password’. #
  • http://is.gd/1B0BP: NSFW - definition of twitter. #
  • http://is.gd/1B3iy <- I live in what used to be Hall Farm (from @fanf:T). #
  • Almost the end of the day and I’ve just about got through 50% of the emails I got during the week! #
  • Just uploaded preliminary 0.1.0 Firtree packages to the Firtree PPA (http://is.gd/1B8dA) *crosses fingers* #
  • http://is.gd/1ClJa If the gods are kind, gstreamer packages for Firtree will arrive. #
  • Off to the 800th Anniversary of the University of Cambridge garden party. #
  • http://is.gd/1Duh8 <- Look at the fun people at the 800th Anniversary Garden Party. #
  • Very much missing having someone special to cuddle up with. One day she’ll be back :) #

@-addressing on micro blogging sites

Thursday, July 16th, 2009

Disclaimer: I’ve not been able to find anything particularly informative Googling around for this. I haven’t looked terribly far so any useful links appreciated.

Any of you fine people who have fully embraced the web twenty micro-blogging rubbish that everyone and their dog thinks is going to be the next pets.com (remember them?) will have come across @-addressing. For those that haven’t, the concept is simple: When referring to or publicly replying to a twitter user, one simply sticks a ‘@’ in front of their name and the multitudinous twitter clients will linkify it to their profile.

The problem comes in when you are a de-localisation junkie like me. Already this blog is available in at least three separate places not counting any web-based RSS readers. Similarly my dents are available as tweets on Twitter and updates on Facebook. @-addressing, therefore, should really have some sort of tagging of the site of origin.

Now there already exists a mechanism of addressing for uniformly locating resources on the Web, the humble URL. Hence if I want to unambiguously refer to joebloggs on Twitter, I should quote http://twitter.com/joebloggs. Unfortunately, this takes up a precious 29 characters out of 140. Even if I were to assume the protocol part, one still gets twitter.com/joebloggs which effectively doubles the length of the username. It also jars against the accepted @-addressing convention.

So, let us be satisfied with an addressing scheme that:

  • Fits in with the current @-addressing (and will still be auto-linkified by clients, even if the link is wrong on some sites).
  • Adds small overhead to the address.
  • Requires some external agreement/convention on identifying micro-blogging sites or, equivalently, pushes the site identification overhead out of the tweet.

I propose, therefore, @username:siteid. The justification being:

  • Convention at the moment includes the ‘@username: message’ idiom and so the colon is an auto-linkify terminator for most clients.
  • The overhead is entirely the site id (see below).
  • Isn’t visually jarring given appropriate choice of siteid.

I’ve started using @username:T for Twitter and @username:I for identi.ca and will probably use @username:F for facebook. There is precisely one character of overhead which I can deal with. This is, however, a poor way to choose siteids. It rapidly uses up the convenient name space and is in no sense centralised.

Now the easiest way to automate the site id process is to have some site (e.g. pointme.at) which will redirect http://pointme.at/[siteid]/path/to/resource to http://[site]/path/to/resource. The siteid could either be chosen to reflect the site or auto-generated in a manner similar to bit.ly and it’s ilk.

On an related note, pointme.at is available… :)

Twitter Weekly Updates for 2009-07-12

Sunday, July 12th, 2009
  • http://is.gd/1oIpS @ratsbew: What you experienced is what we #aspergers call ’spontaneous interaction’. It usually requires more planning. #
  • http://is.gd/1oVV7 <- dragging myself into the 21st century. My first ever #cloud application using Google #appengine. #
  • @hgomersall http://is.gd/1oWhh in reply to hgomersall #
  • @hgomersall Just typed your names into http://is.gd/1oVV7. Got ‘Had a top top top top gent’. :) in reply to hgomersall #
  • http://is.gd/1oVV7 <- On ‘Matt Thomson’: Matt Thomson was well beaten but has collected a few female admirers #
  • http://is.gd/1p7TV Facebook is for showing followers/friends Facebook friend request on Facebook Then watching #Torchwood then lol. #
  • Someone on the news just used the phrase ‘art for the Facebook generation’ non-ironically. Cock. He then called a monitor a ‘VDU’. #
  • http://is.gd/1pcTe <- If you use IE to browse the web you are part of the problem. #
  • So, Internet, git or bzr? [disclaimer: I'm stupid and need stablisers so currently use bzr, should I convert?] #
  • @mas90 I think I recall reading it but am unable to find a linky ATM. I’ll RT it if you post one! in reply to mas90 #
  • http://is.gd/1q4wS <- A little thing to refresh my non-Euclidean (hyperbolic) geometry. Needs FF 3.5 or Google Chrome I think. #
  • http://is.gd/1q4wS uses the #html5 #canvas and #javascript goodness. BTW. Background information on hyperbolic space: http://is.gd/1q4Xn #
  • About to try out the 1.1 release of #yofrankie. Here’s hoping it doesn’t sux0r! #
  • http://is.gd/1q8ie <- A sage tale of gotchas when believing the #bigo notation for #algorithms. Addition may not be constant time. #
  • http://is.gd/1q8DN (UK only I think): At which point is it OK to fancy them? :) #
  • http://is.gd/1q9WR on JavaScript: Java is to JavaScript, plugin is to hamster. #
  • All packed. Ready to go on holiday (to Slough(!)). Now to decide when to leave. #
  • I’m impressed. 1.5 MBit connection in a tent! #

Joining the cool kids

Monday, July 6th, 2009

I dipped my toe in this Web 2.0 thingie and created a Google AppEngine website. It comes complete with a stupid poncy name: thyncean. It will take a search query and display a series of randomly generated tweets about the subject based on real ones. Note that this is a toy. It works on my machine and my browser. YMMV :) If you are in IE, you not only lose but deserve to do so!

Some choice examples:

On ‘Christianity’: We don’t exist Phew

On ‘gays’: We have lady-sex I almost got in his system.

On ‘Obama’: say no to get their stockpiles of the most fiscally irresponsible in Moscow.

On ‘Sarah Palin’: Why Sarah Palin…Political FAIL

On ‘Michael Jackson’: just stop.

On ‘The Queen’: Helena Bonham Carter as the tower for the new obsession!

On ‘Linux’: whose fictitious fame rests on dutch iPhones for Kaitlyn Owen just utter rubbish.

Twitter Weekly Updates for 2009-07-05

Sunday, July 5th, 2009
  • http://is.gd/1iek9 <- New #firtree demo. Integration with #gstreamer #
  • http://is.gd/1imdh <- my complaint. I love the BBC. It is the television equivalent of all the pink bits on the map. This makes me mad tho’. #
  • I just realised: I really want a mobile phone in a pocket-watch form factor (complete with chain). #
  • @rjek I was assuming bluetooth magic. It would still be cool though :). in reply to rjek #
  • Have almost finished packaging the new rewritten Firtree 0.1.0 for PPA. My packaging skills make little Ian Jackson cry :(. #
  • In the Bath Ale House. There is a man at the bar with a comedy Irish accent and beard. #
  • Surprisingly morose. *sigh* Too hot to moan properly. Could do with any hugs offered :) #
  • Finally managed to have a good night’s sleep! #
  • To everyone wearing a horrible yellow tee-shirt in town today: I feel your pain :) #
  • http://is.gd/1mjf3 <- Damn that #mooreslaw. #
  • http://is.gd/1mlCv Apparently everyone on Twitter hates #nigaz. #