Fancake Theme for March: Siblings
Mar. 3rd, 2026 10:05 am
This theme runs for the entire month. If you have any questions, just ask!


Does a mad scientist do what they do out of sheer love of the game, or because they can’t just up and quit doing the whole mad science thing? Do they love their work, or is it just unhealthy obsession? Author Kirsten Kaschock looks at some of fiction’s most well-known inventors in the Big Idea for her newest novel, An Impossibility of Crows, drawing parallels between herself, her main character, and all the truly mad creators of the past.
KIRSTEN KASCHOCK:
A crow the size of a horse.
The dream terrified me but not the way you’d think. I was drawn in. A little hypnotized. Even in the dream I wanted to understand how the thing came into being. And, in the dream, the crow wasn’t threatening me—just doing crow things.
The crow kept coming back, not at night, but in my wandering mind or whenever I saw an actual crow. I’d look at one walking in the snow or huddled in a tree and think to myself, “What if?” That’s when I started sketching the crow’s maker: Agnes Krahn.
I needed to know who would decide to build (I often call it building rather than breeding for reasons I can’t quite explain) a crow of such size and why? To figure that out, I started writing as if I were Agnes—a scientist, of course—commenting on her world in real time. The book had to be a diary. But because she was a scientist, an ex-chemist to be exact, Agnes also included her research in these pages. And then, other odds and ends kept arriving, including letters from Agnes’s long dead mother. It wasn’t until that moment that I realized that the book would be so closely linked to Mary Shelley’s Frankenstein—which is also epistolary and multivocal. But there was already a marked difference. Agnes, unlike Victor Frankenstein, is a woman.
How many other unhinged women scientists have found their way into literature? Fewer, I’d wager than their male counterparts. I imagined Agnes’s reasons for building Solo (the crow’s name is Solo) to be different than most of the mad scientists’ I have read, and more like Mary Shelley’s own backstory: never knowing her own mother, her loss of a child, a need to prove herself to the poets among which she found herself.
I knew Agnes wasn’t driven by ego or ambition, exactly. She isn’t selfless either. God no. But her obsession with increasing the size of the bird has a reason other than narcissism: she wants to provide her daughter with wings.
This is where Agnes and the character of Victor F. part ways. When I realized why Agnes was building Solo, she started to resemble other creators from other stories.
Agnes wants to give her daughter this crow, but what her daughter thinks or feels about this is irrelevant. Agnes is trying to provide an escape route for someone who—I learned while writing her—does not feel particularly trapped. But Agnes is oblivious to how her daughter perceives herself. In this way, Agnes is as monstrous as most mothers.
The model I used for their relationship is actually that of a father and son—Daedalus and Icarus. I’ve long loved this Greek myth, although it was taught to me as a tragedy of disobedience: warned about the dangers of flight, Icarus cannot help but fly too close to the sun. But what if the fault lies with Daedalus, who should have known his child better? In my novel, Agnes does not know her daughter at all. This is both their tragedy and another mystery I had to solve: Why doesn’t she? Writing a Gothic Horror novel turned into a bit of a rabbit hole… a Russian doll. The book kept asking me why things are the way they are. Why people do the things they do. And at the bottom of every version of Agnes I found another woman, another layer of hurt.
To be honest, this is why I write in the first place. To get to the under-questions, the ones below the surfaces of thought.
Solo, the crow, is in some ways a cipher: a darkness onto which I was reading human nature. But Solo is also very real. He is an immense crow, with all the intelligence of a crow (maybe more), and thus he is horrifying in his own right. That’s how we read each other, too. We know people as what they are to us, and only if we are incredibly lucky and attentive do we ever learn who they are beyond our needs, fears, and desires of them.
Agnes is the only one in the book who doesn’t see Solo as an existential threat, or not until it is too late. She may not admit it to herself, but as she builds him—he grows into a replacement for her daughter rather than a gift to her. She is Mary Shelley. She is Victor Frankenstein. She is Daedalus. And she is Gepetto. As she gets more and more drawn into her experiment, her attention to her family wanes and her devotion to the crow increases. I, myself, am married to a scientist. I am an artist. We have both done this with our work. We do this. Agnes is also him. And she is me.
Her madness I am familiar with: Agnes wants to create a life larger than her own. Somehow, she believes that Solo can free her from her guilt and grief.
The big idea in An Impossibility of Crows is this: when you bury your feelings they don’t stay dead—and when they rise up, they may find a form beyond any you can hope to control. I began writing with a single frightening image. I moved quickly from there to considering the crow’s creator. Then, in seeking to understand Agnes, I progressed through a series of models towards my own reasons for making.
I had a teacher once who said that writers only write about three things: sex, death, and writing. And then there’s this old joke: if it’s not one thing, it’s your mother. I think many things can be true at once. Nothing is ever Solo. And everything is.
—-
An Impossibility of Crows: Amazon|Barnes & Noble|Bookshop





