Are you hiding, somewhere behind those eyes? -- Icehouse, Electric Blue

Come Dream With Me Tonight…

Did you know that they’ve released a new version of Teddy Ruxpin? This one retains the original’s animatronic mouth, but swaps cassettes for bluetooth and soulless robot eyes for LCD screens showing the souls of the forsaken children that were harvested to make him.

Also, he goes through batteries really fast. Here is what happens when the NiMH rechargeables you put in him can’t provide enough power to make him work, but are still charged enough for him to power up:

Yeah. Yeah sure. Glowing, yet somehow still-black eyes. That’s a reasonable failure state and not a recipe for traumatizing children.

A Thanksgiving Plea

Obviously, there’s going to be a lot of filler during the holiday season, but I’m almost done with the next Deep Ice article. It will almost certainly go up next week.

This Thanksgiving season, many of us will be spending time with our families. I’m personally lucky that we’re not going to be sharing a table with the cliche racist uncle (Most of my uncles have passed on), but this is the time of year when you’re probably seeing a lot of respectable thinkpieces advising us, as we sit around poultry, that we should try to All Just Get Along and not let politics divide us, and if your uncle decides it would be a good time to remind us that “All lives matter” or that Antifa are the “real fascists”, you should just smile and pass the gravy and not ruin anyone’s dinner by being all uppity about it.

You know what you’ll never see in one of those thinkpieces? A byline belonging to someone who isn’t white and straight and male. It’s always, “Come on, liberals, let grandpa have a couple of free N-bombs on Turkey Day for the sake of family unity.” It’s never, “Come on, Uncle Rick. Maybe just let it go when her boyfriend tells a joke about Trump wanting to bone his daughter.”

So here’s my unpopular take about civility and the holidays: Fuck that noise. Maybe the reason we’re so divided isn’t because of our inability to be civil and put politics aside. Maybe it’s exactly the opposite. Maybe the problem is actually that the dominant culture — straight, white, cis, hetero, Christian, male culture — overwhelmingly wants to treat politics like sports. To frame it as, “Oh, you’ve got your team and I’ve got my team, and we both get passionate about it, but in the end, we both know that it’s just a game, after all. We can just talk about something else.”

Because it’s not sports. Okay, sure, maybe if you’re in a time and place where politics is mostly about tax codes and land use regulations, we should all live and let live and have civil differences of opinion. But in the time and place where we actually live? If you start talking about poor people fleeing from Honduras to protect your children from gang violence as though they were verminI should not be expected to respond civilly to that. If you start defending the systematic murder of black children because they spooked white cops? I should not be expected to respond civilly to that. If you try to tell me that my trans friends should be presumed to be sexual predators? I should not be expected to respond civilly to that.

The problem isn’t that we’ve got too little civility. It’s that we’ve got too much. It’s that you can advocate the most vile, hateful, despicable things, but as long as you use the approved “polite” phrasings, you’re allowed to treat the civil rights, the health, the happiness, the very lives of actual people like a sport, and it’s the height of rudeness for you to face any sort of social penalty for advocating it.

So this Thanksgiving, as you gather around pie and poultry and watch football and inflatable cartoon characters, I call on you to be civil, not to your family, but to the victims. To the trans folk who stand to lose their jobs, their homes, the ability to use a restroom. To the immigrants who walked halfway across a continent for a chance of a better life. To the sick who can’t afford healthcare. To people of color who would just like to walk down a public street without having the cops called on them. To the women who are mocked and doubted and threatened for being the victims of sexual violence. Treat them with the respect and sympathy that a hundred thinkpieces by straight white men want you to show your racist uncle. Do not treat those people so cruelly, so disposably, as to let someone enjoy your hospitality while attacking them. Do not choose a peaceful meal over the rights of the oppressed.

If a dinner guest at my house called my mother a whore, I’d tell him to get the fuck out. Why, then, should I be “civil” if he calls for my black friends to be shot by police, or my trans friends to be murdered by hateful mobs, or my Jewish friends to be shot by white supremacists?

Be the jerk, this thanksgiving. If your racist uncle mentions Making America White Great Again, tell him to shut up or leave. Not under my roof. If you happen to be under his roof, leave. No one’s sweet potato casserole is worth being the sort of person who turns a blind eye to hate.

Happy Thanksgiving. Death to fascism.

Pixel Art Filler

