Skip to main content


Showing posts from January, 2022


  Recently I found myself writing a self-contained server-based traffic management software service. This harvested traffic data from a TomTom navigation API. It then used Artificial Intelligence to “learn” from that information and decide on how to advise users. This product made it into the renowned Cape Breton Spark competition, which was a great experience. Since then the project has stalled, but I’ve decided to open-source a part of it in the hopes other people may use it in one of their future projects. THE PROBLEM Gathering data over a network and processing it is very asynchronous and the problem lent itself to a simple actor framework. This is a paradigm that’s commonplace in languages such as Erlang, Smalltalk, Go, and others, but I wanted to use C++. My language choice was made based mainly on wanting to hit the ground running and my previous experience in C++ would make that a lot easier. Others too, I’m sure will find themselves in that boat. THE ACTOR FRAMEWORK I did a li


  Every organization has data, whether they know it or not. A company’s data is their second biggest asset (staff, data, customers, other assets). Without data, how do you make decisions? How do you chose what areas to focus on, what department to grow, which customers need another visit, where your strengths and weaknesses are? Lots of firms neglect their data, leaving it to languish in old computer systems or worse still, paperwork, when they should be making it work for them. It should be updated continuously and used to generate valuable reports for management and staff. WHAT IS JOINED-UP DATA? You’ve probably heard of the phrase joined-up thinking. Well, joined-up data is really the same thing: different departments having a free exchange of data. An example of a system with joined-up data would be the following: Imagine a railway company. One computer system holds the track information – lengths, junctions, stations – in a  GIS  database. Another system handles the scheduling. Th


  You can’t run a business in the 21st Century without a website. Well, you can, but, honestly, why would you want to. Navigating the world wide web is easy, but navigating the world of procuring a website is a little more involved. Not to mention, social media, which many purport as being a must for any business. SOCIAL MEDIA That’s a good a place as any to start. The value of Social Media on your business success is often over-inflated. Read that again. Yep, outspoken some will say, but it’s true. It’s in the interest of consultants and service providers to over-play the role of social media in your business as they can justify more costs. And it’s more than that, website practitioners have invested many hours in learning the social media platforms. They have to believe that has been worth it. So how much social media engagement do you need? It totally depends on your business. If all your customers are on facebook you may want a facebook page. If they’re on reddit, you may want a su


  Many people tell me that they would like to learn programming, and ask my advice on how to get started. I started programming so long ago — constructing BASIC programs on a BBC micro at primary school in the eighties — computing has obviously changed considerably since. Even the term programming is broader. There are many different ways to introduce yourself to programming, some of which I approve of, some I would not recommend. If you’re thinking of dipping your toes into coding, which technologies you start to learn, largely depend on what programming you want to do. I’ll try to give some general advice, based on over thirty years of programming in different languages, to help you decide if software engineering is for you. Programming can be rewarding and a lot fun. It can also be frustrating, so it’s important you have a positive initial experience. As for many new things in life, things worth learning aren’t easy, so allow yourself to struggle and fail occasionally. The good news