bbc homepage (re)launches

The BBC homepage, which I worked on from January until October last year, has finally gone public (well, beta). You can get to it one of two ways: either hit the current homepage and opt in to the new one (link on the top of the page). Or just load the website.

So, whats new (well, that I know about – there may be more since I left)?

Note to the usual BBC-bashers out there: This is my opinion on a lot of things, and also a snapshot of how it was when I left in October. Things may have changed. I may not have remembered them quite right. People may have made decisions which you dont agree with. Get over it. And if you think I speak for the BBC, BBC Worldwide or anyone but myself, I have a bridge I’d like to sell you…..

The criteria of the homepage rewrite was a lift and shift, which means that functionality that the end user sees and uses should not change much, if at all, but it needs to run on a totally new platform, be somewhat future-proofed, and be updated for changes in technology.

The basic idea of a movable, customisable set of boxes with the various news items, launching you deep into other BBC properties, hasn’t changed. There are a number of smaller UX changes – eg the size of the header is different, the media box has changed completely and can now do video amongst other things – but the basics haven’t changed.

If you loved the old homepage, you’ll most likely love this one. If you hated it before, I doubt you’ll like it now, either. That’s just how things are. If you really want to change it, I suggest you apply for a job at BBC FM&T.

What has changed is mostly behind the scenes. On the front end the Glow Javascript library, which the BBC open sourced a few months ago, has been used for most of the page layout and manipulation. As this is the standard UI library within the BBC, this means that pool of people who can maintain the homepage is larger, at least within the BBC. A lot of the older markup and styles have been updated to reflect changes in the state-of-the-art since the original homepage was written.

On the backend is where most of the changes are. The BBC has invested in a new platform, internally called Forge, and the homepage is the first major project I know of to launch on the new platform. Forge is a complete re-work of the BBC platform – the existing one evolved over time since web 1.0, and was having trouble handling the large load of events like 7/7, or the projected load of the 2012 Olympics. Most of the code was a mix of Server Side Includes (SSI) and Perl, with some Java thrown in for good measure. The existing homepage had issues around how long it took to make a new widget, which was addressed in the new homepage.

The Forge platform uses a lot of up-to-date techniques and technologies. At the front end lies PHP, which is used to render the pages to the end user. I can only summise why PHP was chosen (as I wasn’t at all part of the decision), but I imagine it was for a number of reasons: it’s known to be able to be scaled (facebook/yahoo anyone?), and there are a lot of people out there with PHP and front end skills. Finding people with the right skills easily and (fairly) cheaply is always going to be more of a problem than throwing some more hardware at a problem, within reason. I have my own feelings about PHP (especially after using it for 9 months), but I think, in this case, it’s a good decision.

Forge uses a SOA-based architecture, and the base platform provides a number of different services to all applications, such as databases (mysql), key-value stores (couchdb, abstracted away to look like a dumb store), memcached, image manipulation, monitoring, geo-ip, inter-layer caching and a rather brilliant internal feed engine, which allows for feeds to be pulled from various internal and external sources, cached and managed for availability, and then served to the requesting page in a very short amount of time.

Other services – REST-based and usually delivering JSON or XML – can be written as needed and hosted on the Forge platform, using Java (preferred) or Perl (for legacy apps, usually).

Forge is also a development environment, designed to allow easy development both inside and outside of the BBC firewall. For example, during the snowpocalypse last year, working at home was as easy as just plugging in the laptop and turning off the proxies. From there, we had full access to all source code, continuous dev/test/stage environments, wikis, bug tracking systems, IRC etc. We even had one team member working from New Zealand using the same system. This aspect alone makes forge one of the best overall development environments I’ve used. Work anywhere with a ‘net connection. Really. Bravo to BBC’s Forge people on the design and implementation.

If you look at the homepage, the architecture is fairly simple (tho the implementation isn’t)

  • The first step is to work out if we know who you are. If we dont, you get a default page, which is served out of cache if possible, which puts almost zero load on the platform for 80% of users.
  • If we know who you are, PHP generates the page, based on a document definition stored for you in the key-value store. Updates to the definition can be applied here, for example adding a new widget (Olympics? Wimbledon?) to all users layouts.
  • The feed engine provides all the content – news items, weather, TV listings etc – to the PHP code. The default homepage had, last time I checked, around 75 feeds on it. This come from various sources, from databases, web services, RSS and ATOM feeds, and other sources, some of which could never handle the load of the homepage. The feed engine abstracts that away, meaning that the homepage only deals with one format, and the source sites don’t get slammed.
  • Most steps in this process – each widget, each sub item with in a widget, each feed, each document – are cached, reducing the load on the platform as much as possible.