I was planning to have the final Eternity Comics article ready for today, but it’s been a pretty long week, and then my daughter got pink eye, and it’s hard to write with an angry toddler climbing on you and demanding you provide Elmo, Mickey Mouse, and pictures of pandas to soothe her “yucky” eye.

So instead, here’s two variations on one of the acquaintances our friend Avi is going to make. Not sure which one I like best.


I say “acquaintance” and not “friend” because these dudes will totally eat him if they get a chance.

Election Placeholder

If this message appears, it means one of three things:

  1. The election results were so bad I didn’t have the strength to come back and change it.
  2. The election results were so good that I was too busy celebrating to change it.
  3. The election results didn’t come in before I went to bed so I didn’t know what to change it to.
  4. The kids distracted me so much I forgot all about changing it.
  5. Basically things went as predicted, leaving me with mixed and confused feelings along the lines of “I know that I should be happy with this outcome but the despair is still overwhelming and I still don’t believe things will ever get better.”

So, um, good luck everyone.

In either case, Remember Avi? Here’s a little montage of his various fashion options.

Avi’s a stylish guy.

More Delays

That family health thing resolved in the way it was probably going to rather than in the way we all hoped it was going to. So next week probably.

In the mean time, here is some small things. To start, something I found at the local Giant:

The Time Lord Triumphant Discovers the limits of how far you should go with Pumpkin Spice.

And here is a charming Evie anecdote:

Evie: My belly hurts.
Daddy: Do you want some medicine?
Evie: No.

Evie: My belly hurts. I want medicine for my belly.
Daddy: Okay. (gets oral syringe of gas drops)
Evie: I do it. (wrests syringe from daddy)
(lifts up shirt)
(sticks syringe into her navel)

 

I Made a Thing! Clock Radio Project

This is a GE 7-4680A clock radio. There’s nothing much that’s special about it. They pop up on eBay a few times a year for prices in the $25-$45 range. I have no idea when it dates to; its date markings are in some kind of code. I know they were produced at least as early as 1982, probably much earlier. It has an AM-FM radio and TV audio tuner that’s backlit with a small incandescent bulb. Its single monaural speaker has a nice warm tone. I don’t know what it is about old speakers. They don’t sound perfect, but they tend to always sound fine. Modern speakers either sound great or sound like shit, with nothing in-between. Setting the time is limited to two buttons, one of which advances the clock slowly, the other advances it quickly. If you miss, you have to go all the way around 24 hours to try again. It has no battery backup, and has to be reset after even the briefest of power outages.

Click to Enhugen

One very much like this one sat on my mom’s nightstand as far back as I can remember, up until some time in the early ’90s, when she got a new one, then it sat on my headboard for the rest of the ’90s and then it went off with me when I moved out. It had what I’d always assumed was a little fresnel in the clear front panel over the dot that lit up to indicate PM. Turns out that was actually a cigarette burn.

By 2016, a couple of the LEDs were dimming and the front panel was loose. There was a short in the time-setting buttons so that if you pushed them, there was a chance it would just instantly jump ahead 78 minutes. So I started looking for a replacement on eBay, and ended up buying two. Some time in 2017, I dropped the water tank from my CPAP machine on it and the alarm started buzzing and never stopped. That’s why the one in the picture there is not the one I grew up with.

I have an unreasoning nostalgia for this model of clock, though it’s certainly not anything useful or modern. So since I had both a fully functional replacement clock and also a spare, I decided to build a thing.

You’ll recall that a few months ago, I gave Dylan a small network-connected music player I’d built. And part of that project was coming up with a quasi-standardized way to put together a Raspberry Pi Zero W-based network connected music player. So I reckoned, why not take that, and make a clock.

Three Texas Instruments CDB4543B BCD-to-7-Segment Latch/Decoder/Driver chips

So that’s what I did. I had a go at using the original display panel, since it was a much better fit. But it’s weird ’70s LED technology with a 20v forward voltage drop. Where the hell was I going to get 20 volts to drive that? And then I burned one of the lights out trying to figure out the pinouts. The driver chip for the LED had a number on it that led me nowhere, so I was shooting in the dark for how to make it work; the display itself had a 20-pin ribbon cable that had become stiff and fragile with age. There were more lights on the panel than the clock actually used, including a colon for separating hour and minutes. None of the pins seemed to work it.

So instead, I got four 7-segment modules and hot glued them into a frame made of styrofoam, cut to size. The displays had a little decimal dot in the corners, so by turning the first one upside down, I got the AM/PM dot for free.

