After seeing Gavin Starks speak about AMEE at Xtech I've been thinking more seriously about the amount of energy that everything I do uses. I'm reminded of James Duncan Davidson and Chris Messina, both of whom have written about green issues.
I think that as web developers we should think carefully about the amount of cpu cycles and bandwidth we use in our applications. We should be optimising both our usage of energy and the performance of our applications. I'm not advocating a hairshirt attitude, we still need to serve up pages to our users, but we can be a bit more thoughtful in how we do this. Yahoo take this seriously, too.
At the @media2007conference I asked the panel at the end about the environmental impact of what we do and got somewhat blank looks from most of the panel. So I think we need to do a bit more discssion about this amongst tech circles. Look at what you send to and from the client, AJAX can help a lot in terms of avoiding full page refreshes, but watch out for accessibility issues. Use mod_gzip on your web servers, ensure that you support the not modified 304 http status on your feeds. Look at asynchronous means of responding to queries, Jabber will have an interesting role to play in this. Many bits of information do not need to be processed live and immediately returned to the client, some do I'll admit.
A lot of the tips for improving performance will help save the planet too, so at least there is a primary driver for companies to implement this. Something I'd be really interested in would be the trade off between cpu cycles and bandwidth in terms of energy usage. Is it better to gzip and then decompress to avoid sending excess data through many routers, or does the gzip and decompress use more energy? It seems to make sense that sending less data is more efficient.
Textdrive have been exploring this area, as part of their move to Solaris and Sparc machines is to lower their electricity bill. So, I'm pleased that I'll be moving to one of their new solaris machines soon. Amazon EC2 can also be seen as a good initiative in this area. Why have your own capacity sitting idle just in case. Much better to have your code swapped in and out on another machine which is being otherwise kept busy.
I know that this may seem a tiny issue, compared to leaving power adaptors plugged in and electronics in standby, but every little counts. If you have a site then every excess cpu cycle or byte you send uses power every time you serve up a page. Whilst each page downloaded is a tiny contribution, there are many of them. So keep this in mind as you make new websites and applications.
Tags:
enviroment, web development , climate change, performance, bandwidth

Hey this is a really great post and I'm thrilled that you're raising awareness and offering productive ideas about how to tackle this issue.
The blank stares don't surprise me but do speak the enormous need for folks in our industry to start realizing that computers are becoming a significant power consumer and that that most of that power comes from the same polluting coal factories that we bemoan for their climate impact.
I hope to have some progress on our Green API later this month. In the meantime, your tips are a great start for beginning to grow an awareness to these issues.
Hey Gavin, nice post. Don't forget the geekyoto.com project :) some new stuff coming soon. Posts on the Polar talks at the National Maritime Museum recently, the Cape Farewell project and other stuff.
cheers,
mark.