You’re Going to Have to Lay Down the Iron Fist, Justin

Published at 07:50 on 10 February 2022

So far, your chief strategy in confronting the spreading, increasingly disruptive, and increasingly illegal protests has been to show weakness. It’s not working. Well, it’s not working to limit the scope and impact of the demonstrations.

Nobody wants this to go to the point of violence, but the window is rapidly closing to resolve this via nonviolent means. The time for various levels of government to get serious about cooperating is now. We need to see things like business licenses getting pulled for those who disrupt trade and traffic, and cumulative fines starting to really add up (with special measures for expedited and aggressive collection). If we don’t, things will get to the point where such actions basically cease to matter anymore. Then the only options will be violence or total capitulation.

Make no mistake, they have a right to demonstrate, no matter how wrong I believe them to be. That’s a basic freedom in any open society. What they don’t have the right to do is to unilaterally call the shots for everyone else.

Let’s do a little math here. The most recent Canadian federal election was under a year ago. The general politics of the protests are right up the alley of People’s Party, so let’s assume that all their voters are behind them. That’s about 5% of the electorate. The Conservatives polled 34%, but not all of them back the protests. Just listen to Ontario Premier Doug Ford, a pretty conservative Conservative, to prove that point. But let’s be generous and assume ⅔ of them do. That’s ⅔ of 34% or 23%. Add the earlier 5% to that and you have 28%.

Where is the “freedom” in letting 28% call the shots and telling the other 72% (who support COVID-19 policies distinctly more organized and interventionist than the 28%) to go lump it? That is what the policy of continuing to show nothing but weakness will get us.

The Joys (Not!) of SonarQube

Published at 22:05 on 9 February 2022

Or maybe I should say, “The Joys (Not!) of SonarQube As Implemented by My Employer.”

SonarQube is a code-analysis system. It analyzes computer code and enforces coding standards. If it doesn’t pass the sanity checks, builds don’t properly complete.

I have nothing in general against coding standards, and I fully admit that the code I write is not 100% perfect. I also have nothing in general against tools to help uncover questionable coding practices.

The problem is the automatic mandatory implementation, with it being like pulling wisdom teeth from an elephant to get any exemptions from.

Consider my recent use of a random number generator. It was in a bit of performance-sensitive code, and the random numbers were not being used for any cryptological or other security-sensitive purpose. The default (crap quality radomizer) Java ThreadLocalRandom class was good enough, plus it had lots of convenience methods for doing things like generating a floating point number within an arbitrary range. So of course I used it.

Nuh-uh, no can do! SonarQube says that’s a security violation. I start inquiring about what can be done to get an exemption, and learn that it’s such a pain I’m better off recoding. So I do that, blowing a half day in the process (I have to implement a bunch of convenience routines missing from the SecureRandom class).

It’s made worse by SonarQube itself being of generally shoddy quality. Its metric for there being enough test coverage so unreliable that a commit can pass muster on a branch, yet get failed when merged to master, even when the result of the latter merge is exactly the same as what was on the branch. That’s right: you have no idea if a merge to master will succeed or fail. Every merge might well prompt last-minute frenetic test-writing.

So I decide to write a boatload more tests, just to err on the side of high test coverage and avoid triggering the wrath of SonarQube. Everything works just fine on the branch, so I merge.

The build then promptly fails, because get this, the new code has insufficient test coverage.

That’s right, SonarQube is refusing to accept my test classes… because they themselves don’t have tests! Can you say “Catch-22” boys and girls?

Again, this wouldn’t be so bad (it would be more humorous than anything), if SonarQube were implemented in an advisory capacity instead of a mandatory one.

Actually, it’s still humorous. If they want to piss away their money on stupid policies that waste productivity, fine. I just make note of all the unnecessary busywork their policies cause and report as necessary when queried about why something takes so long. Their loss.

Seriously, This

Published at 21:32 on 1 February 2022

What is it about those who write labels on bottles of household chemicals, anyhow? The recipes are always for ridiculous quantities. Honestly, how many people need 5 liters (or litres, if you prefer the Canadian/UK spelling) of cleaning solution?

So you just end up using the ratio, and that’s the point of this post. Quick, how many milliliters in a liter? So 60 ml per 1 l is a 6:100 or 1:16 ratio. And the other ratio is in the 1:20 to 1:40 range. Wow, that was simple, wasn’t it?

Isn’t that much better than cups per quart (quick, how many cups per quart?) or whatever it would be in the USA? Aren’t all those 10’s, 100’s, and 1000’s easier to deal with than a hodgepodge of 2’s, 3’s, 4’s, and 16’s?

I sure think so.

Immediate Crisis Over at Work

Published at 21:16 on 1 February 2022

It really does not look like I am about to get canned soon. They are starting to at least somewhat realize how impractical the whole onboarding process has been.