Continue reading I Made a Thing! Clock Radio Project

Ross Codes! A Music Player for Dylan

So guess who just finished Kindergarten?

I am not making this up: one of the buses in our neighborhood (not his) says “Torchwood Transporation” on the side.

Congrats, little boy.

In recognition of Dylan’s Kindergarten Graduation (which I guess is a thing), I built him a present. Dylan likes to listen to music when he’s going to bed, just like I did when I was a kid (honestly, just like I did pretty much up through my twenties). And since he’s also been getting into Doctor Who, he took an interest in the possibility of listening to some of my Doctor Who radio adaptations (The BBC productions are pretty safe. I’m going to have to heavily vet the Big Finish ones). Since his MP3 player’s got a modest capacity and modest battery life and is a little cumbersome to load, I decided that, as a Kindergarten graduate, he was mature enough to have a network-connected music player.

So I built one.

This isn’t going to be a full instructable, since, as per usual, I just sort of fumbled my way forward until it worked and neglected to document things. But maybe it’ll be enough to get you started.

The Hardware

Okay, so I did not actually start this project specifically for Dylan’s sake; I’d come up with the idea of making small networked music players last year with the goal of just coordinating Christmas music between the family room and the dining room. IoT speakers are a thing now, obviously, but I wanted a few things specifically:

  • To play music from my local collection on the NAS, rather than streaming it from a cloud service, particularly one that would ask my to buy or subscribe to things I already owned
  • To synchronize playback between multiple devices
  • To just be a music player and not quietly listen in on me all the time waiting for its moment to betray me when the robot empire takes over help me buy more lightbulbs or whatever.
  • Fit inside the 1960s clock radio I inherited from my parents

The obvious choice of base platform for something like this was the Raspberry Pi Zero W, a ten dollar Single Board Computer that has onboard wifi and bluetooth and is about the size of a key fob (the fancy big ones where the key switchblades out of the side).

Fir Meit

The full-sized Raspberry Pi models have analogue audio output. The original hardware versions had a dedicated headphone jack, while later ones use a combined jack that carries analogue audio and video. But the zero drops the analogue jack altogether. Apparently, you can produce analogue audio on the GPIO pins by just adding a couple of resistors in the right places, but there’s another option.

Its called a “bonnet” because its a cute little HAT. Get it?

As with most Raspberry Pi products, demand outstripped supply for a while, so part of the proximate motivation for this project was that Adafruit had this bundle which included the Zero along with a bonnet (ie. a tiny little sidekick card that plugs into the top of the Pi. Ones scaled to the full-sized Raspberry Pi are called “HATs”) that could drive 3 watt speakers, and a set of speakers. (Adafruit also sells the bonnet separately, but at the time, bundles were pretty much the only things that would stay in stock long enough for a normal human to buy them). The included speakers aren’t great, but they’re at least as good as the speaker in Dylan’s MP3 player. I only ended up using the Adafruit speakers for the first one I built. For the second, I attached RCA plugs and used the speakers from an old bookshelf system we were getting rid of. The third one, I have wired to the ancient speaker from my clock radio, which sounds fantastic, but the poor thing isn’t putting out enough power to drive it at full volume.

This project required a bit of soldering, and on my first try, I donked it up a little, damaging the pad for one of the pins I needed. Fortunately, I was able to attach a header elsewhere and use a jumper wire to move the signal to the right pin. I also had a few DHT11 temperature sensors lying around, so I wired that up to the other pins so that my device could also mesh with my household network of sensors.

For a case, I gutted an old 10/100 ethernet switch. It was a tight fit. Too tight, if I’m being honest, but it was what I had on hand. I drilled holes through the top and hot glued the speakers under them. There was just enough space in the middle for the bonnetted Zero… if you didn’t connect the USB cables that it needed for power. But I jiggled things around and finally got it to more-or-less fit with the help of the fact that a network switch’s case has a hole in the back where the network jacks go. The second version, the one which had RCA jacks instead of integrated speakers, I enclosed in a modified electrical outlet child safety cover. That one I’d hoped to just stick inside the speaker housing, but thanks to some miscommunication, Leah had donated the set of speakers I wanted to use to charity and kept a different set. No big deal. Version 3 isn’t done yet because even though the pi and supporting hardware is a lot smaller than the clock radio’s original innards, it’s the wrong shape and I’m still working out how to fit it all inside.

We bought a three pack of 100 mbit hubs. I cant remember why.

