Showing posts from 2013

This Blog Has Moved!

Right, so yes, five years ago I moved to github pages, and never bothered to redirect any of these pages there. Now I've moved on from there, and... Finally I am using my real domain, . My blog is now at .  See you there!


December disappeared in a rush of vacation and a fleeting tour of Australia.  It's hard to believe that it's the eve of Christmas Eve already, it's almost impossible to feel Christmassy when you're getting sunburnt on a boat and seeing people in swim-suits wearing santa hats.  A mid-winter festival (complete with trees and fake snow) just feels very odd in summer. I cannot take Christmas seriously in this weather YOW!  is a unique conference, in that it's the same agenda in three different cities: Melbourne, Brisbane and Sydney.  It seems to me that this is a great way to attract speakers from a long way away (and everywhere is a long way away from Australia) but make it cost effective - although you have to shuttle the speakers between the cities, you have the speakers for nearly two weeks and get the material three times in the three different locations. I suffered a lot for this conference... As a speaker, it's awesome - not only do you spend the

Spock: Data Driven Testing

In the last two articles on Spock I've covered mocking and stubbing . And I was pretty sold on Spock just based on that. But for a database driver, there's a killer feature:   Data Driven Testing . All developers have a tendency to think of and test the happy path. Not least of all because that's usually the path in the User Story - "As a customer I want to withdraw money and have the correct amount in my hand". We tend not to ask "what happens if they ask to withdraw money when the cash machine has no cash?" or "what happens when their account balance is zero?". With any luck you'll have a test suite covering your happy paths, and probably at least twice as many grumpy paths. If you're like me, and you like one test to test one thing (and who doesn't?), sometimes your test classes can get quite long as you test various edge cases. Or, much worse (and I've done this too) you use a calculation remarkably like the one y

First presentation at the Virtual JUG!

Yesterday I had the privilege of presenting the very first session for vJUG, a new virtual Java User Group that allows us to span geographies when sharing talks and stories.  I'm really interested in the vJUG idea, especially now I'm not in London - if we can find good ways to share knowledge without having to travel, that will help us reach people who don't normally go to conferences or don't have a local user group to go to.  Not to mention cutting travel costs and saving the environment. See the event, and the record of the IRC chat, here:   The slides are also online, but obviously they're part of the video as well: Design is a process, not a Document from Trisha Gee

JAX London & MongoDB Tutorial

In previous years, JAX London would have been an easy, local conference to go to.  This time it took me most of Sunday to get there, and not because of the Super Storm .  Still, that gave me the day to finish off the tutorial I was running there on Monday morning.  Not that I would be so unprofessional as to leave preparing things until the last minute, oh no.... But as in previous years, the main benefit of this conference for me was meeting most of the usual suspects from the London Java Community.  For example, presenting were: Andy Piper ; Barry Cranford ; Jim Gough ; Peter Lawrey ; Sandro Mancuso ;  Simon Maple ;  Martijn Verburg ;  John Oliver : John Stevenson ; Richard Warburton . The Community Night in particular also drew a lot of LJC members (including some first-timers) to JAX, and it was a really good "networking opportunity" (i.e. chance to have free drinks, catch up with friends and make new ones).  I really enjoyed hanging out with everyone at JAX this year,

LinkedIn Etiquette

For no reason other than LinkedIn communications are starting to irritate me, here's my personal LinkedIn Etiquette guide.  Feel free to disagree with it all. I'm not going to accept invitations from recruiters.  Not just because I'm not looking for a job (who knows what the future holds?), but because I believe it shows a lack of respect to my network to bring recruiters one step closer to being able to contact them all.  It's not about Evil or Good recruiters, but I really don't want to make it easier for lazy recruiters to spam people I respect (caveat: there are people who are technically recruiters who I have added into my network, either because I know them personally or because they have proved their worth). If I get an invite without an introduction message from someone who's name I don't immediately recognise, I'm going to check out that profile to see if we have employers in common or common connections, but usually I won't acce

JavaOne 2013

So, I thought a few months ago that my blog would become more of a travel blog than a tech blog because of the amount of conferences I was going to.  Turned out that I was so busy writing / updating / practicing talks and workshops and, er, travelling, that I never got around to doing retrospectives on the events I'd been to. So, JavaOne, again, my third year there.  I'll always have a fondness for it - because of Martin Thompson , it was the first conference I presented at.  I know people always start with "it's not what it used to be" or "why isn't it in the Moscone?".  But not having ever been in the good ol' pre-Oracle days, I don't have that to compare it to. I do have the previous two years to compare it to, however.  This year, I think the quality of the presentations was much better compared to the previous two years (although I can't accurately speak for last year as I spent the whole time running between my presentation

Make the Future Java

I think this is a nice example of how to showcase technology and make it relevant and exciting for people.  Something with this approach could do more for increasing the number of people interested in programming as a career than any of the traditional approaches of getting kids and "minorities" interested in IT.

Kids These Days

I'm a great believer in getting kids to code early - after all, I'm of that generation that was taught  at the age of 9.  There are quite a few approaches to teaching today's kids in an engaging way, but I'm a bit wary of the sandbox solutions that teach kids things like how to navigate a virtual thingie around the screen, or lets them create things in a limited virtual world.  I don't think kids will easily make the leap between these sort of games to seeing the full potential of programming - they're too limited and have no context for the kids.  It's just another game. Kids need to understand how programming fits into their world, they need to understand the context of coding, if they're going to fall in love with it. I like Jason Gorman 's comparison of programming to music.  Most people learn an instrument because they want to make the sort of music they hear on the radio.  But you give them a recorder and teach them to play &quo

JavaZone, Oslo

For the rest of 2013, this blog will mostly be masquerading as a travel blog. This week I've been in Oslo, and I liked it.  Actually, you'll be hard-pushed to find somewhere I've visited that I didn't like in one way or another, but Oslo does make my "definitely going back there" list.  If Seville, where I've been for the last month, is stuffed full of History, Oslo is overflowing with Geography.  I've noticed a pattern in that my favourite places were sunny when I visited them first, which subconsciously prompts me to love them (as a vitamin-D-deprived Englishwoman).  Oslo was NOT one of those places, it was overcast and extremely chilly compared to the south of Spain.  But the countryside around it is really pretty, and it's very green and mountainy and watery.  Not like Spain, or the UK for that matter. I found the Norwegians really friendly, and as with all the Nordic countries their English is better than you'll find in an int

How to get started with the new MongoDB Java Driver

The second in my short series of blogs about the new Java driver is now available for your perusal.  In it, there's some guidance on how to get started using the new driver, whether you want to use the new (unfinished) API, the existing "classic" API, or a blend of both. The post also shows that Gradle is prettier than Maven .  Sorry Maven. If you are going to play with the new driver, please read all the caveats carefully.  I know it looks a bit like the warnings on your prescription medicine, but it serves the same purpose.  Short version: the driver is not finished yet, and should not be used in production. We really want to hear your experiences with the driver - it is an open source project and MongoDB is very much driven by the community, we want to hear from you.  But only if you say nice things.  No, seriously, please tell us if you have problems, if functionality is missing, if your tests fail if you start to use it, etc etc etc. Go play.

Interviewed by Stephen Chin about JavaOne 2013

Yesterday Stephen Chin , one of Oracle's Java Evangelists and the JavaOne content chair, interviewed me via a live stream about JavaOne , the new MongoDB Java driver , and my plans to Change The World. It was a fun interview to do, and I really like the format of being interviewed over Skype and streaming my desktop.  There's a slight (OK, 25 seconds, not really low latency) lag between the screen and the speaking which means it's not a great platform for doing live demos, but I think I'd like to do more code demos in this way, if I can find a suitable platform.

Life on both sides of the interview table

InfoQ has posted the video of Dan North and I opining on the subject of hiring.  Most of the talk is spent on how to be a good interviewer, and touches on how to market your company to prospective hires.  We spend less time on how to do well as an interviewee, but in theory if you know what's going through the interviewer's mind, you should be in a much better position to take control of the interview and shine. Hire Education - Making Interviews Rock It's kind of funny because we talk a lot about hiring at ThoughtWorks (where we both worked, and which has one of the toughest interview processes in the industry) and LMAX, which learnt a lot off ThoughtWorks and shaped its own process for a smaller company that has different goals.  Yet neither of us work at those places now.  Still, we share stories from many of the places we've worked (or chose not to work), and if there's one take-home point, it's that hiring (and being hired) is not a simple thing to do

Autumn World Tour

It's nearly the end of August already (how is summer allowed to go by so fast?) so it's time to start thinking about the autumn conference scene.  It feels like I'm going to be at most of them this year, so hopefully I'll see you at one of them? 11-12th Sept -  JavaZone , Oslo - Design is a Process, not a Document 16-20th Sept - New York - meeting and working with the MongoDB JVM and .NET teams in our shiny new office. 22-26th Sept -  JavaOne , San Francisco - Design is a Process, not a Document (I'm in CA 20th - 27th) 30th Sept - 2nd Oct -  GOTO Aarhus  - Career advice for Programmers; Power Use of Tools. 17-18th Oct -  GOTO Berlin  - What do you mean, Backwards Compatibility? 28-30th Oct -  JAX London  - A workshop on the new Java Driver ; Design is a Process, not a Document.  I should be in London all week. December -  YOW Melbourne, Brisbane, Sydney  - What do you mean, Backwards Compatibility?

The 3.0 Java Driver - Design Goals

I feel slightly like a traitor to my own blog, as I've written a blog post for Somewhere Else.  I've written about the design goals for the 3.0 MongoDB Java Driver in the official MongoDB blog (seems sensible, right?).  I'm not sure how I feel about cross-posting the entire contents, so I'm just linking you to them instead. Anyone who's been to my Backwards Compatibility presentation this year might notice something familiar about the content.  The talk covers the design goals of the new driver, and this blog post will let you read them in your own time rather than having me fire them at you at 100mph.

JavaOne Shanghai

I was expecting this... So, I was in China last week.  It's not really what I expected, but then my knowledge of China comes almost entirely from visiting various Chinatowns and watching martial arts movies, so I guess I wasn't all that well prepared for a modern Asian city like Shanghai. ...and found this instead The city is, in my opinion, clean, modern, and attractive.  I was surprised by American-looking early skyscrapers, and really surprised that the city overall felt more European than American - with Marks & Spencer, Tesco, Carrefour, H & M, Zara, Costa Coffee, as well as the inevitable McDonalds, KFC and Pizza Hut. Some of the architecture reminded me more of New York than Europe or Asia I felt like they had the option to take the best of all worlds - the modern, high tech and sometimes downright weird influence of Japan; a care for heritage from Europe; the consumer choice of the US; and food from all over China and the world. OK, I di

Popular posts from this blog

Dissecting the Disruptor: What's so special about a ring buffer?

Dissecting the Disruptor: Writing to the ring buffer

Dissecting the Disruptor: Demystifying Memory Barriers