Wednesday, October 28, 2009

Dev Days London

Dev Days London was on today at Kensington town hall (a short walk from my house).

I thought I'd give a quick rundown of what I saw and thought of the event:

First up was Joel Spolsky, cofounder of which I must admit I had never heard of before (does that mean it is not very Java centric or just has bad SEO?). Apparently they are now more popular than expert sex change though that site has been useless for years so that is no surprise. Joel talked about how people and users wanted to create 'simple' software but how you needed to add lots of features to make money. Not sure I got the point of his presentation actually...

Next up was Michael Sparks from BBC research giving an impressive demo of a spellchecker in python. Really showed the power of using a scripting language with good support for data structure (especially string) manipulation, though the presentation wasn't the most exciting.

After a short break Joel was back (with a change in schedule) to plug the new version of Fogbugz, his company's (Fogcreek) issue tracker. I had heard of FogBugz but never seen it in action being a longtime Atlassian (Jira) fanboy. It looked quite good but a lot of Joel's presentation seemed to rely on external plugins rather than core functionality. He also showed off Kiln, a new plugin from Fogcreek that gives repository integration (using a hosted Mercurial instance) including source code view, and code review. This looked to be better integrated than Jira/Crucible/Fisheye though it only supports the hosted Hg repo. There are free licenses for startups and individuals (this may be just for Fogbugz...) but no mention of opensource.
Jason has clarified in the comments that there are free licenses available for Kiln as well so long as your team is only one or two people.

Reto Meier, Google's Euro Android evangelist followed Joel with a rather boring presentation of android development. The best bit was the instant availability of new apps once you upload them to the market place (unlike the Apple app store).

Remy Sharp gave a rather excellent intro/overview to jQuery with a very professional presentation and compelling reasons for using jQuery as your default javascript framework. He also demonstrated writing a jQuery plugin during the talk and gave a lot of insight into the thinking behind the way jQuery works (which was very enlightening). He also showed off his website for live colllaborative js debugging, Jsbin.

During lunch I got a chance to talk to Benjamin Pollack from the Fogbugz Kiln team who is a Mercurial contributor. I have been trying to work out why/if distributed version control makes sense in an enterprise environment for a while now and so it was great to chat to Ben. He explained that the feature of most benefit to the enterprise is Mercurial's great support for merging branches back to the main source repo (local copies of the repos can act very much like branches in svn). This is something that has been problematic in svn so anything that helps this (and can encourage the use of branches/multiple repos) sounds great. I am still concerned by the idea of having a lot of code on a developers local machine (in case of hardware failure/illness) and there is still the problem of doing continuous integration against a non-trunk code branch but better merges would definitely be welcome.

Pekka Kosonen from Nokia seemed to be out to convince everyone NOT to use Qt to develop their mobile apps. Incomplete libraries, lack of good mobile services APIs and the fact that you have to be a company in order to put apps on the store (wtf?) were enough to make Android look interesting again.

Until Phil Nash showed how to create an iPhone app complete with cool image transition in a dozen lines of code and 20 minutes. I really must try some iPhone dev. Phil's explanation of Objective-C was great too. It really does seem less scary now.

Jeff Atwood, stackoverflow cofounder, talked about why he was passionate about software and the importance for developers to be able to communicate ideas using non technical language. (I wonder if that is why I am writing this...)

Jon Skeet from Google gave a great talk titled 'Humanity: Epic Fail' showing how humans, with their different languages, units, expectations and above all timezones are conspiring to make it very difficult to develop software that 'just works'. He showed that it is important to really understand the problem that you are working on and not to expect that things will always/ever? follow the happy path. Oh, and he had a sock puppet - Tony the (one trick) Pony.

Paul Biggar a PhD candidate from Dublin gave a remarkably engaging presentation about compilers and interpreters and why current interpreted languages can never be as fast as compiled ones.

Christian Heilmann from Yahoo talked about Yui, which browsers to support, and why developers should try and use exisitng, tested plugins rather than try and reinvent the wheel. He also gave a great demo of YQL where he used Greasemonkey and the Yahoo Term Extraction API to automatically populate the tags field in fogbugz stackoverflow (like the tags field in flickr or delicious when you add something). Very cool. Thanks to Dominic Rodger who points out that it was in fact stackoverflow not fogbugz.

