It's been twelve years since I started writing TCP/IP stacks (the underlying protocol that governs how all the computers on the Internet talk to each other) and finally I've had the opportunity to create an implementation (albeit parital) of RFC1149.
This will be of little interest to almost everyone who reads this blog, but it made a small part of me disproportionately proud. However, a quick search on google shows that I wasn't the first and their implementation is much more complete than mine.
Sorry, I don't know the punchline to the joke, but there are moves afoot to find out.
be2camp is a proposed BarCamp to explore "web2.0 in the built environment".
It sounds interesting, maybe I can talk about using Arduinos to implement sensing and control, or maybe demo The Mazzini Project.
There's talk of it being in October, most likely (although not definitely, maybe I can find somewhere up North for it?) in London. If you're interested then head over to the wiki and register your support.
Tags: mazzini web2.0 ubicomp architecture building
For a while now I've been wondering about how to green our homes. Over on the company blog I've just announced the Mazzini Project, the latest idea along these lines that I've been playing around with.
It's a wireless power-monitor combined with a control unit so that as well as letting you know exactly how much electricity whatever is plugged into it is using, you can also turn it on and off remotely. I'm still just building the first prototype (I was wiring together circuits and measuring things with the multimeter just this afternoon) but I wanted to start talking about the idea to see what people thought.
I've put some slides together to try to explain it in more detail, so please have a look at them and let me know what you think. Is it a good idea? Would you buy one? How would you hack one to do things I haven't thought of?
If you want to see the slides full-screen, then you can do that from this page.
Recently my mate Kieran has been helping me get my head round marketing as I try to get word out about tedium. I was trying to work out something I could do to say thanks, and as he's been reading The Paradox of Choice it occurred to me that I could share some of the TED talks with him (including the one by Barry Schwartz, the author of The Paradox of Choice).
Kieran isn't a geek by any stretch of the imagination, so I burned the talks onto a DVD so that he could watch them from the comfort of his sofa rather than having to sit in front of his computer. I think that's about the only problem with the presentations from TED.com - it's hard to watch something for twenty minutes if you've got all the distractions of the Internet.
The talks themselves are superb - interesting and insightful topics being talked about by passionate, clever, famous people. If you haven't seen any of the talks before then I heartily recommend having a poke round the TED website or downloading this TED Taster DVD.
That's right, now that I've put the DVD together, I might as well share it with the rest of the world. All the TED presentations are covered by a Creative Commons licence, which means that it's completely legal to copy them and give them to your friends and colleagues... even to random strangers on the Internet ;-)
There are six talks on the DVD. I picked ones that I enjoyed watching and that seem to be well thought of on the web:
Obviously I can't share physical DVDs over the Internet, so you'll need a DVD burner if you want to make your own TED Taster DVD. And because the files are pretty big I can't just set things up so you click on a link and download it - you'll need to use BitTorrent, but (as well as saving some of my bandwidth costs) that will mean that it will download more quickly.
Despite the scare stories you might've heard, BitTorrent isn't hard to use. Lifehacker have a good beginner's guide to BitTorrent and Gordon McLean wrote an excellent starter guide for anyone using Windows.
Okay, here are the torrent files you'll need to download the DVD. Choose the right one depending on where you live (well, really depending on whether your DVD player is NTSC or PAL). Each download is about 3.4 GB in size, so please be patient - it'll take a while to download, particularly at first when there aren't many copies around. And after it's finished downloading, please leave your BitTorrent client running for as long as you can to help share it with others.
And if you just want to watch them on your computer, I've collected all the original files from TED.com and gathered them into the TED Taster mp4 torrent (704 MB).
I know they aren't as easy to watch as your standard YouTube clip, but I think that the more people who get to see the TED talks the better. So, feel free to burn some extra DVDs and give them to your friends, or blog about the TED talks that you love the most, or point people here so they can download the DVD for themselves. Feel free to use the image above, and either link to this blog post or use http://www.mcqn.net/tedtaster (that's just a snappier URL that also points here).
Finally, thanks to Gordon McLean, Andrew Dixon, Adrian Sevitz and a collection of MeFites for their help in launching this crazy idea.
Once again I'm late to the party with my blogging. A week or two back, Paul Robinson posted an entry to his blog lamenting the state of the computer industry. I agree with a most of what he said: services like Facebook could be a really good way to keep in touch and engage with our friends, but have devolved into an endless parade of me-too, frothy, time-wasting games.
By the time I'm getting round to writing about it, things have already moved on. There have been a few responses to Paul's initial post; he's posted a summary of them; and thrown up an area of his website to discuss "The Vision Thing". On there they've even started to draft a manifesto.
All of which is highly commendable, but having read through it I'm left feeling a bit like a goth who's arrived late to a rave. Paul talks about wanting some meaning, and a vision that goes beyond building something "a bit like eBay but with a social graph". I don't see anything like that in the draft manifesto. "Down with IE6" is just froth in geek flavour. "Look after yourself" is just good advice, not something to fight for.
It's a very British manifesto: full of good intentions, but lacking ambition. Microsoft didn't set out to "make businesses lives a bit easier", they wanted "a computer on every desktop and in every home". We should be aiming for "renewable power generation on every home and every office" or "computer and Internet access for every single person in the UK" or...
I know that I'm doing no better than Paul in just writing this blog post. I don't have a solution. Yet. tedium is hardly going to revolutionize the world, but similarly it isn't just froth. It's also just the first step towards building something bigger. I don't have a full handle on my mission to change the world, but I'm beginning to grasp the strands that will weave together to produce it.
Tags: thevisionthing mission business tech
Yesterday saw the start of this year's Share Festival, which this year takes on the theme manufacTURINg. I went along to the launch at the Faculty of Architecture department of the Turin Polytechnic, which is in the very pretty, ex-royal-palace, Castello Del Valentino.
Rather like the last event I attended here, I didn't understand most of what was said apart from when Bruce Sterling (who is the guest curator of the festival) was talking. I could work out a lot more of the words, but still only enough for half sentences here and there.
Anyway, I had a look at some of the exhibits (handily labelled in English as well as Italian), and picked up the festival catalogue (and one for the World Design Capital events too).
There are some very interesting events happening over the next few days for the festival, and it's frustrating to think that I probably won't understand much of them. I'm hoping to still attend quite a few, including Manufacturing the Streets this evening, and the chief designer of FIAT talking about the FIAT 500 tomorrow. Then on Saturday I want to catch Massimo Banzi again (I saw him at the Takeaway Festival last year) talking about the Arduino, and Donald Norman and Bruce Sterling (plus two Italians I haven't heard of) talking about Manufacturing Future Designs. At least with the last one there'll be some English spoken.
I'll be posting any photos I take of the festival to my Share Festival 2008 Flickr set and will post my notes here too. If you want to watch any of the sessions but aren't in Turin, they're streaming all of the events live.
And if you attend any of the events and spot a confused-looking Englishman, come over and say "Hello", or "Ciao", or "Buongiorno"...
Tags: ShareFestival2008 Torino manufacturing digital fabrication design
Mark Simpkins green geek conference idea that I wrote about a while back now has a date, a venue and a name.
geeKyoto2008 is on Saturday, 17th May 2008 in London, and tickets are available for the bargain price of £20.
I'm going; now I need to see if I can find a better way to get there than by plane...
Tags: geeKyoto green sustainability uk conference
Trying to catch up with what's been happening on the web whilst I've been too busy to blog...
The first thing I want to point you at is part of Matt Webb's recent presentation to Web Directions North 2008. The main thrust is about how we could extend RSS readers to let you process to-do list items more quickly, and is something I've thought about off and on since he and I exchanged a couple of emails when he first mooted the concept he's now named SNAP. As he's found, it's not quite ready for primetime, so it'll be a while before we introduce it to tedium. However, some of the other concepts (like the state machine for GTD) fit quite well with things we are working on, and it's nice to have a way of explaining it.
But the main reason that this isn't just a del.icio.us link is because of the future challenges for the web that he lays out at the end of the talk. In particular, the slides about groups.
I think designing software that's used by groups rather than individuals is going to become an increasing problem as computing escapes from computers and into other devices. I don't have any decent answers, but it's something I have thought about a bit. It's obvious that you don't want people to have to log in before they can use their radio, so I think the only other option is to have the radio notice who's around.
The easiest way to achieve that today would be for it to track Bluetooth devices - if my phone is in the room, there's a fair chance that I'll be in the room too. The only problem with that is that by encouraging us all to wander around with Bluetooth turned on we're also encouraging everyone to open themselves up to being tracked everywhere. Maybe our phones need to become cleverer about who they reveal their presence to, but then we've just shifted the difficult interaction from the radio to the phone...
I've been thinking about getting paid. I was going to say I'd been thinking about revenue models, but that's just a fancy way of saying getting paid, which is maybe part of the problem.
Basically, the web has promises to be the best way for people to connect to each other, and so should be the perfect marketplace. The long tail promises that there are an almost unlimited set of niches waiting to be filled.
In parts, this is true. Take the process that sparked this blog post for example. This morning, Russell Davies wrote on his blog that he'd like a twitter feed of changes in the Amazon sales rank of his book. The idea piqued my curiosity, and an hour or so of poking round the web later, I've found out how to query the Amazon API to get the sales rank for his book and found out how I would hook into twitter to submit the updates.
Now, if I was just knocking something up for myself, I'd be about half-an-hour from having it all finished. But as Russell says, it's the sort of thing that other authors would find useful, so I've been pondering making it into a full-blown service.
"Making it into a full-blown service" is a bit over-the-top, but as Eric Sink said, it's a non-trivial step to go from something hacked together for me to something that I'd be happy letting other people use. There'd need to be a way to sign up, a way to stop the updates, and then the ongoing maintenance if either the twitter or Amazon APIs change.
It still wouldn't be a grand undertaking, but it becomes more like a day's-worth of work now, and then an undefined amount more in the future (but again, probably not too much). It's at this point that it stops looking like a fun problem to spend a while solving, and more like work. I don't want to launch services that I can't maintain, and obviously there's a limit to the number of services I can maintain - particularly if they're being maintained in my spare time.
What the web is missing is an easy way to charge for such small, niche services. Surely something like this is worth the price of a cup of coffee to authors? The problem is that, at present, the assumption on the web is that it should somehow be paid for by advertising, which means that the only things which get built are either a by-product of delivering audiences to advertisers, or things that geeks build for themselves.
If there was a way for people like me to cover their costs (plus a little extra) then we could solve all sorts of niche computer problems for people who can't code, without having to spend all our time working out how to force them to click on adverts.
One of the problems with uploading a new version of any website or web application is that there's always the chance that a user will come along just at the wrong time and try to access something. At best they'll see things in a not-quite-perfect state; at worst they could corrupt the site or break something (although if the user can't modify anything about the site then that's unlikely).
Luckily, if you're using Apache as your webserver and if you (or your ISP) has installed mod_rewrite then there's an easy way to stop this from happening.
Basically, we tell mod_rewrite to redirect anyone who isn't us to an "update in progress" page. This means that everyone else sees a page explaining that the website is being updated, and you get to use use it and test it out as if it was live. Then when you're happy that it's all working, you can remove the mod_rewrite rules and let everyone in.
As mod_rewrite isn't the easiest of modules to get to grips with, I've written a little script to help generate the rules.
If you go the rule generator page it will give you a set of rules to copy into the .htaccess file on your website when you want to restrict access.
When they're added, only your computer (identified by its IP address) will be able to see the normal webiste. Everyone else will be redirected to "http://yourwebsite.com/updateinprogress/", so you'll need to upload a suitable "please be patient, we're upgrading the website" page into an "updateinprogress" folder on your website. Here's an example that I use when tedium is being updated.
Remember to make sure than any files linked from the update page are also in the "updateinprogress" folder - so that's any images, external CSS or javascript, etc. - because otherwise they'll be redirected and won't work.
Obviously, you need to remember to remove the mod_rewrite rules from your .htaccess when you're finished uploading your new site. It isn't immediately obvious that they're still there, because you'll be shown the real site - and yes, I have forgotten to do this myself before today...
Unfortunately, using the IP address to decide who should have access isn't perfect because some ISPs stick everyone behind NAT or force you through a transparent proxy.
The rule generator should cope with a transparent proxy, but I haven't been able to test it as I'm no longer forced to use one.
And if the IP address given in the first RewriteCond doesn't match the one you get from running ipconfig (if you're on Windows, from a command prompt) or ifconfig (on Linux) then there's NAT in the way. If that's the case, then anyone else using the same NAT will also be able to see your "real" website too. I've included an optional user-agent check which will restrict things a bit more, but again isn't perfect.
If you're using a broadband router for your Internet connection then that's probably doing NAT too, so check the router's IP address as well as running ipconfig or ifconfig. If the router's IP address matches the one given in the RewriteCond then you don't have to worry about NAT.
Hopefully that all makes sense. If anyone has any questions, or suggestions for better ways to work out who should and shouldn't be redirected, then leave a comment.
Tags: mod_rewrite apache webdev
Every now and then I end up building a website for someone, and these days I'm tending to pick Drupal as the starting point. It's got a huge number of extensions and modules you can add, and an active developer community.
Part of the reason for going with a Content Management System (the fancy title for the category of website software that Drupal falls into) is that it makes adding and managing content easy for the non-web-developer website owner. That means that there's less work for me to do to keep it running, and more importantly means that whoever runs the website doesn't have to wait for me to find some time before they can change anything.
In order to make updating the website easier for the owner, I try to document some of the basic tasks - adding a page; putting a new product in the catalogue; etc. - in some help pages on the site itself, but obviously I don't want those pages to be visible to normal visitors to the site.
To save me reinventing the wheel next time I'm building a site, here are the details of how I add the 'Staff User Guide'.
In order to stop normal users from seeing the "Staff User Guide", we need some way to differentiate between them. I tend to create a new user role for "website staff" anyway, rather than give them the same privileges as "admin".
So, on the page /admin/user/roles add a new role "Staff user", and assign that role to any users who will be updating the website.
With the out-of-the-box installation of Drupal you can't (to my knowledge) prevent anyone from seeing any of the nodes (Drupal-speak for a page, or chunk of content). We could just hide the links to the user guide from normal users, but it would be better to prevent them from accessing them at all.
That's where the Content Access module comes in. Install the module in your Drupal site and enable it on the modules page.
This module allows you to choose who can access (view, edit or delete) any type of content. When editing a content type you'll now have a new page of options entitled "Access Control". For each user role you can decide whether they can view, edit or delete nodes of that content type.
So, let's create a new content type called "User Guide Page", of type "userguide". Then set the access control so that only the "Staff User" role can see or edit the pages.
Optional: If you're using the Pathauto module, and want your user guide pages to have nice URLs then remember to update the setting on the Pathauto configuration page. For example, to have all user guide pages appear at "/userguide/name-of-page", set the pattern for all user guide page paths (in the Node path settings section) to userguide/[title-raw].
Now you're free to start adding pages to your user guide, by creating new "User Guide Page" nodes. However, one last setup task is to provide a way for the staff users to find and browse through the guide. As I don't expect there to be too many pages in my user guides, I'm going to keep it simple and list them all in a new block in the sidebar.
Go to the Blocks admin menu (/admin/build/block) and add a new block. I called mine the "Staff User Guide" (in both block description and block title) and then chose the "Staff user" as the only role who can see the block. Then I added this snippet of PHP code as the block body, and chose "PHP Code" as the "Input format". It's fairly simple, all it does is find all the nodes of type 'userguide' and creates a simple bulleted list of links to those nodes. (If you chose a different name for the type of your content type, then replace 'userguide' with your name).
<p>Explanations of how to do common tasks on your website.</p>
<?php
$results = db_query("SELECT nid FROM {node} WHERE type = '%s'", 'userguide');
$output = '<ul class="menu">';
while ( $data = db_fetch_object($results) ) {
$node = node_load($data->nid);
if ($node->status == '1') {
$output .= '<li class="leaf">';
$output .= l($node->title, 'node/'.$node->nid);
$output .= '</li>';
}
}
$output .= '</ul>';
print $output;
?>
There you go. Choose where you want the block to be displayed, and then get on with writing your user guide.
This is just a heads-up for anyone interested in technology or business or technology businesses in or around Cambridge.
CHASE (the group for anyone interested in business and technology which is Currently Hunting A Snappier Expansion :-) will be celebrating its 20th anniversary this year and are planning a grander-than-usual meeting to celebrate.
The ordinary meetings are well worth attending, so I'm sure this will even better. It looks like it's shaping up to be some cross between a show-and-tell for locally developed technologies and a startup masterclass. You can find the full details over on the CHASE website.
Tags: CHASE Cambridge Entrepreneur Business Technology Startup
If anyone thought my Intelligent Fridge idea was good and would like to have one for themselves then here are instructions on how to build your own sensor.
It's a much greener solution I guess, as you don't need to get rid of your old fridge in order to add it!
Putting People First, the blog from Turin-based Experientia, have pointed to an interesting paper called Useful Void: The Art of Forgetting in the Age of Ubiquitous Computing.
"For millennia, humans have had to deliberately choose what to remember. The default was to forget. In the digital age, this default of forgetting has changed into a default of remembering."
The paper proposes that computers (/gadgets/technology/etc.) should by default forget things, so that we get back to the societal norms that have existed in history so far. I think I agree - I definitely think it's something we should worry about more than we do currently, we haven't decided to remember everything; it's just a by-product of our drive for more efficient and cheaper storage.
It's an idea that I've been pondering for a while now as a kind of background concept in some of the stuff I'm building, or thinking about building. It's definitely useful that computers are better than humans at remembering things, but we don't need the precision of the current systems. Do you ever need to know that your photo was taken at forty-six seconds past half three? Even immediately after taking it that's more precise than is useful. After a year, surely, "in the afternoon on Tuesday January 15th" is good enough? And in a hundred years time will anyone care for something more accurate than just "January 2008"?
The problem is that because remembering was something we used to have to work at, giving up such an ability is easier said than done.
Tags: memory forgetting ethics ubicomp
I was going to put this in the previous entry, but it got in the way too much.
I love how the Internet lets me stay in touch with the rest of my life. Facebook, email and blogs let me keep up with what friends are doing. UkNova lets me catch some of the programs I'd watch in the UK, particularly MOTD. And the BBC news website means that I can find out some of the news items provoking discussion and interest in my home country.
It's also a glimpse into the future of media that I can read Jeremy Paxman's speech, watch excerpts from it and listen to him and John Humphries debating the fall-out, and then find a reference to Tony Blair's lecture to the Reuters Institute and find it online moments later.
When(/if?) this stuff is exposed properly, with suitably easy tools to reference sections and edit the footage, the abilities of everyday people to discuss this online through their blogs will be amazing.
Most people seem to be fed up with entering details of all their friends each time they join a new social website. Of course, facebook's solution is that everyone building a social web app should just use the facebook platform and they can slowly replace the Internet.
I don't want to be down on facebook really, because they're probably the most open (to third-party developers) of the social websites and they also seem to have caught the non-geek audience - something that none of the others have seemed to manage.
However, those of us who create things on the Internet outside of facebook know that the facebook platform isn't the real answer. This blog post is a perfect example - it will, because I've spent time setting it up (which wasn't an obvious process), appear as a note on my facebook profile but won't appear in my friends' stream of my activities. Meaning that most of my friends won't have a full picture of my activities online.
Walled gardens, even ones with some gates like facebook, don't work in the long-term. AOL and Compuserve found that out in the 1990s; the mobile phone operators are slowly learning it; and facebook et al. will find out in the coming years.
It seems that there are quite a few people working on opening up the protocols for helping people to find their friends on new services. Brad Fitzpatrick has written a pretty good introduction to some of the problems and goals of such an endeavour.
He rightly notes and evangelizes that "[m]ost users don't care about XML, protocols, standards, data formats, centralization vs decentralization, silos, lock-in, etc. You, the reader of this document, are not a normal user."
The huge hole in his argument though seems to be his concept of "public data". He says:
"The focus is only on public data for now, as that's all you can spray around the net freely to other parties. While focusing on public data doesn't solve 100% of the problem, it does solve, say, 90% of the problem at 10% of the complexity."
What is the public data in my network of friends? I don't think there's very much. Is it just the list of my friends names? Their names and facebook identities? Their names, facebook identities and email addresses? I'm not really comfortable with my email address being given to random web services by my friends at present; I tolerate it because they're my friends but I get annoyed if I ignore the invite and the web service sends any more emails.
Luckily, at least Joseph Smarr is aware of the problem and arguing the case. "Our users tell us that the contents of their address book are private and that preserving their privacy is very important. So while some users are happy to declare their list of friends in an open and public way, we feel that dealing with private data is essential, and certainly much more than “10% of the problem”."
The problems with spam in email; blog comments; wikis... should remind us that not all users of any system we create will be honest and trustworthy. We should take the effort to think about it from the start, rather than assume we can tack on a solution after the technology becomes widespread.
Tags: facebook social_graph
Via upcoming.org I found out about the SuperHappyDevClub, which seems to be a nascent group dedicated to hardware hacking in Cambridge.
The first meeting is due next Saturday, the 30th. Sadly I'm busy that day, but might see if I can pop along for an hour...
Here's the follow-up to the first sketch I drew about smart kitchens
(Click the image to see it full-size)I think these sketches sum up one of the big problems with many of the ubicomp projects that end up in the press. It's a common problem when "the Internet" is added to other products: the assumption is that new-device-plus-Internet will be like a PC-with-Internet; but that's wrong. Just as Mobile Internet is more about where you are and what you're doing, almost to the point of supporting your current task rather than being the focus of the task; Internet-enabled appliances in the home will have uses tailored to their particular constraints and unique features.
Slapping a PC onto the front of a fridge shows a lack of imagination. There are many more useful features that could be added to white goods which wouldn't require anywhere near the same level of technology: a freezer defrost warning system (as shown in this sketch); a washing machine that detected when it had sprunk a leak and warned me (that would've saved me at least one kitchen floor...); a washing machine that texted me when it had finished the washing programme; a cooker which automatically lowered the gas if a pan boils over...
What would you like your kitchen to do for you, or tell you about?
Apart from mentioning the talk about Sun SPOTs the other day, I haven't mentioned any of the BCS SPA events that I've been to over the past few months.
If you're interested in computing, and live in or near to Cambridge, then the events held by the Cambridge arm of the BCS Software Practice Advancement group are well worth checking out.
You don't have to be a member of the British Computer Society to attend; the events are free; and cover a wide range of topics - from management techniques to computer-generated music.
There's a list of upcoming events on their events calendar page.
The first SPA event I made it to is also one of the best presentations I've ever attended. Not so much for the information it contained (the talk was titled The Second Coming of the Internet and was all about Web2.0) but for the presentation technique and style Adrian Van Emmenis, the presenter.
He started the session by taking the audience with him through some basic e-commerce tasks, deliberately tripping himself up on a number of problems with using the "reload" or "back" buttons along the way. That illustrated perfectly how seemingly ordinary behaviour could cause strange results and confusing error messages. I think that helped the techie audience get into the mindset of the average user.
He then laid out the technical reasons for the problems, accompanied by nice graphical explanations and even a live shop-keeping role-play session with the event organiser and a collection of fruit.
All in all a masterclass in how to keep the audience interested.
Over the long weekend I was playing around with my tablet PC and drew something I've been thinking about for a while now:
(Click the image to see it full-size)The idea for it came when Jeff and I were discussing ubiquitous computing after attending a BCS SPA Group presentation about Sun SPOTS.
It was an interesting demonstration of the technology, but I often wonder how useful or necessary it is to build devices with such powerful hardware. The Sun SPOTs have an ARM9 processor, which is much better than the mobile phones that I'm currently working with!
Part of me thinks that it just makes experimentation and proof-of-concept easier and quicker, which is good; but I also wonder if it merely results in nice-but-too-expensive toys. In my experience it isn't always easy to take something big and scale it down.
I think a better solution could be something like the Arduino boards. They aren't quite as self-contained as the Sun SPOTs, but have more believable costs and component choices (for mass-market applications). I'll hopefully be finding out more about them at this Takeaway Festival workshop tomorrow.
UPDATE: I've now posted my notes from the Arduino workshop and the second part of Innovation In Kitchen Appliances is here.
(Originally from Common Craft, found via I'd Rather Be Writing)
"The future will be context-sensitive. The future will not be interactive.
Magic Ink: Information Software and the Graphical Interface is a long but intriguing take on how software (and in particular how we use software) should evolve.
The paper splits software into three categories: informational (which people use to gain knowledge of something); creative (used to create the information); and communicative (which allows people to communicate with each other).
Bret Victor, the author, suggests that informational software is nearer to graphic design than engineering, given that both are trying to convey information to the user. He goes on to explain how such software could behave differently to today's programs if it were more aware of the context in which it is invoked.
The software would provide its best-guess at what the user wanted, based on factors such as location, the user's current task, the time, and the user's previous behaviour. The user would only have to interact with the program if it had chosen wrongly, but even then the correct choice would be nearer than if the user had to navigate to it from scratch.
It's on the brink of being too revolutionary, but manages to provides just enough examples and references that it might work. It's definitely proposing a paradigm-shift from current practices, which is why it's proving hard to get my head round. It'll take a while for the concepts to sink in, but has already given me a number of avenues to explore for more information and a few ideas of how I can modify the software I work with.
It seems too big a change to work on the desktop, because there's so much existing software to displace. I wonder whether ubiquitous computing could provide its route into the mainstream, providing contextually-aware smart devices?
Twitter. Catch it while it's hot, and whilst there's still a chance that I'll be posting things to my twitter page.
It's like blogging but with even less content. Or maybe like sending text messages to the world. I'm not sure how useful I'll find it as a service I have to explicitly post to, but I think it could be a useful interface to collate streams of data about what I'm up to. So people (or their computers/mobile phones/whatever-smart-device-they-have) can where I was last seen, or what I was last doing.
Of course, by people, I don't really mean random strangers. I'm sure some people would be happy to publish such information to all and sundry, but I think it would be more useful if it were my friends.
But then that feeds into my age old pondering on how you'd provide the user interface which would let you deicde how much data was exposed to whom - I'd want to create different profiles on the spectrum from complete stranger to family member or spouse. Maybe it would be sufficient to apply a "how public" setting to each feed, where you pick a number between one and ten, and then you can group people into a public-ness profile.
I guess it's something I'll have to play around with when I first come to implement such a service.
Last night saw the first presentations session for the Refresh Cambridge group (a collection of web designers, developers and anyone else who's interested). Matthew Pennell, who just needs to embrace his role in the group as organizer-in-chief, has written a good round-up of the evening over on his blog.
It also marked the first time I've presented something in such circumstances. I've done a couple of best man speeches, and run training sessions for colleagues at places I've worked; but last night was the first time I'd presented to an external group of my peers.
The brief was only to produce a five-minute talk on something relevant to the group, which was good because with the other work commitments I've got at present, I almost didn't have time to pull anything together. (For future reference, Matthew's idea of giving a Pecha Kucha presentation on your recent del.icio.us links is a useful technique)
I think it went okay, although it felt like I rushed through it somewhat and wasn't as clear in my direction as I'd have liked. In my defence, we were running short on time before I started, and normally I'd have run through it once or twice beforehand but didn't have time. I figured as it was only five minutes, I could wing it, and I did - but only just.
The presentation was bascially a quick demo of Selenium, a very handy test framework for testing websites. It runs in any of the popular browsers (IE, Firefox, Opera, etc.) and can click on links, open pages, type text, choose menu options - anything you might do in using your web app - and lets you check for given text or page elements in order to test that things have gone as you expect.
Once you've written your test cases, you can automatically run through them all and use them in any of the supported browsers. So, for example, you can easily check that things are okay in both IE and Firefox before you make the newest version of your site live.
I'm starting to use it to test tedium, and I gave a demo of it running over through the tedium test suite during the presentation. In fact, there wasn't a lot more to the presentation, but in case anyone is interested (and because I said I'd post them up), here are the slides:
Although I do make it to a lot of computer- or business-related events, there are a surprising number that I only find out about when someone posts a review of the event on their blog.
TechCrunch UK has set-up an Upcoming.org calendar to hold any relevant events from anywhere in the UK which, combined with the London Geeks Upcoming.org group also mentioned in that TechCrunch link, should mean I get to find out about such things beforehand.
One of the first events posted to the TechCrunch calendar is the North-West Start Up 2.0 event. Admittedly I'd heard about that anyway, as I read Manoj Ranaweera's blog, but here's as good a place as any to mention it. It's a bit far from Cambridge, so I won't be attending, but I like to keep an eye out (and help promote) things going on up in my native North-West.
An event that I will be attending, and probably speaking at, is the November Refresh Cambridge meeting. There isn't a set date yet, but it's looking like the 14th or 15th November. There's a discussion about it over on the Refresh Cambridge Forum.
Jon Udell has just blogged about his decision to turn on comments on his blog. He had resisted it because he wanted to see how easy it was to follow discussions where everyone wrote their piece on their own blog, and the discussion crystallized through mechanisms such as trackback or brute-force search engines. However, he concludes that the blog community doesn't seem to be moving in that direction.
There have been many occasions when I have thought about blogging a response to another blog post I read. Some times, such as this, I do write something, but on many others I don't. The problem is that such an entry has to live two lives as it were: one is its position in the discussion about whatever it is that has interested me; and the other is how it fits into the stream of posts on my blog.
I feel I have a duty to explain the conversation to any readers of my blog, as they usually won't have read what I'm responding to, and if I can't introduce the matter in a sentence or two then I won't blog about it. Maybe I shouldn't worry about it so much? Or maybe there's a way to integrate such comments into the flow of McFilter whilst showing that they're not standalone entities? Maybe I should just prefix such an entry with "In response to So-and-so's piece Interesting article title"?
That could be something to think about whenever I get round to redesigning McFilter. Either a separate blog in a sidebar, or entries in the main content differentiated visually somehow to show conversations I'm having with others.
This topic does neatly lead me to mentioning another service I've been using more often of late - co.mments.com. It's a way to keep track of the conversations you've participated in on other blogs (or any conversations you're interested in from other blogs). Once you've signed up, you get a bookmarklet you can click on to start tracking the comments on any blog posting.
Then new comments will pop-up in your co.mments.com RSS feed. So, for example, you can see all the conversations I'm tracking (which is pretty much all the places I've commented recently).
Both tomorrow and Wednesday evenings I'll be out at web-related events in Cambridge, and rather than just blog about them after the fact, I thought I'd post about them beforehand too. Just in case anyone else is interested in coming along.
There's an informal get-together for anyone interested in web development/design/whatever in the Tram Depot at 6:30pm. Head over to www.refreshcambridge.org to join the mailing list, but anyone can turn up for the pubmeet. "Just play spot the geek t-shirts" to find us, although I'll look like this:

Then on Wednesday evening I'll be over at the Microsoft Research building on Madingley Road for a presentation entitled The Second Coming of the Internet. It starts at 7:30pm, and covers things like AJAX, JSON, REST... all the usual Web2.0 buzzword technologies. It's free for anyone to attend, but you need to pre-register on the website.
If you spot me at either event, then please come over and say hi.
Just a quick entry for anyone interested in web desgin / web development who lives in the Cambridge (UK) area...
Refresh Cambridge is a new group for web designers, programmers, etc. in Cambridge. There's a mailing list, there have been a couple of pubmeets, and there are plans for talks and presentations in the future. It's still finding its feet, but that means you can join and get to help shape what the group is and how it operates.
I haven't made it to any of the meetings yet, but will no doubt blog about them when I do.
Following on from developing the mobile soccer news service I've been thinking again about mobile access to the Internet. In particular, the problem of trying to read content that's been designed for viewing on a big PC screen on a small mobile phone screen.
The BBC news lends itself well to such viewing, because with a touch of trickery it's possible to give people a link to the low-graphics version of a page, which is obviously more suited to a small screen / limited web browser. Coercing other content feeds isn't quite so easy...
If there's a full content RSS feed, there's obviously no problem - the content is there in a pretty basic, but complete form. After that, you're into the realms of modifying the existing web content, which people have been trying since the late 90s and haven't yet (to my knowledge) mastered. The problem with simplifying content is that there's bound to be occasions when you remove something that the user wants. Mobile phone web browsing is all about trade-offs: increased mobility and access to content when it wouldn't otherwise be available versus lower bandwidth and the more limited screen and keyboard interface. So I think that any such service needs to provide a more mobile-focused experience as the default - less cluttered pages with the main page content appearing at the top of and dominating the screen - but still allow easy access to the full version for when the user needs something that's been stripped out and is prepared to put up with the additional pain required to find it.
The obvious way to attack the problem would be to take advantage of the ever more common use of CSS to separate content from appearance. I think it's still quite rare for websites to specify anything other than a screen (i.e. desktop) stylesheet, but I wonder how effective it would be to insert a new stylesheet for handheld (i.e. mobile phone) devices? And if there happens to be a stylesheet for printing, then maybe that would make a usable first choice for phones rather than the flashier desktop stylesheet.
If you're using Firefox and you've got the web developer toolbar installed, it's pretty easy to get a rough idea of how a site would look if you did that. You can resize it to a mobile-phone like size (my Nokia 7610's screen is 176x208 pixels) and then disable all the styles in the CSS menu.
Doing that soon shows why that isn't a complete answer - you often still need to scroll past all the menus, nice logos, and so on that look fine on a PC, but cause endless scrolling on a phone. Perhaps performing analysis on the general content boxes of the page would let them be reordered so that the one with the highest proportion of plain text, or with the lowest ratio of text to links, is displayed first would help with that?
All that said, displaying the content on a phone isn't the biggest obstacle to accessing the Internet on a mobile, but more of that in part two...
This Monday just gone, I decided to catch up with what's happening in the mobile phone world and attended the Mobile Monday meeting down in London.
This month's theme was funding. There was a brief presentation at the start about the funding process, and then five different startups pitched their businesses to us and answered a few questions from a panel of VCs.
I enjoyed the whole evening, it was interesting hearing about the different businesses, and I got chatting to an assortment of interesting people during drinks and nibbles afterwards. The MoMo London events are getting bigger all the time, and it's easy to see why.
Through the wonders of the Internet, it's now possible to watch one of the most important moments in the history of computing, one from when the Internet was just a twinkle in Defense Department's eye.
Doug Engelbart's demo was showing his work from 1968(!!!) where he outlined such as cut-and-paste, the first ever computer mouse, hyperlinks, networking, video-conferencing... and at the end he even mentions the "coming Arpanet in about a year, end up with some 20 experimental computers in a network... with bandwidth of something like 20kbps" (of course, Arpanet eventually became the Internet we know today).
The full set of videos is listed here but if you want to watch them all in sequence, I've stuck together a SMIL file with them all in.
Since the mid-80s we've all become accustomed to the desktop metaphor as the main concept to describe how our computer screens look - we can place things in different places around our desktop, pile documents (or windows) on top of each other, and drag and drop things to move them from place to place.
This analogy is becoming increasingly stretched, as we need more powerful ways to visualize and manipulate data, and particularly as computing power bleeds out of the PC and into the world around us. With ubiquitous computing making our "intelligent devices" more specialised, the requirement to have their interface conform to a general-purpose workspace such as the desktop becomes less and less desirable.
Mike Kuniavsky has posted a very interesting article in which he experiments with off-the-shelf hardware and software to create a "magic wand" to control his Mac.
Combining an accelerometer-based mouse (so it doesn't need to be held on a surface to work) with mouse gesture software (the Firefox All-in-one gestures extension is where I'm most famililar with mouse gestures - it's a must for anyone using Firefox IMO) lets him control his computer by sweeping his arm around in the air whilst holding the mouse.
Now the object most similar (in common experience) to a mouse used like this would be the magic wand deployed by all good witches and wizards. Think how cool it will be if you could make your lights brighter by pointing your "wand" at them moving your wrist in a clockwise circular motion; or turning off the TV with a simple cross-like motion.
Combine the mouse functionality with your mobile phone, and suddenly everyone will be wandering round carrying a wand... Harry Potter eat your heart out! Of course, the death of the age of muggles won't be complete until we've worked out how to summon your wand from the other side of the room with