Agatha has inherited some Windows Forms code. This particular batch of such code falls into that delightful category of code that's wrong in multiple ways, multiple times. The task here is to disable a few panels worth of controls, based on a condition. Or, since this is in Spanish, "bloquear controles". Let's see how they did it.
private void BloquearControles()
{
bool bolBloquear = SomeConditionTM; // SomeConditionTM = a bunch of stuff. Replaced for clarity.
// Some code. Removed for clarity.
// private System.Windows.Forms.Panel pnlPrincipal;
foreach (Control C in this.pnlPrincipal.Controls)
{
if (C.GetType() == typeof(System.Windows.Forms.TextBox))
{
C.Enabled = bolBloquear;
}
if (C.GetType() == typeof(System.Windows.Forms.ComboBox))
{
C.Enabled = bolBloquear;
}
if (C.GetType() == typeof(System.Windows.Forms.CheckBox))
{
C.Enabled = bolBloquear;
}
if (C.GetType() == typeof(System.Windows.Forms.DateTimePicker))
{
C.Enabled = bolBloquear;
}
if (C.GetType() == typeof(System.Windows.Forms.NumericUpDown))
{
C.Enabled = bolBloquear;
}
}
// private System.Windows.Forms.GroupBox grpProveedor;
foreach (Control C1 in this.grpProveedor.Controls)
{
if (C1.GetType() == typeof(System.Windows.Forms.TextBox))
{
C1.Enabled = bolBloquear;
}
if (C1.GetType() == typeof(System.Windows.Forms.ComboBox))
{
C1.Enabled = bolBloquear;
}
if (C1.GetType() == typeof(System.Windows.Forms.CheckBox))
{
C1.Enabled = bolBloquear;
}
if (C1.GetType() == typeof(System.Windows.Forms.DateTimePicker))
{
C1.Enabled = bolBloquear;
}
if (C1.GetType() == typeof(System.Windows.Forms.NumericUpDown))
{
C1.Enabled = bolBloquear;
}
}
// private System.Windows.Forms.GroupBox grpDescuentoGeneral;
foreach (Control C2 in this.grpDescuentoGeneral.Controls)
{
if (C2.GetType() == typeof(System.Windows.Forms.TextBox))
{
C2.Enabled = bolBloquear;
}
if (C2.GetType() == typeof(System.Windows.Forms.ComboBox))
{
C2.Enabled = bolBloquear;
}
if (C2.GetType() == typeof(System.Windows.Forms.CheckBox))
{
C2.Enabled = bolBloquear;
}
if (C2.GetType() == typeof(System.Windows.Forms.DateTimePicker))
{
C2.Enabled = bolBloquear;
}
if (C2.GetType() == typeof(System.Windows.Forms.NumericUpDown))
{
C2.Enabled = bolBloquear;
}
}
// Some more code. Removed for clarity.
}
This manages two group boxes and a panel. It checks a condition, then iterates across every control beneath it, and sets their enabled property on the control. In order to do this, it checks the type of the control for some reason.
Now, a few things: every control inherits from the base Control class, which has an Enabled property, so we're not doing this check to make sure the property exists. And every built-in container control automatically passes its enabled/disabled state to its child controls. So there's a four line version of this function where we just set the enabled property on each container.
This leaves us with two possible explanations. The first, and most likely, is that the developer responsible just didn't understand how these controls worked, and how inheritance worked, and wrote this abomination as an expression of that ignorance. This is extremely plausible, extremely likely, and honestly, our best case scenario.
Because our worse case scenario is that this code's job isn't to disable all of the controls. The reason they're doing type checking is that there are some controls used in these containers that don't match the types listed. The purpose of this code, then, is to disable some of the controls, leaving others enabled. Doing this by type would be a terrible way to manage that, and is endlessly confusing. Worse, I can't imagine how this behavior is interpreted by the end users; the enabling/disabling of controls following no intuitive pattern, just filtered based on the kind of control in use.
The good news is that Agatha can point us towards the first option. She adds:
They decided to not only disable the child controls one by one but to check their type and only disable those five types, some of which aren't event present in the containers. And to make sure this was WTF-worthy the didn't even bother to use else-if so every type is checked for every child control
She also adds:
At this point I'm not going to bother commenting on the use of
GetType() == typeof()instead ofisto do the type checking.
Bad news, Agatha: you did bother commenting. And even if you didn't, don't worry, someone would have.
