ACCU World of Code
-
The difference between no move constructor and a deleted move constructor
It’s easy to think that deleting the move constructor means removing it. So if you do MyClass(MyClass&&) = delete , you make sure it doesn’t get a move constructor. This is however not technically correct. It might seem like a nitpick, but it actually gives you a less useful mental model of what’s going on. … Continue reading The difference between no move constructor and a deleted move constructor
-
Twenty Year Exit from the Oracle Ecosystem
The Oracle Ecosystem instance that I inheritted was designed from 2000 and went live in 2004. Its centre piece Oracle Workflow went end of life that year but had new versions through to 2007. In its own way it was a pinnacle of a certain view of softw…
-
Twenty Year Exit from the Oracle Ecosystem
The Oracle Ecosystem instance that I inheritted was designed from 2000 and went live in 2004. Its centre piece Oracle Workflow went end of life that year but had new versions through to 2007. In its own way it was a pinnacle of a certain view of softw…
-
ResOrg 2.0.10.31 adds support for Visual Studio 2022
ResOrg 2.0.10.31 has now been released. This a recommended maintenance update for ResOrg 2.0, and adds support for Visual Studio 2022 Preview: ResOrg 2.0.10.31 running within Visual Studio 2022 Preview 4.1 The following changes are included in this bu…
-
ResOrg 2.0.10.31 adds support for Visual Studio 2022
ResOrg 2.0.10.31 has now been released. This a recommended maintenance update for ResOrg 2.0, and adds support for Visual Studio 2022 Preview: ResOrg 2.0.10.31 running within Visual Studio 2022 Preview 4.1 The following changes are included in this bu…
-
The Woes of Windows Smartscreen
Windows Smartscreen is a great idea, but if you develop downloadable software for Windows it can sometimes be incredibly frustrating. That has certainly been our experience this year, as Windows has displayed the following warning when running every bu…
-
The Woes of Windows Smartscreen
Windows Smartscreen is a great idea, but if you develop downloadable software for Windows it can sometimes be incredibly frustrating. That has certainly been our experience this year, as Windows has displayed the following warning when running every bu…
-
Transient Expand-Archive Failures
[I’m sure there is something else going on here but on the off-chance someone else is also observing this and also lost at least they’ll know they’re not alone.] We have a GitLab project pipeline that started out as a monolithic job but over the last …
-
Transient Expand-Archive Failures
[I’m sure there is something else going on here but on the off-chance someone else is also observing this and also lost at least they’ll know they’re not alone.] We have a GitLab project pipeline that started out as a monolithic job but over the last …
-
Lose the Source Luke?
We were writing a new service to distribute financial pricing data around the trading floor as a companion to our new desktop pricing tool. The plugin architecture allowed us to write modular components that could tap into the event streams for various…
-
Lose the Source Luke?
We were writing a new service to distribute financial pricing data around the trading floor as a companion to our new desktop pricing tool. The plugin architecture allowed us to write modular components that could tap into the event streams for various…
-
Migrating from my trusty 2009 Mac Pro to a 2020 Mac Mini M1
I’ve been using a 2009 cheesegrater Mac Pro for quite a while now. I bought it used quite a while ago – around 2013 if I remember correctly – and it’s been serving as my main photo/video/general programming workhorse, although the latter ta…
-
Visual Lint 8.0.4.342 has been released
Visual Lint 8.0.4.342 has now been released. This a recommended maintenance update for Visual Lint 8.0 and includes the following changes: The Eclipse C/C++ project (.cproject) file reader now attempts to take into account buildTools.path and toolcha…
-
Visual Lint 8.0.4.342 has been released
Visual Lint 8.0.4.342 has now been released. This a recommended maintenance update for Visual Lint 8.0 and includes the following changes: The Eclipse C/C++ project (.cproject) file reader now attempts to take into account buildTools.path and toolcha…
-
The Case of the Curious Commit Message
I had taken a new contract at an investment bank and started working on a very mature codebase which was stored in ClearCase. As a long-time user [1] of version control systems one of the things that bugged me about the codebase were empty commit messa…
-
The Case of the Curious Commit Message
I had taken a new contract at an investment bank and started working on a very mature codebase which was stored in ClearCase. As a long-time user [1] of version control systems one of the things that bugged me about the codebase were empty commit messa…
-
Wrapping up the NZXT H1 recall saga
As I mentioned in my post from a few months ago, I had received the temporary fix in the form of the nylon screws and nuts from NZXT. At that point in time, NZXT’s customer support was not able to tell me when to expect the “real” fix…
-
[fix dev diary] Week 6-7: Description and Issue ID
In my dev diary blog post series, I document the minutiae of what I am doing for my toy project Fix. The diary can also be found in smaller bites […] The post [fix dev diary] Week 6-7: Description and Issue ID appeared first on Simplify C++!.
-
Automatically enabling multiple Emacs minor modes via a major mode hook
In Emacs, I usually end up enabling the same set of minor modes when I use one of my “writing modes”, namely modes like markdown-mode and org-mode. Enabling a single minor mode automatically is generally pretty easy via the appropriate mode…
-
isValid()? Establish invariants and avoid zombie objects
When classes have an “isValid” method or similar, the code using them often is less clear and harder to maintain. If possible, validity should be an invariant that can not […] The post isValid()? Establish invariants and avoid zombie …
-
[fix dev diary] Week 5: std::expected
In my dev diary blog post series, I document the minutiae of what I am doing for my toy project Fix. The diary can also be found in smaller bites […] The post [fix dev diary] Week 5: std::expected appeared first on Simplify C++!.
-
TIL that org-mode has an exporter for ODT
I’m by no means an Emacs org-mode power user – in fact, anything but – but I do use org-mode a lot for note taking and also when I need an outliner to try and arrange ideas in a suitable manner. It excels at both, and usually does what I need inc…
-
[fix dev diary] Week 4: Closing in on core domain code
In my dev diary blog post series, I document the minutiae of what I am doing for my toy project Fix. The diary can also be found in smaller bites […] The post [fix dev diary] Week 4: Closing in on core domain code appeared first on Simplify C++!.
-
Visual Lint 8.0.3.340 has been released
Visual Lint 8.0.3.340 has now been released. This a recommended maintenance update for Visual Lint 8.0, and includes the following changes: Visual Studio 2022 now appears as a supported project type in VisualLintGui and VisualLintConsole. Added a s…
-
Visual Lint 8.0.3.340 has been released
Visual Lint 8.0.3.340 has now been released. This a recommended maintenance update for Visual Lint 8.0, and includes the following changes: Visual Studio 2022 now appears as a supported project type in VisualLintGui and VisualLintConsole. Added a s…
-
[fix dev diary] Week 3: create command and application service
In my dev diary blog post series, I document the minutiae of what I am doing for my toy project Fix. The diary can also be found in smaller bites […] The post [fix dev diary] Week 3: create command and application service appeared first on Simpli…
-
[fix dev diary] Week 2: Foundation of the CLI App
In my dev diary blog post series, I document the minutiae of what I am doing for my toy project Fix. The diary can also be found in smaller bites […] The post [fix dev diary] Week 2: Foundation of the CLI App appeared first on Simplify C++!.
-
[fix dev diary] Week 1: Preparations
This is the start of my dev diary blog post series, where I document the minutiae of what I am doing for my toy project Fix. The diary can also […] The post [fix dev diary] Week 1: Preparations appeared first on Simplify C++!.
-
Old new Project: Fix
When I wrote about rebooting the blog, I also wrote I’d reboot my toy project “Fix”. Here is what Fix is about – this time. What is Fix? Fix is […] The post Old new Project: Fix appeared first on Simplify C++!.
-
Visual Studio 2022 Preview 2 and the v143 platform toolset
Visual Studio 2022 Preview 2 was released by Microsoft last week. One of the changes included in Preview 2 is the addition of the Visual Studio 2022 specific v143 platform toolset (Preview 1 used the v142 platform toolset from Visual Studio 2019). Sup…
-
Visual Studio 2022 Preview 2 and the v143 platform toolset
Visual Studio 2022 Preview 2 was released by Microsoft last week. One of the changes included in Preview 2 is the addition of the Visual Studio 2022 specific v143 platform toolset (Preview 1 used the v142 platform toolset from Visual Studio 2019). Sup…
-
Turning this particular server into a bit less of a pet
I’m in the middle of a server redo – right now, I’m setting up a replacement server for my trusty Dell T30, plus it was time to give this web server a new home. When I started the migration from my old WordPress site to the new static site,…
-
Visual Studio 2022 Preview 1 is now available
Ever since news broke in April of Microsoft’s plans for Visual Studio 2022 we have been waiting to get our hands on a preview build of the new version. The first public preview was finally released on 17th June, so naturally we have spent the past few …
-
Visual Studio 2022 Preview 1 is now available
Ever since news broke in April of Microsoft’s plans for Visual Studio 2022 we have been waiting to get our hands on a preview build of the new version. The first public preview was finally released on 17th June, so naturally we have spent the past few …
-
Visual Lint 8.0.2.338 has been released
Visual Lint 8.0.2.338 has now been released. This a recommended maintenance update for Visual Lint 8.0, and includes the following changes: Updated the values of _MSC_VER and _MSC_FULL_VER in the PC-lint Plus compiler indirect file `co-rb-vs2019.lnt …
-
Visual Lint 8.0.2.338 has been released
Visual Lint 8.0.2.338 has now been released. This a recommended maintenance update for Visual Lint 8.0, and includes the following changes: Updated the values of _MSC_VER and _MSC_FULL_VER in the PC-lint Plus compiler indirect file `co-rb-vs2019.lnt …
-
Online Concurrency Workshop at C++ on Sea 2021
The restrictions brought upon us by COVID-19 are not over yet, and C++ on Sea is the latest conference that will be running as an online-only conference. I will be running my More Concurrent Thinking class as an online workshop for C++ on Sea on 30th J…
-
vidmini – limit webcam resolution
Being fed up with the limited configurability of some of the more widely used software used for video conferencig, I have put together a small LD_PRELOAD-able shared library that limits the available resolutions a webcam reports. Have a look at the REA…
-
vidmini – limit webcam resolution
Being fed up with the limited configurability of some of the more widely used software used for video conferencig, I have put together a small LD_PRELOAD-able shared library that limits the available resolutions a webcam reports. Have a look at the REA…
-
Visual Lint 8.0.1.337 has been released
Visual Lint 8.0.1.337 is a recommended maintenance update for Visual Lint 8.0. The following changes are included: If the Visual Studio plugin is selected for installation and the Visual Studio Debug Console (VsDebugConsole.exe) is running, the insta…
-
Visual Lint 8.0.1.337 has been released
Visual Lint 8.0.1.337 is a recommended maintenance update for Visual Lint 8.0. The following changes are included: If the Visual Studio plugin is selected for installation and the Visual Studio Debug Console (VsDebugConsole.exe) is running, the insta…
-
Python virtual environments with pyenv on Apple Silicon
Apple’s recent transition to the new architecture for its Mac computers has caused rather predictable problems for developers whose workflow depends on certain versions of pre-compiled libraries for x86 architecture. While the latest releases of Python come with a universal installer that allows to build universal binaries for M1 systems …
-
Python virtual environments with pyenv on Apple Silicon
Apple’s recent transition to the new architecture for its Mac computers has caused rather predictable problems for developers whose workflow depends on certain versions of pre-compiled libraries for x86 architecture. While the latest releases of Python come with a universal installer that allows to build universal binaries for M1 systems …
-
Using atomics for thread synchronization in C++
In my previous blog post I wrote about spin locks, and how compilers must not move the locking loop above a prior unlock. After thinking about this done more, I realised that is not something specific to locks — the same issue arises with any two…
-
Can non-overlapping spinlocks deadlock in C++?
There has been discussion on Twitter recently about whether or not the C++ memory model allows spinlocks to deadlock if they just use memory_order_acquire in lock and memory_order_release in unlock, due to compiler optimizations. The case in question i…
-
Visual Lint 8.0 has been released
The first public build of Visual Lint 8.0 has just been uploaded to our website. As of today, Visual Lint 8.0 replaces Visual Lint 7.0 as the current supported Visual Lint version. As such Visual Lint 8.0 licences (as well as upgrades for Visual Lint 6…
-
Visual Lint 8.0 has been released
The first public build of Visual Lint 8.0 has just been uploaded to our website. As of today, Visual Lint 8.0 replaces Visual Lint 7.0 as the current supported Visual Lint version. As such Visual Lint 8.0 licences (as well as upgrades for Visual Lint 6…
-
Ticket Maps
It has been an increasingly common scenario that I’ve encountered where you have some ID that’s monotonically increasing, such as a subscription or connection index, or user ID, and you need your C++ program to hold some data that’s associated with tha…
-
Visual Studio crashes when docking windows (TL;DR: it wasn’t us)
We’ve all done it. You prepare a new build, install it, start testing before releasing it and then…it crashes. The immediate thought is always “What have we done…?”. Exactly that happened to us recently when testing a Visual Lint build – all we did…
-
Visual Studio crashes when docking windows (TL;DR: it wasn’t us)
We’ve all done it. You prepare a new build, install it, start testing before releasing it and then…it crashes. The immediate thought is always “What have we done…?”. Exactly that happened to us recently when testing a Visual Lint build – all we did…
-
Planning is Inevitable
Like most programmers I’ve generally tried to steer well clear of getting involved in management duties. The trouble is that as you get older I think this becomes harder and harder to avoid. Once you get the mechanics of programming under control you m…
-
Planning is Inevitable
Like most programmers I’ve generally tried to steer well clear of getting involved in management duties. The trouble is that as you get older I think this becomes harder and harder to avoid. Once you get the mechanics of programming under control you m…
-
Reality is not what is seems
is an excellent book by Carlo Rovelli (isbn 978-0-141-98321-9) As usual I’m going to quote from a few pages. It doesn’t describe where there is a particle but how the particle shows itself to others. It isn’t things that enter into relations…
-
Reality is not what is seems
is an excellent book by Carlo Rovelli (isbn 978-0-141-98321-9) As usual I’m going to quote from a few pages. It doesn’t describe where there is a particle but how the particle shows itself to others. It isn’t things that enter into relations…
-
Pair Programming Interviews
Let’s be honest, hiring people is hard and there are no perfect approaches. However it feels somewhat logical that if you’re hiring someone who will spend a significant amount of their time solving problems by writing software, then you should probably…
-
Pair Programming Interviews
Let’s be honest, hiring people is hard and there are no perfect approaches. However it feels somewhat logical that if you’re hiring someone who will spend a significant amount of their time solving problems by writing software, then you should probably…
-
The Ascent of Man
is an excellent book by Jacob Bronowski (isbn 0-7088-2035-2) As usual I’m going to quote from a few pages. Evolution is the climbing of a ladder from the simple to the complex by steps, each of which is stable in itself. The turning point to…
-
The Ascent of Man
is an excellent book by Jacob Bronowski (isbn 0-7088-2035-2) As usual I’m going to quote from a few pages. Evolution is the climbing of a ladder from the simple to the complex by steps, each of which is stable in itself. The turning point to…
-
Fast Hardware Hides Many Sins
Way back at the beginning of my professional programming career I worked for a small software house that wrote graphics software. Although it had a desktop publisher and line-art based graphics package in its suite it didn’t have a bitmap editor and so…
-
Fast Hardware Hides Many Sins
Way back at the beginning of my professional programming career I worked for a small software house that wrote graphics software. Although it had a desktop publisher and line-art based graphics package in its suite it didn’t have a bitmap editor and so…
-
TDD – Romanes Eunt Domus!
-
TDD – Romanes Eunt Domus!
-
What is Life?
is an excellent book by Paul Nurse (isbn 978-1-788451-40-6) As usual I’m going to quote from a few pages. Cells repair these mutations, but they are not completely successful. If they were, all individuals of a species would be identical and evo…
-
What is Life?
is an excellent book by Paul Nurse (isbn 978-1-788451-40-6) As usual I’m going to quote from a few pages. Cells repair these mutations, but they are not completely successful. If they were, all individuals of a species would be identical and evo…
-
Sapiens. A Brief History of Human Kind
is an excellent book by Yuval Noah Harari (isbn 978-0-099-59008-8) As usual I’m going to quote from a few pages. Whereas chimpanzees spend five hours a day chewing raw food, a single hour suffices for people eating cooked food. Since long inte…
-
Sapiens. A Brief History of Human Kind
is an excellent book by Yuval Noah Harari (isbn 978-0-099-59008-8) As usual I’m going to quote from a few pages. Whereas chimpanzees spend five hours a day chewing raw food, a single hour suffices for people eating cooked food. Since long inte…
-
The Culture Code
is an excellent book by Daniel Coyle (isbn 978-1-847-94127-5) As usual I’m going to quote from a few pages. Much of the connection happens around the dinner table, as Popovich is obsessed with food and wine. One misconception about highly succ…
-
The Culture Code
is an excellent book by Daniel Coyle (isbn 978-1-847-94127-5) As usual I’m going to quote from a few pages. Much of the connection happens around the dinner table, as Popovich is obsessed with food and wine. One misconception about highly succ…
-
Mutant algorithms
The word “algorithm” has caused a storm in recent news in the UK. Due to COVID-19 school children were not able to sit their exams. This left 16 and 18 year olds waiting to see how they would be assessed, and had obvious implications for their ac…
-
Mutant algorithms
The word “algorithm” has caused a storm in recent news in the UK. Due to COVID-19 school children were not able to sit their exams. This left 16 and 18 year olds waiting to see how they would be assessed, and had obvious implications for their ac…
-
Online Concurrency Classes
With all the restrictions brought upon us by COVID-19, many C++ conferences are moving online. This includes Cppcon and NDC Tech Town, both of which are being run as 100% virtual conferences this year. I will be running my More Concurrent Thinking clas…
-
Simple Tables From JSON Data With JQ and Column
My current role is more of a DevOps role and I’m spending more time than usual monitoring and administrating various services, such as the GitLab instance we use for source control, build pipelines, issue management, etc. While the GitLab UI is very us…
-
Simple Tables From JSON Data With JQ and Column
My current role is more of a DevOps role and I’m spending more time than usual monitoring and administrating various services, such as the GitLab instance we use for source control, build pipelines, issue management, etc. While the GitLab UI is very us…
-
Weekend Maintenance as Chaos Engineering
I was working on a new system – a grid based calculation engine for an investment bank – and I was beginning to read about some crazy ideas by Netflix around how they would kill off actual production servers to test their resilience to failure. I reall…
-
Weekend Maintenance as Chaos Engineering
I was working on a new system – a grid based calculation engine for an investment bank – and I was beginning to read about some crazy ideas by Netflix around how they would kill off actual production servers to test their resilience to failure. I reall…
-
Clang-Tidying up the house
If there is any single consolation amidst the circumstances we are all having to cope with at the moment it is that many of us have lots of time to fill – not only with unproductive things like binging Netflix (I really should get around to watching Di…
-
Clang-Tidying up the house
If there is any single consolation amidst the circumstances we are all having to cope with at the moment it is that many of us have lots of time to fill – not only with unproductive things like binging Netflix (I really should get around to watching Di…
-
Victory in Europe (VE) Day in Churchill’s Toyshop
My grandfather, Norman Angier, worked at Churchill’s Toyshop (M.D.1) as the head civilian engineer during WWII. On VE day “Norman Angier felt it was an occasion for fireworks. He therefore acquired a large batch of quite big rockets and proc…
-
Victory in Europe (VE) Day in Churchill’s Toyshop
My grandfather, Norman Angier, worked at Churchill’s Toyshop (M.D.1) as the head civilian engineer during WWII. On VE day “Norman Angier felt it was an occasion for fireworks. He therefore acquired a large batch of quite big rockets and proc…
-
Tizen on Orange Pi PC
Made some significant progress for running Tizen on an Orange Pi PC (and hopefully any other SBC with a similar Mali GPU). Main issue was that alignments in TBM (Tizen Buffer Manager) weren’t in sync with what the actual GPU driver expected. With that …
-
Tizen on Orange Pi PC
Made some significant progress for running Tizen on an Orange Pi PC (and hopefully any other SBC with a similar Mali GPU). Main issue was that alignments in TBM (Tizen Buffer Manager) weren’t in sync with what the actual GPU driver expected. With that …
-
SIGCHLD si_pid Linux kernel bug
While trying to get Tizen working on my Orange Pi PC, I noticed some strange behaviour in the Linux kernel in that SIGCHLD signals sent to the parent process don’t always set the “si_pid” field correctly. I tracked this down to a bug in the Linux kerne…
-
SIGCHLD si_pid Linux kernel bug
While trying to get Tizen working on my Orange Pi PC, I noticed some strange behaviour in the Linux kernel in that SIGCHLD signals sent to the parent process don’t always set the “si_pid” field correctly. I tracked this down to a bug in the Linux kerne…
-
COVID-19 Lockdown Blues
A corner of the roof of our office building. Even though the sea is just over 350m away to the left, sadly it’s currently off-limits. 2020 is not turning out to be what we expect as – like much of the world – the UK is locked down right now as a resul…
-
COVID-19 Lockdown Blues
A corner of the roof of our office building. Even though the sea is just over 350m away to the left, sadly it’s currently off-limits. 2020 is not turning out to be what we expect as – like much of the world – the UK is locked down right now as a resul…
-
Life, the Universe and Everything
is an excellent book by Douglas Adams (isbn 978-0-330-49120-4). As usual I’m going to quote from a few pages. He would insult the universe. That is, he would insult everybody in it. Individually, personally, one by one, and (this was the thing t…
-
Life, the Universe and Everything
is an excellent book by Douglas Adams (isbn 978-0-330-49120-4). As usual I’m going to quote from a few pages. He would insult the universe. That is, he would insult everybody in it. Individually, personally, one by one, and (this was the thing t…
-
The Restaurant at the End of the Universe
is an excellent book by Douglas Adams (isbn 978-0-330-49121-1). As usual I’m going to quote from a few pages. There is another theory which states that this has already happened. The story so far: In the beginning the Universe was created. Thi…
-
The Restaurant at the End of the Universe
is an excellent book by Douglas Adams (isbn 978-0-330-49121-1). As usual I’m going to quote from a few pages. There is another theory which states that this has already happened. The story so far: In the beginning the Universe was created. Thi…
-
Can a decision tree tell us about wine categories?
I previously wrote an overview showing how decision trees work: http://buontempoconsulting.blogspot.com/2019/07/decision-trees-for-feature-selection.html This time, let’s build a decision tree with some data. There are many freely available data …
-
Can a decision tree tell us about wine categories?
I previously wrote an overview showing how decision trees work: http://buontempoconsulting.blogspot.com/2019/07/decision-trees-for-feature-selection.html This time, let’s build a decision tree with some data. There are many freely available data …
-
The Hitch Hiker’s Guide to the Galaxy
is an excellent book by Douglas Adams (isbn 978-0-330-49119-8). As usual I’m going to quote from a few pages. Far out in the uncharted backwaters of the unfashionable end of the Western Spiral Arm of the Galaxy lies a small unregarded yellow sun…
-
The Hitch Hiker’s Guide to the Galaxy
is an excellent book by Douglas Adams (isbn 978-0-330-49119-8). As usual I’m going to quote from a few pages. Far out in the uncharted backwaters of the unfashionable end of the Western Spiral Arm of the Galaxy lies a small unregarded yellow sun…
-
Invariants and Preconditions
I tend to think about invariants and preconditions a lot. Pretty much every class has invariants, and most functions have preconditions. I don’t think they are complicated concepts, but somehow they seem to confuse people anyway, so I decided it was ti…
-
Rock Pi S Review
Got a $20 voucher code for a review of a Rock Pi S SBC. Although the cost of the board is only $13.90, with shipping at just over $8, it’s a bit over $22 in total. When the board arrived, I did actually wonder if shipping could have been made a bit mor…
-
Rock Pi S Review
Got a $20 voucher code for a review of a Rock Pi S SBC. Although the cost of the board is only $13.90, with shipping at just over $8, it’s a bit over $22 in total. When the board arrived, I did actually wonder if shipping could have been made a bit mor…
-
Blog Post #300
I signed off My 200th Blog Post in November 2014 with the following words: See you again in a few years. At the time I didn’t think it would take me over 5 years to write another 100 blog posts, but it has. Does this mean I’ve stopped writing and gone…
-
Blog Post #300
I signed off My 200th Blog Post in November 2014 with the following words: See you again in a few years. At the time I didn’t think it would take me over 5 years to write another 100 blog posts, but it has. Does this mean I’ve stopped writing and gone…
-
Cargo Culting GitFlow
A few years back I got to spend a couple of weeks consulting at a small company involved in the production of smart cards. My team had been brought in by the company’s management to cast our critical eye over their software development process and prov…
-
Cargo Culting GitFlow
A few years back I got to spend a couple of weeks consulting at a small company involved in the production of smart cards. My team had been brought in by the company’s management to cast our critical eye over their software development process and prov…