One thing that new site does which the old one couldn’t do well, is having separate layouts for different geographical locations. At the moment*, it’s “UK” and “everyone else”. UK gets the normal page and everyone else gets a more world-focused page (eg, no London news unless you ask for it, world news above UK news), and also ads and promotional stuff via BBC.com, BBC Worldwide’s online business unit (which I used to work for), which is how the homepage pays for itself outside of the UK (which is paid for by the license fee). This allows BBC.com to sell campaign’s for the “rest of the world”, and have them integrate into the site seamlessly, where as before these additions looked somewhat out of place, as well as being quite hard to implement.

So, all up, it’s a massive change to a well-used page, but not one that most users will notice – which is the point. What people will notice is, over time, a richer availability of content and interaction, which couldn’t be done in either a timely manner or a scalable manner on the old system. Nice work to the team who developed this – both those who are still at the BBC, or have since left. Must be time for a beer on Jo….

* You did read the bit up the top regarding “at the moment” being “when I left”, didn’t you?

Posted in general, tech | 2 Comments

working at home – 4 months on, what have I learned

So, it’s been 4 months since I left the BBC (and wow, looks like the Homepage is about to go live-beta). It’s been a bit of a learning curve/wall, especially some things which I wasn’t expecting. Here’s what I found.

  • I don’t work well on a morning. Once I worked this out, it’s a lot easier to plan around it – I can do things like put a load of washing on, run an errand or 2, or just sit and think about the problem a bit. But there isn’t a hell of a lot of point getting hug up about not coding before lunch time. On a similar note, Twitter is a total time suck. I’m about this close (|-|) to using the parental controls on the router to block it.
  • I can’t, and shouldn’t, work as much as one of the owners of the company. It’s not my company. Comparing myself to them/him is just stupid, as I dont have the (potential) financial reward. Kicking myself for not working to 2am is unproductive and depressing. So I stopped.
  • I need to be managed around the coffee machine. And the pantry. Sad but true. Solution: I have a can of half-caff and the can of normal espresso beans. Not perfect, but better. 5 espresso’s is normal for a day, but at least with Monmouth half-caff (self-mixed from their swiss decaf and organic espresso), thats only 3 shots of normal, which I can handle. Iced tea and water is a great replacement too.
  • It is quite possible to not leave the house for 2-3 days. I often have to make an effort to get out. That said, if I include home + tube + office, it wasn’t hard to not step outside of those bounds for weeks at a time, so thats not really a big deal. Having the gym here reopen with new gear is also helping there – even if it is just a walk to the end of the block and a workout.
  • Some things are better once accepted. Mental load and all that. Once I accepted I needed some new hardware (yay! new Macbook Pro!) and bought it, development has been much, much nicer. I agonised over spending around $2000 USD for months. I could have been using a machine which is actually suitable for the job since January! Once I accepted that around 2meg is the most we can get in this area unless BT rewires the island, it was …. ok.
  • If I listen to talk radio (in my case, TWIT/MacBreak/This week in */Guardian podcasts, not actual public talk radio), I don’t get any work done. Issue solved: subscribe to Tiesto, John 00 Fleming, Armin, Above and Beyond and co, all as podcasts. Most others cleared out. Result: 5 days of so of new (psy)trance, and a load more work done.
  • Oh, and the Tiesto remix of The Editors – Papillon kicks serious arse. I need – NEED – an RPM bike for this track. If I play it any more – or any louder – I’m sure the neighbours will complain :)
  • Setting up a company in a country you dont know isn’t as easy as it should be. This is the second company we have had in the UK. We are still setting up a few things. It’s a little painful, and it shouldn’t be.
  • Turning down work is hard, especially when it’s for friends. I’m at or slightly over capacity at the moment, and I’ve turned down 2 lots of work already. While it’s not a big problem during winter, it’s going to become one in summer (which appears to be rapidly approaching!). If it’s not sorted out, the result is an unhappy (but understanding) spouse. Sorting that out tho.

