Something I said to a coworker recently. Largely inspired by listening to Cortex, and I felt like giving it a slightly more visual treatment.
Something I said to a coworker recently. Largely inspired by listening to Cortex, and I felt like giving it a slightly more visual treatment.
My recent tinkering has been with Vapor, and while I mostly like their Fluent ORM, it has some rough edges and semi-undocumented behavior. At some point, I’ll feel confident enough in what I’ve learned through trial and error (combined with reading the source code – open source!) to actually make some contributions to the documentation, but for now, I’m going to throw some of the things I struggled with up here.
If you’re using a migration to add a column, and specifically want it to be non-null, you’ll need a default value. My first approach was to do a three-step migration, adding the column as nullable, then filling the default value on all rows, and then setting the column to be non-null, but that didn’t feel right. Eventually, though, I figured out how to express a DEFAULT constraint in Fluent:
let defaultValueConstraint = SQLColumnConstraintAlgorithm.default(/* your default value here */)
Then, in your actual schema builder call:
.field("column_name", /* your type */, .sql(defaultValueConstraint), .required)
Note that SQLColumnConstraintAlgorithm isn’t available from the Fluent module, you’ll need to import SQLKit first.
And here, a full worked example:
import Vapor
import Fluent
import SQLKit
struct DemoMigration: Migration {
func prepare(on database: Database) -> EventLoopFuture<Void> {
let defaultValueConstraint = SQLColumnConstraintAlgorithm.default(false)
return database.schema(DemoModel.schema)
.field(DemoModel.FieldKeys.hasBeenTouched, .bool, .sql(defaultValueConstraint), .required)
.update()
}
func revert(on database: Database) -> EventLoopFuture<Void> {
database.schema(DemoModel.schema)
.deleteField(DemoModel.FieldKeys.hasBeenTouched)
.update()
}
}
(For context, I’m in the habit of having a static var schema: String { "demo_model" } and a struct FieldKeys { static var hasBeenTouched: FieldKey { "has_been_touched" } } within each of my Fluent models – it keeps everything nice and organized, and avoids having stringly-typed issues all over the place.)
This book took a while to really capture my attention, in terms of time. In terms of how far into the book it took, I suspect it was about the usual amount of time it takes a book to grab me. The distinction being, usually I read books like I’ve got a grudge, like I’m trying to see how fast I can cram all these words into my brain. Not so, with this one — I’d read a chapter or two, and put it down. Sometimes for a couple minutes, so I could sit and process a bit, and then pick it up and continue; other times, it’d be a day or two before I tried again.
All in all, this isn’t the kind of book I tend to go for. It feels much more Literary than my default — which is largely the writing style, but something about the paper and the typesetting makes it feel like the kind of book I’d read for English class in high school, filling it with notes and highlights and a ridiculous amount of sticky notes.
By the end, it feels… semi-coherent. Which, by then, you’ve grown used to, because at the beginning it’s entirely incoherent. The writing style is “first draft of a book by somebody who got a doctorate on a specific week of history and has no grasp of the concept of expert blind spot.”
At the end, though, I liked the book. Apparently it’s been developed into a Netflix film, the cover tells me; I may watch it, because I can’t imagine the film adaptation at all feeling like the book.
In writing this, I can also tell just how much Didion’s writing style has influenced mine, at least at the moment. Consider this a cheap knock-off of a demo. And then go read the real thing, instead.
I don’t think I read the word ‘viscount’ a single time in this book without thinking of Enola Holmes, but that was a fun movie, and this was a fun book, so it all worked out okay.
Like the last book of Hale’s that I read, there’s a great deal of fun worldbuilding going on in a short read. Another alternate history thing, in an entirely different direction, and once again it provides a fun backdrop for a simple enough story.
Admittedly, the mystery itself is a bit convoluted, but it feels like a backdrop for the romance angle, so it can get away with it.
It’s a short read, so I think this short review will suffice. It’s a fun little story, with a silly little romantic plot, and sometimes that’s what you need. If that’s what you’re in the mood for, give it a read.
The introduction to this book was familiar enough that I did a quick search and found out I’ve read another book in this universe.1 I may go back and reread that one now, in fact, because I think that “Floodtide” did a better job of introducing the system of magic in a way that makes sense to my brain.
It’s also, largely, a much more human-scale story. The protagonist isn’t changing the world, she’s just trying to get through life, finding a little bit of happiness along the way. Sure, she has friends changing the world, living a grand, romantic life, and she’s determined to help them do that as best she can, but she’s still… a regular person. Sometimes, it’s nice to read things like that — it’s what got me watching Agents of SHIELD back when it first aired, after all.2
It reminds me, a little, of the idea of a space opera. There’s all sorts of large-scale things happening in the backdrop, but the actual core of the story is about the characters and how they’re doing, why they make the choices they do, that sort of thing.
I’m not certain how well I’m selling this book, but I did quite like it. Give it a go.
This book reminded me of the 2017 remake of The Mummy. Which, I must admit, sounds like an insult, but hear me out: this book is what that movie wanted to be.
The premise is fairly simple: what happened to Dr. Jekyll’s family? (And, further, what happened to any of the background characters in any of the popular novels of the time?)
And from that question, Goss made a marvelously interesting story. She’s establishing a shared universe for a lot of these stories, pulling together the literary zeitgeist of the whole period into a single interlinked whole, in a delightful way.
Beyond that, the actual writing style is very well done. There’s a main protagonist, and the story is mostly told from her viewpoint, but there are interjections from the other characters, and you learn fairly quickly on that, though she’s the protagonist, she’s not actually the one wring — just giving the occasional editorial comment. It reads like the, oh, third draft of a book, where you can still see all the margin notes thrown in by the various people reading through and remarking on their own perspective of the events in the book.
Very early on, this disorganized style is used for what I think is the most interesting piece of foreshadowing I’ve read in quite a while — one of the more impatient characters leads in with “no, no, you should start in medias res, like this” and suddenly we’ve skipped forward several chapters, to a very exciting scene, for something like half a paragraph, before we’re pulled back to where we were with “now hold on, they won’t know what’s going on if we jump right to there!” It is, frankly, delightful.
I very much enjoyed this book — as evidenced by my reading it in a single sitting — and highly recommend it. Give it a go, and, if you need me, I’ll be adding the sequels to my wish list.
I very nearly gave up on this book halfway through, the point of putting it down and not picking it back up again until a couple months had passed. I’m glad I gave it that second chance, though, because once I was over that hump, I quite enjoyed it.
That midpoint was where the amount of ‘fantasy’ in this fantasy novel jumped up by a lot. Because, yes, it’s a book about a capybara pirate, so of course the whole thing is a fantasy novel.1 But where it nearly lost me was in changing from “here’s a bunch of tropes that I’m using to make some characters I like” to setting up a whole new mythology unlike any I’ve seen before. And if I’d given up, that would’ve been a shame, because this new mythos is downright beautiful. I can’t honestly say that I follow every part of what’s going on, but I also can’t really say that I mind, because, again: beautiful.
I’m trying very hard not to spoil anything, because it all ties together so well. Suffice it to say that if you aren’t invested by the end of the story where Agnes makes her first appearance, you have my permission to give up on the remainder of the book.
Hopefully that won’t happen, though. Give it a try.
A magnitude 15 earthquake would involve the release of almost 1032 joules of energy, which is roughly the gravitational binding energy of the Earth. To put it another way, the Death Star caused a magnitude 15 earthquake on Alderaan.
This is a fun book to recommend, because unlike most books, there’s a demo available online. Go read that, and if you like it, the book contains more. It also has a very literal subtitle: “serious scientific answers to absurd hypothetical questions.”
Munroe has had a fascinating career to date, and I remain an avid fan of his webcomic. It was definitely a formative influence on the nerdier side of my sense of humor,1 and continues to make me laugh an average of slightly more than three times a week.2
This is a fairly good book for reading in small chunks – each ‘chapter’ is only a few pages long, and there’s no need to read them in any specific order.
All in all, it’s a fun read, and I definitely recommend it.
(Unknown Author)1
Seafood is a marketing term that was invented to convince people that ocean creatures are edible, rather than the stuff nightmares are made of.
This is, I think, the best cookbook I’ve ever read. Which, admittedly, doesn’t sound like a ringing endorsement, but I’ve read a frankly alarming number of cookbooks.2 So trust me when I say that this one is well worth the read. And, indeed, is worth actually reading straight through — though, aside from the introductory chapter, you can use it in the more conventional cookbook manner, and flip through the section you’re interested in at any moment.
Because, here’s the thing: not only is it funny — and of course it was going to be funny, it’s by You Suck at Cooking — it’s also smart. Smart, and clever, and… honest. It’s a masterwork of Being A Millennial, is what it is.
It is also, genuinely, an excellent introduction to cooking. I grew up cooking, so the kitchen holds no fear for me.3 In that regard, I’m not the target demographic of this book. The core audience here are the people who didn’t grow up being taught to cook, the people who might want to figure it out but are facing down a pile of unknown unknowns.4
So, if you’re looking for something lighthearted and fun, or if you don’t know anything about cooking and want a good starting point that’ll remind you you can do this, or you’re looking for some interesting new recipes to try — because there are some of those in there, too! — then I highly recommend this book. Check it out.
In my mind, the term for this genre is “popular science.” Or, possibly, “pop science.” (In this case, that’s also a pun on the subject.) Either way, it feels like a fun piece of beach reading – worth the time to read, which differentiates it from an airplane read,1 but not so heavy that you feel like you should be taking notes or pausing to take time to process.
For the most part, this book stands up pretty well, and the cover is minimal enough that the whole thing feels quite modern. Admittedly, it loses some of this with the occasional dated pop culture reference, and the final chapter, discussing the latest technologies, noticeably lags as a result of being, dear lord, almost two decades out of date.2
Still, though, it’s not like chemistry changes all that rapidly, and a lot of the explanations of how things work were quite neat. Give it a read.
Moving backwards, there were three things about this book that really captured my attention.
Lastly, the discussion of what Steve Jobs was like when he wasn’t being… what everyone thinks of when they think of Steve Jobs. The authors reiterate, many times, that the image of Jobs as alternating between ‘a genius’ and ‘an asshole’ was formed when he was very young, skyrocketing to fame at the helm of Apple. Later in life, he’d softened, become better able to have constructive discussions with people instead of just tearing into them – but, to the detriment of his public image, he’d also gotten very good at keeping out of the public eye when he wasn’t being Steve Jobs On Stage. Nobody was really afforded the chance to publicize that newer version of Steve Jobs.
Secondly, I’d never realized how integral to Pixar he was. At most, I knew he’d been involved in the company, led it for a while at some point; I hadn’t realized that he was the owner, one of the original people who built the company out of an immense talent pool bought wholesale from LucasArts. My mental timeline of Steve Jobs, betraying my tech industry bias, went Apple-NeXT-Apple. Pixar was an immense thing to miss out on, and realizing how much he’d shaped both Pixar and, eventually, Disney has me even more respecting the impact Jobs has had on our society.
And firstly, I found myself, over and over, contemplating the scale of technological change that happened within the lifetime of the company he and Wozniak founded. I think about these comparisons a lot, so here’s some of my favorites:
And, even more than all those “ooh, it can do lots of math even faster” comparisons, the thing that kept striking me – reading this, as I was, on an iPad Pro – was just the staggering technological capacity of everything I do with this device. It’s a multitouch touch screen, with a battery of onboard radios, enough storage space for every book ever written; it’s got a lovely keyboard and stylus, both of which attach using only magnets. This device is a miracle of modern technology, and I’ve gotten very used to it. Reading about the Altair 8800, with its toggle switches and LEDs, gave me just enough decontextualization to look at this magical slab of glass and think, wow. Wow.
After reading this book, I think that sort of moment is something Steve Jobs would’ve loved to see.
All in all, I really enjoyed the book, and I highly recommend it. It was nice to see a more balanced look into Jobs’ life, a more human side of the man who so indelibly shaped the modern world. Give it a read.
I suppose I’m making this a tradition, now, writing up what I have on my phone and what’s changed since last year. And why not? It’s fun, and it helps me a bit with the fact that I’ve let my blog post queue get very near empty.


