Thursday, May 26, 2022

Gun Control - A Not So Modest Proposal

This post will no doubt annoy firearms aficionados - I don’t much care.  In the last 2 weeks, the United States has experienced 2 mass shooting events that resulted in multiple deaths each - one approaching 10, and another over 20 dead.  

Uvalde, TX - a community of 13,000 souls spends 40% of its annual budget on policing.  It has a 10 person SWAT team … heavily armed and armoured … in a town of 13,000 people.  Sit with that for a moment.  In what universe did you ever expect a town that size to need a SWAT team, much less to spend $4M of a $10M total budget on policing?  A SWAT team that apparent spent its time keeping parents from entering the building while their children were being murdered by a man with an AR-15 … in a state which allows civilian carry without license, training, or well … pretty much any restrictions. 

Wednesday, May 25, 2022

The Hits Keep Coming

Yesterday, a man picked up a gun and killed 18 students in an elementary school in Texas

This morning a candidate for the leadership of the CPC promised to burn Canada’s gun control laws. 


Wow - talk about not reading the room - at all. Possibly the worst hot take to publish the day after yet another mass shooting takes place in the United States.  

Oddly, I do agree with the Canadian firearms lobby on one thing:  The regulatory framework around firearms is a shambles - decades of fiddling and tweaking has resulted in a mess of seemingly arbitrary rules - banning some firearms and allowing others that are seemingly very similar in function and capability. 

I don’t think the gun lobby would particularly like my approach though - because as far as I’m concerned, pretty much anything that isn’t a single shot firearm should be banned outright, and after that we can talk about what is allowed in terms of ammunition sizes. 

However, I don’t particularly want to argue about the particulars of firearms regulation today.  I’ve written other posts on the subject in the past. Today’s subject is about the culture associated with firearms. 

Friday, May 20, 2022

Two Days In Alberta Politics

It’s Friday - end of the week, and the last 2 days of politics in Alberta have been a whirlwind … on Wednesday, Kenney said he would step down after getting 51.4% support in a leadership review vote, and on Thursday, the UCP caucus voted to keep Kenney on as the leader until a leadership race is concluded. 

So … kind of a “I’m leaving … fooled ya, I’m still here” couple of days.

What does all this really mean? 

Wednesday, May 18, 2022

You Don’t Think It’s Really Fascism?

If it’s not from Germany, it’s just sparkling authoritarianism, right? 

More seriously, way back when I first started this blog (in 2004), I wrote a piece about whether or not we were in an emerging Dark Age. That was 2 years before Canada elected a CPC government for the first time, 12 years before the US elected Trump, and just around the time the so-called “Tea Party” faction of radicals in the GOP took hold and showed us what they were (nasty).  

A lot has happened in the intervening 18 years that brings us to today.  I’ve written about how this new Dark Age contains a “corporate feudalism” that is designed to chain people to corporate jobs in order to survive at all.  I have worried about the signs of authoritarianism emerging among our right wing politicians both here and in the US. I have watched as Social Conservatives have gained ever more sway in our politics, and I have been appalled. 

Then, a week or so ago, a draft decision from the US SCOTUS was leaked suggesting that the court was preparing to overturn Roe v. Wade. The implications of overturning Roe v. Wade are far reaching indeed. 

Friday, May 06, 2022

On Abortion Law In Canada

Disclaimer:  I am not a lawyer, this is just my personal exploration of the legal landscape in Canada and how it differs from that of the US.

The decision in R v Morgentaler (1988) is considerably different from that of Roe v. Wade.  Where Roe v. Wade places considerable importance on the notion of individual privacy, R v Morgentaler places central importance on security of the person (although it does address rights issues in other sections of the Charter as well). 

At the core of the Morgentaler decision is the Oakes Test analysis (described on pages 73-76), which concludes that what was at the time S251 of the Criminal Code could not be saved under S1 of the Charter. Oakes sets out a judicial review procedure for weighing competing interests (and as with all such things, there is considerable debate around it still).  However, at the end of the analysis in Morgentaler, the basic conclusion is that the impact of criminal sanctions on the woman are hugely disproportionate to any state asserted benefit in the restrictions.  It also takes apart any of the procedural / regulatory structures that stem from S251 as also being unreasonable infringements. 