Other than that – so far, so good. I have a nice “office” setup, and while it isn’t ultra tidy or perfect, it’s comfortable and definitely workable. Would I like faster internet and an office in a room on it’s own? Sure. Why not. But then I’d most likely lose the ability to turn 90deg to the left and see the dogs playing in the park. Not at all bad.

Posted in general, tech | 1 Comment

Mac gear for sale

Quick note for anyone looking for a Macbook, or RAM.

06/03/2010: Mac is gone, RAM still available.

Macbook, 13 inch, White late-2006 model. 2ghz Core2Duo; 4GB RAM (3.5GB usable); 250GB hard drive. All the rest of the bells and whistles of a Macbook (802.11N, Bluetooth, DVD writer etc etc). Full specs here (it’s the second/middle row). Comes with the remote, power supply, VGA cable etc etc.

RAM has been maxed out. Hard drive is brand new, and comes with Snow Leopard + updates installed. Case, including keyboard, and internal fans have been replaced recently (by Apple, under warranty).  Everything works. No major scratches or damage. I guess it’s slightly “off white” due to being used, but as I don’t have a new one to compare to, it’s hard to tell.

Works perfectly, and has served me very well. Replaced as I need a machine with more RAM – otherwise I’d keep it (I get paid to work with Windows, so I run large VM’s). Great if you want to get into iPhone development or want a small, portable laptop. Will run Windows, but might not be pleased to do so :)

£400. If you are not in the UK (or more specifically, London), add shipping on top of that :) I’m happy to pack it, but given the value, I guess it’ll need to be couriered.

Also for sale: 4GB of DDR3 1066mhz (PC3-8500, SO-DIMM) RAM. Fits in, and came from, a Mac Mini (2ghz, early 2009 release). It’s Apple RAM, tho it’s not branded as such. It will fit, from what I can tell, into any of:

  • Macbook (the new white ones only)
  • Macbook Pro (new new alu ones – 13″ to 17″)
  • Mac Mini (2009 onwards)
  • iMac (2009 onwards)

I also imagine it’ll work in any other machine – eg a Dell or Lenovo – which supports DDR3 1066mhz RAM – aka PC3-8500. That covers most new(er) Core2Duo and i5 and i7 machines.

£50 (Amazon retails the same for £100). Again, postage on top of this if I have to post it somewhere. It’s small and light tho.

Posted in general, tech | Comments Off

Tweetlightning is out – my first iPhone app

It’s finally up in the store:

Feel free to grab it off the iTunes store. And even more information here.

Thanks to Shaun, I have an update to do already, but it’s a very minor one, only happens in one situation (which, if you download it, you will notice – look for @(null) when you first use the app!), but it doesn’t change the function of the app or crash it, so it’s not an urgent one to fix.

Now, to resist putting in more features! Just one….

Posted in general, tech | Comments Off

Matt Gemmell – how to compete with the ipad

Really enjoying reading this article from Matt Gemmell. I especially love this bit:

Closed system. This is the very opposite of what your customers care about. The percentage of your customer base who make a buying decision based on the openness of a system (in terms of system-level customisation options, use of open source software or otherwise) is vanishingly tiny. They’re very vocal, certainly, but commercially they’re irrelevant. Pandering to this segment will most certainly damage your penetration into the market. Be extremely wary about sacrificing large-scale appeal for the sake of a tiny but noisy technical minority. The tablet space is in no way designed for or aimed at such users.

Italic bolding is mine. It’s so very true – anyone else seen “open” handsets doing well? Android is starting to get there, but it’ll never be open enough for some. Nokia has opened up a little, same with some of the others. But in general: most users don’t give a shit. Make it work. Give me a phone that rings and lasts 5 days. KTNXBAI.

Posted in general, tech | 2 Comments

git-svn? or svn-git?

As some may know, I’m doing some work for a rocking email archiving company in Denmark, so obviously, my source repository isn’t local – or even in this country. Luckily for me, it’s Subversion (rather than VSS or TFS).