So overall it was an odd mix of presentations. It would be very unlikely if they were all relevant to your everyday jobs, unless you are writing an android, compiler optimiser with rich web interface. The quality of the talks (and demos) varied immensely but there were some that were very interesting especially the iPhone, Yui and jQuery ones.

The presenters seemed to be plagued with audio problems and the screen was very blurry making it difficult to read (especially bad when the conference has a big emphasis on code). FOWA attendees will be pleased to know that the wifi was fine though (not that my iPhone could last the whole day of course). Lowlights were the food vouchers which were valid for awful coffee (after a half hour lineup) and food that ran out. Seriously, if you are going to give people vouchers for food at the venue, at least make sure the venue can support the number of attendees.

The lack of an organised meetup afterwards seemed strange. I guess pubs are difficult to come by in London. And Joel mispronouncing Qt (it's cute btw). I guess he fell asleep during that presentation too. Oh, and no Java! (unless you count Android).


Eli said...

Dude, i have just started mocking about with Git and think I quite like it. Not sure there's anything wrong with distributed source control as long as regular merges are done and CI builds are against the main repo.

Would love to get my hands on kiln/fobugz and take them for a spin, though it seems you can't try kiln solo. Also would be nice if they supported other SCMs beyond Hg.

All in all sounds like you had good fun...seems they didn't get welfare sorted but you'll live :)

rich said...

Alun wrote a blog post... but dude, it's been like 2 years?

Seriously DVCS is awesome. It takes a few days to convert from linear SVN, but SVN seems so limiting once you've made the jump.

Next time you're working on a project with someone else, try a DVCS.

Oh, and are you still writing in Java? Learn another language while you're off... and I don't mean groovy!

Try Python or Erlang or Scala....


Alun said...

I was thinking maybe Objective-C :)
In your opinion, what makes DVCS good for enterprise development?

Alun said...

p.s. I had to re-register the domain first :)

Eli said...

@rich What have you got against Groovy? From the first few glances of Scala, I find Groovy more readable, would love to see Erlang. Be nice to know your reasons for choosing Python over Groovy, you might actually convert me.

Jason said...


Sorry to barge in here, but we would really love to get as much feedback as we can during the beta, so didn't want to let someone that was interested slip away :-)

You can definitely make use of Kiln and FogBugz as a one-person "team". The only feature that doesn't shine is code review, but there is a lot of value to an integrated source control, issue tracking, project management tool.

In fact, you can use it for free for one (or two) people:

Once you get an account, just head over to and sign up for the beta!

rich said...

@alun - bite sized commits to your local repo can later be merged with a central repo. Merging is quite clever too (I'm using Git).

Branches are true branches (not just copies of trunk)

The benefits are more apparent when you actually use it, I recommend you give it a go - you won't look back; it's a whole generation better than SVN.

@eli - Nothing against groovy at all, it's a very useful language. My point was that it's too similar to Java when compared to one of those others.

The point is that by learning something completely different, it gives you new ways to look at a problem.

The complimentary benefits of that are immeasurable.

Python and Scala are much more expressive languages than Java. The code looks more like the problem you are solving rather than just code.

Expressive languages can bring out that "artistic" feeling you once had when you first began to learn programming!


rich said...

... in other words, they are more fun!

Eli said...

@Jason Thanks for the tip will give it a look see in the coming days. I am really interested.

@rich Scala has been on my radar for a while maybe now might be the time to revisit it.

Aa said...


How is your evaluation of DVCSs going? Are we going to get a write up of your findings? The last time I spoke with you I think Mercurial was looking like your preferred choice over Git.

I gave Atlassian Jira a go when they had that 5 users for $5 campaign going. For some reason the app felt unpolished. Although, I was comparing it to my much loved open source alternative, ClockingIT, which I find does a great job. Unfortunately, ClockingIT doesn't have as big a development team, plugin architecture or developer following as Jira does.

Did you end up getting into Objective-C and knocking out a couple of iPhone apps?

for IT the said...


Angular 5 Resources

| Angular 5 Training in Chennai.

for IT the said...


Angular 5 Resources

| Angular 5 Training in Chennai.