Adventures in Water Softening

I took some time off recently and, as I’m too foolish to allow myself to spend my time on worthwhile rest activities like reading, watching TV, or playing video games, I worked my way through a self-assembled list of “Things I Never Have Enough Time To Deal With”.

One was replacing the Moen cartridge in the upstairs bath since it appears to be the cause of a (excruciatingly-)slow drip. A visit to Lowe’s later, I had a no-charge replacement cartridge in-hand. Lifetime warranties plus customer service: nice.

As with most baths about which I’ve had the misfortune to learn their plumbing, there are no fixture-side shutoff valves so I waited until I had the house to myself and turned off the water to the whole house. (Thank goodness the most recent visit by a plumber included replacing the ancient screw valve with a 90deg valve. So much nicer to work with).

Alas, the Moen cart was the wrong size (I think I need the 1225, the helpful person at Lowe’s presumed it was a 1222b), so no joy there. Thus I turned the water back on. This was about a quarter past four in the afternoon.

Next morning around 9am my wife and I detect an intermittent beeping. Never a good sign.

We check the freezer, fridge, garage, laundry room, dehumidifier… nothing. But it’s coming from the basement.

Good news! The emergency “there’s water on my basement floor” alarm works.

Bad news! There’s water on my basement floor.

A slow (but quickening) leak had developed on my water softener to do with the below-illustrated parts. We have the large assembly which I call the bypass assembly (it connects to the softener via the two horizontal tubes), and two identical adaptors which adapt from the house’s copper (at least in my case) piping to the top two sockets of the assembly. Inlet’s on the right, outlet’s on the left.

A large plastic assembly, four retaining clips, and two adaptor tubes all in plastic, for connecting a water softener to a house water system

The leak was coming from the outlet socket between it and the adaptor. Oh no, I thought, there’s a crack in this large custom-made piece of plastic. And since the large piece of plastic is the bypass for the softener, the usual path for bypassing the fault for diagnosis and repair is no good. The leak doesn’t care whether the bypass assembly is set to Service or set to Bypass, so the bypass cannot bypass the leak.

Luckily, the previous softener didn’t have a single-valve bypass and so had a three-valve bypass in the inlet, outlet, and bridging copper. Open the bridge, close the outlet, close the inlet, good to go. (I’m not sure if that’s the correct order, but it seemed to work).

Diagram of a 3-valve plumbing bypass system

Unfortunately all these valves are screw valves and are decades old, likely not having been used in as long, so they leak when not fully closed or fully open and were stiff as heck to get moving. I’ll need to have those replaced at some point, but then we should also be looking into probably rearranging the whole utility room because the plumbing (gas and water and coolant) is a mess. (Ah, the joys of home ownership. The only thing worse is anything else.)

(( I’d usually include a digression here about water softening and why it’s so dang important in my part of the world. I’ll just leave you with this Wikipedia link on water softening for the former, and this map of water hardness in the Region of Waterloo (plus this link to the USGS saying that anything over 180 mg/L (of CaCO3) is “Very Hard”, which translates to anything over 10.57gpg. Note the map starts at 17gpg and goes up from there.) for the latter. Conclusions are left to the reader. ))

Clearly I was going to have to take it apart to see what was going on.

Unfortunately, a fluid-filled closed system like that is subject to certain pressures that made absolutely everything to do with this job an absolute trial. Just getting the pieces apart involved 1) removing the retaining clips (easy), then 2) Separating the O-ring-having adaptor tubes from the bypass assembly (difficult). I _think_ I had to overcome the resistance to vacuum in the pipes to force the first one apart, which of course dislodged the second one and they both dumped their contents exactly adjacent to the bucket I had placed. Water alarm went off again. I put it on a shelf.

My luck seemed to turn, though, as a visual inspection of the assembly and adaptors showed no sign of splits, tears, wear (it’s only been in place for 3 years (installed March 2018)), or other damage. The inlet socket was lousy with rust, but not only was the outlet socket intact, it was clean.

So I put it all back together and reopened the valves: close the bridge, open the outlet, open the inlet. There was some backwash into the softener I didn’t like by doing it this way, and it introduced a lot of air that would make itself explosively known at every fixture throughout the house (almost blew the lid off the upstairs toilet. How?), but it all came together.

And then the inlet socket on the bypass valve began to leak.

Le sigh.

Turn it all back off again: outlet closed, bridge open, inlet closed.

This time I was prepared for the pressure differential and the location of the bucket when I pulled the inlet pipe out of the bypass. What I didn’t account for was the outlet pipe’s water backwashing through the bypass and bubbling out of the inlet socket. Note to self: If you leave the bypass on “Service” the softener will resist the flow for you.

Again, no damage or wear on the inlet, but there was still a smear of rust. I cleaned that out and reseated the adaptor.

Checking a hunch, I noticed that the retaining clips were not bilaterally symmetric. They had an up and a down. So I replaced the clip with the up side up, and opened the inlet valve of the three-valve bypass.

