Hi!

My name is Dave and I've been a professional programmer for all of my adult life, with my first real programming job back in 1985. Which means I've been doing this for a long time, or at least it seems that way to me.

Very early in my career, I noticed that lots of IT departments struggle to succeed at software development.

It's one of the most difficult things any company can try to do because software development is almost always about exploration, investigation, innovation and learning as you go. Users rarely know what they want, certainly don't know what is possible, and have trouble visualizing how software will work before it is delivered. Programmers, for their part, often have limited understanding of the business and are usually expected to leverage new technologies they've never used before to build working solutions.

For the past 35 years I've spent a lot of time thinking about how we think about building systems.

This website is a place for me to share what I've learned about not just programming, but the entire lifecyle of business applications - from the initial idea to satisfy a business need, right through development and maintenance, to the inevitable day when it's time to replace it with something newer and better.

Since about 2014, I've spent a large amount of my professional time developing desktop applications in JavaFX. There is a surprising lack on the web right now of high quality information about how to use JavaFX properly, and I'm hoping that my articles on this website about JavaFX will fill that hole.

Recent posts

15 minute read

A look at how to extend the idea of Bindings to include internal state to encapsulate the mechanics of more complicated relationships between ObservableValues in your GUI and your Model.

18 minute read

A deeper look at the Task class and how to monitor progress while a Task in running on a background thread.

24 minute read

What if you need to control the styling of a Node over a range of values? How can you do that, and is there any way create a framework that you can use over and over again?

20 minute read

Understanding the Model-View-Controller-Interactor framework is one thing, but putting it all together to create a large and complicated application means that you’ll need to know how to integrate it with external services.

21 minute read

Another look at some beginner code, and how it could be improved.

14 minute read

There a little known, but very useful function call in most Properties. This can be overridden to turn a Property into a class that transforms a value change into an action.

21 minute read

Taking a look at a JavaFX application that suffers from some very common beginner mistakes, converting it to Kotlin and sorting out the issues.

6 minute read

Here’s a sample application that uses a ListView to display and edit bytes in a data file, showing the values in hex, octal, binary, decimal and as characters.