Visualizing Story Structure

One thing I love about code is that I can see the struc­ture at a glance; branch­es and func­tions stand out, so I can get a men­tal map of how things are laid out. Obvi­ous­ly it doesn’t make a dif­fer­ence in terms of what the code does, but it makes it much sim­pler to rea­son about things.

Case in point.

int a = 10; int b = 20; int c = a + b; if(c < 50) { printf("Expected result.\n"); } else { printf("Something is broken.\n"); }

int a = 10;
int b = 20;
int c = a + b;
if(c < 50) {
printf("Expected result.\n");
}
else {
printf("Something is broken.\n");
}

The two blocks of code do the exact same thing, but the sec­ond is far sim­pler to read. In lan­guages like Python, the code actu­al­ly has to match a struc­ture clos­er to the sec­ond because it’s eas­i­er to read and rea­son about. What does this have to do with writ­ing though?

Here’s a para­graph from one of my recent short sto­ries.

Well…we keep all strays in iso­la­tion for a few days, just in case they have par­a­sites or some­thing.” I slid my hand to Pinecone’s chest and scratched the tuft of white fur between his front legs. “He came back clean, but one of our vets checked the rest of his lit­ter and found some pret­ty nasty stuff in their bel­lies. Strays can’t be picky eat”—my voice caught—“they can’t be picky eaters, and mom found some­thing awful. They all got sick…then they all passed away. The vet said it was would have been painful.” Salty tears slid down my cheeks.

It’s about a half-dozen sen­tences (most­ly dia­logue), but it visu­al­ly looks like a blob. At a glance, I can’t tell where the dia­logue begins and ends. I can’t get a feel for how long any of the sen­tences are. The struc­ture of this para­graph is lost with­in its con­tent.

Do any of those things mat­ter to a read­er? Prob­a­bly not, since they’re con­sum­ing a sto­ry the way the author pre­sent­ed it. To authors though…yeah. Even ama­teurs like me know to mix up sen­tence length and para­graph style or slip actions in the mid­dle of dia­logue to break up things up. One of my bad habits is falling back on the same pat­terns in dia­logue again and again.

  • If a para­graph starts with dia­logue include a tag to iden­ti­fy the actor.
  • Start a para­graph with action to iden­ti­fy the actor and drop the tag.

Eas­i­ly nine­ty per­cent of my dia­logue fits one of those pat­terns. While these are fine guide­lines, in long sec­tions of dia­logue it starts to feel samey and pre­dictable. If I can see the struc­ture of my writ­ing though, I can (in the­o­ry) iden­ti­fy when I’m falling too heav­i­ly on these pat­terns for long stretch­es.

The same para­graph as above looks like this in my edi­tor is for­mat­ted like this.

\enquote{%
  Well\ldots{}we keep all strays in isolation for a few days, just in case they have parasites or something.%
}
I slid my hand to Pinecone's chest and scratched the tuft of white fur between his front legs.
\enquote{%
  He came back clean, but one of our vets checked the rest of his litter and found some pretty nasty stuff in their bellies.
  Strays can't be picky eat%
}\textemdash{}my voice caught\textemdash{}\enquote{%
  they can't be picky eaters, and mom found something awful.
  They all got sick\ldots{}then they all passed away.
  The vet said it was would have been painful.%
}
Salty tears slid down my cheeks.

Now the struc­ture is far more clear. I can see each chunk of dia­logue and how it cor­re­sponds to the para­graph as a whole. It’s obvi­ous at a glance that my sen­tence length decreas­es in the last sec­tion of dia­logue. The only part of the struc­ture that isn’t clear is the narrator’s voice catch­ing in their throat.

Since I want my nar­ra­tor to be caught up in their emo­tions near the end, the short­er sen­tences make sense. I got lucky while writ­ing the first draft, but on my nor­mal days (when my writ­ing is even worse than usu­al), now the prob­lems stand out more eas­i­ly.

So will this mag­i­cal­ly make writ­ing bet­ter? Of course not, just like a nice visu­al struc­ture can’t make source code mag­i­cal­ly bet­ter. For mor­tals like me though, I get to rea­son about aspects of my writ­ing that would oth­er­wise be dif­fi­cult.

Automate the Mundane

Nobody likes doing mun­dane tasks. Nobody. Not even the mots obses­sive-com­pul­sive per­son in the world enjoys mun­dane, bor­ing, triv­ial tasks, espe­cial­ly when they usu­al­ly don’t make a dif­fer­ence right now.

