Thursday, 20 March 2014

Wednesday, 19 March 2014

Sevilla MongoDB March User Group and... an experiment

So... I've been using blogger for a few years now.  I like it because it's really easy just to start typing and get a blog out there, and because it provides simple analytics and easy integration into Google+ (OK, so I never use Google+, but hey, I'm trying to via blogger).

But there are a number of things blogger is not so great at, so I'm trying out a new platform at the moment, which I may or may not stick to.  More to come on that when I've got more to report I guess.

But for those who read my blog via blogger (or the RSS feed associated with it), I wanted you to know that my latest blog post is over here.  This particular experiment will help me figure out how many people read my stuff directly from here, and how many find it through other channels.

Hopefully more to come on the experiment, when I've got something to report.

Tuesday, 11 March 2014

QCon London 2014

Wow. My 4th QCon London.  That’s not bad.  And every time, it’s a different experience (if you must, see my blogs for 20132012, and even 2007 (part 1 & part 2 - how cute was I? "agile seems like a jolly good idea; automated testing appears to be important")).

I can’t even tell you what I did on the first day, I was mostly panicking about my presentation - I was inspired after my trip to New York last month to change my talk at the last (responsible?) minute and do a live coding session, something much more technical than my recent talks.  I’ll leave the details for a separate blog post though, when the video comes out.

The thing that stands out for me from Wednesday though was Damian Conway programming Conway's Game of Life in Klingon.  Yeah.  Just find the video and watch it, the man is a genius.


The Thursday keynote was inspiring too from a totally different point of view - Tim Lister of Peopleware fame shared stories from his career, and I came away from that really happy I work as a technologist, but with an increased desire to learn off other amazing people.


On Thursday I hosted the "Not Only Java" track - I’m on the programme committee for QCon, and this year we wanted to cover leading edge technologies (as always) but we didn’t want to slice things into strict technology silos [interruption: argh! the person in front of me nearly destroyed my laptop by suddenly moving their chair back! Why do people bother in economy on a morning flight?].  So I wanted the Java track to be more representative of what today’s Java programmers care about - for the programmers of course, but also because I know there are architects and team leads at QCon who might not realise how things have moved on with the language, and how much polyglot programming we do these days. 

Martin kicked it off with a great history lesson on the progress (or occasionally,  lack of it) in Java.  He begged us to study and understand Set Theory, to use async design, to think of the users of our APIs, and, most of all, to design nice, clean code.

Next up, Eva took us through the fundamentals of Garbage Collection - this might not seem like a cutting edge subject these days, but it’s one of the most misunderstood subjects for Java programmers.  Eva gave us a really great, understandable view of the different types of garbage collectors, how they work, and their pros and cons.  She left us with a call to arms to not simply let other people try and solve this problem, but to get stuck in and contribute ourselves, via the OpenJDK.


After lunch was my nerve-wracking live coding session, putting together a full stack end-to-end web app using AngularJS, HTML5, Java and MongoDB.  It only went wrong twice, and people seemed to like it.  I’ll post the video in another blog post as soon as it's publicly available.  Code is available on github.

We’ve been playing with the open spaces idea at QCon.  The Java one only had a few people in it, but that gave everyone a chance to speak at least.  We covered Java 8 (the Good and the Bad); other JVM languages; and UIs for Java (Javascript or GWT?).  And I plugged the work the LJC does in London, of course.

After this Bodil blew me away creating a My Little Pony game using RX in the browser.  ‘Nuff said.

Finally, Simon Ritter gave us a view of the Java 8  features most likely to impact the way Java developers think about software design - lambdas and streams.  I thought this was a really great introduction to the concepts if you haven’t seen them before, and with concrete examples that showed how we should be using them.  If you're not already looking at lambdas and streams, you should be - even if you're not going to be using Java 8 yet, it's worth getting a heads up on how it's going to impact our programming style.


I’m very pleased with the way the Java track turned out on the day - every speaker was first class, a wide range of topics was covered, and I, for one, learnt something in every presentation.

To finish off the day, Emma Langman gave an awesome keynote about how people are the messy bit of your system, and how they’re never rational and you shouldn’t expect them to be.  I also highly recommend this talk, especially if you’re a techy and you’ve found yourself in some sort of management or team lead position.

Sadly I couldn’t stay for day three of the conference, I had to fly off to the Joy of Coding to re-give the live coding presentation there.  Because, if you’re going to do something terrifying and doomed to failure, you might as well do it twice.

QCon is an expensive conference, especially compared to the developer-friendly prices of something like DevoxxUK, but for getting a big picture of where the industry is, of things you might be missing, for learning hard core technical skills and understanding the important of the fluffy-people-stuff, and finally for meeting a wide range of people from developers to CTOs, I think you'd be hard pushed to find something better in London.  IMHO (and remember, I did disclose I'm on the programme committee).