This year saw the release of iOS 14, and with it, the ability to put widgets directly on your home screen, and to banish apps from your home screen to the App Library. Both of which I have pretty thoroughly taken advantage of – though I’ve only got the one page of apps, I almost certainly have more apps installed this year than I did last year.
Let’s do a quick look at my ‘widgets’ screen. I believe the official name is ‘Today View,’ but that’s a piece of information that I’m going to estimate seven people outside of Apple know off the top of their head, so we’ll move right along.
The upper half is a dashboard; at top left, we have a Smart Stack, showing Calendar above, and beneath it are a pair of Timery widgets that show me totals I want to keep an eye on throughout the day.
Top right, batteries; I used to think the idea of the bigger battery widget was ridiculous, but if I do everything precisely wrong, I can overwhelm it – think, phone, watch, AirPods with distinct battery levels, and the AirPods case, to boot. Still, I like that at-a-glance view, and I actually like that it doesn’t show percentages, it feels a lot lighter as a result.
Below that, I’ve got another Stack with a pair of Things widgets, showing my Today and Upcoming lists. I originally had a couple of my Areas displaying, as well, but found I wasn’t really using them.
Finally, I’ve got another Stack, this time a pair of the larger-form Timery widgets. The one you’re seeing is my “my projects” collection – including a deliberately-blank bottom-right, so that with a timer running I’ve still got a way to tap into the app without starting or stopping a timer. 1 The other one, which I won’t be showing for “NDA” reasons, is stuff for work.
Now the home screen, which my mental model has in five segments.
The four apps at top left are the “aspirational” section – Books, as I’m trying to train myself to reach for a book rather than searching the web for Content to keep myself entertained; fitbod, as part of my ongoing fitness routine/goals; Shortcuts, because I want to be free to automate tasks with ease; and Files… doesn’t particularly fit the theme, but I use it often enough for it to have earned that spot.2
Top right is the ‘health’ pile. It is, you guessed it, yet another Smart Stack.3 Topmost is FoodNoms, which I still heartily recommend to anyone who wants to start calorie counting.4 Below FoodNoms we have Streaks, which I’m using less than I did last year, but I still find it helpful. Despite the fact that I’ve been taking the same meds every morning for several years now, I still forget at least once a week, and Streaks is what reminds me. Finally, at the bottom, is Activity, which I think you could call one of the canonical widgets of the new style – a glanceable bit of information, always there.
Below these two we have… an unnamed section.5 It is, once again, a Smart Stack. On top we’ve got my main-use Shortcuts – the bottom two for playing music, ‘Things’ gives me a menu of various Things items/projects that I use semi-often, and ‘Auto’ is a lovely piece of work that does what Siri Suggestions was advertised as doing.6
Below Shortcuts is Weather. Apple’s Weather app still feels a little lacking in accuracy compared to Dark Sky, but I’m hoping they’ll rectify that (and get their display of “amount of rain” lining up with my actual expectations for what it means, a la Dark Sky) before they disappear Dark Sky entirely. The widget, though, makes me want to write a chapter for a UI textbook about how well it contextually displays information.
The final item in this stack is Fluidics. It’s not just shameless self-promotion, it’s also dogfooding! (And I really do think the widget is a beautiful piece of design, if I do say so myself.)
The bottom section is Regular Ol’ Apps.
Finally, we have the dock, which is only a visual distinction given that I’ve only got the one page.
About 2/3 of the way through this book, I wound up texting a friend, “I didn’t want t get invested in this book, because it’s creepy, but here I am, queueing up the nightmares.”
And, really, that’s a great summary of the book. It’s definitely creepy, but it’s also enrapturing. Think of… a swamp. It’s a place of decay, and death – but also, full of so much life. Beautiful, and terrible; ancient, but always changing. That’s how the story feels, all the way through.
In short, it’s excellent. Not too long a read, so not too long a review, but I quite liked it. Check it out.
I enjoyed “Carry On” so much that I immediately picked up the sequel and read through it. “Wayward Son” is also a fun read, but not nearly as strong as “Carry On” was; “Carry On” is a conclusion and a beginning, while “Wayward Son” is… the middle book.1 It feels like it’s trying to progress the arc of the story, while still leaving enough un-finished for there to be a properly conclusive sequel — to the degree that the “ending on a cliffhanger” doesn’t actually add much more “well, guess I need to read the next one to see how this ends” than the book already had.
Still, there’s a lot of fun worldbuilding going on — an actual proper treatment of what the United States is like in this magical world, unlike Rowling’s utter disregard for… our entire culture, really.2 It honestly leaves me wanting to see other countries in this world, as well. Anglocentrism fits something that started as a Harry Potter parody, but now that we’ve established that Magical Britain is Britain and Magical America is “America, but more libertarian”, I’d love to see, like, Magical Brazil. Magical China. Fill out the world a bit more — what sort of international laws are there governing magic? How does the rest of the world deal with the fact that the Magical United States has no government, and the only thing keeping magic from going viral is that all the magic-users are secretive by nature? Lord knows that won’t last.
I’ll wrap up my rambling here, though. It’s an alright book; I think my main issue with it is timing. If I’d been able to go through all three in the series in a row, I suspect I would’ve enjoyed it a bit more — there’s a lot of set-up for the next book, but now, instead of getting to carry right on to the pay-off, I’m just stuck waiting. So, y’know, maybe wait until next year, but then read it.
I keep going back and forth on whether or not I think this book is a parody of the Harry Potter series. On the one hand, it really obviously is – magic school in Britain, Chosen One, mysterious villain, rival from Old Money.1 But it’s doing so much more than just poking fun at these things that have become tropes; it has its own story to tell, and a system of magic that honestly makes more sense than anything Rowling ever accomplished.2
But a good part of my enjoyment of the book is also in the contrast with Harry Potter. What if Harry and Draco had been roommates? (And yes, it’s magic, so we do get to say “they can’t just strangle each other, the school has magically-enforced rules about that.”) What was Draco thinking when Harry was doing the “I have to keep an eye on him at all times” thing in their whichever-th year?3
The opening couple chapters are a delight to read. It’s the start of the school year, which makes for a very clear narrative beginning point… except it’s the start of Simon’s final school year, and he’s been a Protagonist all along, so we’re coming in very much in medias res. The amount of “as you know, Bob” is kept very low, which makes it a fun puzzle of “what all Insane Bullshit has he survived so far?”, and I’ve always enjoyed a game of “what’s the setting.”
Suffice it to say, I heartily recommend this – I’ve been trying to reduce the number of books in my to-read pile, but the moment I finished the book I immediately ordered the sequel, so here we are. If you at all like Harry Potter, and want something without the… tainted association of Rowling, please do read this delightful book.