Showing posts from July, 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!

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

Can't. Take. Much. More.

Inspired by Your App Makes Me Fat , I was going to write a blog post about decision fatigue.  It's a topic very close to my heart right now as I try to plan for my upcoming speaking engagements,  continue working on the new Java driver, try to finish the last couple of blogs on Spock , and last but not least plan for moving home this week. But since my cognitive resources are at a low point right now, I'll just leave you with a gif instead: What programming is like

Spock passes the next test - Painless Stubbing

In the last post I talked about our need for some improved testing tools, our choice of Spock as something to spike, and how mocking looks in Spock. As that blog got rather long, I saved the next installment for a separate post. Today I want to look at stubbing. Stubbing Mocking is great for checking outputs - in the example in the last post, we're checking that the process of encoding an array calls the right things on the way out, if you like - that the right stuff gets poked onto the bsonWriter . Stubbing is great for faking your inputs (I don't know why this difference never occurred to me before, but  Colin's talk at Devoxx UK  (video doesn't seem to work but slides can be seen) made this really clear to me). One of the things we need to do in the compatibility layer of the new driver is to wrap all the new style Exceptions that can be thrown by the new architecture layer and turn them into old-style Exceptions, for backwards compatibility purposes.

Spock is awesome! Seriously Simplified Mocking

We're constantly fighting a battle when developing the new MongoDB Java driver between using tools that will do heavy lifting for us and minimising the dependencies a user has to download in order to use our driver.  Ideally, we want the number of dependencies to be zero. This is not going to be the case when it comes to testing, however.  At the very least, we're going to use JUnit or TestNG (we used testng in the previous version, we've switched to JUnit for 3.0).  Up until recently, we worked hard to eliminate the need for a mocking framework - the driver is not a large application with interacting services, most stuff can be tested either as an integration test or with very simple stubs. Recently I was working on the serialisation layer - we're making quite big changes to the model for encoding and decoding between BSON and Java, we're hoping this will simplify our lives but also make things a lot easier for the ODMs (Object-Document Mappers) and third part

Developers hate support, don't they?

This is Dublin.  Honest. I'm at the end of my first official week doing support for 10gen .  My major achievements are: Learning how to work the coffee machine in the Dublin office.  It's taken me a week to get it, but now I can understand the machine's needs.  Even if my coffee did taste a bit of cleaning fluid this morning. Navigating around Dublin - I led the way to the pub, followed by two people who live here. Turns out I know the most efficient routes between work venues and pubs, even in a town that I've never been to before. Closing all outstanding  Java driver pull requests , except for the one we want to merge but needs to be updated.  This is a massive win for us, now we can actually stay on top of them instead of wondering which are valid and which ones we're actively ignoring.  I hope the CTO isn't peeved I closed one of his from two years ago. I got my highest scoring day on StackOverflow yesterday, receiving a "whopping" 67 poi

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