kait.dev
Charlotte Illes is Not a Teacher cover

Charlotte Illes is Not a Teacher

by Katie Siegel

Recommended

I will admit that I only made it about a chapter into this book before I felt compelled to put it down for a couple days. It opens on a courtroom scene, and nothing is more exciting than boring court dialogue.

Except the witness, Charlotte Illes, isn't giving the normal boring court dialogue. She's being a little sassy, clearly desperate to do the right thing but not willing to compromise on her integrity (and, if we're being honest, isn't great at dealing with people in general. Her people know how she is, but in any other context, it's more an acquired taste). 

And one chapter was enough to make me realize, OK, I want to know more about this character. And I knew this was the second book in a series, and you only get one chance at a first impression. So I set this book down in order to read the first book and get introduced properly.

I was so glad I did.

The Charlotte Illes books are not romance, which is sort of a first on here. This site was never intended to be explicitly romance-centric, that just tends to be how non-straight books are marketed: How would we know they're queer if we didn't see them making out with queer people? Even in books where the relationship is sort of ancillary to the genre plot (Annie LeBlanc Is Not Dead Yet), it's still a major part.

Charlotte, by contrast, though she is queer, does not define herself (or her story) by that. Actually, she's more defined by her fame as a female Encyclopedia Brown meets Harriet the Spy, and she's constantly wrestling with whether to lean into it or pretend it never happened.

I cannot describe how much I enjoy the character of Lottie (Charlotte). She's written with at least a neurospicy overtone, if not explicit definition to her character, so many of her tribulations and conundrums seem 1000% real to me. But she's also got a sweetness and a protectiveness that I recognize in many of my favorite introverts, who would absolutely ride-or-die for you even if they're not particularly comfortable behind the wheel.

And yeah, the plot is a little zany, as most small-town mysteries tend to be (at least no one gets murdered for barely any reason; looking at you, every weird mystery thriller ever). But it's fun, well-paced, and splashes among the emotional palette with the deftness of a watercolor artist, feathering from humor to anxiety to dread to joy, all in a sensible wave. 

This is not, as the kids my age say, a kissing book. But it's got the love and intrigue that adults who are looking for something a little less smarmy (but no less heartfelt) will enjoy. Though I also highly recommend first reading Charlotte Illes Is Not A Detective – after all, a lady this fine deserves your time and effort.

This review is for an advanced reader copy of the book, provided by the publisher

Synopsis

The déjà vu is strong for 25-year-old former kid detective Charlotte Illes when she lands back in Frencham Middle School - this time as a substitute teacher with a sideline in sleuthing - in the second zany mystery based on the much-loved TikTok web series from @katiefliesaway. For fans of "Poker Face," "Knives Out," Elle Cosimano's Finlay Donovan Series, and anyone seeking to satisfy their Harriet the Spy, Encyclopedia Brown, or Nancy Drew nostalgia!Mention "returning to the scene of a crime," and people don't usually picture a middle school.  But that's where kid detective Lottie Illes enjoyed some of her greatest successes, solving mysteries and winning acclaim--before the world of adult responsibilities came crashing in . . . Twentysomething Charlotte is now back in the classroom, this time as a substitute teacher. However, as much as she's tried to escape the shadow of her younger self, others haven't forgotten about Lottie. In fact, a fellow teacher is hoping for help discovering the culprit behind anonymous threats being sent to her and her aunt, who's running for reelection to the Board of Education.At first, Charlotte assumes the messages are a harmless prank. But maybe it's a good thing she left a detective kit hidden in the band room storage closet all those years ago--just in case. Because the threats are escalating, and it's clear that untangling mysteries isn't child's play anymore . . .

I'll Be Gone For Christmas cover

I'll Be Gone For Christmas

by Georgia K. Boone

Highly Recommended

Maybe this book came to me at just the right time. I can certainly identify with feeling slightly more than whelmed (though in my case, it was entirely self-inflicted). I set up this website at the tail end of an absolute torrent of romance novel reading, and once I got it ready I just sort of ... lost the ability to read for awhile. Burnout happens on any single or combination of topics, hobbies, or it can just slam into you generally.

Thus, it was nice to pick up a book where the two mains (Clover and Bee), for reasons of their own, needed a bit of a breather and just ... got it. Via a new app, Vacate (which sounds incredible in fiction but I would never trust in real life), the two essentially house-swap for a month (Clover to SF, Bee to Ohio) around the holidays, not realizing they're also a little bit *Freaky Friday-*ing into the other's life as well.

I loved all of the characters we actually got to meet in this book, even if the sheer number was at times slightly more than my tiny brain could handle (this is a known failing of mine, and again why I don't read high fantasy). Though I admit I first expected the two mains to wind up with each other, I actually more enjoyed following them on their separate paths. 

Even if Bee is depressingly straight, her whirlwind romance and general love blitzkrieg through the small Ohio town brought a gravitas without being too depressing, which can sometimes happen when a romance novelist tries to pile on the pathos.

I also want to especially note the active diversity of characters, which is still not super common even in gay fiction. I always love the feeling of effortless inclusion, and it comes through in the writing as well as the scene work (I desparately want to join the pack of SF queers that Clover falls in with).

And it's a Christmas(-adjacent) story to boot! I know it's the season, but I always like coming out of a Christmas book without feeling smothered by Santa's beard. 

A hearty highly recommended to anyone who could use a little break.

This review is for an advanced reader copy of the book, provided by the publisher

Synopsis

Bee Tyler needs a break. In the bustling San Francisco tech community, no one ever seems to stand still--especially her perfect sister and business partner, Beth. So when her best friend suggests a getaway on the wildly popular house-swap app, Vacate, Bee decides a countryside retreat might be exactly what she needs. Clover Mills has had a year. Between losing her mother and making the complicated decision to leave her fiancé, sticking around the idyllic Christmas obsessed town of Salem, Ohio, just doesn't feel right. So when she hears about Vacate, she jumps at the chance to spend the holidays in the unfamiliar city of San Francisco. Soon enough, Bee is living in Clover's cozy Salem cottage, and Clover is living in Bee's sleek San Francisco apartment. As Clover can't seem to stop running into Bee's frustratingly gorgeous sister, Beth, and Bee finds herself spending more and more time with Clover's ultra charming ex-fiancé, Knox, the two women realize that this Christmas they may find just what they were looking for and more...

Make the Season Bright cover

Make the Season Bright

by Ashley Herring Blake

Recommended, Maybe

I really tried to come up with a good intro here. Something pulled from my life, that would seem authentic and genuine yet also relatable, generalizable perhaps, so that you, the reader, could see yourself in the anecdote. I tried but I failed. I couldn't come up with two things to jam together that might – on paper – seem good, but in reality just don't work for me and, if we're being honest, probably shouldn't be put together at all.

Ashley Herring Blake, by contrast, does not suffer from this problem.

I noted it in my perhaps slightly vitriolic review** of Astrid Parker Doesn't Fail (my head-canon headline for which is "Astrid Parker is kind of a bitch"), where the titular character, Astrid, brings almost nothing positive to the relationship with the other main, Jordan, and is in fact actively detrimental in several ways. (I'm still so salty that Jordan settled I didn't even need to reread the review to remember her name.)

But then I picked up Make the Season Bright, got about halfway through (where we get the full, tragic backstory), and thought to myself, well, shit, she did it again.

It feels extremely weird for me to complain about happy endings. At this point in my senescence, I will barely tolerate any media that dares to end on any but an uplifting note. I am too old and too depressed on my own to need the issues of fictional people weighing me down, regardless of what screen size they dance into my life upon (movie, TV or phone).

And yet, here we are.

The book contains all the right bits. There's the improbable-verging-on-the-impossible reunion, the re-meet-cute that reminds them both of what they once had and what they're missing, and even a bordering-on-unbelievable number of queer side characters to round out the cast. But it just doesn't gel right, largely because the reason these two separated in the first place (and how) was ... correct? And nothing in the intervening years has changed their fundamental realities or the underpinnings of their issues.

So I was left just feeling off. I don't want to be rooting against the two romantic leads, but I also don't think any good can come of it, even if the book tries desperately to convince me otherwise. Sure, maybe one or both of the characters will have a total personality transplant and all their issues will be magically resolved, but that honestly just speaks even worse of the book?

To me, a good redemption romance arc marks itself not by the fact they wind up together at the end, but shows how they got there. Start with people with flaws (or flawed people), then show they grow and mature and overcome those flaws. Maybe I've just been ruined by On the Same Page*, *but that book shows how it can be done (and done very, very well). *Bright, *by contrast, settles for "well, they decided they'll be better about it so they are."

Is "reluctantly recommend" a thing? I'd definitely recommend it above Astrid, but only if you really need a Christmas story and don't have any other, better options.

Synopsis

It's been five years since Charlotte Donovan was ditched at the altar by her ex-fiancée, and she's doing more than okay. Sure, her single mother never checks in, but she has her strings ensemble, the Rosalind Quartet, and her life in New York is a dream come true.  As the holidays draw near, her ensemble mate Sloane persuades Charlotte and the rest of the quartet to spend Christmas with her family in Colorado--it *is* much cozier and quieter than Manhattan, and it would guarantee more practice time for the quartet's upcoming tour. But when Charlotte arrives, she discovers that Sloane's sister Adele also brought a friend home--and that friend is none other than her ex, Brighton. All Brighton Fairbrook wanted was to have the holliest, jolliest Christmas--and try to forget that her band kicked her out. But instead, she's stuck pretending like she and her ex are strangers--which proves to be difficult when Sloane and Adele's mom signs them all up for a series of Christmas dating events. Charlotte and Brighton are soon entrenched in horseback riding and cookie decorating, but Charlotte still won't talk to her. Brighton can hardly blame her after what she did.  After a few days, however, things start to slip through. Memories. Music. The way they used to play together--Brighton on guitar, Charlotte on her violin--and it all feels painfully familiar. But it's all in the past and nothing can melt the ice in their hearts...right? 

Voters in Missouri, Arizona, New York, Colorado, Nevada, Nebraska and Montana voted to enshrine protections in their states for women to decide their own healthcare

Sarah McBride, D-Delaware, is the first openly transgender person elected to Congress.

Colorado repealed its 2006 same-sex marriage ban. California repealed its 2008 law that banned same-sex marriage.

In (at least) Kansas, New Hampshire, Wisconsin, Minnesota, California, Washington, Illinois, Montana and Texas (!), the people voted to send out LGBT people to Congress.

Dozens of LGBT folks won their races in state-level contests across the country

In every state in the union, millions of people voted for hope and progress and forward momentum. They might not have been the majority of those voting in every case, but they came out to say it.

We are here. We are queer. We are stronger together.

Oh, sure, when you do it you win the Pulitzer Prize, but when I say the grapes are angry, they call me “the crazy farmer running around screaming about the emotional lives of plants.”

The inverse of “this meeting could have been an email” isn’t exactly “people keep sending emails about the meeting replying to the email that contains all the information they’re seeking” but it feels related, nonetheless

Hot take: Your build folder should not be completely excluded from your source control. There are very few good reasons why npm run build should run on production.

iOS updates’ 5+-year streak of the keyboard getting even worse at guessing what I’m trying to say (and completely divorcing suggestions from context) continues unbroken 💩 👑

Forgery

Link Forgery

The singularity is the victim of bad press. Instead of an omniscient superintelligence, it’s more of a “human centipede” of AI-generated content.

I remain not completely anti-AI, just against its predominant usage of “producing content that otherwise no one would bother to pay for or take the time to create on their own.”

If a person looks at all the art and tries to make their own copies and pass them off as art, we call them a forger. If a computer looks at all the art and tries to make its own copies and pass them off as art, we call that “AI” and clock its worth at north of $150 billion.

I understand golf lingo. I understand businesses often give money to charities with golf events because businesscritters like the work-sponsored opportunity to play golf.

But I still don’t know that I would have touted on social media that I “sponsored a hole”

I never thought about it as a kid, but the stores featured in movies date them just as much (if not more) than fashion, haircuts, cars, etc. Meatballs starts with the kids in a Kmart parking lot, which, outside of Australia? Might as well stop by a Woolworth’s or a Ben Franklin.

In my experience, when a doddering, elderly, clearly overwhelmed candidate flounders at a debate, he stops running for president.

AI reporting

Link AI reporting

If AI-written stories were any good, they’d put them on beats they perceive people care about. Instead, they dump it on topics the suits perceive as lower interest and low-impact, like women’s sports.

I don’t know that we as a society are prepared for celebrity deaths at the rate they’ll soon come. The explosion of pop culture in the 80s/90s (literally cable TV at least doubled the number of people we consider “famous”) + the boomer cohort aging could mean multiple “names” a week.

Why don’t we have a JS frontend framework that focuses on what devs want, not what Google or Facebook think are important, funded indefinitely with $30 million of a random unicorn’s windfall?

Tech has created more billionaires and centi-millionaires than ever existed. They all spend their money on sports teams, yachts … but never drop a couple million on open source, even the projects they relied on! At best, it’s corporate money.

Like many, I get annoyed by subscription pricing that doesn’t accurately reflect my needs. I don’t want to spend $5 a month for a color picker app. I don’t really want to spend $4/month on ControlD for ad-blocking and custom internal DNS hosting, and NextDNS is worth $20/year until I hit the five or six times a month it’s completely unresponsive and kills all my internet connectivity.

(I recognize I departed from the mainstream on the specifics there, but my point is still valid.)

I’ve self-hosted this blog and several other websites for more than a decade now; not only is it a way to keep up my Linux/sysadmin chops, it’s also freeing on a personal level to know I have control and important to me on a philosophical level to not be dependent on corporations where possible, as I’ve grown increasingly wary of any company’s motivations the older I get.

So I started looking at options that might take care of it, and over the last few months I’ve really started to replace things that would have previously been a couple bucks a month with a VPS running four such services for $40 a year.

Quick aside: I use RackNerd for all my hosting now, and they have been rock-solid and steady in the time I’ve been with them (coming up on a year now). Their New Year’s Deals are still valid, so you can pay $37.88 for a VPS with 4GB of RAM for a year. Neither of those links are affiliate links, by the way - they’re just a good company with good deals, and I have no problem promoting them.

AdGuard Home - Ad-blocking, custom DNS. I run a bunch of stuff on my homelab that I don’t want exposed to the internet, but I still want HTTPS certificates for. I have a script that grabs a wildcard SSL certificate for the domain that I automatically push to my non-public servers. I use Tailscale to keep all my devices (servers, phones, tablets, computers) on the same VPN. Tailscale’s DNS is set to my AdGuard IP, and AdGuard manages my custom DNS with DNS rewrites.

This has the advantages of a) not requiring to me to set the DNS manually for every wireless network on iOS (which is absolutely a bonkers way to set DNS, Apple), b) keeping all my machines accessible as long as I have internet, and c) allowing me to use the internal Tailscale IP addresses as the AdGuard DNS whitelist so I can keep out all the random inquiries from Chinese and Russian IPs.