The first device, as built, promptly got plugged in and stuck on my nightstand where I never bothered with it. It has, you may notice, no user interface. It has to be controlled remotely, and a smartphone is a perfectly good way to do this. But once I got it into my head to give this device to Dylan, that wasn’t going to cut it. I mean. half the motivation here is to let him listen to music in bed without giving him a tablet.

I spent several hours looking at human interface devices before it suddenly occurred to me that I’d bought a bunch of USB gamepads of various designs a few years back and only ever used them once or twice (I also bought a powered 20-foot USB cable as part of this experiment. It never worked great. I think the powered USB cable was introducing some kind of jitter. I eventually tried switching to bluetooth, and had various problems from not being able to connect at all to being able to connect, but then needing a reboot to get it to reconnect once the controller had gone to sleep. But that’s a tale for another day). So with a bit of work, I managed to cram another USB plug into the Zero, and now I had a gamepad connected to the music player.

Rarely has there been a controller more perfect for converting into a remote control than the SNES controller.

The Software

For the OS on the Zero, I went with Raspbian Jesse Lite, a stripped-down flavor of the default Raspberry Pi Linux distribution. The “Lite” here was important because I had some fairly small SD cards that I wanted to get some use out of. But there was a bonus here I only learned later. The full Raspbian image installs X, the standard Linux windowing system. Because normally you’d want that on a computer. On all of my previous Raspberry Pi setups, I’d gone ahead and left X installed in case I ever needed it, but set up the pi not to launch it automatically. And this was all very good and fine, but I’ve discovered that if you do install X, then PulseAudio, the standard engine for accessing the audio hardware in most contemporary Linux installations, gets configured in a way that assumes X is running. When I tried setting up a regular Raspbian installation to run the same music software as my Zero-based devices, I ran into an issue where every time as song finished, PulseAudio would panic over the fact that it couldn’t talk to the X session it was expecting to be there, and crashed. And several things I did which I thought ought to have set this right just didn’t work. I can get it to play one song, and then I have to manually restart a bunch of daemons to get audio working again. If you never install X, this doesn’t come up and it all just works.

For the music player itself, I went with MPD, the Music Player Daemon. There’s a few things about it I’m not crazy about, but it seems to do everything I wanted. For my purposes, one of the nicest features is that you can slave one installation to use another installation’s database. Because of the small storage space and limited processing power on the Zero, this was a godsend. But even if those weren’t issues, the fact that I can maintain one database on my main media center computer and have it apply to every media player in the house is literally the thing I wanted out of this. A common repository of songs and playlists for as many devices as I want. Each individual instance can also publish its own audio stream via HTTP, so I can point any player in the house at any other player in the house and they’ll play the same thing. There are other solutions which can accomplish something similar to this, but my setup with MPD lets me choose which rooms play which things; they don’t all have to be the same. I can have the family room and the dining room play one thing, while Dylan’s room plays something else, and once I build a couple more, I can arbitrarily mix and match.

I installed MPD on my main media center computer, a much beefier i5 system running Linux Mint. The installation is a little different there, since that one is running X, so the MPD process gets run as a user application rather than a system daemon. It hosts the main database. The smaller devices SMB or NFS mount the NAS to reach the music files. MPD doesn’t actually require this: it can speak SMB and NFS directly. But there seems to be a weird bug where if you do that, filetypes other than MP3 don’t work. I wanted to support my old MIDI collection, so I had to actually mount the filesystem. Another little quirk is that while MPD supports automatic volume normalization, on the Zeroes, this made the playback weird and crackly and clipped. It worked fine on the media center. Another issue is that the audio bonnet doesn’t expose any hardware volume control, so I needed to configure PulseAudio to do volume control in software, and then configure MPD to use the software volume controls.

The other major quirk had to do with networking. MPD had a number of frontends you can install. When I’m at my computer, I just use the command-line client, MPC. For my phone, I installed MALP. Of all the MPD clients I’ve found for Android, MALP is the only one which makes it easy to switch between multiple MPD instances. Most of the others assume you only have one MPD server. The downside to MALP is that it requires a pretty recent version of Android. That might not be a problem for you, but you know how it is with phone manufacturers and system updates. Of the dozen or so Android devices in our house, only three could run it. But I discovered an odd issue where if my phone went to sleep with MALP open and connected to one of the Zeroes, the Zero would lose its wifi connection. You could bring it back up by restarting the networking service, but that’s hard to do on a headless box that’s lost its wifi connection. I mitigated this by writing a cron job that restarted networking (or failing that, rebooted) if the network went away for more than a minute or two. Some searching led me to believe that this might be a bug in the kernel network driver, and very weirdly, it seems to be completely specific to talking over wifi between a Raspberry Pi (Either 3 or Zero W) and a Samsung phone. It hasn’t happened in a while, so I’m hopeful that some kernel update fixed it.

