June 23, 2008

Implementing RFC1149

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.

Tags:

Posted by Adrian at 02:32 PM | Comments (3) | TrackBack

June 22, 2008

What Do You Get If You Cross a Building With Web 2.0?

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:

Posted by Adrian at 11:17 AM | Comments (2) | TrackBack

May 30, 2008

Would You Like More Control Over Your Electricity Usage?

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.

Tags:

Posted by Adrian at 03:11 PM | Comments (2) | TrackBack

April 24, 2008

A Taste of TED on DVD

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:

  1. Dan Gilbert asks "Why are we happy?"
  2. Malcolm Gladwell on spaghetti sauce
  3. Sir Ken Robinson say schools kill creativity
  4. Hans Rosling shows the best stats you've ever seen
  5. Barry Schwartz on the paradox of choice
  6. Gever Tulley on five dangerous things for kids

Screenshots from the talks

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.

Enough! Give Me The Files!

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).

Spread the Word

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.

Tags:

Posted by Adrian at 08:56 PM | Comments (2) | TrackBack

April 14, 2008

Share Festival 2008: Manufacturing Future Designs

Posted by Adrian at 12:21 AM | Comments (0) | TrackBack

April 13, 2008

Share Festival 2008: Manufacturing Digital Art

Posted by Adrian at 08:54 PM | Comments (0) | TrackBack

April 06, 2008

Which Vision Thing?

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:

Posted by Adrian at 02:18 PM | Comments (0) | TrackBack

March 12, 2008

The Share Festival 2008

Share Festival graffiti logo 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:

Posted by Adrian at 12:55 PM | Comments (0) | TrackBack

March 04, 2008

See you at geeKyoto2008?

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:

Posted by Adrian at 06:05 PM | Comments (0) | TrackBack

February 11, 2008

Should My Radio Know If I'm Listening?

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...

Posted by Adrian at 11:18 AM | Comments (0) | TrackBack

February 10, 2008

Let a Thousand Niches Wither

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.

Posted by Adrian at 04:56 PM | Comments (3) | TrackBack

January 09, 2008

How To Redirect Users To an Updating Page When Modifying Your Website

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.

The Technique

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...

Caveats

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:

Posted by Adrian at 12:15 PM | Comments (0) | TrackBack

December 17, 2007

Writing the User Guide for the Website Owner in Drupal

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'.

A Different Class of User

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.

Restricting Access to the User Guide Content

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].

Creating the Index

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.

Tags:

Posted by Adrian at 07:37 PM | Comments (0) | TrackBack

November 01, 2007

Calling All Cambridge Technologists

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:

Posted by Adrian at 12:07 PM | Comments (0) | TrackBack

October 31, 2007

DIY Intelligent Fridge

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!

Tags:

Posted by Adrian at 01:47 PM | Comments (0) | TrackBack

October 01, 2007

I Forgot to Remember to Forget

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:

Posted by Adrian at 04:42 PM | Comments (0) | TrackBack

September 29, 2007

Bruce Sterling @ Circolo dei Lettori

Posted by Adrian at 04:27 PM | Comments (0) | TrackBack

August 29, 2007

I'n't T'Internet Brilliant?

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.

Tags:

Posted by Adrian at 11:53 AM | Comments (2) | TrackBack

August 23, 2007

The Superset of Friends

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:

Posted by Adrian at 06:05 PM | Comments (0) | TrackBack

June 21, 2007

SuperHappyDevClub - a Place For Cambridge Hardware Hackers

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...

Tags:

Posted by Adrian at 11:14 AM | Comments (0) | TrackBack

May 31, 2007

Innovation In Kitchen Appliances - Part 2

Here's the follow-up to the first sketch I drew about smart kitchens