Turns out you can create a pressure bomb if you allow mains pressure to push an air bubble against a closed valve all of a sudden. The outlet adaptor popped out of the outlet socket with a bang. Everything got wet (including the erstwhile plumber penning these words). It was only luck that I hadn’t seated the retaining clips sufficiently and so the pieces only came apart and didn’t actually break.

It was exciting in exactly the wrong sorts of way.

But it gave me an inkling that maybe by being indelicate about closing and opening the mains shutoff for the Moen cartridge replacement resulted in some water hammer that spread the softener’s outlet adaptor apart from the socket allowing a slow leak to begin. It doesn’t really make sense, since there’s the softener in the way which would dampen such effects, but I’m at a loss for understanding the leak at all, let alone why it happened then.

Anyway, there’s full supply pressure pouring on your floor, you can think later. Switch the three-valve bypass back to bypass, reseat the pieces, ensure the retaining clips are the right way up, dry everything off so you can see leaks if they happen. Good? Good. Let’s try again. Close the bridge slowly, open the outlet slowly, open the inlet slowly, and run a downstream faucet to try and release the captured air.

And the leak mysteriously disappeared without anything having been repaired or replaced, just disassembled (one time forceably) and reassembled.

Still had pops and booms from every fixture and faucet in the house as they were used the first time after the “fix”, but otherwise everything is (so far) okay. I put the emergency “there’s water on my basement floor” alarm back on the floor.

This serves as record of what happened and what I did. May it help you and future me should anything like this happen again.

I Assembled A Home Audio Thingy

Or, how to use Volumio, an old Raspberry Pi B+ (from 2014!), and an even older Denon stereo receiver+amplifier to pipe my wife’s MP3 collection to wired speakers in my house.

We like ourselves some music in our house. We’re not Hi Fi snobs. We don’t follow bands, really. We just like to have tunes around to help make chores a little less dreary <small>and to fill the gaping void we all hide inside ourselves</small>. Up until getting this house of ours a half decade ago we accomplished this by turning our computer speakers or CD player up to Rather Loud and trying not to spend too much time too close to it.

This “new” house came with a set of speakers in the kitchen and a nest of speaker wires connecting various corners of the main floor to a central location via the drop ceiling in the basement. With a couple of shelf speakers I ripped the proprietary connectors off of, plus two more speakers and a receiver donated by a far-more Hi Fi snobbish (though not really. But he does rather care about the surround, and waxes poetic about Master and Commander and House of the Flying Daggers for their sound fields) friend of ours, I had six speakers in four rooms.

But I had nothing to play on it. No audio source.

For fun I hooked up the PS4 via toslink/spdif/that optical thingy so I could play Uncharted in surround… but it seems Sony’s dream of the PlayStation being the command center of your home entertainment centre never really got off the ground as it can’t even play one of our (many) audio CDs.

(For the youngins: An audio CD is like a Spotify Playlist that is at most an hour long, but doesn’t require an Internet connection to play).

The PS3 was closer to that vision and had the hardware to play CDs, so it got unmothballed and used as a CD Player? Disc Deck? An audio source that did nothing but play audio CDs. The receiver had a 5CH Stereo setting so we had left+right channels in the rooms that had multiple speakers (and the two that only had single speakers I threw on L because Mono)…

Suffice to say we had a “okay” setup, given I spent a grand total of zero dollabux on it.

But my wife and I? We have MP3 collections that far outstrip our CD collections.

(For the youngins: An MP3 is like a stream of audio that you don’t need the Internet to play.)

(I’m ignoring the cassette tape collection, which play only in the basement on the Hi Fi Enthusiast Hardware of the Late Eighties that the previous owners of the house didn’t deign to take with them. It’s delightful.) How was I going to hook those MP3s up so they could play through the house as easily as the Audio CDs?

For a while I tried to get it to work via the Home Theatre PC.

(For the youngins: A Home Theatre PC is a computer which you connect to a TV so you can do computer things on your TV. Like a Smart TV in two pieces, both of which I control. Or like a laptop, but with a much larger screen that has a remote control.)

Unfortunately the HTPC’s dock is acting up when it comes to audio, and even the headphone jack was giving me grief. Plus, the HTPC’s media software stack was based on Kodi which, though lovely and has remote control capabilities over local network via both their web interface Chorus2 and official app Kore, is far more interested in video than audio. (for example: playlists don’t exist in Kore, and can’t really be managed in Chorus2).

But I learned a lot about what I wanted from such a system in trying to squish it into the HTPC which already had a job to do, so I decided to try making the audio player its own thing. Do one thing and do it well, jacks of all trades are masters of none. That sort of thing.

That’s when I remembered I had an old Raspberry Pi B+ in my closet. 700MHz CPU. 512MB RAM. Not the fastest machine in the park… but all it had to do was supply an interface in front of a largish (8k tracks) MP3 collection.

I found this project called Volumio which aimed to catalogue and provide a good, network-aware frontend on an audio collection (and do other stuff). It even had a plugin for playing Audio CDs so I could finally return the PS3 to game playing duty in the basement with the other previous generations of video gaming hardware.