Up until now, I’ve been using Git (with -svn) to manage my code. This has worked well, mostly. I can check in locally (and hold changes so I don’t disrupt things like customer builds etc), have local history etc. All good. Some of the down sides are around how git-svn works on windows – it’s slow, to say the least. With a patch from Josh Robb, it gets quicker, but still – a check in that takes maybe 1-2 mins in subversion takes 10-15 mins using git-svn, and maybe 5x that without the patch. To check out the whole source tree, with around 2 weeks of history (we have around 2000 revisions in subversion, I’m getting the last 100 or so), takes 8-12 hours, even if I’m on the same lan as the server.

So, I’m looking at what I need, rather than the accepted use of the tools. I was reading this very entertaining post by Rob Conery about using Git as a backup client, and I’ve come to the conclusion that I dont really need git-svn. I need svn and git.

I have two distinct “methods” of working. For my own stuff, I have a remote subversion repo at dreamhost. I use this as an offsite backup for my code, as well as a nice, big undo button. I’m the only developer on this, so I can chop and change between tech here as I like.

The other case is the work with ComArchive. I can’t change the back end (tho we did move from https to http, which sped things up a lot too), but I can do whatever I like on the client end, as long as it works and doesn’t break others. But the main drivers here are that I need to work within the timeframes of the main team (aka Thomas), and I need to make sure my code is backed up incase my VM frys itself. Also, chewing up a work day getting the code down isn’t really viable.

Case 1: Moving my personal stuff to git

This one is easy. Just export from subversion to a local folder, then git init / git add . / git commit, setup a remote git repo on my dreamhost hosting, and push to it. This is well documented pretty much everywhere – it’s normal git processing.

Case 2: Using git as a backup and versioning tool for a local subversion working folder.

This one is not quite as obvious. Git’s main focus is on versioning a set of objects (usually files). A subversion working folder is a set of objects.

So at the top level, I’ve just made a git repo, added all the files in the subversion repo into it (including the .svn folders), committed it, and then pushed it to the remote folder, just like I would with any other git repo.

git init
git add .
git commit -am “message”
git remote add backup git-url-goes-here

then, when I want to push out of the building:

git add .
git commit -am “message”
git push backup master

When I need to, I can just do a subversion commit to push back into the main repository. Git is none the wiser – it’s just a bunch of files. Subversion, more importantly, is none the wiser.

This way, I can use subversion for what its good at – being able to work with just the tip locally, and pushing and pulling things very, very quickly over the wire. And I can use git for what it’s good at, too – a local versioned repo, an offsite backup I control, branches (maybe) etc.

Win win. I hope.

I’m actually wondering if I start using git more as a backup tool. I have a load of business stuff that needs to be kept safe. It doesn’t change often, but if we lose it, and get audited by HMRC, we’re screwed (the whole “keep stuff for 7 years” thing).

Is anyone else using git like this?

Posted in tech | Comments Off

tilt-shift gen

nice little iPhone app.

Posted in general | Comments Off

iPhone apps: or how Nic gets to the party REALLY late

Yup, I’ve finally pulled finger and sat down to do some iPhone development, right in time for the iPad’s release. No, that wasn’t the reason – I just finally have a “spare day” to do stuff in, and the other (non-day-job) project was allowing me some spare time.

I had two projects earmarked as learning projects, which is always the problem for me – get an idea which isn’t something I want to put up on the store (ok, maybe…), but meaty enough to make it worth while doing. A tip calculator does NOT pass that test. These two I did do.

First app I did was a small earthquake lister. USGS provides a RSS feed for all of the earthquakes worldwide which are over 2.0 on the richter scale. The idea – stolen, I thought, from the Android samples – was to get the list, show it in a list on the phone, then when the user drills down, show more info and a map.

I found out later that this is a sample that Apple ship, too, so I purposefully didn’t refer to it, so I kept my learning a little cleaner.

In general, it was rather easy. Cocoa has native classes for downloading from a URL (and there are easier ones than I used), XML parsing, as well as all the visual components that you expect to see in an iPhone app. I had a bit of fun with the memory management (thanks James and Shaun), but that was easily fixed once I got the retain/release/autorelease thing sorted.

I learned afterwards that I didn’t need to make a custom UITableViewCell, as the default one has what I needed, but it was good for learning. I wish I could do offline maps, but thats for another time / app.

All up, it took me about 6 hours to do this, including a load of documentation reading.

