8 Feb 2006

Cal Henderson: Building Flickr

Next up is Cal Henderson, one of the guys behind Flickr. Oddly wearing shorts, an unusal sight in London, mainly as it is Feburary! As a 'Flickr guy', his presentation is beautifully complimented with wonderful pictures. Cal talks about 10 things...CollaborationFlickr was built as a massively multiplayer photo sharing game! It uses collaborative metadata - tags - which helps build a community. Tags serve to both organise your photo's, but also others can tag your photo's and discover similar ones.AggregationRSS aggregation is essential. It allows the data to be sliced in a multitude of different ways, possibly opening up new uses.Open APIHaving an open API has had a big impact on Flickr, with many different projects springing up which make use of it. All of this serves to drive users to your site.Clean URL'sThere is no need to expose the physical structure/workings of your Webapp to the public. Intimate knowledge of Apache's mod_rewrite function can allow you to deliver beautifully clean URLs.Your URLs should be easilly guessable, and persistant - especially in the case of Flickr, you have to get this right from the start. Once people begin linking to you then your URL's should not change, else you break people's links.AJAXIts a rubbish name, really it should just be A!UnicodeIt is important to build for Internationalisation, allowing you to easilly offer multiple language user-interfaces if this becomes necessary at a future point.Desktop/Platform IntegrationDesktop integration can add extra interaction, or enhance tasks which browsers don't really handle very well - like uploading photos. These can all be built to use an API.Mobile DevicesGrowing in importance.Open DataGive users an easy escape route from your application, don't try and prevent them from migrating their data elsewhere, this breeds loyalty. This can be done using RSS or through an API. An example of this is a product called Englaze which takes your Flickr images and provides them to you on a DVD.Open ContentFlickr's open content model is attractive to users. They still retain ownership of their photo's and can liscence them through Creative Commons.
8 Feb 2006

Tom Coates: Designing Web 2.0-native Products for Fun and Profit

Its interesting how my perception of Yahoo is changing recently, especially with there recent acquisitions of Del.icio.us and Flickr. Back in the old days I always thought of them as second-rate Web portal, with a search which was a poor man's Google. Now, especially with their acquisitions and move away from the search arena, they seem to be a much more likable company with some genuinely useful products and services. The company's developer focus also goes a long way, with a commitment to providing API's for their services. 12 months ago, if you asked me what company I see dominating the Web, I would have said Google - now my answer would probably still be Google, but I would pause for a few moments before giving it!Tom Coates was a refreshing speaker, very insightful and seemed to be a genuinely nice guy - the kind of person you would want to go down the pub with! Lets see what he had to say about Web 2.0....What is Web2.0?Web 1.0 is the combination of pages and links. Web 2.0 is a compination of Data and API's. Data can be combined in new and interesting ways, such as in Astronewsology, a work-in-progress app which combines news and astrology using RSS feeds - as Tom says, its interesting to read obituaries and combine them with what was meant to happen to the person!Opening up your data can help drive customers to your site, similar to how the Amazon API works. It can also make your service more attractive, or more useful, allowing it to become a syndication platform. There could also be money to be made in providing a service, establishing yourself as a data provider.As a designer in Web 2.0, you can build two types of service:
  • Services's that open up a data source
  • Services's that publish or organize data
With this in mind, developers should consider the following architectural principles:
  1. You should add value to the data Web
  2. Build for normal users, developers and machines
  3. Start with data, not pages
  4. Identify 1st order objects and make them addressable
  5. Create readable, reusable, hackable URL's
  6. Correlate with external identifier schemes (or create a new standard)
  7. Build list views and interfaces for batch manipulation.There are three types of pages:
  8. First order pages
  9. Navigation/List pages
  10. Data Manipluation pages
  11. Create parallel data representationsMake use of existing standards such as RSS and Microformats.
  12. Make your data discoverable
8 Feb 2006

David Heinemeier Hansson: Happy Programming and Sustainable Productivity with Ruby on Rails

