Canadian military members likely involved in planning U.S. strikes on Iran, retired general says
Published at 08:09 on 1 March 2026
Canadian military members likely involved in planning U.S. strikes on Iran, retired general says (CBC News).
Musings of an anarchist misfit
Published at 08:09 on 1 March 2026
Canadian military members likely involved in planning U.S. strikes on Iran, retired general says (CBC News).
Published at 17:11 on 28 February 2026
The more I think of it, the more it becomes clear to me that Carney’s sucking up to Trump on the Iran attacks shows incredibly bad judgement. The Trump regime has threatened Canada before, and will threaten Canada again. Sending a message to the rest of the world that this fascist regime’s aggression can at times be acceptable is not only morally repulsive, it undermines Canada’s national security.
The was against Iran has nothing — absolutely nothing — to do with upholding international norms. To think that the actions of lawless president who has flaunted norm after norm, both domestic and international, can be being taken for such ends is beyond naïve.
It also has absolutely nothing to do with promoting democracy. Just look at what happened in Venezuela. The same regime remains in power, now with US backing, just with a different, more subservient, leadership. It would not surprise me in the least to see an analogous outcome in Iran.
Published at 07:15 on 28 February 2026
This is just about the worst take on anything ever from this PM. To assume that two fascist governments flexing their muscles in an attempt to make a third sovereign nation submit to their will could have anything in the least to do with democracy, human rights, or international norms is simply beyond belief. And to assume that two nuclear powers, one of them a nuclear proliferator who helped arm the apartheid regime in South Africa, have anything in principle against nuclear weapons, simply boggles the mind.
No thinking person is a fan of the vile regime that currently rules Iran, but come on. This is exactly the sort of naïveté that led democracies to underestimate the growing global threat posed by Hitler, who got people to tolerate his initial exercises in military adventurism by mostly directing them eastward, towards the widely-disliked Soviet regime.
It looks a whole lot like Carney just put the sign back in Canada’s window.
Published at 08:12 on 27 February 2026
Many of Trump’s critics are rightly denouncing the efforts of the RFK-led Department of “Health,” but I think they are missing the true scale of the malice behind it.
My theory is much darker. It is merely part of American fascism’s project of creating a fact-free world, so that disease is no longer based on its actual causes, enabling a fascist government to scapegoat the groups it hates. Nazis decried the Jews (and homosexuals) as “unhygienic;” expect the Trump regime to do so in earnest for the nonwhite immigrant groups it despises (not to mention the LGBTQIA community) once a critical mass of its base is sufficiently distant from fact-and-science-based theories of health.
It’s not about increasing the market for quack cures, it’s about increasing the market for fascist measures. They are building concentration camps and they intend to use them.
Published at 09:48 on 26 February 2026
Canada is sending aid to Cuba in response to increasing efforts by the USA to strangle the regime there.
I am 100% in support of this, not because I am a big fan of the regime there (I am not, it is a dictatorship), but because freedom has absolutely nothing to do with anything any fascist regime does (and the Trump regime most definitely is a fascist one).
When dealing with a long list of things one does not like, often one must prioritize. As Churchill, long a proud conservative and ardent anti-communist, once said when asked about Stalin after the Nazis invaded the USSR: “I have only one purpose, the destruction of Hitler, and my life is much simplified thereby. It Hitler invaded Hell I would make at least a favourable reference to the Devil in the House of Commons.”
So yes, supporting countries under US pressure right now is a good thing. The more fascism fails, and fails early, the better off the long-term prospects for the world as a whole.
And yes, I have been awfully quiet here recently. This is because I have been working on an involved software project, and have decided to mainly focus on that.
Published at 08:40 on 23 February 2026
What I Saw at the Battle of Minneapolis (link to Bulwark article).
Published at 12:32 on 12 February 2026
Consider a common programming task: open a text file for reading with buffering. Let’s go through some of the programming languages I have used, in rough order of my learning them. (Disclaimer: my memory is a little rusty on some of these; they may not all be 100% correct. But they are not that far off the mark.)
First, the non-Java languages.
BASIC-PLUS: OPEN "FILE.TXT" FOR INPUT AS FILE #1%
FORTRAN: OPEN(UNIT=1,FILE='FILE.TXT',STATUS='OLD')
Pascal: assign(file1, 'file.txt');
C: FILE *file1 = fopen("file.txt", "r");
Perl:open(FILE1, '<file.txt');
Python: file1 = open("file.txt", "r")
C#: var file1 = new StreamReader("file.txt");
And then we have Java: var file1 = new BufferedReader(new FileReader("file.txt"));
LOL, what? Why should those internals be exposed? Why should I have to explicitly wrap an unbuffered reader in a buffering one? Why the extra step to do something so common and routine? Why did I just have to spend a half hour studying the documentation, chasing from class to class to class, to figure out how to do something that was almost self-evident in every other language I was learning?
Why can’t Java do out-of-the-box today in one simple step what FORTRAN could do in 1966?
And don’t say “object orientation.” Python and C# are object-oriented, and don’t have this programmer-hostile silliness.
Sure, this seems to be a little thing, and it is just one thing. But it’s not really just one thing: this sort of crap is all over the map in the Java world. Everything is clunkier and more awkward than it should be, everywhere. It’s relentless. It’s wearing.
Published at 09:06 on 4 February 2026
ICE has offices in 5 Canadian cities. Here’s what it can — and can’t — do (CBC News).
Shut ’em down, I say. Sure, that means they will still continue to operate in secret, or via proxies, but here’s the thing: it will still have to be in secret, or via proxies. Will complicate things and slow ’em down.
Published at 07:00 on 3 February 2026
Have Trump’s threats spurred a European awakening? (France 24)
Published at 09:06 on 28 January 2026
Fifteen or so years ago, as an exercise in curiosity, prompted by how often I saw the technology mentioned in job listings, I decided to check out Microsoft’s .NET framework. I was expecting to come away feeling smug about how much better competing technologies more popular in the Linux world were.
Surprise No. 1: I didn’t have to just read about it. .NET is an implementation of an open standard called the Common Language Runtime (CLR), and there was what turned out to be a very nice open source implementation of the CLR called Mono. Which I proceeded to install on my Mac and play with.
Surprise No. 2: It (both the C# programming language and the .NET framework) was well designed! This one floored me, given how sucky I generally find things that Microsoft has been heavily involved in. C#’s designers obviously learned from Java’s mistakes, particularly when it came to designing a standard library. And, frankly, they had to do a good job. Unlike its operating systems and desktop environments, which have long been market leaders, and could get away with coasting on their well-established momentum, Java was the clear market leader in virtual machines that ran byte-compiled code. If Microsoft didn’t do a good job, people would just stick with Java, which runs just fine on Windows.
I ended up writing a bunch of command-line utilities in C# and a web site using ASP.NET. It even led to a job where my history as an individual who knew both .NET and Linux servers was the special sauce that got me hired.
But that job didn’t last forever, and there was still a lot of anti-Microsoft tradition that caused most of the open source world to dismiss .NET and Mono out of hand. I could tell I was probably not going to luck out like that again, so I shelved .NET in favour of technologies more common in the open source universe.
Fast forward 15 years and Microsoft has now open-sourced .NET and merged its codebase with that of Mono, meaning the two formerly separate projects are now effectively one.
I have been struggling in the past few days with how to integrate authentication into a web app I am writing. Rolling your own is generally frowned upon (it’s surprisingly complicated; you have to deal with sign-ups, account deletions, forgotten password resets, perhaps two-factor authentication, etc.) But the off-the-shelf solutions available for Python or Node.js just plain suck.
Mainly, they don’t have the flexibility I need. You see, I need access to the actual password used to log in, because I am using it to derive an encryption (and decryption) key used to protect sensitive per-user data in my database. One of my web app’s selling points will be that even I won’t be able to know your secret data. Most authentication services and libraries simply don’t support this: you never see the user’s password, because you don’t prompt for it yourself.
So I check out what sort of authentication systems the .NET world has to offer, and immediately find one that doesn’t suck: one of its key design principles is in fact to let their clients do the prompting for authentication credentials, because, guess what? They just might want access to them, themselves. Cluefulness, what a concept.
Then I find out that I don’t need that product at all, because ASP.NET comes with a surprisingly capable identity management system built in. Which, while it doesn’t let you do your own prompting for credentials by default, does offer it as an option.
Database access is better, too. Most open source object-relational managers (ORM’s) are flat-out terrible. They force you to code all sorts of repetitive boilerplate to mirror what’s already in your database schema*. Instead of simple, logical, expressive SQL, you have to use awkward and clunky chains of method invocations. It’s bad enough that I’ve written my own ORM for Python. It wasn’t that hard, and it’s a whole lot nicer to use.
* How utterly asinine this is becomes clear when one realizes that one of the key characteristics of a relational database is the ability to use queries to programmatically deduce the schema of an existing database. Most ORM’s are, in other words, forcing the programmer to do manually what they could do automatically themselves.
Well, the two most popular ORM’s in the .NET world, Dapper and Entity Framework, are both best of breed. They don’t suck. Entity Framework even has, with C#, query expressions as first-class language constructs.
Then we have file-based routing, where you create a new file and get a new route automatically, something that Apache did 30 years ago (and still does today) but many modern open-source frameworks (particularly in the Python universe) still can’t do. Another win.
Documentation is another big win. .NET has some of the best in the business. Nearly everything is covered by both tutorials and comprehensive API documentation, the latter of which is liberally supplied with examples. It’s not just documentation, either; there is all sorts of help for the programmer in the form of what the .NET world calls “scaffolding,” in which example code can be created for you on request. It’s almost always easier to do something by modifying existing code that comes close to what you want, rather than to start from a completely blank slate.
It’s just generally a better developer experience all around. Normally, you pay for convenience like this, typically in the form of poorer performance. Not this time: ASP.NET sits at the very top of web framework performance benchmarks.
It’s not all roses. .NET is arguably overengineered (just look at function parameters: you have normal parameters, out parameters, keyword parameters, ref parameters, and readonly ref parameters). And there’s at least four different ways to template and generate web pages in ASP.NET.
But while the overengineering is tiring at times, there’s still nothing as bad as the hideous shambolic mess that is the Javascript module and import system. And, arguably, it does make for a lot of choices, choices that I will be taking advantage of to develop exactly the sort of web application that I want.