It was a bit fiddly, though. Here’s the process:

  1. Install stock Volumio onto a microSD card which you then insert into the Raspberry Pi
    • This was very straightforward except for when I learned that the microsd card I wanted to use actually had bad-sector-ed itself to unusability. Luckily I had a spare.
  2. Adjust Volumio’s settings
    • Be sure to change playback to “Single” from “Continuous” or when you press play on a single track in a long list it’ll add every track in that list to the queue… which, on the B+’s anemic processor, takes a goodly while.
  3. Install the NanoSound CD Plugin
    • This is where it gets tricky. You could “just” pay for a subscription to Volumio and get first-party audio CD support including upsampling and other Hi Fi things. I’m using the B+’s headphone jack for output so Hi Fi is clearly none of my concern. And I’m too frugal for my own good, so I’m gonna do this myself.
    • Don’t install the plugin from the repository because it won’t work. Install the dependencies as described, then use the install script method. This will take a while as it compiles from source, and my B+ is not fast.
    • I’d like the CD to autoplay when inserted. There are instructions on the support page for how to script this: don’t use them. They have fancy quotation marks and emdashes which confuse both bash and curl when you try. Use instead the instructions on the source comment but don’t reset the volume.
  4. Install the Volumio App on your phone for remote control.
    • The “App” appears to be a webview that just loads http://volumio.local/ — for whatever reason my phone won’t resolve that host properly so I can’t just use the browsers I have already installed to access the UI.
  5. Move all the MP3s to a computer that is always on
    • You could use a USB drive attached to the Pi if you wanna, but I had space leftover on the Home Theatre PC, so I simply directed Volumio at the network share. Note that it demands credentials even for CIFS/Samba/Windows shares that don’t require credentials, so be prepared to add a straw account.

This was when we learned that our MP3 collection isn’t exactly nicely organized. Like Napster or eDonkey or Limewire or Kazaa, there were multiple slightly-different copies of some tracks or entire albums. Tracks weren’t really clear about what album, artist, and title they had… and the organization was a nightmare.

I’ve turned to Picard to help with the metadata challenges. So far it’s… fine? I dunno, AcoustID isn’t as foolproof as I was expecting it to be, and sometimes it decides to not group tracks into albums… it’s fine. So far.

Also, the gain levels of each track were different. Some were whisper-quiet and some were Cable TV Advertisement Loud. I’d hoped Volumio’s own volume normalization would help, but it seemed to silence already-quiet tracks and amplify high-gain recordings in the exact opposite of what I wanted. So I ran MP3Gain (yes, on sourceforge. Yes it hasn’t had a non-UI-language update since like 2008) for a few hours to get everyone singing at the same level, and turned off Volumio’s volume normalization.

And that’s where we are now. I’m not fully done with Picard (so many tracks to go). I haven’t added my own MP3 collection to the mix, with its additional duplicates and bad gain and whatnot…

…but it’s working. And it’s encouraging my wife and I to discover music we haven’t played in years. Which is wonderful.

If only because it annoys our preteen for her to learn that she kinda likes her parents’ tunes.

Controlling a Linux Laptop’s Internet Access

I fear the Internet. It’s powerful and full of awesome and awful things. That might be why, in my house, there are no smart devices.

This fear is now warring with my duties as a parent for ensuring my child has the best chance at succeeding in whatever she chooses to do with her life. No matter what she chooses, the Internet is likely to be a part of it because the Internet underpins everything these days. So like swimming, riding a bike, and driving a car (skills I see as necessities in Canada), she needs to learn how to handle herself on the Internet.

And like swimming, I need a shallow end. Like cycling, training wheels. Like driving, a learner’s permit. I need something to get both her and I used to the idea of the whole thing… but safer. More restrictive.

So to act as a stepping stone between always-on Full Internet Access and the “ask your parents to look something up for you”, my wife and I determined we’d repurpose an ancient and underpowered laptop (with the battery removed) as an Email and Scratch (MIT’s visual programming language that she’s using to make a Star Wars video game at the moment) machine.

I thought this’d be easy. There’s Scratch for Linux, and I could adjust the firewall to only pass IMAP (for email receipt) and SMTP (for email sending). Alas, her email is hosted by GMail, and all Google properties have standardized on OAuth2 for authentication. OAuth2 means HTTP requests. Letting HTTP access into the Laptop opens it up to always-on Full Internet Access, so what to do, what to do.

Luckily there is precisely one Google OAuth2 server with a well-known name that we need to reach over HTTP. Unluckily it can be at an arbitrary number of different IP addresses. Luckily I just learned how to use `dnsmasq` to configure how name resolution works on the laptop.

So this is how to adjust Linux Mint 19 to allow DNS queries to resolve exactly the servers I want to allow for email… and no others.

1) Tell `NetworkManager` (the network manager) to use its `dnsmasq` plugin by editing `/etc/NetworkManager/conf.d/00-use-dnsmasq.conf` to contain


