-
I first heard “Tell don’t ask” during a course being given by ThoughtWorks and it’s certainly one of a set of phrases and one-liners that run through my head when coding. I find that a core set of easy to remember principles help govern my coding both during the planning, implementation and refactor and ultimately […]
-
While talking through some upcoming sprint candidates, I pushed a BA for more information because I wanted to ‘get the code right first time’. The BA’s response to this request was that he deemed it ‘un-agile’. I found that quite interesting and I wanted to talk about why coding things correctly first time has value […]
-
I’m doing some work that requires the usage of the libcore library, specifically using the class HttpUrlConnectionImpl.java or so my trusty IntelliJ debugger tells me. Unfortunately, these sources aren’t shipped with the standard sources that come with your android sdk in the sources directory, and you have to do some work to get them up and […]
-
The tech lead role seems to be used in wider and wider circles, with each company defining the role in different ways. So what is a tech lead, and what are their responsibilities? To my mind, the responsibility flows in three directions: Upwards: Responsibile to the board for delivering the project to a high technical […]
-
Mark Seemann has both blogged and talked about escaping the OO .Net Web API framework in order to use a more idiomatic functional style. This is achieved by providing a function per verb to the controller’s constructor, and replacing the IHttpControllerActivator: type CompositionRoot() = interface IHttpControllerActivator with member this.Create(request, controllerDescriptor, controllerType) = if controllerType = […]
-
Mark Seemann has both blogged and talked about escaping the OO .Net Web API framework in order to use a more idiomatic functional style. This is achieved by providing a function per verb to the controller’s constructor, and replacing the IHttpControllerActivator: type CompositionRoot() = interface IHttpControllerActivator with member this.Create(request, controllerDescriptor, controllerType) = if controllerType = […]
-
There is something wonderful about having a complete conversation with one of your children. My eldest son is almost four and a half, meaning he’s now able to hold a brilliant conversation lasting several minutes. This evening’s topic was why George didn’t want to sleep in the top bunk of his bed. We bought bunk […]
-
If you’re wondering how to translate a .Net Func<T, T1> (up to the 16th item) into comparable java code, then here’s how. First, the C# And now, the same in Java using inner classes Quite different but conceptually pretty clean and logical really when you consider that an interface offers a contract. Not as flexible […]
-
The first question I like to ask interview candidates is to rate themselves out of 10 as a C# (or JavaScript) developer. I feel the question offers several insights into the candidate, as well as providing a solid base for the type, and depth, of questions one might ask. Firstly it provides an opportunity for […]
-
I took a look through the kotlin docs last night. The language looks great! They’ve taken a lot from C#/the pool of good languages and made what looks to be a really cool language to use. Nice and terse, clever additions. I’ll try to introduce Kotlin in some way at my day job, INSHUR, as […]
-
I took a look through the kotlin docs last night. The language looks great! They’ve taken a lot from C#/the pool of good languages and made what looks to be a really cool language to use. Nice and terse, clever additions. I’ll try to introduce Kotlin in some way at my day job, INSHUR, as […]
-
Everywhere I’ve worked develops ‘features’. No great revelation there. However a feature is often, or at least ought to be, quite a small piece of functionality. A stripe of business value carved out of a larger solution. This stripe can be tested and released within a sprint while adding value to the business. A lot […]
-
I first heard “Tell don’t ask” during a course being given by ThoughtWorks and it’s certainly one of a set of phrases and one-liners that run through my head when coding. I find that a core set of easy to remember principles help govern my coding both during the planning, implementation and refactor and ultimately […]
-
I had often wondered how to get into contributing to open source software. What are the rules? What is the etiquette? Then one day, I realised that I knew the answer to both those questions: What are the rules? Be nice. Don’t be a dick. Follow the standards. What is the etiquette? Follow the above […]
-
The docs for this don’t seem to be working at the moment and the examples I’ve seen after a quick google seem to avoid the API in favour or just treating the repeater as an array. I thought I’d document the correct usage here in case people questioned the other blogs on the net.
-
Taking a step back is something we talk about doing, yet rarely find time to. We ponder things in between other thoughts, usually while moving from place to place or standing in the shower. Do these stolen moments offer the most benefit though? What are we missing when we’re lost in thought? Is there a […]
-
Having trouble getting JSON content into the Sinatra params hash? Then read on… I’ve been playing around with Sinatra a lot of late, including updating my Sinatra HTML5 Boilerplate to use Grunt – amongst other things, and in doing so started building a little backbone app by way of a proof of concept. Part of […]
-
Having trouble getting JSON content into the Sinatra params hash? Then read on… I’ve been playing around with Sinatra a lot of late, including updating my Sinatra HTML5 Boilerplate to use Grunt – amongst other things, and in doing so started building a little backbone app by way of a proof of concept. Part of […]
-
My posts receive several comments per day. However, none of them are from real people. They’re seemingly from Russian spam bots which trawl the web pasting garbage into unwitting comment boxes. I wonder what their goal is? They always contain a link, which makes sense, but to what? Is it about catching the clicks and […]
-
I’ve decided to write a short review about the Microsoft Band, a product I feel I have had for long enough to draw meaningful conclusions against it. I’ll start by saying I like the device. Anyone that buys something by Microsoft that has such an odd and ungainly shape ought to know what they’re getting […]
-
As part of my new journey into outside-in testing I’ve – of course, for those that know me – looked into the tooling aspect. A part of that is implementing a MongoDB test harness injected via AutoFixture’s XUnit plugins. As a quick side note, I think tooling is critical to elevating ones self from being […]
-
Everywhere I’ve worked develops ‘features’. No great revelation there. However a feature is often, or at least ought to be, quite a small piece of functionality. A stripe of business value carved out of a larger solution. This stripe can be tested and released within a sprint while adding value to the business. A lot […]
-
The docs for this don’t seem to be working at the moment and the examples I’ve seen after a quick google seem to avoid the API in favour or just treating the repeater as an array. I thought I’d document the correct usage here in case people questioned the other blogs on the net.