I had never seen a photo of David before, so it was good to put a face to the name. I was perhaps expecting a much older face, and beard, but surprises are good! David is part of 37 Signals and developer of Ruby on Rails.A motivated programmer is a happy programmer, and tools which make you happy make you more productive.Convention Vs. ConfigurationLots of programming languages force you to perform lots of configurations tasks when developing an application. For example, why should you have to specify a primary key of a database table when this should be obvious through naming convention? This is the design pholosophy of Ruby on Rails - it allows you to write beautiful code!You should optimize for the 80% of things which everyone does the same way - build conventions into your programming language, but also allow for the other 20% of the time when you may want to do something in a different way.
  • Simplification is achieved through assumptions
  • Code readability and programmer productivity is increased
  • This optimisation is used everywhere in Rails - configuration files, controllers, views...
8 Feb 2006

Shaun Inman: 10 Reasons Why You Need to Build an API

Shaun is the creator of Mint, a tool which tracks website users. He is also one of the minds behind sIFR, the Flash-based technique which brings rich typography to the Web - something which I'm considering using here once the design work is done. Today he talks about API's...10 Reasons why you need an API
  1. It increases brand awareness - just look at how the Flickr API has heralded the creation of lots of cool apps, driving users to the site.
  2. It allows users to access their data
  3. It builds goodwill with developers
  4. It is a perfect excuse for a community
  5. If you build software with an API in mind, it increases code quality
  6. It simplifies your own reuse of data, for example if you are implementing AJAX stuff
  7. It allows others to extend your application functionality
  8. It allows alternate input mechanisms.
  9. It can lead to unexpected uses of your data, such as Chicago Crime
  10. It can turn your program into a platform
Oddly, Shaun rushed through these in about 15 minutes before realising he had an extra half hour to kill! Unfazed he answered questions from the floor, some memorable ones:
  • How do you deal with piracy of Mint?Essentially there is little you can do, as being a PHP app, all the code is in the user's hands already. Comments along the lines of "Don't pirate this" worked initially. But in long term this is tricky to deal with. Some have suggested a Firefox plugin that scans for Mint, then checks to see if domain is a registered user.