2) Configure `dnsmasq` to our specifications by editing `/etc/NetworkManager/dnsmasq.d/00-urlfilter.conf` to contain

log-queries # Log all DNS queries for debugging purposes
log-facility=/var/log/dnsmasq.log # Log things here

no-resolv # don't use resolv.conf
interface=wlp12s0 # Bind requests on this interfaced (maybe I should bind eth0 too in case she plugs it in?)
listen-address= # This is where the system's expecting to find systemd-resolve's DNS. Take it over.

address=/#/ # Resolve all hosts to localhost. Excepting the below
server=/ # Use Google's DNS to resolve incoming mail server
server=/ # Use Google's DNS to resolve outgoing mail server
server=/ # Use Google's DNS to resolve OAuth2 server

3) Tell `systemd-resolved` (our current DNS resolver) not to get in our way by editing `/etc/systemd/resolved.conf` to have the line

DNSStubListener=no # Don't start the local `resolved` DNS cache/server (conflicts with dnsmasq)

4) Restart `​systemd-resolved` so it stops its DNS listener

sudo systemctl restart systemd-resolved.service

5) Restart `NetworkManager` so that `dnsmasq` can take over

sudo systemctl restart NetworkManager


Though this works for now insofar as loading up Firefox and trying to go to will fail, it doesn’t stop the laptop from accessing the Internet. If you have an IP Address in hand, you can still get to where you want to be (though most third-party-hosted resources will fail (and since that’s how trackers work on the web, maybe this is a feature not a bug)).

Also this prevents even beneficial services from running. To update packages I need to bypass the filter (by commenting out `address=/#/` and putting in `server=/#/`).

Also also this effectively forbids access to local services like my network-attached storage and the printer: both things that my daughter should be able to use. (( there might be exactly one `server` line I need to add to make LAN-local shortnames resolve using my router, but I haven’t looked that up yet ))

But this was enough to get it up and running (though the laptop is ancient enough that even legacy gpu drivers have dropped support for it), and that’s the important thing. Now she’s sending emails to her relatives and fielding their responses regularly… and can crack open her Star Wars videogame and do a little recreational programming on the side.

I even had her type up her Science Fair documentation on it the other day (though she still hasn’t learned how to manually Save documents, so the ancient laptop’s instability caused some friction).

We’ll see how long this lasts. Not bad for a couple hour’s work and available parts. I wonder how soon I’ll be convinced to upgrade her to more of the Internet or a less-decrepit machine.


So I’ve Finished: The Talos Principle

I know for a fact that if the narrative told me exactly what the inciting incident was it would lessen the experience. And yet.

Maybe Horizon: Zero Dawn taught me to expect every mystery to be satisfactorily explained with accompanying voice acting and emotional score. And maybe it’s the same instinct that saw me reading every then-published Honor Harrington novel in a row one summer, and perusing the Trivia section of IMDB for every single thing I watch.

I like knowing things.

I like the feeling of besting the puzzles in the Talos Principle. I like the Portal-esque “break free from the constraints of the system!” story, done one better in this game by having you actually break the game (but not actually breaking it because there are collectibles to collect by doing so). There’s wonderful mechanics-informing-story stuff here. And by pointing out explicitly the game that you’re playing makes for some lovely “where does the game end?” “who is really playing this?” navel gazing nonsense that I just adore.

The story is the obvious one. And the way it is told through journals and audio recordings and crawled fragments of the web holds together so well. There’s only the one thing they keep you from learning (as far as I can tell)

And I know not knowing makes the Talos Principle better. I know ambiguity can be a deliberate choice, the better choice, the only choice.

And yet.

So I’ve Finished: Yoku’s Island Express

Yoku’s Island Express is weird. It’s a pinball platformer of short duration. Its segmented and straightforward play style is well-suited to 15-minute sessions making it a lovely fit for the Nintendo Switch’s portable nature. Its story is nothing special with a twist that I might not forgive you for not deducing a third of the way through the game. Its soundtrack is adorably dorky in the same way as Rayman Legends‘ or LocoRoco‘s or Katamari Damacy‘s.

(( You’re welcome, by the way. All of those are excellent. ))

There’s no high score system making it fiercely single-playthrough (which is good if you like games that actually end). Some of the pinball designs are just poorly-laid-out (one boss battle in particular can be a real trial).  And traversing the world can be annoyingly convoluted and slow as you work your way through pinball traversals that were tricky the first time and now have lost all charm.

But it was fun. Altogether worth the about $25 it costs (and definitely worth the download and time to try out the demo if you’re still unsure if it’s for you).

I recommend it to anyone who isn’t afraid of weird things (say, if you’ve run out of things to roll up in Katamari and need something new) and games that are under 20 hours playtime. Fun for the whole family.

So I’ve Finished Horizon: Zero Dawn

Open World Games have worlds very beautifully rendered and more-or-less open worlds populated with a bunch of systems (physical, natural, economical, weather, chronological, combat, biological) that interact in ways that try to engage the player and produce entertaining moments. Gameplay tends to be generic allowing for varied approaches to solving problems (gathering resources, traversing terrain, killing bad things).