The second app is a small twitter app, which scratches an itch I usually have at conferences where there is little or no bandwidth. The goal was to be able to press a button, type in your message, hit send, and be done. No list of posts. No adding new followers. If you want that, you have too much bandwidth and should go get Tweetie 2 – this is not the app for you.

All up, this was also an easy application to write. I had to learn how to integrate someone else’s code – MGTwitterEngine from Matt Legend Gemmell in this case, as well as how to handle errors, lack of connections, how to get editing going in a UITableViewCell, overlays, CoreAnimation, HUDs and the like.

All up, I like the power and focus of Cocoa and CocoaTouch. They give a massive amount of power to the user, even if I’m still stuck managing memory, something which I’ve not used to doing since I left Delphi behind in 2004. I’d put them in the same class as the base .NET libraries and WPF. If you include all the other stuff which is “in” .NET, Cocoa doesn’t have that reach, but for what its designed to do, it does it exceptionally well. I have to keep in mind that I’ve learned .NET over 6 years or so, not a weekend, so the frustrations of “how do I do X” are going to be normal, and with me for a little while.

So, now for the one which might actually get some use.

Posted in tech | Comments Off

Dollhouse: Is this how TV should be done?

So, Dollhouse has finished for good. Last episode screened last night in the US (and has just finished coming down from iTunes). I’ve not watched the last 3 episodes yet – we’ve been waiting to have all three so we can see them all in one go. But in general, shouldn’t this be the way that TV is done? Short run, very high quality writing, short series? Grab the viewer and make them want to watch it?

Well, thats the common format in the UK, and some of the US, and it appears to work quite well. The big networks don’t do it like that, tho.

Take a few of my preferred shows: Californication and Nurse Jackie are 12 half hour episodes. Dexter, Spooks (UK), and Dollhouse are 12 one hour episodes. Even Lost is only 18 episodes this time around. All of them (with the exception of season 1 of Dollhouse) have plotlines that move at a good pace. They dont get bogged down with a “generic” episode, which doesn’t move the underlying plot at all.

Lets contrast that with CSI (all of them), Lost (season 1-4), Heros (which should be killed off), Dollhouse (season 1), Fringe and others: in 24 episodes (or 12 in the case of Dollhouse season 1), you get maybe 10 which actually move the underlying plot. Lost was the worst for this – you’d get maybe 30 mins of actual show in 45 mins, the rest is recap and flashback, and then maybe 20% of that was moving the plot. Luckly, they fixed that in season 5. Heros wasn’t too bad, but with all the cris-crossing plot lines, it was hard to move anything forward much.

The test, for me, is if I can stand watching 4 episodes of a series in a row. All the top ones pass this test with flying colours. All the bottom ones do not. They are, for me, truely weekly shows, each episode is almost independent, with only passing references between them. As soon as the quality goes down a bit, they are gone from my schedule (eg Heros, Desperate Housewives, almost Lost. CSI is getting close, especially Miami, tho Fringe is still good). This is especially the case as I now have a direct financial amount for each season, so not watching a show puts money back in my pocket – or rather, doesn’t take it out (I get TV from iTunes, using the Season Pass feature. Still costs me less than paying for Sky per year).

So, maybe this is how Dollhouse should have been done in the first place – 24 episodes over 6 “seasons”, over 2 years, in the same style as Top Gear does 4 seasons a year.

Once they got the axe, Whedon had 6-8 episodes to finish off 4 years of pre-conceived plot – and I think, so far, he’s done it exceptionally well. There are none of the “echo goes out on a call” episodes, which are fun, but don’t pass the block-viewing test. They are all moving the underlying “Rossum Corp” plot, and it’s made it a better show for that, but I seriously doubt they could have kept up that pace for another 3 years.

With the advent of DVD, Hulu, iPlayer, iTunes and all the other (cough) ways to getting TV shows, short, sharp seasons make a lot more sense than long ones. At least to me.

Posted in general | 1 Comment

Iceland’s rift valley

Iceland’s rift valley, originally uploaded by Nic Wise.

More iceland pics (set on Flickr)

and Leonie’s write up of today.

Managed a couple of HDRs, but to be honest, the light was SO good all day, the non-HDR’s came out just as good!

Posted in general, travel | Comments Off