David Millington, C++ Product Manager

David is an Australian developer, although these days he lives in far northern Europe: if you go north, then you cross just one country to get to the North Pole. (It's further than it sounds, and he does see sunlight in winter -- occasionally.)

He has many years of experience with Delphi and C++Builder, as well as other languages. Since joining Embarcadero in May 2016, he has worked as a senior product manager responsible for C++, the IDE, and the debugger.

Posted by on in Blogs
Dave's Thoughts on UI Design - Index I'm a big proponent of practical, usable UIs that are easy to understand and pleasant to look at. As an ongoing series, there are a number of blogs posts on UI design. How To Design a Great UI A practical approach to taking a mockup or first cut of a UI, and improving it.   Part 1 looked at some basic principles of UI design, a typical UI design workflow, what it means for a UI to be ‘intuitive’, some examples, and started with an example ‘bad’ UI ...

Posted by on in Blogs
How To Design a Great UI - Part 3 Welcome back! This is the third post on a series on practical UI design, an approach to creating usable, good-looking UIs when you are not a UX expert. In Part 1, we looked at some basic principles of UI design, a typical UI design workflow, what it means for a UI to be ‘intuitive’, some examples, and started with an example ‘bad’ UI that could be a first cut at a UI for a feature, or the first version of a mockup. In Part 2, we moved into a practical approach, and examined confusion from user...

Posted by on in Blogs
C++ Libraries in GetIt: MurmurHash 3 An ongoing project we have is to ensure more popular, well-known C++ libraries are updated to work with C++Builder, and available to you from within GetIt, our package manager. You may have seen a post earlier this year about real-world (non-demo) apps that you can use with C++Builder and CMake, for example, and this is related. This week, I'd like to highlight MurmurHash 3. MurmurHash is a very well known hash function (read its Wikipedia page). It can produce either 32-bit or 128-b...

Posted by on in Blogs
How To Design a Great UI - Part 2 Welcome back! Last time, we discussed a typical UX design flow, and how to tackle this if you do not have access to a UX designer. We also looked at some key usability principles, and saw an example ‘bad’ user interface that we will improve step by step through this series. Finally, we examined that bad UI and some of the questions and confusion a user might have when interacting with it. If you haven't read the first post, please do - it covers some essential topics before what's covered t...

Posted by on in Blogs
How To Design a Great UI - Part 1 How do you design a user interface (UI) to be understandable and easy to interact with? In this series, I’ll give some thoughts on good design, combined with examples. This series is intended as practical UI design advice for small teams or individual developers. Many larger teams or companies have UX staff who can advise or run the process of UI design. Typically, a UI design process would be involved as part of the feature development process, something like: UI design requirements gathere...

Posted by on in Blogs
std::out &lt&lt "Happy 35th birthday, C++!" C++ has a long history, beginning in 1979, with Cpre, which added classes to C.  By 1980, it was C with Classes. And then in December of 1983, the term C++ was first used, suggested by Rick Mascitti. That's thirty-five years ago this year!  Read more in this fascinating article by Bjarne Stroustrup, which also discusses many other aspects of C++’s history.  We also recently posted a short history of C++’s various standards ourselves. My own journey with C++ began much later than ...
Learn to program C++ with C++Builder Community Edition: #5 Operators, and final application! Welcome to the fifth and final episode of Learning C++ with C++Builder Starter. Last time, we had a calculator and numerical input, demonstrating using boost::optional, smart pointers, and more. This post is shorter: it will finish the calculator with operators (implementing addition, subtraction, etc) and end with a full application, ready to move to cross-platform if you wish. Operators The calculator is almost functional. The one thing missing is actually performing the math operations...
Learn to program C++ with C++Builder Community Edition: #4, Real code and Useful C++: Ownership, smart pointers, styles, and optional values Welcome! Last time we looked at the architecture of a simple calculator app, showing how to design an application well by separating the UI and logic, abstracting through interfaces, and ensuring each class had a single responsibility.  That's important stuff, stuff that many developers skip, and is really important. Now we've done that, though, we can dig into the actual code. Today's blog post is almost entirely code, and will introduce you to several very interesting C++ concep...
Learn to program C++ with C++Builder Community Edition: #3, Design, Architecture, and UIs Welcome!  Last time we looked at the IDE, projects, a simple first application, and basic use of the debugger. Today we’re actually going to write code!  We are going to write a scientific calculator.  It’s a useful, real-world app. You might put it on your phone and use it (and we’ll show how to do this in the last blog post of the series.) Part of programming is good design. Programming is an art, and when you’re writing code, and you envisage your whole app, you fee...
Learn to program C++ with C++Builder Community Edition:  #2, Building and Debugging Welcome to the second blog post in the ‘Learning to program with C++Builder’ series - a set of five articles taking you from knowing nothing about C++ to writing a real-world, useful application. The first entry covered installing C++Builder Community. Now it’s time to start using it! Today, we’ll cover the tools you use, creating your first app, and basic debugging. Understanding the IDE C++Builder, the product, is what we call the IDE (Integrated Development Environment), which is the p...

Check out more tips and tricks in this development video: