September 2007


facebook and ukaehso on 26 Sep 2007 11:07 am

At least according to Nielsen/NetRatings Facebook has surpassed MySpace in the UK with over 6.5 million users - 541% growth since Dec ‘06.

At the Facebook Developer Garage in London a few weeks ago Facebook’s VP of Product Development (Chamath Palihapitiya) mentioned they had 5.2 million UK users so I suspect the real total is somewhere in between but that growth rate is phenomenal. Almost as interesting were some other stats Palihapitiya presented - IIRC he mentioned a 50% daily return rate with each user burning through over 1500 page views a month…

api and app and rss and wordpressaehso on 25 Sep 2007 08:55 pm

Great to see Wordpress 2.3 shipping with support for Atom 1.0 and APP (draft 17 compliant I’m guessing). I haven’t updated this blog yet (for fear of borking plugins/themes that I have enabled) but from playing with a local test install this afternoon I see Wordpress now publishes the following feed URLs out of the box:

  1. <wordpress-root-URL>/?feed=atom - Atom 0.3 format feed
  2. <wordpress-root-URL>/?feed=rss - RSS 0.92 format feed
  3. <wordpress-root-URL>/wp-app.php/service - APP Service
  4. <wordpress-root-URL>/wp-app.php/posts - “Wordpress Posts” APP collection feed
  5. <wordpress-root-URL>/wp-app.php/categories - “Wordpress Posts” APP category document
  6. <wordpress-root-URL>/wp-app.php/attachments - “Wordpress Media” (attachments?) APP Collection

I am a little curious about why the HTML doesn’t contain a <link> for 4 though - its absence makes it kind of difficult to auto discover the collection feed URL. I’m also curious why both 1. and 4. exist. I always assumed that the APP collections would just point to the real Atom feed URL, with APP clients authenticating to send HTTP POST, PUT and DELETE requests. Was this necessary because of bad feed readers/aggregators or was my assumption just plain wrong?

Update: Sam Ruby has some good commentary, doesn’t answer my question though…

api and facebook and scmaehso on 24 Sep 2007 10:37 pm

It’s almost incredible to believe that Facebook application developers have put up with using discussion forums to report, discuss and track bugs in the Facebook Platform while it is in constant use by 40million+ users but Facebook have finally launched a Bugzilla based bug tracking site.

One might be forgiven for thinking they survived this long because the platform API is rock solid but their tendency to roll out nightly updates that break very visible platform APIs every few days contradicts that slightly. We scratched our head for few hours a while back when the mock Ajax APIs that our application profile boxes were using suddenly started presenting the user with misleading error dialog boxes, only to find out that the platform API had accidentally been busted the previous night. I’d imagine there’s been a lot of time wasted by a lot of application developers over the past year while tracking down similar incidents but they have been incredibly patient in waiting this long.

One thing I would love Facebook to add is a FBML tag that gives the application developers extra debug/trace info while running/debugging their application but until now I’ve had no decent way to know if something like this isn’t already in the works. Something like a fb:is-app-developer, or a magic debug/trace div beneath the application div might be nice. Or they could just open source their FBML->HTML rendering engine and then 3rd parties could go about developing decent tools to aid debugging (I suspect this is already being reverse engineered though anyway…)

Better later than never though I suppose.

berlin and ireland and rails and railsconf and rest and rubyaehso on 23 Sep 2007 02:20 pm

[Update: Some of the presentation files are now available on the RailsConf Europe website]
Slight delay on writing this one up as I was in transit on Thurs and at a wedding on Friday.  Anyway, this summary is going to be a lot shorter as I didn’t get as much out of Wednesday’s sessions.

Rails Hydra: Synthesizing an Application out of Multiple Rails Codebases (Craig R. McClanahan, Nick Sieger, Sun Microsystems)

