Showing posts with label QCon. Show all posts
Showing posts with label QCon. Show all posts

Monday, 15 March 2010

QCon London 2010 Wrapup

Last week I attended QCon London 2010. I was lucky enough to get to two days of tutorials as well as the full three days of the conference.

First up I attended the brilliant Rest In Practice tutorial run by Jim Webber and Ian Robinson. The tutorial is based around their forthcoming book with Savas Parastatidis which now in rough cuts

The tutorial covered a lot of ground, and was well presented. By using Hypermedia you can create very rich services and this tutorial provided a great insight on how and why you should do just that. It provided a good overview of what REST really is using the Leonard Richardson maturity model, and how most services that tout being RESTful are not actually fully RESTful (though they may indeed still be of value).

On day 2 I attended the Resource Oriented Architecture tutorial run by Brian Sletten. Before going in I wondered if I'd made a mistake selecting two REST tutorials - but it turned out to be a great choice, it was complementary to the day before.

One of the most memorable parts of the tutorial was the 'musical interlude' where Brian did a brilliant job of explaining derivative works, and how public data opens up a world of possibilities.

The conference proper kicked off on Wednesday. The opening key note by Bob Martin, whilst at times a bit preachy, was entertaining and re-enforced some good development practices.

As usual it was difficult at times to chose which talk to attend, which became irritating when you hit a slot where there were no talks that stood out. This year was also much busier, with rooms becoming crowded and at times overcrowded. I felt that it wasn't quite as well organised this year, things didn't flow quite as well and some of the speakers seemed ill prepared.

However many of the talks were of high standard, and very enjoyable.

Unlike last year I am not going to try and summarise every talk I went to, I just don't have the time these days. But some stand outs for me included:

The Counter-Intuitive Web by Ian Robinson

One of the best talks of QCon, Ian delved into the differences between Operation and Resource centric architectures - some overlap with Mondays tutorial, but was in many ways complimentary.

He talked about how to map Domains on to Resources and how HTTP can be used appropriately as the Application Transfer Protocol and not just treated as a Transport Protocol. One of the best tag-lines of the talk was 'Intention should be written on the wire'. The idea that contracts can be expressed simply in the combination of link relations, media types, HTTP idioms and an entry point URI.

Simplicity - The Way of the Unusual Architect by Dan North

Dan is a great speaker, entertaining and engaging. The talk started with a comical biblical style story with one of my favourite lines being - "And Maven brought forth a Plague of Apache Commons, and there was a flood of all the Libraries of the Internet as a judgement upon the people"

The talk was about how we over complicate things, gradually over time we introduce further and further complexity. Dan presented some techniques to try and address these tendencies.

How to do over 100K contended complex business transactions per second at less than 1ms latency - Dave Farley & Martin Thompson

Ok, the only thing I can say is - this hurt my brain. Their solution was computer engineering elegance, hitting the sweet spot at every point in the chain - really forced me to think about how to approach problems and really reminded me of the early days of PC's where every bit of performance was eeked out of the system.

Friday, 13 March 2009

QCon London 2009 Conference Day 3

Today was the 3rd and final day of QCon London this year.

Pimp my Architecture with Dan North

Dan has a great presenting style, and during this presentation he emphasised the importance of the team Shaman, the team story-teller - and I think he proved himself to be one of the best through this presentation.

I really enjoyed this presentation, as it emphasised the importance of the oral tradition within a development team. And I do feel that is important, the best teams I have worked in have always had this, it meant that new team members came up to speed quickly on the quirks and history of a project, and really helped build the team.

I also enjoyed his 'Shanty Town' pattern - as opposed to the 'big ball of mud'. The truth is as he rightly points out, you just can't rush in and bulldoze, the people have to live somewhere - but you can work to improve it, piece by piece. You can build scaffolding or temporary architectures in the process of rebuilding the town.

Too much to convey it all or even a fraction, but I must say if you get the chance to hear Dan speak it is worth it, his energy and passion are contagious.