Horizon: Zero Dawn is an open world game of the First Type: that sandbox type you probably know from Dragon Age: Inquisition, Mass Effect: Andromeda, Final Fantasy XV, and the later Far Cry, Just Cause, Assassin’s Creed, and others AAA gaming titles. You’re given a map with a lot of icons on it and you proceed to remove those icons by fetching things for NPCs, experiencing story moments, completing challenges, and so forth.

(( This is in contrast to open world games of the Second Type where you’re given a map with no icons and you proceed to fill in the map as you go. This is where The Legend of Zelda: Breath of the Wild comes in. ))

(( Oh, and this First/Second Type nonsense is all made up by me as an organizational shorthand so I can reason about these games separately and together. Don’t take it too seriously, I’m probably wrong. ))

Horizon: Zero Dawn may in fact be the best open world game of the First Type I’ve ever played. Its world is dense without feeling crowded, its systems are obvious and clearly-communicated, its story is communicated environmentally and cinematically, it is populated with characters written humanly and animated with diversity and depth… Basically every complaint I had with Final Fantasy XV and Mass Effect: Andromeda was addressed somehow by this game.

And on top of it all it is almost aggressively beautiful to look at, when in conversation character faces are energetically and believably animated, the main character is actually an interesting person, and the setting and story are compelling from start to finish.

But when I completed the story and loped off to the top-right DLC-only corner of the map (which came included with the edition I bought) I… I played a few hours in it over a few days and, after putting down my controller haven’t bothered going back. I didn’t want more of the story, the world, or the mechanics. I don’t want to continue controlling, coercing, or combatting more creatures and characters.

It isn’t like Zelda where it lives in the back of my mind and wants me to put it back in. Maybe start from scratch, maybe continue where I left off. See what I missed by rushing to the towers too quickly and not making my way more methodically through the world. Maybe chat with others who have played the game and compare notes about what cool things we found.

But no. For some reason I’d had my fill of HZD. Maybe I’d had my fill of Open World of the First Type (We’ll see. I think The Witcher III is another one and it’s on my list to play soonish). Maybe with the overarching plot complete my brain had its closure and didn’t feel the drive to continue. Maybe I was tired of  the armoured and HP-pooled palette-swapped monsters in the DLC area slowing down my exploration.

Whatever it was, I now find myself really not all that interested in going back to it.

But if they made a sequel, I’ll play it.


Anyway, I recommend Horizon: Zero Dawn to anyone who enjoys open world games of the First Type. It’s a polished game of appropriate length, depth, and breadth.

Data Science is Festive: Christmas Light Reliability by Colour

This past weekend was a balmy 5 degrees Celsius which was lucky for me as I had to once again climb onto the roof of my house to deal with my Christmas lights. The middle two strings had failed bulbs somewhere along their length and I had a decent expectation that it was the Blue ones. Again.

Two years ago was our first autumn at our new house. The house needed Christmas lights so we bought four strings of them. Over the course of their December tour they suffered devastating bulb failures rendering alternating strings inoperable. (The bulbs are wired in a single parallel strand making a single bulb failure take down the whole string. However, connectivity is maintained so power flows through the circuit.)


Last year I tested the four strings and found them all faulty. We bought two replacement strings and I scavenged all the working bulbs from one of the strings to make three working strings out of the old four. All five (four in use, one in reserve) survived the season in working order.


This year in performing my sanity check before climbing the ladder I had to replace lamps in all three of the original strings to get them back to operating condition. Again.

And then I had an idea. A nerdy idea.

I had myself a wonderful nerdy idea!

“I know just what to do!” I laughed like an old miser.

I’ll gather some data and then visualize’er!

The strings are penta-colour: Red, Orange, Yellow, Green, and Blue. Each string has about an equal number of each colour of bulb and an extra Red and Yellow replacement bulb. Each bulb is made up of an internal LED lamp and an external plastic globe.

The LED lamps are the things that fail either from corrosion on the contacts or from something internal to the diode.

So I started with 6N+12 lamps and 6N+12 globes in total: N of each colour with an extra 1 Red and 1 Yellow per string. Whenever a lamp died I kept its globe. So the losses over time should manifest themselves as a surplus of globes and a defecit of lamps.

If the losses were equal amongst the colours we’d see a equal surplus of Green, Orange, and Blue globes and a slightly lower surplus of Red and Yellow globes (because of the extras). This is not what I saw when I lined them all up, though:

An image of christmas lightbulb globes and LED lamps in a histogram fashion. The blue globes are the most populous followed by yellow, green, then red. Yellow LED lamps are the most populous followed by red and green.

Instead we find ourselves with no oranges (I fitted all the extra oranges into empty blue spots when consolidating), an equal number of lamps and globes of yellow (yellow being one of the colours adjacent to most broken bulbs and, thus, less likely to be chosen for replacement), a mild surplus of red (one red lamp had evidently failed at one point), a larger surplus of green globes (four failed green lamps isn’t great but isn’t bad)…