And although it's really hard work putting together the programme for a track like this, and although both times I've said I'm Never Doing It Again, when it goes this well it makes you want to do it all over again.  After a break.  A looong break.

Monday, 10 March 2014

Sparking innovation in an established company

I’ve been running into BSkyB a bunch this week - firstly I was invited to kick off their innovation tech talks series last Monday, then I kept meeting Sky people (that makes it sound like they’re aliens) at QCon.

It seems Sky is keen to create/foster a culture of innovation, which is an ambitious goal for such a large company.  So I was given a very vague brief for Monday’s presentation (“Can you do something Mongo-ish, maybe a bit of performance and concurrency stuff, and talk about overall best practice?”) I gave them an early view of a presentation I’m working on titled something like “Why do we keep reinventing the wheel?” (anyone who saw me at JFokus might realise that I cunningly swapped out most of the body of the “What do you mean, backwards compatibility?” talk and tried out this topic instead).

Picture courtesy of +Russell Miles 

This was supposed to be a 20 minute intro talk (OK, so I clocked it at 40 minutes in rehearsal) with the rest of the time devoted to questions on any subject I know about, or even anything I have an opinion on.  Sounds dangerous, but means I can always move fast on the answers I don’t know in order to cover more ground - cunning, you see?  Actually, that sounds like it would be more fun if alcohol were involved.

Anyway.  The talk bit of the session took up most of the time, because I had really good questions during the course of the presentation.  It’s nice to talk to a much smaller group (there were maybe 30ish people, giving up their free time after work, like an internal user group).  But I also had questions on remote working, on creating a culture that’s appealing for developers to come and work in, and on MongoDB.

I don’t know how many companies do things like this, or lunchtime brown bags, or something, but I think they’re a great idea.  This was a mix of people from different departments, different teams, working on different technologies.  It was a good way to get people from across the organisation talking with each other and sharing best practice between teams.  Many organisations have people working in their little silo, and we (MongoDB) often find ourselves introducing teams from within the same organisation to each other - there’s no other mechanism for one team to find out about the other.  I guess that’s what white-tower architects were supposed to be for - to know what everyone’s up to and make sure people are doing the “right” thing.  Given this doesn’t seem to work, what else can we do to share knowledge internally?  How else can we get the right people to meet each other?

Saturday, 8 March 2014

The Joy of Coding

Dick Wall - The Tao, of the Joy, of Coding

I’m on a plane (there’s a surprise) on my way back from The Joy of Coding.  It’s the title that attracted me to this conference, and it was a great little one day event with awesome people like Dan North, Erik Meijer and Dick Wall presenting.  What I liked about the themes is they were broadly technology agnostic, pulling back to a level which made me remember why I’m a developer.  It inspired me to do more research and more thinking, and less panicking and trying to write code.  That might seem odd, as someone who goes to as many conferences as I do should get loads more research and thinking time than most developers living under the whip, but I seem to spend so much time bouncing from thing to thing I don’t get space to just sit and think, or to read things in any depth.

The conference organisers made it easy to focus on the bigger things - the venue was great, with a nice space for mingling with people but nooks and corners for doing work or for video conferences.  The hotel they chose was one of the best I’ve stayed at - the room had a sauna in it.  A sauna!  I spent the evening using every toiletry they provided, and moving between the sauna, the steam/shower cabinet and the jacuzzi bath.  I won’t pretend I did a lot of thinking, but it was a really awesome way to top of a crazy week, and I feel almost sane.

So if I’m going to leave you with one thing from my experience at the Joy of Coding, it’s to Stop.  Stop and think.  Stop and ask.  Stop and read.  What are you doing?  Why are you doing it?


And most of all, do you feel Joy when you’re coding?



PS There are some really great photos from the conference on Flickr.