Thoughts on the Generic vs the Specifc Tradeoff with Stefan Tilkov

Stefan's talk was great, in particular my favourite snippet from his talk was:

The wise architect ...
question: *
answer: It depends.


And its so true.

Summing up his talk is difficult, as the two sides tend to cancel out, i.e. it depends. But it was good and he covered a lot of good specific versus generic examples.

Strategic Design with Eric Evans

Another really good talk, Eric covered some interesting perspectives on dealing with legacy systems, and the approach you could take in a pragmatic and progressive way. And along the way discussed various issues you need to deal with.

The strategic design comes from, making sure the most important parts of the system are well designed.

Some good points he made ..
  • One irresponsible programmer will keep any 5 top-notch programmers busy cleaning up after them.
  • The quality of the code is equiv to the second worst programmer on the team. (Not the worst, he is watched like a hawk)
  • Remember, the core domain is what makes the system worth writing.
  • Heroes work in the core domain (they make the system features the business needs and wants).
Why do irresponsible programmers so often become heros? Because they don't waste their time making other people more productive, they don't clean up other peoples mess, but they do produce new capabilities no matter the impact.

Five Considerations for Software Architects with Kevlin Henney

Well today turned into a treat, Kevlin was another good presenter, with a lot of information and some good techniques covered. The presentation was based around a visit to a pub where he and a couple of others (poor memory, cannot remember their names) and tried to distill 5 things every architect should take into mind. These distilled down to:
  • Economy - economy in code, in design and in architecture
  • Visibility - understanding not just the end product but how it came about
  • Spacing - the interesting thing is the space between the components not necessarily the components themelves
  • Symmetry - makes things easier to understand and maintain
  • Emergence - understand the emergent properties of the problem and the solution

Finally I attended the interview track for Stefan's interview of Ian Robinson and Jim Webber about REST and using the Web as an Integration platform. It was good to hear their views on REST and the pragmatic use of the web for machine-machine integration - I guess good because I agree with them.

A good day, and a good conference, I really enjoyed it - my brain is still soaking in a lot of what I heard - just need to let the R-mode chew on it a while :)

Thursday, 12 March 2009

QCon London 2009 Conference Day 2

Today was the 2nd day of the conference proper.

Transforming Software with Web as a Platform - Dion Hinchcliffe

This was the morning keynote. It was in a well presented style, however was primarily a 'state of the nation' kind of talk. Some of the interesting points for me included how building social networks around your site/product is very effective and beneficial for various reasons, including an almost off-loading some of the product support and testing into that community.

Dion covered how the biggest technology companies were hardware, then progressed to software and now were data companies. His mention of how the desktop was one of the last areas where we have "commercial software" I think this was slightly off, I think Open Source has made considerable progress and is making more all the time in that area - I think it is the Mobile desktop which is now the commercial software sweet spot - thanks to the likes of the iTunes AppStore.

He also covered cloud computing and how he felt we were at risk of falling into a very small number of large players that we trust with our data.

Agility: Possibilities at a Personal Level with Linda Rising

I chose to go to Linda's presentation as a couple of people had recommended listening to her speak if I ever get the chance. And I must say that I am glad that I did, not just for the content, but also for her relaxed and engaging presentation style.

So it was mainly a discussion about drugs, well caffeine, the worlds drug of choice, nothing else comes close with apparently around 90% of the worlds adult population consuming it daily in some form or other.

The talk (I feel) really centered around the Industrial Age and how we are still behaving and living in a manner consistent with that time. A lot of interesting facts, I knew about the drinking of beer due to bacteria in the water, but never put it together that accurate time pieces and tea/coffee became readily available at the same time - the time of the industrial revolution. And the process of making tea/coffee of course required boiling the water. So people needed to wake up for their shift at the factory, and instead of beer they would have tea/coffee which because of the boiled water was safe.

Linda spoke a lot about caffeine and its effects on the human body, some I knew, some I didn't - I certainly wasn't aware of the half-life of the effect on metabolism.