It’s not a perfect solution, even so. Streaming from one Zero to another is more theoretical than practical because of the CPU usage involved. And the streaming isn’t very tightly synchronized. Leah’s immediate reaction on Christmas was to be annoyed that the music in the family room was half a second ahead of the dining room. You can stream audio between devices with lower latency using other methods, but I wasn’t able to get it working in a way that still let me do all the other things I wanted.

The last leg before I gave it to Dylan was to make it controllable via the attached gamepad. For that, I banged out a perl program to translate gamepad input into commands to MPD. If you are interested, here it is. It requires the Input::Joystick module from CPAN, but is otherwise pretty much self-contained (Just plugged the gamepad in and it showed up as an input device. I’ve been using Linux long enough that it still amazes me when I plug something in and it Just Works). It works by invoking the command line MPC client. I know that’s a little suspect (It also logs by making shell calls to the command line “logger” command, which is even more suspect. I am lazy). There are a couple of MPD modules in CPAN, and I’ve worked with them before, but one of them had a lot of dependencies I didn’t want to bother with, and I had some strange performance issues with the other. In addition to translating input from the controller, it implements a sleep timer and a volume limiter. I also designed it with the ability to cycle through a filtered subset of all playlists. You can just toss a new m3u file in your playlist directory whenever you like, and it’ll instantly be available (provided the name of the file matches the filter. In my case, that means that the name starts with “DYLAN”). Since I set up the playlist directory to be on the NAS, I don’t even have to log into the music player to edit the playlists. And, of course, I can remotely control the player myself via MALP or from any computer with MPC on it.

Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY

Dylan was incredibly impressed (aside from a couple of times when he ran in to tell me it wasn’t working. Pretty sure that any time it took more than a tenth of a second to queue up the next song, he’d start hammering buttons and confuse the poor thing. It always resolved itself if he just stopped futzing with it for a second), and asked if I could add a screen. Which isn’t out of the question, but his goal here is a backdoor into being able to stay up all night watching TV on the DL.

I hope to build some more of these. I had this idea that maybe when Evie is ready for one, instead of a game controller, I’d hook up a camera and print cards with QR codes on them to control hers that way. Leah points out that she’d just lose the cards immediately (Though I suppose I could tether them to something).

Pizza!

I’m ridiculous, but I wanted to share this.

Last Friday, I got pizza from Domino’s for the first time since college. I’d heard that they did some soul-searching about a decade ago and discovered that perhaps customers didn’t like pizza that tasted like ketchup on a cracker topped by a slice of pasteurized processed cheese-food product, and re-engineered their offerings into something that could broadly be described as “pizza”, but I hadn’t gotten around to actually trying it. Dylan had been suggesting that he might like to since he’d seen a teacher eating some at lunch, and some coworkers were talking about their carryout special, so I pulled the trigger and bought a couple of pies, and you know what? It was pretty good. I liked it. Dylan liked it. Evie ate the cheese and pineapples off of two slices and begged for more. Leah thought it was okay.

So in celebration of this surprisingly edible pizza, I wanted to offer up the following meme:

Upon reflection, associating your pizza company’s mascot with avoidance may have been a misstep.

Misspent Youth: The Toothpaste Millionaire

There’s a handful of books I read — or more accurately, were read to me — in my youth which left enough of an impression that I’ve felt compelled to track down a copy thirty-or-so years later, particularly now that I’ve got little’uns to read them to. This is still a work in progress. Evie’s not old enough to appreciate The Frisky Kittens or Piglets at Sea yet, and I think I should give Dylan another year or two before I spring The Westing Game or From The Mixed-Up Files of Mrs. Basil E. Frankweiler on him. But we made some headway recently when, on the second try, he got interested in Jean Merrill’s The Toothpaste Millionaire.

Jean Merrill is best known for an earlier book, The Pushcart War, which I bet is pretty surreal to read now since the publishers keep pushing forward its then-near-future dates to keep them near-future, but probably they haven’t updated Merrill’s writing style to be less full of charmingly dated minutia. Also, odd coincidence, Merrill and I have the same birthday.