There is a good reason here that you haven’t seen any serious attempts by governing parties in Canada to tackle creating another law that specifically tries to limit abortion:  It’s going to be really hard to create such a law that doesn’t end up failing scrutiny under any kind of review like Oakes. Further, any such law is going to find itself subject to challenge as unreasonably restricting the rights and liberties afforded to women while placing no restrictions on the male sperm donor.  

This is a very thorny problem for any lawmaker to tackle, and potentially one that is intractable without major changes to fundamentals of law such as introducing the idea that a foetus has some legal standing.  

Currently, Canadian law basically says that a foetus is considered part of the mother’s body until such times as it is “delivered alive from the mother’s body”.  In other words, up to the point of live birth, the fetus is treated like any other part of the mother’s body and it is her decisions that are paramount.  In other words, a womb isn’t a condo that some other party is renting out for 9 months. 

There have been numerous attempts to change this by way of private member’s legislation.  However, those bills have typically bubbled around for a few months or years until dying either on vote or when parliament dissolves for an election. 

The reality of those bills, were they to be enacted, is that they would likely also fail scrutiny under Charter review. The problem that would arise with foetal rights legislation would be an entirely different set of challenges, because now you have two “persons” with competing rights.  The anti-abortion crowd would of course argue that the foetus’ rights should trump those of the mother, but such things are not so simple in reality because the structure of the Canadian Charter of Rights and Freedoms places rights of individuals in tension with each other, with no one person's rights superseding those of another. 

Were parliament to declare a foetus a "person", one opens an entire can of worms legally, and I suspect that what would emerge would end up right back where we are today.  

Why do I say this?  For several reasons, actually.  First, any law which looks like some of the abortion bans currently tabled in US legislatures will collapse under Oakes. Second rests in our current approach to the law and children / youth. Current law approaches place responsibility entirely on the parents at the birth of the child, and gradually reduces that as the child becomes more able to take on responsibility.  So, for example, if a toddler breaks a neighbour's window, we generally say "oops, that was an accident", and the parents are held responsible for the child's conduct.  When a 13 year old breaks the neighbour's window, we're more likely to hold the 13 year old responsible for their actions, although we might look sideways at the parents for raising a hoodlum. Basically, the idea is fairly straightforward:  as the child becomes more able to assert independent actions, we grant them greater responsibility.  

