Welcome to Niche Software, a MicroISV based in Wellington, New Zealand.

The primary goal of the site is as a host to my writing - mostly entries in my blog, but also including more detailed articles and the occasional highly opinionated editorial. A secondary, but still important, goal is to be a place to post some tools, utilities and toys that I have written. As I tend to develop applications that "scratch my own itch," most of these are fairly technical in nature. Please check out the license on any item you download - while many are free, some are not.

Modifying Words, Part the Second

Nov 16 2019 wordtutor-redux csharp

If you’ve tried out our application as it stood after last week’s post, you may have noticed that the user experience for modifying a word is a bit suboptimal. After selecting a word, you have to separately press the Modify button. Can we do better?

Read more »

Modifying Words, Part the First

Nov 09 2019 wordtutor-redux csharp

The existing model class ModifyVocabularyWordScreen only handles the creation of a new word. We need to modify it to support the modification of an existing word as well.

Read more »

Sharpen The Saw - November 2019

Nov 02 2019 sharpen-the-saw

In todays post: Enforcing the Liskov Substitution Principle, C# language versioning, reminders for better meetings, making money from 2FA, the Curta mechanical keyboard, and Crypto 101.

Read more »

Older Posts

Hashcodes  26 Oct 2019
Code Gardening  19 Oct 2019
Nullable types redux  12 Oct 2019
Sharpen The Saw - October 2019  05 Oct 2019
C# 8 and .NET Core 3.0  28 Sep 2019
Commands and CommandBinding  21 Sep 2019
More blog posts »

Mandelbrot Screensaver

Mandelbrot Screensaver is a screensaver that automatically generates images from Mandelbrot fractal, generating a never ending display of fractal images on your screen.

Read More »

WordTutor

WordTutor, a tool for running interactive spelling drills: the easy way to ove your spelling.

Read More »

OOS Alarm

OOS Alarm is a repeating alarm clock which pops up regularly to remind you to appropriate breaks during your work each day.

Read More »

Becoming a Better Developer

In this talk I pass on some of the things I've learnt about being a better developer.

Read more »

Static Analysis for the Win

We all know that the earlier we find a bug, the cheaper it is to fix. Shouldn't we therefore be doing everything we can to identify bugs as early as possible?

Read more »

The Pragmatic Programmer

Unusually for a technical book published in 1999, The Pragmatic Programmer remains thoroughly relevant to the modern developer. I present a review of this book, looking at how it is relevant to the modern developer.

Read more »

Writing Maintainable Code

One core skill that every developer should cultivate is the ability to write Maintainable Code - code that can be easily understood.

Read more »

Geek Communication

In June 2014, presenting to the first cohort of the Enspiral Devacademy talking about the nature of "geeks" and how to communicate effectively with them.

Read more »

Unit Testing 101

A beginners introduction to unit testing, based on Roy Oscherove's book Art of Unit Testing. Presented to both Software Quality New Zealand and to Statistics New Zealand.

Read more »