iPhoto ’09 hates Flickr. Seriously.

Posted June 29, 2010 by Alastair
Tagged As: | Categories: Miscellaneous | No Comments

Despite the fact that they’ve now had a year to fix it, it’s still utterly broken. I couldn’t write worse software if I tried. Here are the ways I have found after merely attempting to upload a single event via it.

  • If you change a single photo’s title, it will re-sync the entire event (200 photos), using about 400 HTTP GET requests, and take about ten minutes doing it.
  • While it’s doing this, you cannot edit other titles because when a photo’s metadata is updated, your title-edit input loses focus. This is particularly nefarious, because if you’re busy deleting a word when it does this, that backspace keystroke will now delete the entire photo, which causes it to disappear from Flickr, along with all the comments.
  • It’s hilariously full of obvious race conditions that an undergrad comp-sci would be ashamed of, even in their Noddy second year project.
  • It’s spectacularly slow, seemingly because it makes hundreds of sequential HTTP requests to Flickr. I wonder what the Flickr folk think of that? Their servers can’t like it!
  • If you make edits on Flickr, they don’t propagate back reliably.
  • If you update the titles in your local event, the titles in the Flickr set locally sometimes get updated and sometimes don’t.

Colour me seriously unimpressed. I think I could do a better job given about a week of coding time. Very poor show, Apple. :-(

Wicket on Google’s App Engine

Posted April 10, 2009 by Alastair
Tagged As: | Categories: Apache Wicket, Java, Open Source | 2 Comments

Unless you’ve been living under a rock for the last week, you’ll probably have noticed that Google’s App Engine now lets you run Java web apps. This includes those created with Apache Wicket, although you’ll need to tweak a couple of settings to make it play nicely.

App Engine logo

The App Engine sandbox imposes some restrictions. The most notable of these is that you cannot run background threads. Here’s how to make Wicket play ball:

  • Make sure you’re running in deployment mode (this will disable the background thread that checks for modifications to your resource files, and is what you’ll want for deploying to a remote site like this anyway).
  • Override newSessionStore() in your WebApplication subclass and return a new HttpSessionStore(this). (The default DiskPageStore uses a background thread and writes files, neither of which are supported in the App Engine’s sandbox.)
  • Enable session support in appengine-web.xml.

App Engine for Java is in limited beta, but if you’ve been to the London Wicket Users Group at Google and would like me to wangle an account for you, please e-mail me (details on the About page).

Snow

Posted February 5, 2009 by Alastair
Tagged As: | Categories: Miscellaneous | 2 Comments

It’s been snowy in London. I went out on Sunday and took some photos. I like this one the most. ;-)

London Wicket Users Group at Google on October 1st

Posted August 29, 2008 by Alastair
Tagged As: | Categories: Apache Wicket, Java, Open Source | No Comments

October’s London Wicket User Group meet-up is happening on Wednesday 1st at Google’s office in Victoria. It’s shaping up to be a really good event.

We’re pleased to have Ari Zilka (who founded Terracotta) coming along. He will be giving a talk, as will Richard Wilkinson, who has interesting things to say about integrating Wicket with Guice and JPA. There will be a couple of other talks and some nice demos, too. If you’re wondering what it’s like to write real code in Wicket, don’t miss it.

If you’d like to come along, please wander over to the jWeekend site to sign up.

Wicket is on the Google Open Source blog

Posted April 8, 2008 by Alastair
Tagged As: | Categories: Apache Wicket, Java, Open Source | No Comments

The latest London Wicket get-together has been featured on the Google Open Source blog. Check it out for links to photos, etc. I’ve also put up some presentations and code samples from the event, including our dynamic AJAX image-cropper component.