In C#, what is the difference between these two statements var x = new Thing{ A = 10, B = 20 }; var x = new Thing(A:10, B:20); (Notice the difference in styles of bracket, and the symbol between e.g. A and 10.) The answer is: The first is using a constructor that takes no … Continue reading Initialising objects in C#
Streaming and buffering in C# and Talend
This could also be entitled: How to make your code over 3x faster*. I love LINQ in C#, and I think that I'm not the only C# programmer who does. However, there are hidden problems to watch out for, and I'll describe one now. It is based on the difference between streaming and buffering, which … Continue reading Streaming and buffering in C# and Talend
Data modelling for programmers
This article is for anyone, but is mostly aimed at people who have done some programming and now want to tackle data modelling - things like designing tables in a database. When you start data modelling, you eventually hit the unavoidable problem that real life is big and messy. I have found two tactics to … Continue reading Data modelling for programmers
I couldn’t possibly comment
While there is always some new tool or technique to learn in programming, there are other things where you think you've already got it sorted. Commenting your code is one of those things for me. When I read a recent article on comments, that asked if comments were good or bad, I thought "Obviously, they're … Continue reading I couldn’t possibly comment
Stats: Through a Glass, Darkly
I used to think that stats worked like this: Unfortunately the real world isn’t like that. Instead it’s more like this: You don’t have direct access to the Glorious Truths because there is the Impenetrable Wall of Ignorance in the way. Your only hope is to punch through the wall with some Stats Machinery. One … Continue reading Stats: Through a Glass, Darkly
UX Design: Good out of bad
Jared Spool has an excellent technique for helping people of varied backgrounds work on improving user experience. He starts off by deliberately pointing them in the wrong direction, gets them to enjoy themselves being nasty to their users, and then turns that into improvements.
How to mess up A/B tests
An excellent talk about A/B tests from someone who knows - Martin Goodson. My favourite part is an A/B test that found a 2.5% improvement to (sales) conversions between the two versions of the software being tested. Unfortunately there was a bug in the A/B testing framework, such that the old version was being tested … Continue reading How to mess up A/B tests
Guest slot on Boagworld podcast
Have you ever wondered what regular expressions are? Do you have trouble falling asleep? Paul Boag runs the excellent podcast Boagworld (plus a UX and digital transformation consultancy), and opened up the podcast for a season to anyone and everyone. The idea was about 10 minutes of stuff per person, and he and his co-host … Continue reading Guest slot on Boagworld podcast
Taming Combinatorial Explosions in SpecFlow
The Problem Imagine you are using SpecFlow to test a REST API. In the common REST way, the URL is built up of 1+ units, where each unit is one of these: Give me a list of X; Give me the instance of X that has id Y. You could easily have up to 3 … Continue reading Taming Combinatorial Explosions in SpecFlow
An excellent approach to product strategy
From UIE and also Medium, Melissa Perri (Product Management Consultant, etc.) has written a very interesting article on product strategy. It should grow out of business goals, and concentrate on outcomes rather than deliverables: What is Good Product Strategy?