Okay, I admit, thats the only one I remember at the moment! There was some discussion about writing Peppers (aka. plugin's) for Mint, which did quite interest me - currently quite involved in developing a behavior tracking utility - so it would be interesting to learn more about Mint, and see if it could leverage its storage/reporting functionality....
8 Feb 2006

Ryan Carson: How to Build an Enterprise Web App on a Budget

Ryan talked about how Carson Systems went about developing DropSend. As well as probably having the best typography, it was also one of the best sessions of the day. Giving general tips for start-ups interested in building a Web application, there was some useful advice and it certainly was inspiring - as I said to the guy sat next to me, "Wow. I'm going to go back to work tomorrow, resign, then go build my own Web app!"
8 Feb 2006

Andrew Shorten: Flex

Mid-afternoon saw a presentation from Adobe, the sponsors of the event, covering Flex. At this point I think most of the people there turned off, as it was mainly an extended advert for the product.From the presentation, I got the impression that Flex was essentially Flash, with a bit of MXML and CSS, trying to achieve some of the things which you can do with AJAX whilst adding some other bits and pieces. Useful? Yes and no, whilst the presenter gave some compelling statistics, Flex still seems to have all the accessibility worries of Flash, and adds extra development complexity. However, I can see how it could be good when used to add enhanced functionality to interactive applications. For example, internal analysis tools, or call-centre software could benefit from the rich user interface. In an environment where you control the software running on a machine then it could be a perfect solution to a desktop app...The development tools were advertised as free, unless you wanted to purchase the FlexBuilder IDE or the Enterprise Server thingy (yes, I've forgotten what it was called!).I have the developer CD here, too be honest, Flex could be something I would be tempted to use in a future project but for most things I just don't see it offering any value to a developer, it could just serve to add complexity or restrict user-base.
8 Feb 2006

Steffen Meschkat: AJAX

Whoever said that Google own the geeks and Yahoo own the marketing guys has a point - for the final speaker session of the day, Google sends Steffen, one of the developers behind Google Maps, who is particularly reminiscent of a mad scientist! Of course, mad scientist or not, he certainly knew his stuff and gave an enjoyable presentation about AJAX and its in's and outs....The NameAJAX is a very inaccurate name - even if you remove the JAX, A doesn't always hold. It really is client side scripting, but done correctly. It is just a shame CSS is already taken! But, a bad name is better than no name.Traditional ApplicationsApplication specific behaviour resides on the server. The only way to update a page is to reload the entire document.AJAX ApplicationsEvent handlers are stored on the client-side. The current document is updated constantly, possibly involving data requested from the server. Application specific behavior is available on the client-side.What does this mean?
  • You can achieve sophisticated user interaction, just like in 1990 (???).
  • Transient session state is managed on the client, whist persistant user state resides on the server. This corrects a long-standing architectural abberation.
Snip in depth history of JavaScript, and a few GMaps code examples. Challenges
  • DeploymentNeed to consider modularization, Caching...
  • Bookmarking and HistoryWe must not break existing features...
  • Graceful Degredation
  • FrameworksResist the temptation to build one - it already exists, the browser...
3 Feb 2006

Paper or Electronic?

Electronic books have been around in different forms for the past decade. A non-commercial example is Project Gutenberg, an online library containing thousands of free, mainly copyright expired titles, which can be downloaded in a variety of open formats. It offers well known titles such as Pride and Prejudice and Oliver Twist, combined with more obscure works. Interestingly enough, even though it is available here for free, Pride and Prejudice sold 110,000 copies in 2003 and is consistently in top 1000 books sold by Amazon. This begs the first question – why are the sales of this book so high when an electronic version is available freely? Is this due to the “classic” nature of the book or is it a wider reflection of the public attitude toward electronic books?Although Amazon itself has jumped on the electronic book bandwagon, offering them for download on its US web site sales are not particularly high – they are definitely not top sellers – and the selection of titles available is particularly poor, outnumbered by audio books – why are publishers not releasing more electronic books? The costs to the publisher, one would assume would be minimal – in the age of Microsoft Word and the Paperclip, manuscripts are already being produced in an electronic format, which could very easily be sold to the consumer with minimal effort by the publisher. But publishers are not willing to make it that simple, if we look at the current state of the music industry we can see why.With the growing prevalence of high speed internet access, one of the main concerns of the music industry has been protecting its properties from copyright infringements. Online stores such as Apple’s iTunes Music Store offer music for sale, but in a protected format, limiting distribution and sharing. This is one challenge facing book publishers; they are reluctant to release electronic versions of best sellers in an unrestricted format. The reason being that they do not want it being distributed on P2P networks or multiple copies being printed and shared because of the obvious impact it may have upon sales. There is a reluctance to follow Project Gutenberg, releasing text in an open format, and instead there is a push towards adopting a form of DRM in electronic publications – and this is where problems begin to show.Like what has been observed in the music industry, fragmentation is evident in the publishing industry when it comes to electronic publishing. Apple began selling music in one format, interoperable with their popular iPod portable music player. Hot on the heels, companies such as Sony and (the new) Napster released their rival stores, trading in a totally incompatible, protected music format - One which wouldn’t be recognized by an iPod. Similarly in publishing, Microsoft has launched its own Reader software , Sony is developing its own e-book hardware/software platform called the Librié and many other companies are developing competing e-book platforms and protection schemes. Like the music industry, publishers have not agreed on a single standard and as such the market is becoming fragmented – until a clear winner emerges there is little value for the reader in having a collection of e-books which they need multiple types of hardware and software to read. Although the delivery method of the text is much enhanced, the lack of a single unifying standard takes away the convenience of a book.Of course, this has not yet answered my first question – Pride and Prejudice is still one of the best selling books worldwide, it has been available electronically, free of charge and in an open format for the past decade, yet there has been no significant decline in sales. Why? Perhaps, aside from the technological factors surrounding electronic publishing, the reason for its non-acceptance is more a social one?Jeff Bezos, the founder of Amazon realizes there is a difference between his company and physical bookstores:
“We will never make Amazon.com fun in the same way as the great physical bookstores are … You’ll never hear the bindings creak and smell the books and have the tasty lattes at Amazon.com”
He is admitting that there is a big difference between his store and its real-world counterparts, and the same is true for electronic books.Many people have commented that sitting down with a book is an intimate experience; you have tactile contact with the pages as you turn them and you can smell the inks and paper used. A book is something you can curl up in bed with, read on the beach or in the bath. With electronic books you get none of this, you stare at a bright screen – making your eyes tired, certainly not what you want when you are trying to read the latest Dan Brown bestseller. Portability is also an important aspect, even if you have a PDA or laptop, its not suited for all environments and can still be bulky. If you are giving a gift, would you rather it is a tangible, hefty book or an intangible collection of ones and zeros on a remote computer?Similarly, how many times have you been to somebody’s house and glanced at what they have on their bookshelf? It tells you something about the person, something you wouldn’t get if they just had a computer in the corner. A book is a personal object; one of my earliest childhood memories is of reading a book. I can pick it up, twenty years later and immediately be filled with nostalgia. A computer on the other hand is a lot more impersonal, and too be honest I’d be concerned about it still working after twenty years!Even assuming that technological incompatibilities and limitations will eventually be resolved, it is hard to imagine that the social drawbacks will be as easily, or quickly, resolved. With this in mind, I do not see “dead-tree” publishing disappearing any time soon, and replaced with electronic publishing.Having said all that, there is perhaps one area of electronic publishing which I see as being done well, and potentially growing. I have personally used a company called Pragmatic Publishing, a small publishing house serving a niche market of computer programmers – offering titles on best practice, and the “next big thing” of the moment. Their titles are available in both “dead-tree” forms, from themselves or Amazon, and in electronic format. You can download a book, in unprotected PDF format, at a reduced price immediately, the only form of protection is that your name is embedded onto every page. You can also order the print and the electronic version at the same time at a special price. As a customer that is quite valuable to me, because I can dive right in immediately with the electronic version while the print version is in the mail.The company also offers “beta books” – books still being written. You can subscribe to download PDF chapters as the author writes then, and offer feedback which helps shape the final product. This idea has taken off in software development communities, which are already collaborative by nature. However, as good as this idea is, it is something that would only work effectively in such niche areas – don’t expect to see a beta of the next Harry Potter title!
1 Feb 2006

Have you tried rebooting?

Minor accident on the way to work the other day, resulting a cracked laptop screen. Too be honest I'm still not sure what could have caused it, only that it was fine when it went into the bag and cracked when it came out. In some ways would be nice if I was hit by a car or something, as it would explain the damage and I would be less confused.Anyway, I call up technical support this morning, and the conversation goes something like this:Me: "Hi, I have a problem with my laptop, there is a physical crack in one corner of the screen."Support Technician: "Can you power down your computer and restart it, it should solve the problem."Me: ... Interesting start to the day...
23 Jan 2006

So, where can you buy AJAX?

So, after a good few months of showcasing the technology to various business partners, we have finally got the go-ahead to build several AJAX components for our Web applications at work. For some reason the business decided to schedule a meeting for a day when none of us tech guys could attend, there were a few gems in the minutes."[the project] uses AJAX Technologies. We need to buy this and get it loaded on the servers""AJAX software would need installing"I was forced to correct everyone after visions of truckloads of household cleaner being delivered to the server farm!

Chris Korhonen's Posterous

I am a British-born UX designer currently based in New York City, with over 10–years experience developing for the web.

I spent 5 years working at American Express, developing their online services and touching many areas including accessibility, usability, search engine optimization, web strategy, content personalization and social media.

Currently I working for Animoto, an exciting start-up whose product is a cutting-edge, automated, video creation platform.

On the technical side, I have lots of hands on experience building with HTML, CSS, JavaScript, ActionScript, Ruby and Java. Recently I authored a book on using APIs to create mashups using Adobe Flex and AIR.