And 14 excess blue globes.

Now, my sampling frequency isn’t all that high. And my knowledge of confidence intervals is a little rusty. But that’s what I think I can safely call a statistical outlier. I’m pretty sure we can conclude that, on my original set of strings of Christmas lights, Blue LEDs are more likely to fail than any other colour. But why?

I know from my LED history that high-luminance blue LEDs took the longest to be invented (patents filed in 1993 over 30 years after the first red LED). I learned from my friend who works at a display company that blue LEDs are more expensive. If I take those together I can suppose that perhaps the manufacturers of my light strings cheaped out on their lot of blue LEDs one year and stuck me, the consumer, with substandard lamps.

Instead of bringing joy, it brought frustration. But also predictive power because, you know what? On those two broken strings I had to climb up to retrieve this past, unseasonably-warm Saturday two of the four failed bulbs were indeed, as I said at the top, the Blue ones. Again.



So I’ve Finished: Night in the Woods

Well, Kate did. And she’s playing it a fourth time and learning just how much she missed in the first three.

As everyone has noticed, the game has excellent writing. There are moments where the writers’ voices speak a little to clearly and preachily, but on the whole the characters are themselves from the moment you meet them to the moment the credits roll.

For a game taking the slice of the lives of twenty-somethings there is a surprising lack of sex and romance. Gregg and Angus are the best couple, and Mae gets sloshed rather than face her high school bf… but just as there is exactly one bathroom in Possum Falls, there appear to be only two bedrooms. Even Angus and Gregg seem to share a single bunk bed.

Gameplay is mostly light platforming between conversations. The conversation engine is executed confidently, with choices presented in exactly the words that are sent. There’s some inconsistencies where “I can talk with you” indications appearing over characters with nothing to say but a single bubble with a sketch in it instead of the far more common signal of the end of conversations being that the indicator is just absent. It’s not bad, it’s just a little jarringly inconsistent.

In addition to walking and talking there are a few minigames to suck at: Guitar Hero for bass playing, some timing games like knife fighting with your friend, a hunting simulator… sucking at them is in character, so I wonder what the responses are if you’re actually competent at something.

Overall I recommend this heavily to anyone who likes “Walking Simulators” or Interactive Fiction… or if you ever came from a small town and went back at least once (and if so I also recommend that you read Sunshine Sketches of a Little Town).

Ontario’s 42nd Parliament, 1st Session: October 2018

Logo used for education and illustrative purposes. This is not an official publication and I am not an agent of the OLA.

The House met for 15 days in October and got some things done. Not much that I agree with, but that’s what I expect at this point. Let’s dive in to the bills, shall we?

Bill 4, Cap and Trade Cancellation Act, 2018, received Royal Assent on Hallowe’en. This means Ontario is without a carbon mitigation strategy or system. If you have opinions on what you think the new system should be, there is a consultation open now. I don’t expect to be listened to, but I can at least try. And in the meantime, at least Trudeau is impressing me with his commitment to climate change action by picking up the slack left by the provinces. (If only he hadn’t bought that stupid pipeline).

Bill 30, Fighting Back Against Handguns Act (Handgun Ammunition Sales), 2018, lost on Second Reading. This was the bill that would allow municipalities to forbid ammunition sales in their borders. Nothing of great value lost here, I think.

Bill 32, Access to Natural Gas Act, 2018, still in Second Reading debate. This is the regulatory framework to offset costs to reach expensive-to-reach homes with natural gas for heating by marginally increasing costs on all homes. It’s being debated, but I use that term lightly as it appears to mostly be a platform for grandstanding on particulars. Whatever.

Bill 33, Rea and Walter Act (Truss and Lightweight Construction Identification), 2018, now in committee. There’s broad support for identifying construction more susceptible to weakening in a fire using mechanisms already in use in several other jurisdictions. Fine by me.

Bill 34, Green Energy Repeal Act, 201, now in committee. This is a continuing removal of anything “green” passed by the previous government. It keeps several useful and helpful things, rolling them into other, larger acts. But it enacts barriers to renewable energy projects and generally loses a lot of the stuff that made it green. The Government says the changes are necessary to reduce regulatory burdens (in the face of a growing energy economy, especially in renewables? Bah.). I think it should be left alone, but with it already in committee it’ll be passed whenever the Government wants it to be, so I’d best make my peace with that now.

Bill 36, Cannabis Statute Law Amendment Act, 2018, received Royal Assent just in time for Legalization Day. This was a rushed piece of legislation that tore up the Liberal’s plan to run pot like the province runs alcohol (public stores, public education, public reach, public profits). Instead it replaced it with a plan to run pot like the province runs tobacco (private stores, public education, private reach, private profits). It’ll be fine, but it’s just such a wasted opportunity for a stream of public revenue.

Bill 37, Liability for Climate-Related Harms Act, 2018, was introduced and killed. This would have established liability for corporations found to be causing climate harms. Good in idea, a little vague in details. Shut down because of course the Government would shut down something applying restraints on enterprise.

