Portrait of Edd Dumbill, taken by Giles Turnbull

Subscribe to updates

Feed icon Atom or RSS

or get email updates

What I make

expectnation
a conference management web application


XTech Conference
a European web technology conference

Where to meet me

View my travel plans on Dopplr.

Twitter updates

follow me on Twitter

Dublin and San Francisco

About to go off travelling again.

Next week is of course XTech 2008, so I'll be in Dublin with some of the smartest people working in web technology today. The schedule looks fantastic, and we've still got proposals coming in for the Lightning Talks, which promise to be highly entertaining and informative.

If you didn't yet book, don't worry that you missed the online registration deadline, you can still register on-site.

Where 2.0

After XTech, it's straight to San Francisco (well, Burlingame) for the O'Reilly Where 2.0 conference. Although I'm interested in the conference, my main reason for going is that we're launching a new addition to our onsite check-in system: magnetic stripe conference badges.

Here's a proof image of my badge.

Badge proof for Where 2.0

I've really enjoyed working with making badges: every so often as a software person, you get to write something that creates a physical artefact. I guess this is one reason Arduino is so popular.

It's also been interesting as we're working entirely within Linux. Specialized hardware like badge printers tends to be primarily aimed at Windows machines. Happily, the Evolis range of printers has CUPS drivers too.

You are reading the weblog of Edd Dumbill, writer, programmer, entrepreneur and free software advocate.

Freelancing in the internet industry

For all but the earliest part of my career I've either been, or been close to, freelancers in the web and free software world. While going solo is a rush of excitement, freedom and invention, there are also the hard parts of business to consider. I've seen too many people lose confidence and return to less liberated employment because they couldn't get to grips with the basics of getting work.

This is why I'm really happy to see Stephanie Booth's Going Solo conference, coming up in May this year in Lausanne. It's for freelancers and self-employed people in the internet industry, and will cover all the nitty gritty aspects of working alone, including business, marketing and the essentials of ensuring doing what you enjoy doesn't become a chore.

I'll end with quoting from a recent posting of Stephanie's, A Theory About Freelancers in the Internet Industry. This struck a chord with me, and is what makes me think Going Solo is going to be an excellent event.

Most freelancers go solo because they are good at doing something that people are willing to pay for, and attracted by the freedom of being one’s own boss and the perspective of possible lucrative earnings. Business skills are not usually paid much attention to until they are suddenly needed, although they are what will determine how successful one can be in the long run. At that point, it’s common for the soloist to feel lost and isolated.

Going Solo is a one-day event that was designed to address this issue. We will gather 150 soloists and small business owners around a core group of speakers who are experienced freelancers and will share their knowledge on a variety of business topics. We also want to give freelancers an occasion to come in direct contact with others like them and build a European community where they can support each other.

Going Solo conference for freelancers, May 16th, Lausanne (Switzerland).