Another interesting snippet was that 80% of us think we are above average.

During the question time there was talk about adjusting work rythmns to suit peoples make up - morning person, evening person - indeed adjusting entire teams to work in this manner.

Forging ahead - Scaling the BBC into Web 2.0 with Dirk-Willem van Gulik

This talk I was looking forward to for a variety of reasons. But I must admit I felt let down, Dirk spoke very quickly and the presentation style was not great. A lot of detail was covered, but the interesting points I felt were lost.

The challenge was not just the technical one of moving from static webpages to a fully dynamic personalised Web 2.0 platform - but also the challenge of doing it in a timely and agile manner. There was coverage on how human and logistics do not scale, but no real description of how that is overcome.

There was a good point about how the BBC was funded and the impact that makes, being TV License funded more web traffic means essentially each request has to become cheaper to be done on budget.

Something that really made me think is the statement that "Content is our core business - not IT" which left me wondering why it all hadn't been outsourced, most organisations focus on their core business and bring in the experts to do the things they don't consider core.

The rest of the afternoon got whitewashed, as I bumped into Jim Webber and got talking about various things we were joined by Ian Robinson for a short while and then Martin Fowler. I was also then introduced to Paul Downey and had a interesting conversation about various things including Standards and Standardisation, Open Source development, company culture and the workings of the web.

I missed a session about Functional Programming I was keen on, but am glad I can catch it up online.

Another good day, looking forward to tomorrow.

Wednesday, 11 March 2009

QCon London 2009 Conference Day 1

Today was the first day of the conference proper at QCon London 2009, an interesting day all around and again a lot to chose from.

Opening Key Note by Tony Hoare

A contrast on Computer Science and Software Engineering - for me it was very interesting as I've often internally and occasionally externally debated as to whether what I do is really Engineering. I hold a degree in Electronic Engineering, but I have always worked in Systems or Software. A lot of what we do can be considered craftsmanship - and it was good to hear Tony say that this is part of the early life-cycle of an Engineering discipline.

Too much info to cram into this and I know it will be up on the QCon site in the near future if you are interested.

SOA with Ian Robinson

Really good insight into starting a big project especially in an already running system - good to see SOA talked about as SOA (the approach) and not SOA as a vendor pitch to buy their latest golden hammer.

Scala with Jonas Boner
Very interesting JVM based language with very good integration with Java. Provided an elegant mix of OO and Functional programming - and so provided a clean path to move towards more functional models. The session went through some of the language features, but one of the most impressive things shown was a demo of a web chat system written in 30 lines of code.

A really nice concept of Traits which could be added at either class or instance levels - so much information that I have no hope of conveying it. But has inspired me to take a closer look.

Clojure with Rick Hickey

A "Lisp" Functional Language that runs on the JVM. Was a very interesting presentation and the language has some really interesting features including how it dealt with concurrency. Again too much information to try and convey.

Building for Performance and Scalability with Alois Reitbauer

Outlined the cause of many performance issues, and very high level ways of detecting these issues - but there was nothing new here, and no practical demonstrations of the methods, and no hard data.

This is an area I am quite familiar with having spent time 'in the trenches' dealing with these problems, and having spent time developing ways to help mitigate them. So I was disappointed - I felt there is so much more on this subject, particularly how easily steps can me made to introduce ways and means of detecting performance deviations early on in the process. Big expensive tool-sets are not necessary to begin this process (or at all in my view).

REST-based Integration Architecture for a Financial Business Service Phillip Ghadir

This talk interested me as it was about moving from WS-* to REST and using the likes of ATOM/ATOMpub.

Must admit that brain fry had begun to set by now and I didn't take it all in. But was interesting to hear Phillip's view on - use REST at the interface boundary but don't try and use it internally as the latency cascade will bite you.

Unfortunately I missed the evening Key Note - but no doubt it will be available online soon.

Tuesday, 10 March 2009