Good talk on building services using several Rails applications, the Sun guys also got a chance to demo use of NetBeans 6 for Rails development (with some live demo debugging thrown in along with great audience participation!) Most of the demo centered around making it easier to develop DRY ActiveResource implementations. ActiveResource is almost definitely the right underpinnings for any RESTful service implementation but I think it still needs a bit more work around the edges.

Using a HAXOR Approach for Peace and Productivity (Tim Dysinger)

Good talk on how to manage interaction between designers and developers when developing Rails applications that use HTML, Ajax and XML Over REST. Quite high level (and if I’m honest, I was working away in the background so I couldn’t give it my full attention…)

Browser-based Testing of Massive Ajax-using Rails Applications with Selenium (Till Vollmer)
Good overview of using Selenium to test web applications from within the browser, covering use of Selenium IDE (browser based Javascript IDE), Selenium RC and the Selenium on Rails Plugin. Highlighted that Selenium struggles a bit with testing Ajax heavy web pages but it is possible with hand crafted scripts that use waitForVisible and/or waitForElementPresent events…

Functional JavaScript Development with Prototype (Ben Nolan)
Bit of an edge talk for the JavaScript fanatics but Ben presented well and it seemed well received by the audience…

Ruby on Rails leads you to the e-business (Quentin Tousart)
Mildly interesting talk on experiences gained in building two e-commerce websites using Rails.

Obscure Data Formats, Workflow, and Remote Synchronization (Chad Thatcher)
Another interesting case study on building a Rails front-end for a legacy data format (in this case the RISM format used by the British Library to catalog music manuscripts). Interesting use of composed_of in the Rails model objects to compensate for the fact that the underlying data was in hierarchical rather than relational form.

That’s about it, I met up with Sean Hanley from exoftware and David Rice . Mental note to self, get into RubyIreland

berlin and java and rails and railsconf and rest and ruby and widgetsaehso on 19 Sep 2007 11:42 am

[Update: Some of the presentation files are now available on the RailsConf Europe website]
Some quick notes from some of the excellent conference sessions that I attended yesterday at RailsConf Europe.  I wasn’t here for the Tutorials on Monday though now I wish I had been - the quality of the presentations (at least the ones I’m picking) is excellent.  Aside, Berlin is a cool spot, I must come back here sometime again to have a decent look around…

Deployment and Continuous Integration from the Trenches, (Fernand Galiana - LiquidRail)

  • All about latest developments for Capistrano 2.0 - it seems to have matured considerably in recent months.
  • Use multistage_ext
  • Use shared project capfiles to keep things DRY
  • Use remote repository cache to speed up deployments
  • Read Jamis Buck’s blog and the Capistrano Google Group

Really Scaling Rails, (Britt Selvitelle - Twitter)
I’ve seen presentations on Twitter scalability, and even since then they have had a few more high profile outages (at least high profile amongst Twitter users). A couple of interesting takes from this talk:

  • Twitter uses Apache, mod_proxy_blancer and mongrel servers
  • All user traffic is handled by a single MySQL server. That server does have a slave that can be promoted to master (for redundancy). They have a couple of other MySQL databases for use internally for reporting etc.
  • They set mongrel’s num_procs to 1. This means that each mongrel server instance will not queue requests from mod_proxy_balancer - they will only accept one at a time. The side effect is if the concurrent request count > mongrel server count then users start getting error pages. Strangely, they’d rather users got errors than risking loosing queued requests whenever they have to restart a mongrel instance (mongrel apparently waits only 60s before sending itself a TERM signal when shutting down).

Rails Full Text Search with Ferret

A little different to what I was expecting, Ferret provides an indexing service for arbitrary strings (documents), similar to Apache Lucene in many respects.  Worth a look, if you need to support full text search within your rails application.

Tabnav: Do We Really Need a Plugin for Tabbed Navigation? (Paola Dona - Seesaw)