The one downside is it requires Tailscale for infrastructure, but Tailscale has been consistently good and generous with its free tier, and if it ever changes, there are free (open-source, self-hosted) alternatives.

MachForm - Not free, not open-source, but the most reliable form self-hosting I’ve found that doesn’t require an absurd number of hoops. I tried both HeyForm and FormBricks before going back to the classic goodness. If I ever care enough, I’ll write a modern-looking frontend theme for it, but as of now it does everything I ask of it. (If I ever get FU money, I’ll rewrite it completely, but I don’t see that happening.)

Soketi - A drop-in Pusher replacement. Holy hell was it annoying to get set up with multiple apps in the same instance, but now I have a much more scalable WebSockets server without arbitrary message/concurrent user limits.

Nitter - I don’t like Twitter, I don’t use Twitter, but some people do and I get links that I probably need to see (usually related to work/dev, but sometimes politics and news). Instead of giving a dime to Elon, Nitter acts as a proxy to display it (especially useful with threads, of which you only see one tweet at a time on Twitter without logging in). You do need to create a Twitter account to use it, but I’m not giving him any pageviews/advertising and I’m only using it when I have to. When Nitter stops working, I’ll probably just block Twitter altogether.

Freescout - My wife and I used Helpscout to run our consulting business for years until they decided to up their subscription pricing by nearly double what we used to pay. Helpscout was useful, but not that useful. We tried to going to regular Gmail and some third-party plugins, but eventually just went with a shared email account until we found Freescout. It works wonderfully, and we paid for some of the extensions mostly just to support them. My only annoyance is the mobile app is just this side of unusable, but hard to complain about free (and we do most of our support work on desktop, anyway).

