Consultant, C developer, CMake co-maintainer and book author. Consulting services available through my company, Crascit Pty Ltd.

Joined March 2016
7 Photos and videos
Pinned Tweet
6 Sep 2019
Very pleased to make the public announcement that I'm now offering consulting services through my new company, Crascit Pty Ltd. Interested in having me work with you on your CMake, C or build/release issues? Then get in touch! crascit.com/2019/09/06/cmake…

5
12
68
If you're running Ubuntu 20 or Ubuntu 22 and you normally install CMake as a snap package, I'd welcome you testing the latest 4.4.0-rc1 release candidate. This snap switches to a newer base (core24) and I'd like confirmation that it still works fine on older Ubuntu versions.
151
It is incredible that despite many user bug reports and the bug being open for years, CLion can still randomly hang with "Saving settings" and there's no reliable workaround. It renders your IDE unusable and you can be left with no option but switching to another IDE. Even a complete wipe and reinstall of all JetBrains products doesn't help. @clion_ide I love your IDE, but today I lost this battle and have to switch to something else just to do my work. I can't keep spending hours trying random things hoping to stumble on something that restores it to a working state. Even rolling back to earlier versions no longer works. I'm stating this publicly mostly because it is clear the YouTrack bug reports are not resulting in this problem being fixed. How many users will you have to lose before this bug finally gets enough attention?
2
4
511
I'm curious whether anyone has a rigorous legal opinion on whether copyright notices in source files that will never be distributed outside of a private company has any legal value at all? Simply stating something like "Copyright 20XX Company YYY" seems of dubious value.
2
4
450
Hot take: Pull requests that state "I vibe-coded this..." or "I put this together with AI tool XYZ..." seem to align with "I don't understand this change as well as I should", and especially with "I didn't check this change as carefully as if I wrote it myself." 🤔 I'm curious why authors feel the need to state that at all. It's used almost like an "I don't take responsibility for this change" escape hatch, as though that somehow absolves them from having to put the time in to make sure the change is correct. There are few stronger signals to a reviewer that the author isn't meeting the bar for due diligence.
2
6
409
I just mistyped "whitespace" as "shitespace" in a git commit message and now I'm wondering if that would have actually been a more accurate term.
1
8
389
The 22nd Edition of Professional CMake: A Practical Guide is now available. It has been updated for CMake 4.1 and 4.2, mostly with minor updates and incremental additions. Get it from the usual place: crascit.com/professional-cma…
3
8
33
2,319
The last line effect is real: "The probability of making a mistake in the last pasted block of code is 4 times higher than in any other block." Quoted from the following article, if you want more background: medium.com/@Code_Analysis/th…
1
298
10 Dec 2025
Given the growing concerns non-US folks may have about conditions entering the US, attending conferences in the US is nearing "non-starter" status. As much as I love CppCon, what would y'all consider the premier C conference these days outside the US? @bretbrownjr @kobi_ca @supahvee1234 @timur_audio
3
3
710
30 Nov 2025
Want some git fun? Create a branch in your repository called "prototype" or "constructor". See if your git GUI tool treats it the same as your other branches. At least one popular tool pretty much won't let you do anything with it, not even check out that branch. 🤨
1
322
3 Oct 2025
This is an awesome talk! Highly recommended viewing, especially if you haven't played much with LTO or symbol visibility. I learned things, even though I've gone over most of those topics in detail before.
Check out my C On Sea 2025 talk - The Power and Pain of Hidden Symbols! This talk is very important for performance and binary size, and double important if you do crossplatform development! youtu.be/-hNv1-FmAec
1
9
2,376
20 May 2025
The 21st Edition of Professional CMake: A Practical Guide is now available. It has been updated for CMake 4.0. There's a new chapter on debugging in IDEs, and important updates related to CMake 4.0 removing OLD behaviors. Get it from the usual place: crascit.com/professional-cma…
2
4
33
1,766
21 Jan 2025
Anyone know of a successor to CMakeRC? github.com/vector-of-bool/cm… It seems no longer maintained (no commits in more than 2 years, no response to issues and PRs). I'm looking for active alternatives that have some consensus or strong community support.
2
3
11
759
21 Jan 2025
I should also add I'm looking for something that works with C 17, maybe even C 11. That rules out the # embed work from C23.
3
311
21 Jan 2025
To be clear, I have no problem with the CMakeRC maintainer choosing to go quiet. If you're not paying for support, you have no right to expect any response. My question is focused on what alternatives may be gaining traction.
4
187
14 Jan 2025
The 20th Edition of the book Professional CMake: A Practical Guide is now available. It has been updated for the CMake 3.31 release. This is a relatively minor update, focusing primarily on correcting errata. crascit.com/professional-cma…
1
24
670
13 Jan 2025
GCC bug: "pragma once" fails due to interaction with precompiled headers and BOM interpretation (locale settings involved). Reported: 2013 Cause explained and patch provided: 2020 Still not fixed in 2025. Anyone able to push it over the line? gcc.gnu.org/bugzilla/show_bu…

1
7
324
29 Nov 2024
I often see folks question the value of code coverage. Today, I saw a while loop in test code with no iterations in coverage data. The test was effectively doing nothing, but silently passing. Would never have found that bug without coverage results.
3
1
13
1,998
29 Nov 2024
Been quite the bug hunt. Found many more problems in test code just by looking for test sources without 100% coverage. Happy thanksgiving devs, I guess? 🤷‍♂️
1
6
378