The title of this one was a a bit modest as Paola presented a slew of new Rails Widgets that SeeSaw have developed, all of which seem to be very flexible. Widgets for include tabbed nav (or course), site nav, tables (blocks), nubbins, show/hide blocks, help popups were all demoed. Their widgets integrate very nicely into the rails views/templates - all in all, it looks at least good enough for use in creating rails app prototypes and it appears they might be flexible enough to be embedded into a production application…
The Rest of REST (Roy T. Fielding) - slides

Good historical view of where Roy came from and how the principles of REST have always been such an important underpinning of the IETF’s thinking behind standardization of key web specifications like HTTP, URI and HTML. He provided a good overview of how the web architectural style is defined as a set of constraints:

  • client server
  • stateless
  • caching
  • uniform interface
  • layered systems
  • code-on-demand

There was some interesting discussion on what is missing from Rails though Roy’s first two suggestions drew comments that he might have missed features in Rails that do what he wanted.  His last suggestion, for Rails to guide the developer into using hypertext as the engine for of application state (man they really have to find a shorter name for that!) was a fair comment - seems like an incredibly difficult problem to solve in a generic framework like Rails but as he said, it’d be a first…
Last talk was Craig McClanahan finishing off the day with a short Rails and the Next Generation Web pitch.  Now I hadn’t realised Craig had switched from Java to Ruby development and he seems to be loving it.  Craigs name has all over the Apache code I’ve worked with for years now - he was one of the original Tomcat Catalina & Struts developers and he also co-authored the Servlet and JSF specifications.  He had an interesting anecdote about how the Struts developers all suddenly found themselves working on non-struts based projects…

gmail and google and tipaehso on 17 Sep 2007 06:08 pm

Update: GMail now offers IMAP support, a good alternative if supported by your client…

While on the road I download mail from GMail to my PDA (an N800) via POP. However, when I subsequently checked the same GMail account from my laptop (via POP) it would skip over the previously downloaded email, leaving me with emails in two places.

Today, I discovered if you change your GMail login name in both your PDA client and desktop mail applications to recent:<username>@gmail.com then GMail will download all incoming email to both. The only side effect is it seems to download emails that you sent to others via the GMail web UI but I can live with that as I don’t use the web UI often.

NOTE: A word of caution - before you change your login name in your desktop mail application make sure you empty/archive your inbox first as it (Apple Mail in my case) will re-download your last 30days worth of email again leaving you with duplicates to delete. It behaves nicely from then on though.

See the GMail Help Center for more.

berlin and europe and rails and railsconf and rubyaehso on 17 Sep 2007 05:06 pm

I’m heading to RailsConf Europe 2007 in the morning for a few days of Rails goodness. If you fancy a meetup (any other Irish devs attending?) do drop me a comment or email me

demobar and dublin and fowa and laptop and pintaehso on 14 Sep 2007 10:40 am

Wow, what a great event! Congrats to everyone for the huge turnout that made DemoBar a great night. From wherever I was standing (admittedly closer to the Bar than the very busy Demo booths) it certainly looked like everyone was enjoying the event, I’m looking forward to reading the reviews from others who were there. The ‘burning’ question is did Joe’s laptop survive the pint attack?

astoria and microsoftaehso on 06 Sep 2007 10:44 pm

A lazyweb request for anyone out there who knows - where did Project Astoria go? The Astoria website on MS Live Labs seems to be, err, gone!

app and atom and wordpress and youtubeaehso on 03 Sep 2007 08:37 pm

The Atom Publishing Protocol (APP) is gaining some serious traction since it went final a few weeks ago. YouTube have announced that their new APIs are APP/GData based and now Pete Lacey, Sam Ruby and Tim Ruby Bray have finished adding support for APP to WordPress, in time for WordPress 2.3.

This bodes well as APP and GData are two of the the core protocols supported by the new feed commerce platform that we (nooked) are busy building. Anyone working on services that exposes collections of resources should read the APP spec - the RESTful approach for publishing collections works so well