Bill 38, Tax Fairness for Real Estate Professionals Act, 2018, went from First Reading through Second and into Committee. This allows Real Estate Agents to incorporate in the way that doctors aren’t allowed to anymore. Broad support for this legislation across the aisle, but I can’t see how this helps the province at all.

Bill 39, Accessible Parking and Towing Industry Review Committee Act, 2018, went from First Reading through Second and into Committee. Stands a committee to review accessible parking systems that are in use and are available. The committee will also look at training and licensing tow truck operators, and into protection of their customers. Seems like a good idea to me.

Bill 40, Human Rights Code Amendment Act (Genetic Characteristics), 2018, went from First Reading through Second and into Committee. Includes “Genetic Characteristics” as a protected class at the provincial level. Good.

Bill 41, Highway Traffic Amendment Act (Helmet Exemption for Sikh Motorcyclists), 2018, went from First Reading through Second and into Committee. Exempts Sikh from the requirement to wear motorcycle helmets (as those who observe the tradition of unshorn hair often wear turbans which make helmets impossible). I hope this doesn’t lead to increased mortality on our roads, but this is what tolerance demands.

Bill 42, Ending Discrimination in Automobile Insurance Act, 2018, received First Reading. This will prohibit automobile insurers from pricing differently based on your location.

Bill 44, Ending Automobile Insurance Discrimination in the Greater Toronto Area Act, 2018, also received First Reading. It is materially similar to Bill 42, but is about treating the GTA as one giant zone instead of permitting insurers to price differently. This bill was killed in November.

Bill 43, Freeing Highways 412 and 418 Act (Toll Highway Amendments), 2018, received First Reading. This prohibits the connector highways between the 407E toll highway and the 401 untolled highway from being toll highways. This is a bit wasteful as the 412 has already been built and has been operating as a toll highway since February 2017. Also, it may be already be too late to recoup any costs for the under-construction 418 to account for its changed designation. I’ve previously been in favour of roads being free for use, but tolls are an excellent means of internalizing costs of maintenance (and to the environment, if we chose) that otherwise would be external. And I’m offended by the pandering.

Bill 45, Child Care and Early Years Amendment Act (Not-for-Profit Corporations), 2018, received First Reading and failed Second in November. Forbade corporations from receiving public childcare funding unless they were not-for-profits. Killed because of course it was. Seemed like a reasonable requirement to me.

Bill 46, Terrorist Activities Sanctions Act, 2018, received First Reading. This is about forbidding anyone convicted of terrorism charges from being eligible for provincially-funded stuff (like welfare, health insurance…). It also marks their children as “is need of protection” (which means they’d likely be removed from the home). Seems legit so long as the definition of terrorism crimes in the Criminal Code of Canada is narrow enough and applied sparingly enough that we never falsely convict. (Yes, even if that means some terrorists can only be convicted of lesser charges)

Bill 47, Making Ontario Open for Business Act, 2018, received First and Second Reading. Basically undoes all of the good stuff workers had thanks to last year’s Bill 148 which finally, after two years of investigation and consultation, expanded protection to workers in Ontario. In addition, it applies sweeping restrictions to how unions can be formed, operate, and provide capable oversight of employers. I think this is blatant and foolish garbage that doesn’t belong in Ontario. We should be extending workers’ rights in this province. We should be improving protections and mandatory benefits. GAH.

Bill 48, Safe and Supportive Classrooms Act, 2018, received First Reading. It’s a bill that codifies what sexual abuse is and ensures any teacher so abusing a student will have their license revoked. Good. So long as it’s careful.

Bill 49, Charter Rights Transparency Act, 2018, received First Reading. It’s a bill that requires the Attorney General examine any Bill with a notwithstanding clause for any contravention of the Charter Rights granted to all Canadians. No way is this going to see Second Reading.

Bill 50, Cutting Red Tape for Motor Vehicle Dealers Act, 2018, received First Reading. It’s a bill that allows auto dealerships to get stuff online in addition to by mail. Good. Welcome to 2018.

Bill 51, Long-Term Care Homes Amendment Act (Preference for Veterans), 2018, received First Reading. As it says on the tin, it prefers veterans for placement in long-term care homes. This is fine by me. I’d prefer we adequately care for our veterans so that by the time they need long-term care they aren’t as much veterans as they are just Old Canadians like the rest of us will be. Y’know, instead of making our guilt in failing to do this manifest in ways like this kind of preferential treatment. Just a thought.

That’s about it for government business. I’ve likely missed out on entire scandals worth of nonsense by only looking at the Bills, but that’s about all I have the energy to do each month, so here we are.

Til next month.

Ontario’s 42nd Parliament, 1st Session: September 2018

Logo used for education and illustrative purposes. This is not an official publication and I am not an agent of the OLA.

The House met for 10 days in September. My previous coverage only takes us up to day 4, so let’s start over.