I don’t remember exactly when we read The Toothpaste Millionaire in school, but it was definitely during Media Center (even back then, in the misty murk of history, “Library” was deprecated). Over on the far side where there was a clearing that served as a small presentation stage, flanked by the bookcases of Hardy Boys books, sitting in a position whose old name I completely agree was inappropriate and had to go, but for which they have not yet invented a replacement name I can possibly take seriously (“Criss-Cross-Applesauce”? Come the fuck on. That is stupid. That’s worse than “letter-carrier”. Get the folks who came up with “firefighter” on this. They know their stuff).

The basic story is this: Kate McKinstrey and her family move from Connecticut to Cleveland, and the first friend she makes is a clever and economical boy named Rufus Mayflower, who helps her make saddle bags for her bike. Erelong, Rufus develops an obsession with the cost of toothpaste, and decides to go into business selling his own homemade baking soda-based dentifrice under the name brand-name TOOTHPASTE, and sells it for three cents a bottle. To say that hijinks ensue is being a bit hyperbolic. Spoilers: Rufus makes a million dollars.

The book is pretty funny. Dylan found it hilarious, in fact. It’s not, if you’re an adult, that much happens which is especially silly in itself; in fact, the whole book is a series of people acting reasonably and making rational decisions. But there’s a lot of comedy in the outsider point-of-view and the… Let’s say child-like plainspokenness. Have you ever tried to explain a complicated social concept to a child, like why we segregate bathrooms by gender or why it’s not socially acceptable for men to wear skirts or why we have capitalism, and halfway through realized that it actually is, in fact, ridiculous? That happens a lot in this book. A lot of “Well why not?”

What I noticed on this read through is that the structure of the book is a little strange. The book is largely presented as Kate recapping how Rufus solved a series of logistical problems. The narrative is sort of fragmentary because of this: each chapter is essentially a separate episode, and the linking between individual scenes is generally pretty weak. Some chapters are barely narrative at all. For instance, one chapter covers Rufus doing a TV interview. In a more traditional narrative, you might have a scene of Kate and Rufus talking beforehand, and a scene of Kate watching from the audience and her thoughts and feelings as Rufus goes on the air. But instead, we get a chapter that’s mostly exposition, with Kate dryly explaining about the local talk show, a transcript of the interview itself, and a coda talking about all the new orders they got, including an anecdote about an order from someone in California who’d been on the phone with a relative in Cleveland when the interview aired.

The style works for me, and I think it would work for most kids with engineering-type minds, who’d be more interested in the problem-solving than in any sort of character-driven narrative. Even in the ’80s when I first read the book, there was a weird uncanniness to the ’70sness of it too. Kate accidentally buys five gross of toothpaste tubes thinking she’s buying five dozen, though it still only ends up costing her like five bucks. Which is a lot of money back then.

But having said that, I find that my memories of the book aren’t weighted proportionally. Virtually all the conflict in the book comes in the last fifteen pages, and it feels almost entirely offhand, even though my memory tells me it’s a major theme (My memory also tells me that Kate also bought a barrel of aglets on a lark. This didn’t happen at all, and now I’m wondering if maybe that’s something I am remembering from a different book? Anyone recall a book where the narrator and the protagonist go to an auction and the narrator buys a barrel of aglets?). Another thing I remembered from my youth was a pervasive sense of Rufus being a little “off”. Back in elementary school, I wouldn’t have had the concept, but Rufus, with his obsessiveness over waste, his fetish for honesty, and his frequent displays of frustration at people acting like people, definitely struck me at the time as being on the spectrum. Reading it now, I didn’t get that impression at all, and I’m curious where it came from, whether I was projecting from something else, or maybe it was something I was nudged into by the teacher? The whole of the conflict is squeezed down to just a couple of chapters, the main one of which is deliberately gonzo.

After the major toothpaste brands start folding as a result of the ensuing price war, the remaining players invite Rufus to a “conference” about the health of the industry. It turns out to be an attempt to involve him in a price-fixing scam, which ends when it turns out that the FBI just happens to be in the next room over and promptly arrests the heads of the competing brands. Kate presents this in the form of a screenplay, having decided that she’d like to be a screenwriter specializing in torn-from-the-headlines dramas. And then the chapter ends with the offhand reveal that the toothpaste factory was blown up by a gangster working for the mob.

Continue reading Misspent Youth: The Toothpaste Millionaire