Long time…
Deleted Scenes
Miss Snark’s Crapometer
- That’s Miss Snark. Not Ms, Mrs, or “Dear Agent.” You’ve heard it before, but properly addressing your letter to a person is vital
- Query letters need to indicate plot. I remember reading that over and over again–“This isn’t a plot, just a bunch of events.” Plot has conflict, a course of action and resolution.
- Less common, though, plot is also not a complete synopsis. Keep it sharp, keep it short.
- Only publishing credits count. It doesn’t matter where you live, what your job is (unless it’s pertinent to the story), or how many of your stories you posted online have gotten great comments. If you don’t have publishing credits (like yours truly), just don’t say anything at all.
Clear sailing ahead
Review: My Name Is Asher Lev
“Dialog’s easy,” he expounded. “It’s just people talking!”
Sadly, the contrary is true. Good dialog takes a tremendous amount of work, and doesn’t bear as much resemblence to the way people actually talk as you might think. Here are some things that I’ve learned about writing dialog. By no means do I claim to have mastered any of these, but they’re mostly points I have on my editing list to keep track of as I’m working.
- Avoid embelished dialog attribution — As a new writer, it often feels awkward to continually write “he said” or “she said” throughout the dialog. There are so many great synonyms to liven up those little tags with! Quash this urge. Those fancy words you try to slip in instead of “said” (or occasionally “asked”) often detract from the flow, and don’t give it nearly the boost you think you’re adding.
- Avoid unnecessary dialog attribution — This goes hand and glove with the first point. If it’s clear without attribution who is speaking, drop it all together. This has been recently pointed out in my own work. I’d heard it before, but taking a good hard look at it, I see I’ve slipped too many of those in. Especially in scenes where two people are talking, must of the dialog should carry itself, without much modification.
- Do include action — It is entirely appropriate, in fact desirable, to mix up your dialog with characters doing things. This is a great way to clarify attribution (if necessary), convey extra information about how the characters are responding to the dialog and move forward the action in a scene. I avoid doing this in each block of dialog, but every couple paragraphs it will often keep things moving along.
- Tighten, tighten, tighten — Unless you have a character who specifically talks in a more formal manner, your dialog should be tighter than actual speech. When people talk, there are tons of pauses, unnecessary phrases, hmms and haws, stuff that gets really boring to read. I wrote a story in college once where I had lovingly constructed all the dialog to sound incredibly accurate detail. Several classmates pointed out how well I’d done at mimicing people’s speech, but the professor (rightly so) called out how much that accuracy dragged down the pacing. When in doubt, keep dialog short and punchy.
- Name usage — Another recent find in my writing was the use of first names between characters. I often skirted past overdoing the attribution by having the characters refer to each other by name, “Kyle, we should….”, “Doesn’t that seem dangerous Emily?” Don’t do what I do! Once it was pointed out, I started paying attention to my own speech. It is quite rare that I’ll actually use someone’s name in conversation, except possibly in a greeting.
So there it is, my current recap of my own dialog’s rehabilitation!
Review: The Fionavar Tapestry
Probably the thing that impressed me most about this trilogy was its interactions with the typical cliches of fantasy. If I told you I was reading a series with the following elements in it, what pops into your mind:
- A world, Fionavar, which is the central world in a sprawling multiverse
- A dark lord, bound for a thousand years after a devastating war that has shaped the world
- Five people from our world, magically transported to Fionavar, where each is revealed to have special traits for the war against the newly freed dark lord
- Exiled princes and kings coming home to their thrones
- Heroes of old reincarnated to fight in this, the most critical of all wars
If you’re reaction to that list is anything like mine would be, you probably wouldn’t be inclined to pick up the series. Each of those ideas has been pounded to death in thousands of D&D-derived, poorly written, door-stop fantasy novels. The list reeks of cliche and shallow stories relying on these concepts to give it any sliver of weight.
And here’s the amazing thing–it worked. I read the series and watched as Kay breathed life into each of these old, worn ideas. Each of the characters from our world had something unique to contribute in Fionavar, but they were fully fleshed-out characters first. Kay worked with all these common ideas, but never once fell back to relying on the idea itself to lend the story power. He made you care about the people, made the world come alive, and it didn’t matter that summarizing the series lends a set of hackneyed tropes overused ever since Tolkien.
I’ve heard it said many times before that as long as you understand a fiction writing rule well enough, you can break it. Writers like Kay and Wolfe (whose duology The Knight and The Wizard struck many of the same chords for me) can take the most cliched idea and make it dance before us. Man, I hope some day I can do that!
Application_Start and ASP.NET identity impersonation
Now if that isn’t a gripping title, I don’t know what is!
Found out an interesting bit of trivia about ASP.NET and its processing life-cycle. The code I was working with has a per-application cache that was being loaded during the first web request that came in. There was an immediate problem with it reloading the cache multiple times under sufficient load, so I just put a locking solution into place to get around the problem. For a longer term fix, I thought the right solution would be moving the cache load from Application_BeginRequest out to Application_Start.
That’s when I ran headlong into the trivia. The system was using ASP.NET’s built in identity impersonation to pass credentials to our SQL Server backend. As soon as a moved the code to Application_Start, though, I got failures to connect to the database because the user wasn’t identified.
A little digging turned up this reference which explained it pretty well. ASP.NET doesn’t start impersonating a Windows identity until after Application_Start has finished. That meant that when my code was running, it was as the local ASPNET identity, which didn’t have the rights to access the database. Given our setup, that wasn’t about to change, so the code remains, healthy and happy in Application_BeginRequest.