At birth, a child is able to breathe, and take sustenance independently of the person who birthed them, but is still largely dependent upon the parents to survive. That level of dependency grants the parents absolute control over much of the child's life as long as they protect the child's health and well being.  When the child is 18 or older, we deem that the child is now capable of being fully independent (I'll ignore emerging evidence from developmental psychology in this matter for now).  

I would expect that means from a legal perspective, you would end up back where we are today because the dependency of a foetus (and its antecedent forms of zygote and blastocyst) are entirely dependent on the person carrying them in all respects.  The pregnant person is not only responsible for themselves but the developing being inside them at that stage. The developing being has no ability to assert or exercise rights in any legal sense, nor can they act independently. That returns us to the state where not only is dependency absolute, but the risks associated with pregnancy are borne by the same person. Therefore, one can reasonably assert that absolute dependency, along with shared risks grants absolute control over decision making to the person most able to make those decisions objectively. 

Anti-abortion people will howl about "fetal heartbeats", and "viability" thresholds, but those are much harder to establish than one would first expect.  What is often called a "heartbeat" is actually little more than a bundle of neurones acting autonomically.  There is no "heart" formed at that stage, merely the potential for one to exist. Viability is a similarly difficult thing to establish. We can look and say "well, there's a well-formed foetus present", but whether or not that particular individual is viable at the moment of examination is a matter of probabilities, and available technology / medical methods. 

Then there are the risks associated with pregnancy.  They are many and a blind enforcement of "the law" to regulate pregnancy places women at risk. It has happened before, and it will happen again in the US.  

There can be a myriad of exceptions, and creating arbitrary lines based on a calendar in something as complex as gestation is a bit of a fool's errand.  This is why abortion needs to remain a matter of medical ethics, rather than a matter of law.  Even if we could make a reasonable argument for foetal rights, the fact is that law is far to blunt an instrument to use here. 

Thursday, May 05, 2022

The Silence Is A Warning

This week, a draft ruling from the Supreme Court of the United States (SCOTUS) was leaked.  Although what’s in the ruling itself is retrograde (and that’s being kind), that isn’t a surprise. Far too many of the judges appointed during Trump’s tenure, and the GOP’s refusal to allow Obama to get any appointments through set the stage for this.

No, what I want to talk about is the sudden muzzling of Canada’s conservative politicians on the matter, and a sudden flurry of “this will never happen in Canada” coming from various columnists.

While Canada’s legal context is somewhat different than the United States, it is utterly false to claim that a rollback of abortion isn’t a very real threat here, and in fact politicians being silent on the subject is a warning, not a reassurance to Canadian women. 

The issue is very real, and it is in fact partisan. Restricting abortion has long been a bread and butter issue for the political right in Canada, and they get significant support (and I suspect funding) from anti-abortion groups like Campaign Life and other organizations.  

The approach in Canada has been a little different than it has been in the US.  In the US there has been a steady series of lawsuits and legislative attacks that have been instituted to narrow the scope of Roe v. Wade. In Canada, we have seen different tactics - mostly a series of "private members" bills tabled on a regular enough basis, and a side of various provincial governments simply not funding the procedure to choke off availability.

It's really important that we look at the legislative tactics that have been tried.

Fetal Personhood - Bill C-205

    "Unborn Victims of Crime"  -  E.g. Bill C-269, Bill C-484

Sex-selection Abortion Ban - Bill C-233

Coerced Abortion - Bill C-510

Conscience Rights - Bill C-268

... and this is a sampling of what I found looking through Parliament's LegisInfo database which goes back to 1994, and by no means exhaustive.  Every one of these bills is designed one way or another to limit or restrict access to abortion.  This is far from the end of the road for any of these ideas.  The anti-abortion movement continues to push its agenda with conservative legislators. 

Politically, the conservative politicians all know that it's really bad politics to attack abortion directly in Canada. They've been looking for a wedge they can drive into Canadian law to start introducing restrictions and limits.  They keep trying, but so far the legislation has failed to pass.  That doesn't mean the legislation cannot be passed, and a failure on one piece of legislation is not seen as the end of the road.

The silence of Canada's conservative politicians in response to this week's events in the United States should not be mistaken for a change of heart. It echoes back to instructions that Preston Manning gave to his party in the late 90s when they were trying to figure out how to make gains beyond the Prairie provinces:  "Don't tell them what you really believe until after you've been elected" (paraphrase).  They know where they stand, and they just don't want you to know. 

Sunday, April 24, 2022

A Sidebar On Programming Languages

I’ve been around software a good long time now. Yesterday, I came across the following tirade about C that I want to address a few things about.  

C Isn’t A Programming Language Any More

I’m not going to go through the details of the author’s complaints and attempt to rebut them because there are several very fundamental issues in the assumptions being made that are more about the realities of software and hardware as it has evolved over the last <mumble> years. 

First, the headline itself annoys me, because it misses the point entirely.  C remains a programming language - and it has all of the hallmarks of one:  a defined syntax, semantics, and expected behaviours. C isn’t defined by the presence or absence of specific libraries, although a (more or less) standardized set of libraries eventually did evolve, and by the 1980s there was a fairly well defined “C Standard Library”.  

You can have all the complaints you want about the C libraries as they have evolved, but none of those complaints change the validity of C as a programming language. Most of the complaints about C in the article really focus on two areas:  the evolution of fundamental types in C, and the state of the C libraries. 

I want to point a few things out here. C has been around a long time, and its origins are actually quite specialized. It was created as the language to write what would become the first version of the UNIX operating system in. 

This fact is important.  At its core, C is a systems programming language.  It’s meant to be “one step above the hardware”, and it’s really damn good at it. The semantics of the first versions of C were tightly coupled to the hardware architecture that was emerging at Digital Equipment Corporation - and if you want to understand that, spend a little quality time learning about the PDP-11, an architecture that influenced processor design to this day.  (* For the yabbut crowd, I’m fully aware that the first version of UNIX was written for a PDP-10 - but that’s a story for another day *)

All of that takes place in the mid-late 1960s. 

Yes, a lot of C back then had “Implementation Dependent” in the definition from the outset - because actual implementations of C had to account for all sorts of very specific processor quirks - oddball word sizes - the idea of 8/16/32/64 bit words being standard is pretty recent -  different memory hardware architectures, and so on. So, C was always pretty loosely defined so that someone making a C compiler for a given processor could legitimately do so and have a reasonable expectation of being able to bend the core parts so that it worked for their needs. 

By the time ANSI started to define a standard for C in the 1980s, most processors were using 8/16/32 bit word sizes, and that got baked into the first ANSI standards. 64 bit designs were a fair ways off, so they sort of waved their hands at the subject and said “yeah, here’s a path to 64 bit types”, but it wasn’t particularly clear, and wouldn’t be until the emergence of the DEC Alpha chip in the 90s.  Even then, the DEC version of C left it a bit loose, and things didn’t really settle down until AMD released its 64 bit extension to the Intel architecture. 

Then there are the runtime libraries. The so-called Application Binary Interface (ABI).  The evolution of those is even more complex - in part because they spawned out of the development of UNIX, and UNIX needs drove them for decades.  Early ports of the standard libraries to MS-DOS and Windows were haphazard affairs at best, and then there were Microsoft’s own attempts to create their own versions (anyone else remember WinSock? *shudders*).  

Throughout time, the various libraries have changed and evolved, been ported across an enormous number of platforms - both hardware and software. That’s damned hard work to do, and inevitably introduces variation and complexity. I remember in the 90s porting a major application suite to HP-UX, and discovering that HP had badly botched their memory management infrastructure. Likewise, the release of Solaris in the mid-late 90s was a boondoggle of screwed up implementation issues in some very fundamental libraries. 

Bear in mind, both HP and Sun had excellent teams of developers working on their platform, and they still released some utterly appalling bugs into the wild. Porting complex software across platforms is damned hard work, and it’s even harder when you start playing around with changing fundamentals of the hardware architecture like machine word size. 

For better or worse, the “standard libraries” associated with C and UNIX have evolved over time, and sometimes that evolution has been messy (as it is in nature …).  There are parts of things that are ugly, and they probably could do with a major cleanup.  But undertaking such a cleanup isn’t easy either. You have to be willing to say what you’re willing to shed support for, and you have to be prepared to be ruthless when doing so.  

Right now, we live in an era where “UNIX-like” systems architectures running on Intel processors are commonplace.  But even that is changing, with the dominance of ARM architecture in mobile devices (and creeping into desktops as well with Apple’s A and M series system chips).  

But, coming back to the complaints of the article I mentioned previously:  C still remains a programming language regardless of the state of the libraries.  That doesn’t change because the definition of the language is separate from the libraries.  C remains what it always has been - a relatively low level language intended for writing operating systems. It was never intended as a language for writing applications in.

Has the complexity of the libraries escalated over time?  Yes - of course it has.  Is that painful in places?  Yup. Of course it is.  I spent much of my software career migrating a major chunk of software across different OS platforms - it’s hard work.  Yes, it’s frustrating at times when functionality changes, or when you discover that what you expected things to do isn’t what they actually do.  Get over it - we’re a long ways from having programming languages that are completely independent of the hardware and OS platforms - if that’s even possible.  

I suspect that you won’t get a “clean break” re-design anytime soon.  Even if an astoundingly perfect new hardware architecture were to emerge tomorrow, and require huge changes to actually work, the fact remains that the existing libraries still form a foundation of expectations that programmers are used to, and likely as not, that new chip would soon find the current libraries ported to it.  Inertia is a hell of a thing. 

Gun Control - A Not So Modest Proposal

This post will no doubt annoy firearms aficionados - I don’t much care.  In the last 2 weeks, the United States has experienced 2 mass shoot...