QCon London 2009 Tutorials Day 2

So today was my second day of tutorials at QCon London 2009 - another tough choice as to what to go to - as much as I wanted to learn more about Erlang I chose instead to attend Advanced Ruby and Behaviour Driven Development.

Advanced Ruby by Sam Aaron

I thought I was being a bit ambitious selecting to go to a tutorial on Advanced Ruby given my Ruby knowledge is quite limited, i.e. only just above zero. But it turned out to be very good and quite insightful. It was the first time I had been to a Language tutorial that didn't in anyway get bogged down in syntax.

The tutorial covered the Language from different approaches of coding, such as prototype, class based and functional. It was useful to learn how Ruby handled inheritance, closures, creating methods on existing classes, detecting missing methods etc. It also provided to me a chance to reflect on the other languages I use and understand them better.

Must admit I felt a bit for Sam having Ola Bini in the room - but he handled it really well. Ola did provide some further insight into Ruby's internals which was good.

Behaviour Driven Design by Dan North

This was a session I was really looking forward to, and Dan didn't disappoint, his passion and energy for this stuff really shows through. It was interesting to hear his views on how Agile is progressing beyond things like XP - in a way its become more pragmatic and seasoned I guess, and it really got me thinking how to step beyond TDD or as he rightly pointed out "Code By Example".

There was a serious amount of information in the session and it was very engaging. It was great to go back to some reasoning as to why we work well in small teams (our brains are hardwired to work well in groups up to about 10 people - pre-history family group size perhaps?). It was also good to discuss things like why it is hard to introduce change, and how to reduce the likelyhood of falling back into 'the old ways'.

Trying to summarise Dan is almost impossible and its worth hearing him talk on the subject if you get the chance.

It was also refreshing for someone to say about their own work, 'this is really just the beginning, lets see where we go from here'.

All in all another good day, tomorrow the conference proper starts.

Monday, 9 March 2009

QCon London 2009 Tutorials Day 1

So today was the first day of the QCon tutorials, and was a good day... we'll leave aside what TFL did to my oyster card, I don't want to get into a rant - lets just say if you buy Oyster online, don't try and get a travelcard and prepay on the same card.

GET Connected: A Tutorial on Web-based Integration


First tutorial was with Jim Webber on using the Web as an Integration platform. Jim was in his usual self-deprecating mood, keeping things light hearted with the ocassional rant. (I've known Jim a while, and I nicknamed him Mr.Angry, whilst he nicknamed me Mr.Grumpy - but thats for another post)

It was actually a great session, my only disappointment was that it wasn't a full-day as there was certainly enough material for it, Jim had to skim through the last third to the most important points. The presentation for me though was especially good, as it gave me a chance to reflect on what it really means to leverage the web - it also gave me some ideas on solving current problems by using ATOMpub to handle some eventing stuff.

Domain-Driven Design - a complete example in a current technology stack


This session wasn't as good in my view, the choice for the example I thought was pretty good, but I didn't find it engaging. It lacked something, and the code examples I felt could do with some more work. It didn't help that the first thing brought up in the IDE was a WSDL, something that sends a shiver down my spine - especially when you've just had a session on using the web and talking about hypermedia aware restful interfaces.

However one of the best parts of the day was at lunch being introduced to Michael Nygard author of one of my favourite books, ReleaseIT. A very interesting guy though I must admit I felt stumped on what to talk to him about aside from "love your book by the way". Thanks for the "FanBoy" comment Jim - at least I only bought the book once ;)

I met Ola Bini - one of the Guys behind JRuby and Ioke - interesting guy to say the least. Also met Sam Aaron, another Ruby guy and who will be running the Advanced Ruby session I am going to tomorrow. Had an interesting discussion with him and Michael about Ruby, SmallTalk, MetaClasses, Secret Classes and some other stuff that went over my head with my limited knowledge of Ruby and even more limited knowledge of SmallTalk.

A good day, and am looking forward to tomorrow.