The biggest topic early in the month was the Better Local Government Act and its successor, “Bill 31, Efficient Local Government Act, 2018” which was materially the same but included the Notwithstanding Clause so it could be passed despite being ruled unconstitutional by the courts.

But then the appeal was upheld, and the original act was ruled constitutional. Bill 31 remains on the books, but is unlikely to see further debate. Toronto will have 25 wards this coming election. And Ontario’s government has shown its willingness to invoke constitutional privilege over such a matter.

But what else did the Legislative Assembly do this month besides start a constitutional challenge?

Bill 4, Cap and Trade Cancellation Act, 2018, saw two days of debate in September. It’s the same thing going in circles: The Opposition says it is better than nothing and The Government says it is worse than nothing. I’m with the Opposition on this: make polluting industries pay and use the collected money to improve lives for people.

Bill 6, Poet Laureate of Ontario Act (In Memory of Gord Downie), 2018, was referred to committee. I like the idea of having a Poet Laureate of Ontario to champion the arts in the province.

Bill 7, Fairness in Petroleum Products Pricing Act, 2018, was referred to committee. This is pretty much as expected as it’s adapting what other provinces do to regulate consumer gasoline prices and there’s broad political support for it. I fret a little about anything touching the carbon economy, but I haven’t read anything against it.

Bill 28, Alternative Land Use and Services Program for Agricultural Land Act, 2018, which allows farmers to use parts of their fields as snowbreaks, windbreaks, or other natural features passed second reading and is referred to committee for implementation. It appears to be the first step towards funding farmers for doing so in specific ways. Broad support across the aisles, except on the details of where this might lead. I struggle to understand what this is even about given it doesn’t have funding and it doesn’t actually seem to do anything.

Bill 32, Access to Natural Gas Act, 2018, was introduced. Gas distributors need to invest in infrastructure to deliver natural gas to consumers. Some consumers are cheaper to deliver to than others. This act allows the Energy Board to protect the more expensive-to-deliver-to consumers from paying too much for distribution by allowing the gas distributor to raise rates across its customer base instead of requiring the expensive-to-deliver-to consumers to bear the full weight of the cost of delivery themselves. I’m okay with this so long as it doesn’t give gas distributors the leeway to raise rates in excess of what is necessary to deliver natural gas to consumers.

Bill 33, Rea and Walter Act (Truss and Lightweight Construction Identification), 2018, was introduced. Volunteer firefighters have died when roofs have collapsed on them earlier than expected. This is because lightweight trusses can burn through faster than wood. The bill requires buildings with such faster-to-burn construction to be identified with decals so that firefighters know what they’re facing. This is following the example of other municipalities and state jurisdictions in North America so I guess it’s a good thing? I have no strong opinion on the matter.

Bill 34, Green Energy Repeal Act, 2018, was introduced. It repeals the entirety of the Green Energy Act, 2009 in paper, but keeps several provisions in spirit by moving them to other Acts. The repeal seems mostly concerned with taking all the parts of the Green Energy Act and putting them in different Acts. I’ll need to read the debates to figure out whether there’s anything being left out. If not, I have no problems with the reorganization.

Bill 35, Human Rights Code Amendment Act, 2018, was introduced. It adds “immigration status, genetic characteristics, police records and social conditions” to the list of protected classes. I am 100% behind this and I hope that the fact that it was introduced by a Liberal MPP (Nathalie Des Rosiers of Ottawa-Vanier) doesn’t torpedo it.

Bill 36, Cannabis Statute Law Amendment Act, 2018, was introduced. It sets out a licensing scheme for private cannabis retail stores, administered by the Alcohol and Gaming Commission, while simultaneously forbidding the Ontario Cannabis Retail Corporation from opening retail stores. Online it will be the OCRC that holds the monopoly. The OCRC will also be the only supplier to the licensed private retailers. It also makes it so the Government appoints the board of the OCRC, not the LCBO board, and separates the LCBO and the OCRC more firmly. I worry this will diminish provincial income from cannabis sales. I also worry this could result is less adherence to regulations of sale, but given that these are basically the regulations under which tobacco is sold these days I’m not too torn up about that part.

Other miscellaneous governmental business:

  • The province put 220 new GO trains on the Lakeshore corridor. It doesn’t help me (on the Kitchener line) but I’m glad to see improved transit.
  • The government scrapped the Anti-Racism Directorate, the Ministry of International Trade, and the Poverty Reduction Strategy Office.
  • The Premier posed for a picture with a far-right Toronto mayoral candidate with ties to neo-Nazi groups. The Premier, after being pressed, denounced “anyone who wants to talk hate speech.”
  • The Minister of Finance released a report that Ontario has $338B of debt, and reclassified $15B of line items in previous budgets that had been improperly classified as assets.

All in all it seems to be more of the same. No one’s answering the others’ questions (except when the Government asks questions of itself). The House continues to fly into disorder whenever the Premier is asked a question.

It continues to be discouraging to keep up with the assembly month-after-month. But I plan on continuing, because I think it’s important.