Sendy - Also not free, but does exactly what’s described on the box and was a breeze to set up. Its UI is a little dated, and you’re best served by creating your templates somewhere else and pasting the HTML in to the editor, but it’s a nice little workhorse for a perfectly reasonable price.

Calibre-web - I used to use the desktop version of Calibre, but it was a huge pain to keep running all the time on my main computer and too much of a hassle to manage when it was running on desktop on one of the homelab machines. Calibre web puts all of the stuff I care about from Calibre available in the browser. I actually run 3-4 instances, sorted by genre.

Tube Archivist - I pay for YouTube premium, but I don’t trust that everything will always be available. I selectively add videos to a certain playlist, then have Tube Archivist download them if I ever want to check them out later.

Plex - I have an extensive downloaded music archive that I listen to using PlexAmp, both on mobile devices and various computers. I don’t love Plex’s overall model, but I’ve yet to find an alternative that allows for good management of mobile downloads (I don’t want to stream everything all the time, Roon).

Ernest Goes to Camp is the only movie I can recall that ends with a dramaric (frantic?) waving of a temporary injunction. After the Home Alone-esque fight betwist kids and construction workers, of course.

I have been playing around with Soketi as a self-hosted Pusher alternative and, while the software is great, boy is its documentation and error messaging lacking. If you’re trying to run it and get the error

There was an error while parsing the JSON in your config file. It has not been loaded.

This is, as near as I can tell, the minimum required set of keys to get an app working:

{ "debug": true, "port": 6001, "appManager.array.apps": [ { "id": "id", "key": "key", "secret": "secret", "webhooks" : [] } ] }

Without the empty webhooks array, it kept failing on me.

I still have not gotten a pm2 instance to accept a config file 😭️. I gave up on the Docker instance because it doesn’t allow more than one app per instance and I want something more flexible.

I’m sure it’s great and super easy if you’re just spinning up a single app, though!