And then, like clock­work, they make a big dif­fer­ence. And you’re stuck doing all your mun­dane tasks at once, even though they suck. And you hate them. And they’re tedious, and bor­ing, and all lots of oth­er neg­a­tive adjec­tives. But they’ve got­ta get done.

Instead, fig­ure out what things you can auto­mate, so they’re hap­pen­ing even though you don’t do them.

For me, that’s spellcheck­ing.


Con­tin­ue read­ing “Auto­mate the Mun­dane”

Trimming the Fat

Before going on Scri­bophile, the last peo­ple to read any­thing I put effort into writ­ing were col­lege pro­fes­sors. As a Com­put­er Sci­ence major, every paper I wrote was for a gen­er­al edu­ca­tion course, and most of those pro­fes­sors didn’t both­er read­ing papers thor­ough­ly. One pro­fes­sor even shared, open­ly, that he grades entire­ly based on length. End result: I have a bad ten­den­cy to be over­ly ver­bose when I write. The pro­fes­sor who grad­ed based on length got papers that includ­ed dis­cus­sions on video games, dogs, and snack foods, despite teach­ing Anthro­pol­o­gy.

Because of this, one of the best things I get out of cri­tiques are places I can remove words and even entire para­graphs. Even when I think I have a great piece of writ­ing (well, great for me, which is a low bar), there are things that can be removed. From a recent piece I post­ed:


Con­tin­ue read­ing “Trim­ming the Fat”

Filter and Weasel Words

I learned new terms today: fil­ter words and weasel words. In short:

  • Fil­ter get in the way of prose and dis­tance the read­er from the action. They make it easy for the writer to tell the read­er what’s going on instead of show­ing them. “The dog seemed agi­tat­ed wait­ing for her own­er,” instead of “The dog paced in front of the bay win­dows wait­ing for her own­er.” “The pret­ty girl looked unin­ter­est­ed in the guy ask­ing for her num­ber,” instead of “The pret­ty girl ignored the guy ask­ing for her num­ber.”
  • Weasel words leave text feel­ing ambigu­ous. “He might be the hero’s broth­er.” “The body may have been stolen.” “The dog could have eat­en the roast.” These sen­tences don’t help tell the sto­ry because the weasel words (in bold) ren­der the text mean­ing­less. “He might be unre­lat­ed to the hero.” “The body may be right where we left it.” “The dog could have ignored the roast and slept.”

Remov­ing these cleans up the prose and makes it more inter­est­ing. A post on Scri­bophile sug­gest­ed writ­ing a macro in Word to detect these words and flag them but, since I don’t use Word, that doesn’t help me. Instead I imple­ment­ed the same func­tion­al­i­ty in sh.


Con­tin­ue read­ing “Fil­ter and Weasel Words”

Doing Diversity Right

Let’s talk about one of my absolute favorite shows: BoJack Horse­man. If you haven’t watched it pull it up on Net­flix and watch it. All of it. Seri­ous­ly, this post is going to be filled with spoil­ers. I’ll wait.

I bring up BoJack Horse­man because it’s one of the shin­ing exam­ples when it comes to diver­si­ty. Now that you’ve watched all thir­ty-six episodes, you’re aware that the show has a diverse cast of char­ac­ters. Some of the main char­ac­ters are ani­mals (Todd and Diane being the only main char­ac­ters who aren’t ani­mals) but we also have gay char­ac­ters (Karen and Tanisha’s wed­ding in sea­son 3), Viet­namese (Diane), black (Cor­duroy), and even an asex­u­al (Todd).


Con­tin­ue read­ing “Doing Diver­si­ty Right”

Version Control for Fun and Profit

Keep­ing track of old ver­sions of your work is one of those things you don’t appre­ci­ate until you have it. Most peo­ple keep old ver­sions with a mish­mash of file names (novel.doc, novel-backup.doc, novel-backup2.doc, novel-backup-september-2015.doc, …) or using a ser­vice like Google Dri­ve or Drop­box. These solu­tions work but to say they’re lack­ing is an under­state­ment. Enter git.


Con­tin­ue read­ing “Ver­sion Con­trol for Fun and Prof­it”

Special Characters

Sec­tion 11.12 of the The Chica­go Man­u­al of Style’s six­teenth edi­tion rec­om­mends includ­ing a list of spe­cial char­ac­ters at the end of any man­u­script (a spe­cial char­ac­ter gen­er­al­ly being any­thing not found on a stan­dard key­board). Because I’m lazy I want some­thing to do the work for me so I don’t have to track what char­ac­ters I’m using through revi­sions. Let’s make LaTeX track the spe­cial char­ac­ters we use.


Con­tin­ue read­ing “Spe­cial Char­ac­ters”