Published at 08:51 on 11 April 2026
If you live in Vancouver, you know why this is needed without any explanation: the streets in Downtown are canted at approximately a 45˚ angle from the cardinal compass points, as a result of the desire to better align them with the shoreline of Vancouver Harbour.
This of course makes giving directions awkward: “Head north on Granville Street.” But Granville Street doesn’t run either north or south. What does that mean? This proposal offers a concise solutions.
Define “north” to mean “towards Vancouver Harbour” and “west” to mean “towards Stanley Park” and it all sorts out. Plus, this makes sense. Vancouver Harbour is in the same direction as the North Shore, which has “north” as part of its name. Correspondingly, the neighbourhood that borders Stanley Park is known as the West End.
Pedants upset by the fact that these terms do not align with their traditional meaning can be placated by referring to them as “grid north,” “grid west,” etc.
This is something I have always done in my own mind, in fact. But I keep running into pedants who bring up that 45˚ cant. Now I have some rhetorical ammunition at the ready.
Published at 08:26 on 5 April 2026
One of the nice things about C# and Python is that both come with a robust, comprehensive standard library. Java, too: although its standard library tends to be awkward and clunky to use, it is still comprehensive and well documented.
Javascript? Not so much. As part of its heritage of originally being a relatively small, client-side language for embedded scripting, its built-in library is not nearly so comprehensive. One must instead go to npm for many things that are supported out of the box in many other programming languages. Thankfully, as a result of Javascript’s popularity, npm is very comprehensive.
Unfortunately, the quality of the libraries published there (and the quality of their documentation) is, let me just say, erratic. Plus, there’s just so many of them, and it is not always obvious which libraries are better-supported and higher-quality, often resulting a fair amount of trial and error before one finds a suitable solution. Then there is the module and import hell I have written of before; sometimes a given module is not available in the module and import configuration you are currently using, causing you to have to deal with all sorts of uniquely Javascript headaches that no decent programming language has.
In short, if you write an application in Javascript, you’re not going to be able to find reasonable, well-documented default library solutions as often as you would were you using a better-designed, better-planned programming language. Finding and using the right libraries is going to be a source of recurring headaches.