The Intelligent Fridge... fridge: $500; annoying buzzer: $5; simple timer circuit: loose change; knowing I've left the door open BEFORE my food is ruined: priceless
(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?

Tags:

Posted by Adrian at 02:41 PM | Comments (0) | TrackBack

May 17, 2007

Arduino Workshop @ The Takeaway Festival

Posted by Adrian at 09:54 PM | Comments (0) | TrackBack

May 15, 2007

BCS Software Practice Advancement

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.

Tags:

Posted by Adrian at 04:30 PM | Comments (0) | TrackBack

May 09, 2007

Innovation In Kitchen Appliances - Part 1

Over the long weekend I was playing around with my tablet PC and drew something I've been thinking about for a while now:

The Internet Fridge...  fridge: $500; latest laptop: $1000; funding top R&D team: few $million.  Being able to check email when six feet from my laptop: useless
(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.

Tags:

Posted by Adrian at 10:36 AM | Comments (0) | TrackBack

May 08, 2007

RSS Made Fun

There are two types of Internet users, those that use RSS and those that don't. This video is for the people who could save time using RSS, but don't know where to start.

(Originally from Common Craft, found via I'd Rather Be Writing)

Tags:

Posted by Adrian at 04:16 PM | Comments (0) | TrackBack

April 16, 2007

A Brave New World

"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?

Posted by Adrian at 01:21 PM | Comments (0) | TrackBack

November 24, 2006

What Is Everyone Twittering About?

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.

Posted by Adrian at 08:20 AM | Comments (0) | TrackBack

November 16, 2006

Refreshing Firsts

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:

Posted by Adrian at 08:49 PM | Comments (2) | TrackBack

October 24, 2006

Finding Out About Geek-ish and/or Business Events

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.

Posted by Adrian at 08:04 PM | Comments (1) | TrackBack

October 11, 2006

Refresh Cambridge Pubmeet

Posted by Adrian at 11:03 AM | Comments (0) | TrackBack

October 10, 2006

And Now Some Thoughts About Comments

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).

Posted by Adrian at 11:50 PM | Comments (0) | TrackBack

October 09, 2006

Web-related Events This Week

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.

Tuesday: Refresh Cambridge Pubmeet

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:

Picture of me in my light blue Bang Bang records t-shirt

Wednesday: The Second Coming of the Internet Presentation

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.

Posted by Adrian at 06:08 PM | Comments (3) | TrackBack

September 22, 2006

Cambridge Web Design

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.

Posted by Adrian at 12:09 PM | Comments (0) | TrackBack

September 13, 2006

Thoughts On Mobile Access to the Internet - Part 1

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...

Posted by Adrian at 08:21 PM | Comments (1) | TrackBack

July 07, 2006

MoMo London - July

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.

  • WeeWorld was first up. They're selling little identikit avatars to customise your instant messenger and mobile phone experience. It all looks very polished, and I'm sure they'll be very popular with people wanting to personalise their computers and phones. Doesn't seem too far beyond the ringtone market, and although your WeeMe isn't anything expensive, I'm not convinced I'd ever buy one.
  • Active Media Technology are the guys providing the technology for the Orange Wednesdays promotion. They have the technology to provide ticketing via text message, and other messaging-related marketing solutions.
  • Otodio are trying to improve the ways we can listen to podcasts and spoken documents. Their system for navigating through (and generating) structured audio documents is a good idea, if you listen to lots of spoken-word. I'm not convinced that this podcasting, and audio consumption of documents is going to last, but maybe that's because I don't have an hour-long commute by car each day?
  • RedBend have some software that I can see being of great use and being in every phone in a few years, although I'm not sure anyone will know it's there. Their product lets manufacturers update the phone software over-the-air, making it easy for them to roll-out patches and fixes to phones in the wild - it's Windows Update for mobile phones. They also want to extend the system to allow seamless installation of mobile phone apps. A noble aim, and something that's much overdue if it drives take up of installing new software on phones; however, I don't envy them the task of persuading the handset manufacturers, phone carriers, and software developers to embrace their system.
  • The final business, zzizzl films were, the panel decided, the most interesting and so won the £1000 prize. I agreed with the panel, and as they seem to be in the early stages of the business I'm sure the £1000 will be most useful to them. Their aim is to become film distributors for independent film shorts, with their distribution channel being mobile phones, video iPods and PSPs. They'll share revenues with the film-makers on a 50:50 split, and seem passionate about what they're doing. I think the video-on-the-move model of consumption with mobile devices is a good match for the film short - you're more likely to be able to fit in watching a five or ten minute movie in the otherwise dead time on the bus, or waiting at the dentist.

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.

Posted by Adrian at 09:59 AM | Comments (2) | TrackBack

May 21, 2006

Watching A Seminal Moment In Computing

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.

Posted by Adrian at 08:49 PM | Comments (2) | TrackBack

April 27, 2006

Magic As The Next User Interface Metaphor?

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