(Note: My conference software company, Expectnation, is a sponsor of Going Solo, and it's been great for us to learn more about empowering small, focused operations as well as some of our larger customers.)



Obvious mail productivity tip

From the department of So Obvious I Can't Believe I Didn't Do This Earlier...

I'm pretty compulsive about organizing all my mail. On my IMAP account I have about 270 different folders. The folders sit in hierarchies, cataloguing my work and personal life, mailing lists and projects.

Unfortunately when I'm dealing with email this means some time spent trying to find the right place to file each message. Apple's Mail lacks any way to quickly find the folder I want, and I suspect I'm in a minority for being so organized and having this many folders.

Today it occurred to me that I should stop worrying about keeping the hierarchy for my current projects, and file them away when I'm done. This was so stupidly obvious—I do this in real life with paper files—that I can't believe I didn't do it before.

So, may I present my easy-access to current mail folders:

 screenshot of mail

Everything in my current working set now lives in the @CURRENT folder right near the top, meaning minimum time taken to find where to file things.

I share this only in the hope that anyone who is as blind to the obvious as I was might benefit.


XTech registration open, schedule published

Registration is now open for XTech 2008. We're in Dublin, Ireland, from May 6-9.

We've also now published the full schedule. You can use the clickable stars by each session to put together your own personal schedule for the conference.

If you're new to XTech, here's what to expect: a thought-provoking, well-informed and friendly conference covering the latest in Web and open standards technology.

If you've been to XTech before, you should expect more of the same, with the usual inclusion of new directions and controversy.

Keynotes

Our keynotes this year are all people with whom one could never get enough time: Simon Wardley, who has great insight on the dynamics of open standards and open source, and presents them in a very engaging and entertaining way; Sean McGrath, whom to call a Python, XML and mobile expert would be to ignore 99.5% of his talent; and David Recordon of SixApart, one of the chief brains behind OpenID and a very nice man indeed.

Tutorials

As usual, XTech kicks off with a day of tutorials. I'm absurdly proud of the faculty we have together: hear about jQuery from Simon Willison, XSLT from Tony Graham and Doug Tidwell, XForms from Steven Pemberton and Web 2.0 from Eric van der Vlist.

And that's just to start. This year we've two tutorials that have the potential to change the way you develop systems and services.

A practical introduction to hardware hacking with Arduino

If you've not heard of Arduino before, it's an open source electronics prototyping platform that's very easy to build with.

Why is a web conference is featuring hardware? Think about our theme "the web on the move." The next step for the web is out of our computers in into our gadgets and lives, we already saw a start to that in our conference last year with presentations on mobile devices and physical hyperlinks.

Arduino removes the barrier to entry for those who think of themselves as "software people", and is a fantastic way to start bringing your web applications into physical environments. I highly recommend the tutorial as way of expanding the horizons of your web development. (A similar tutorial at O'Reilly's ETech conference sold out within days!)

Building CouchDB Applications

All of a sudden the web application database choice stopped being the traditional one of MySQL, Oracle or PostgreSQL. A new breed of databases has emerged, speaking the language of the modern web: REST, JSON and JavaScript.

The open source CouchDB, backed by IBM, is the frontrunner among this new breed of databases. It's a document oriented, non-relational database management system. And here's the key thing: it's distributed by default. Check out the CouchDB Quick Overview for more details.

CouchDB expert Jan Lehnardt will be teaching a half day tutorial.

BOFs, Lightning Talks

As usual we'll be running Birds-of-a-Feather sessions and Lightning Talks, both of which will be open to public participation. Look out for calls for involvement in both those soon.

 


XTech deadline extended until Monday

If you missed last Friday's deadline for XTech 2008 proposals, don't worry, there's a second chance.

I've extended the deadline until the end of this Monday (January 28).

There's still time to get your proposal in!


Last few days for XTech CFP

There are only a few days now to submit your proposal for XTech 2008 (May 6-9, Dublin, Ireland.)

We're looking for tutorial and presentation proposals. All speakers get free conference registration, and further assistance is available to tutorial presenters.

Our theme this year, "the web on the move", couldn't be more timely, whether you're thinking about data portability, web based platforms or mobile devices. This theme will work its way through our usual coverage of open technologies, browsers, open data and web development.

Your audience will be people just like you: responsible for innovating and leading technology choices in their organizations or open source. Check out last year's speaker list and proceedings to get a feel for the conference.

This year's keynote speakers will be Sean McGrath, Simon Wardley and David Recordon.

There's only until the end of this week left, so submit your proposal now! I look forward to seeing you in Dublin.

See also:


Telling stories with RSpec

For a while now I've been writing RSpec specifications to test Expectnation, rather than "traditional" Rails unit tests. Although I don't completely get the Behaviour Driven Development hype around RSpec, I do find that it helps in writing more literate and maintainable test suites.

Until very recently, however, RSpec for Rails had no decent answer to Rails' integration tests. Integration tests enable the testing of compete scenarios, as opposed to the specific testing of methods or single HTTP operations that unit and functional testing provide.

For instance, our integration test suite for Expectnation tests things such as "a user tries to submit a proposal, is redirected to the account sign up page, signs up, and then is redirected to the proposal submission page". This involves multiple steps, and the whole suite of tests necessitates a lot of reuse.

The need for reuse resulted in trying to construct a DSL-like set of methods for each step, such as "user logs in with email X and password Y". It has gotten a bit tangled, especially when looking at test failures to see what's really gone wrong.

Tangled wires

After a while, unravelling the test suite starts to feel like unpacking Christmas lights. (Photo: shoothead)

RSpec Story Framework

My problems with integration tests made the Story Framework, newly available in RSpec 1.1, look very interesting. Based around plain text descriptions of application behaviour, it lets you write integration tests with good reuse and good diagnostic reporting.

For example, here's a story I wrote to check the login process.

Story: login as an existing user
        As an unauthenticated user
        I want to log in to Expectnation
        So I can see my account details
       
        Scenario: login details are correct
                Given an event provider
                And my test@example.org account
                When I log in with email test@example.org and password foofoo
                Then I will be logged in
                And I will be shown the account page

The words such as "Given", "When" and "Then" are cues to the story runner to execute some code. Behind the story sits a collection of steps. Here's a couple of steps from this test:

  Given "my $email account" do |email|
    @user = find_or_create_user_by_email({:email => email,
      :password => 'foofoo',
      :password_confirmation => 'foofoo'})
  end

  When "I log in with email $email and
                         password $password" do |email, password|
    post '/user/account/authenticate',
      :user => {:email => email, :password => password}
  end

Notice how a clever bit of string matching allows you to pass parameters from the story prose.

With a small bit of bolting together, the prose stories are then run as code and the tests executed. One nice touch is that if you write a story which doesn't yet have code behind it, it is marked not as a pass or fail, but as pending, which means you can sit down and write all your stories and then get to coding the steps later. This beats writing empty tests which transparently pass.

To conclude, the RSpec Story Framework offers these advantages over Rails' integration tests:

  • Text-only stories makes it very easy to write and understand tests
  • The construction of steps for each line makes it easy and maintainable to construct reusable components for the tests

Further reading


First post!

I've just posted my first article over at the O'Reilly Radar blog. I'll be blogging over there on and off, making my small contribution, covering my favourite themes of open data and open source.

My first article takes a look at Shelf, an OS X implementation of Nat Friedman's GNOME Dashboard concept.

The main reason I've joined the Radar crew is that I've the honour of being co-chair of this year's O'Reilly Open Source Convention, with Allison Randal.

We've now opened the OSCON call for participation, so please head over and consider what you might submit for this year's conference.

(And if you're really observant, you'll see that O'Reilly are now using Expectnation, something about which I'm totally thrilled!)


XTech 2008 call for participation is open

I'm pleased to announce the Call for Participation for XTech 2008. We'll be in Dublin, Ireland from May 6-9th.

Our theme for this year is "The Web on the Move". I'm not just talking about your shiny new iPhone, but about the emerging portability of data, applications and identity on the internet. XTech 2008 will explore the benefits, issues, practicalities and fun of a web built on open standards, open source and commodity technology.

The confluence of virtualization, open APIs and open data standards has really made me think. Today, you probably trust somebody else to store your email. Tomorrow, they'll be running your applications, providing you your computing power and exchanging your data with other providers.

XTech 2008 will cover portability in all its senses, including shared identity, data, mobile client devices, machine virtualization and more, in addition to our usual run of technical web development topics including Ajax, markup, programming and operations.

Just as importantly as the content, XTech is the place to meet others who are shaping the web as we know it. Take a look at last year's speaker list and presentations. If these are the people and organizations you want to argue with, be inspired by and challenge, I'd love you to be part of this year's speaker list.

Head on over to the Call for Participation, and be sure to get your proposals in by January 25th! 


Smartcard authentication on Linux and Mac

For various reasons, I need to secure access to some resources using two-factor authentication, and thus have been looking at smartcards. These little devices store digital keys and certificates, protected by a passphrase, and calculate digital signatures on-device. Hence the two factors: possession of the card, and knowledge of the password.

This sort of scheme is widely used by government agencies and large corporations (and largely reliant on Windows, too), but I wanted to find the low cost way in for the small operator using open source.

OpenSC on Linux

The best starting point for Linux is the OpenSC project. It supports a reasonably broad array of devices, and is well supported by Linux distributions. Using command line tools you can create keys and certificates, as you would in OpenSSL for web servers and so on, and then upload them to the smartcard.

Although OpenSSH source code has support for OpenSC, it is not compiled in by default in Debian and derived distributions. Unfortunately this means a bit of recompilation to get SSH supporting OpenSC. When that's done, you have an SSH implementation that can use an RSA key from your smartcard, and best of all, you can add this key to the ssh-agent like you would with regular keys. 

The hardware

I ordered two devices, which seemed to have the best support from OpenSC, the Axalto Cryptoflex E-Gate, and an Aladdin eToken. I got these from UsaSmartCard, who have a special section in their catalogue for Open Source compatible products. Both these cards have a USB interface built-in, I didn't want to be toting around an extra card reader in addition to the tokens themselves.

On the Mac

While both the devices worked as advertised under Linux, the experience has been a lot less fruitful under Mac OS 10.5 Leopard. There is a port of the OpenSC project for Mac OS, called SCA. The promise of the integration is great: you can use the on-device keys with apps like Safari and Mail, but there is a change in the way that the daemon responsible for talking to the smartcards (pcscd) works on Leopard, which means OpenSC won't recognise the cards.

With some fiddling, I have managed to force the Cryptoflex device to work with Mac. Unfortunately the Leopard/Darwin source for OpenSSH has diverged significantly enough from the upstream OpenSSH, that I couldn't apply the OpenSC patches. Not having ssh-agent work with the smartcard is a significant nuisance for me, as it's the easiest way to patch in the extra security to deployment processes.

The Aladdin eToken just plain didn't work on Leopard. There is a report that Aladdin are working on Leopard drivers, however.

I think a small number of mainly US federal smart cards will work out of the box on Leopard, though I've seen a few complaints about these on the Apple forums. It loooks unfortunately like smartcard support slipped through the net a bit. 

Conclusion

Smartcard support is relatively straightforward on Linux. On Mac OS 10.5, it looks like some waiting is in order before things will work properly.


Copyright © 2000-2008 Edd Dumbill