Looking for writing-related posts? Check out my new writing blog, www.larrykollar.com!

Wednesday, March 01, 2017 No comments

Tech Tuesday: Roll Your Own Writing System, part 3: Publishing MultiMarkdown

The series rolls on…

In Part 1, we had a look at Markdown and the five or six formatting symbols that cover 97% of written fiction. Last week, we saw how you can use Markdown without leaving the comfort of Scrivener.

This week, it's time to build an eBook using MultiMarkdown output. If you have been cleaning up Scrivener’s EPUB output in Sigil, you should find the process familiar—only, without most of the cleanup part.

First thing, output an HTML file through MultiMarkdown. In Scrivener, click the Compile button and select MultiMarkdown→Web Page in the dropdown at the bottom of the screen.

Under the Overhead

Open Sigil, then import your HTML into a new eBook—or better yet, a “skeleton” eBook with all the boilerplate files already in place.

All you have to do now is to break the file into separate chapters and generate a table of contents. You can save even more time by creating a custom text and folder separator in the last part of Scrivener’s Compile Separators pane:

<hr class="sigil_split_marker"/>

Then, when you’ve imported your HTML file, just press F6 and Sigil breaks up the file for you. If you start with a skeleton EPUB file, you can have a perfectly-formatted EPUB in a matter of minutes. Seeing as it takes me an entire evening to clean spurious classes out of Scrivener’s direct EPUB output, this is a gigantic step forward.

One thing to watch out for: MultiMarkdown inserts a tag, <meta charset="utf-8"/>, at the beginning of the HTML output. EPUB validators choke on this, insisting on an older version of this definition, but all you have to do is remove the line before you split the file.

Breaking Free

Perhaps you want to slip the surly bonds of Scrivener. Maybe your computer died, and your temporary replacement does not have Scrivener—but you saved a Markdown version of the latest in your Dropbox, and your beta readers are waiting.

Scrivener has its own copy bundled inside the app, so you’ll need to download MultiMarkdown yourself. It runs from the command line, which is not as scary as it sounds. In fact, Markdown and MultiMarkdown are very well-suited to a distraction-free writing environment.

After you’ve installed MultiMarkdown, start a Terminal (or Command Line on that Microsoft thing). On OSX, press Cmd-Space to bring up Spotlight. Type term, and that should be enough for Spotlight to complete Terminal. If you prefer, you can start it directly from /Applications/Utilities.

Next, move to the right directory. For example, if your file is in Dropbox/fiction, type cd Dropbox/fiction (remember to reverse the slash on the Microsoft thing).

Here we go…

multimarkdown mybook.md >mybook.html

Now you have an HTML file that you can import into Sigil (just don’t forget to remove that pesky meta tag).

Silly CSS Tricks

Last week, I mentioned a couple of things you can do with CSS to help things along.

First, when you Compile your Scrivener project to MultiMarkdown, click Meta-Data in the options list. You should see some pre-filled options: Title, Author, and Base Header Level. Click the + above the Compile button to add a new entry. Call the entry CSS then click in the text box below and enter ../Styles/styles.css—if you’re using Sigil, it puts all stylesheets in the Styles directory. You can give it another name if you have a stylesheet pre-defined (mine is called novel.css).

Pre-define your CSS

Now open your stylesheet, or create one if you need to. Add the following entries:

p.sectionbrk {
    text-indent:0; text-align:center;
    margin-top:0.2em; margin-bottom:0.2em
}
.sectionbrk + p { text-indent: 0; }
h1 + p { text-indent: 0; }

The first entry formats the sectionbrk class to be centered, with some extra space above and below. The second one is more interesting: it cancels the text indent for the paragraph after a section break. The third entry does the same thing for a paragraph following a chapter heading (you can do this for h2 if needed as well). This is the proper typographical way to format paragraphs following headings or breaks, and you don’t have to go look for each one and do it yourself. I told you this can save a ton of time!

Again… Now What?

Now you can work with MultiMarkdown within Scrivener. You can export it, generate an eBook, and work with the file outside of Scrivener.

Next week, I’ll show you another way to make an eBook from your MultiMarkdown file.

Comments? Questions? Floor’s open!

Tuesday, February 21, 2017 1 comment

Tech Tuesday: Roll Your Own Writing System, Part 2: Markdown in Scrivener

Last week, I showed you a brief introduction to Markdown. I only hinted at why you might want to use Markdown instead of comfortable old bold/italic (and other decorations). I’ll get detailed next week, but here’s a hint: you can save yourself an entire evening of work getting your eBook prepared for publication.

This week, though, we’re going to look at how Scrivener and Markdown work together. TL;DR: Very well, actually.

Scrivener supports a Markdown extension called MultiMarkdown. You don’t have to worry about the extensions, unless you’re writing more technical fiction with tables and the like. For fiction, what I showed you last week should cover all but decorative stuff.

Make a copy of your WIP. Got it open? Original one is closed? Okay, let’s get started.

In Scrivener, click the Scrivenings icon in the toolbar, then click the Draft or Manuscript icon in your Binder (whichever one your story is in). You should now see your entire story laid out in Scrivener.

Click anywhere in the story text, then go to Format menu→Convert→Bold and Italics to MultiMarkdown Syntax. If you use anything other than bold/italic in your writing—like typewriter font for text messages, or blockquotes for letters—you’ll have to go through your manuscript and mark those yourself. This is that other 10% I mentioned last week.

Stylin’

Scrivener has formatting presets, since it only remembers the formatting and not the preset name after you apply it. Not as good as styles, but they work for our purposes.

Markdown uses backticks (a/k/a accent grave) to define typewriter font: `this is a text message`. You can either insert your backticks by hand, or let Scrivener insert them when you publish. I have a preset called Typewriter for this, but we can define a new preset or redefine an existing one. Here’s how it works: any string of text marked “Preserve Formatting” (Format menu→Formatting→Preserve Formatting) gets the backtick treatment at Compile time.

So go find a text message or other small string of typewriter text in your manuscript, and select it. Apply Preserve Formatting as described above, and the text gets highlighted in cyan or light blue.

Now, go Format menu→Formatting and:

  • for a new preset: New Preset from Selection
  • to redefine a preset: Redefine Preset from Selection→(preset name)

For a new preset, enter the name in the dialog box. In both cases, select Save Character Attributes in the dropdown to create a text (as opposed to a paragraph) preset. Now, any time you mark a selection of text as Typewriter (or TextMsg, or whatever you called it), you’ll see it highlighted and in your designated typewriter font.

Looks good, gets converted to backticks. What’s not to like?

To make a block quote, put a > at the beginning of each paragraph in the block, and in any blank lines in between. Add a blank line to the end of the blockquote so the next paragraph doesn’t get picked up as well. Scrivener assumes that preserved-format paragraphs are code blocks, and displayed as-is, so you can’t use its Block Quote preset this way unless you turn off Preserve Formatting. In either case, you’ll have to add the > character.

Okay, ship it!

Not quite. There are still a few things you need to set up before you can get to the Efficiency Nirvana that Scrivener and MultiMarkdown offer.

To see where we need to go, let’s have a look at the output. In Scrivener, click Compile, then go to the Compile For: dropdown at the bottom of the compile window and select MultiMarkdown. You could also try MultiMarkdown→Web Page. Don’t forget to check which directory it’s going in, so you’ll be able to find it. Open it an a text editor (Text Edit, Notepad, whatever you like).

You should now see a few lines at the top with the story and author name, followed by the rest of the story. If you don’t use blank lines between paragraphs, your paragraphs run together in one big blob. There may not be any chapter titles, and likely no section breaks beyond blank lines. So let’s start fixing things. You’ll only have to do these once, or (at worst) once for each project.

Close the file, go back to Compile, and click Separators in the list. For Text Separator, click Custom and then enter the following:

<p class="sectionbrk">&bull; &bull; &bull;</p>

This tells Scrivener to put three bullets between each scene. (Anything Markdown or MultiMarkdown can’t do directly, you can do with HTML.) You’ll want to create or edit a CSS file to format the sectionbrk class the way you want (most people want it centered with a little space above and below). We’ll go over how to automatically link the CSS file to your HTML in a later post.

Set the other parts to Single Return. That’s all you have to do for Separators. In the other options:

  • Formatting: Check Title for Level 1 (and lower levels, if needed) folders.
  • Transformations: Check:
    • Straighten Quotes
    • Convert em-dashes
    • Convert ellipses
    • Convert multiple spaces
    • Convert to plain text: Paragraph Spacing
  • Replacements:
    • Replace (Option-Return twice); With (Option-Return)<p class="sectionbrk">&nbsp;</p>(Option-Return twice)

The Transformations section sounds a little scary, but MultiMarkdown re-converts those text entries to their nice typographical equivalents. I suggest you do it this way for more consistent results. The Replacements entry just inserts a blank section break that won’t get deleted during a conversion. You could just insert a non-breaking space, but (again) a later blog post will show you how you can use this to eliminate formatting issues.

Converting paragraph spacing to plain text replaces a paragraph break with two paragraphs, inserting a blank line between paragraphs as Markdown expects. It works if your Body paragraph format puts space at the beginning or end of the paragraph. If you use indents instead, try “Paragraph Spacing and Indents” and hope the indents are deep enough for Scrivener to catch.

If that doesn’t work, add two more entries to Replacements:

  • Replace (Option-Return); With (Option-Return twice)
  • Replace (Option-Return four times); With (Option-Return twice)

The two replacements are needed because of a bug in Scrivener. It converts one return to four instead of two, but the second time through fixes it.

Now hit Compile, then open the generated file in a text editor. You should see a plain text file, with a blank line between each paragraph and Markdown syntax for various highlighting. You can go back into Scrivener and try MultiMarkdown→Web Page to see what that looks like, too.

Now What?

Now that you can export a clean MultiMarkdown file from Scrivener, you can work with it in any text editor. Sometimes, just looking at the same text in a different way is enough to get you moving on a WIP and get it done. If you have an iPad, you can still edit your Markdown-ified project using Scrivener on iOS, or you can use an iOS Markdown editor like Byword to edit your Markdown file (and import it back into your Scrivener project later).

But that’s only scratching the surface. Next week, we’ll start looking at ways to prep your MultiMarkdown file for beta or final publishing.

Comments? Questions? Floor’s open!

Monday, February 20, 2017 1 comment

In-Tents Weekend #2

What’s more fun than a campout?

Camping out near the beach, of course!

The second of two camping trips offered to Mason’s Cub Scout pack this month was on Tybee Island. I’ve always wanted to go there ever since I heard about it back before I got married; as for Mason, he was entranced by the idea of camping out completely surrounded by water.


Backpack on wheels. There’s more room behind
the seats than you might think.
Having made notes about what we needed most on the last trip, I was able to do more with even less this time. It helped that I found my old backpacking stove, which is far more compact than what everyone else had, and a few other things. Seeing as Tybee is a nearly 6-hour drive from FAR Manor, I took Friday off work for the drive down (Mason’s school was out), and figured we had to leave by 11am to have enough light to set up camp. We got moving at 11:05, which goes to show that the fewer people you have involved in a trip, the less late you’ll be.

Last time I had gone to Savannah was when Daughter Dearest was in high school, going to either All-State Choir or GMEA. One thing I’d forgotten from those days: I’m sure Cat Stevens got the idea for his song Miles from Nowhere while traveling on I–16. What a boring drive that is. Fortunately, I’d brought a couple of frapps along, and I consumed them both. Mason used one of the empties when he went from “don’t need to go” to “freaking out” in 10 minutes. I swear, that kid’s bladder is the size of a walnut.

Warmth
But we got to the campsite in good order, and got the tent set up before it got dark. Some of the other families came down on Thursday, and did set up in the dark. Mason immediately took to haring around with the other scouts while the adults got supper together and went over some of the things planned for the weekend. I also kept a close eye on the weather forecast; there had been a 30% chance of rain for Saturday predicted earlier in the week, which dropped to 20% then came back up to 30%. Mason went full-tilt until about 10pm, at which point I told him to curl up in the sleeping bag with the iPad for an hour. I cut him off at 11… he said, “I’m not gonna go to sleep,” and was snoring five minutes later.

Now let me tell you about the campsite. It’s a pretty big RV park, and was far busier than I’d expected for mid-February. The tent area abuts the local cop shop—and the rear entrance is actually inside the campsite. That meant we were treated to diesel motors and backup beepers at 3am, as they brought in an impounded car, and plenty of white noise from the facility’s HVAC units. At least it wasn’t as cold as the Scoutland trip—in fact, the coldest it got was about the same as the warmest at Scoutland. On the other hand, Scoutland didn’t have a problem with bugs. As it turns out, the gnat line has crept up past Savannah, and I’ve added “bug spray” to our must-haves for future trips.

Concentrated joe…
Next morning, I put the backpacking stove on an unused grill, and started making espresso. The other guys were impressed with both the stove and the maker, both of which I bought around 1983 or so. So I played camp barista and helped everyone fortify themselves for the day ahead. Amazing, how a few shots of black espresso go down soooo good when you’re camping out.


Barefoot on the beach. Even if it’s a bit cool.
Because the next event was the whole point of island camping… the beach! If you’ve never been to Tybee, there’s North Beach, pretty highly commercialized and near the lighthouse. But there’s a second beach area that’s a lot quieter, close to the river mouth. The water was about as cold as I expected, which meant I didn’t bring Mason a swimsuit. But that didn’t stop him from kicking off his shoes and plunging in with the other boys anyway. eye roll I figured I had another change of clothes for him, so no biggie. WRONG! I could have sworn I packed some extra pants, but I didn’t. I had an extra shirt, that was it. It required a trip to a Dollar General to find him another pair of pants that only cost $6 and he’ll wear some more anyway. But walking back was pretty miserable for him.

Sleeping was a little tough this trip. Not because it was cold, but Mason was determined to hog the entire air mattress, and I found myself on the verge of falling off several times. No matter what time we went to bed, he woke up at his usual 7am—pretty much before anyone else cared to drag themselves into the world of the living.

So “here comes the rain,” and we all did our personal anti-rain dances—tying down rain flies, moving air mattresses into the middle of the tents, stashing stuff in the tents or cars. I think my own dance steps may have put the final knife in the rain: I got the ponchos and umbrella out of the car, within easy reach, and put the car cover on. 15 minutes later, we had six drops of rain and the sun came out.

Tybee Light in the background
We capped off the weekend with a walk to North Beach on Sunday morning. Mason was mad because he couldn’t jump into the ocean again, but I let him pull up his pant legs and wade. He was okay with that, because the water temperature was (as he put it) “ICE BUCKET CHALLENGE!!!”

Finally, we started back to the manor. Up Boredom Boulevard (a/k/a I–16), more frapps consumed, one more Mason bladder-panic, and returned by six. I got Mason into the bath right away, but I didn’t get my shower until around nine (what I want or need is automatically less important than… well, anything). The tent got a heavy dew fall, and I needed to put it up to air out, and that didn’t happen either. Oh well, I took care of that tonight. The Miata isn’t happy about the garage being occupied, but we’ll all deal. Tomorrow, I’ll pack it up and we’ll be all set for next time.

Speaking of which, I think next time I’ll try using one sleeping bag as a pad on the air mattress, and another as a blanket. And, as Mason pointed out, we need to add pillows to the packing list.

Tuesday, February 14, 2017 No comments

Tech Tuesday: Roll Your Own Writing System, Part 1: Markdown

I’ve said this before, but for people who want to make a living (or even beer money) writing fiction, the best writing advice out there is still Kristen Kathryn Rusch’s: treat it like a business. Simple enough, but the ramifications are as wide as the world of commerce.
  • Watch your expenses, but don’t hesitate to spend where it’s going to improve your product.
  • Plan time for editing and marketing as well as writing (I haven’t done too well in that regard over the last year).
  • Set a budget, and track your expenses (and income) so you know if you’re meeting it.
  • Analyze your processes, and look for better ways to do things.
For someone like me, the latter can be dangerous. It’s really easy to go down a rathole, constantly tinkering with stuff instead of actually accomplishing anything. That goes double when I often have to write one-handed, with a baby in my lap who is trying to grab the keyboard or anything else within reach.

Still, I think I might have stumbled across something.
  • What if there was a way to write stories, using any computer (or tablet), anywhere you are?
  • What if you could preview your writing using a web browser?
  • What if you could output your writing in squeaky-clean HTML for producing EPUBs?
  • What if you could easily copy your entire oeuvre to a USB drive for backup or to continue writing when you’re offline?
  • And finally, what if you could play with different versions of your story to figure what what works best?
In other words, I think I might have found something better than Scrivener. That’s saying a lot; I’ve been using Scrivener for about five years now, and it’s close to ideal for the way I work. The fun part is, it’s possible to keep using Scrivener as long as you want, until you’re ready to let go.

So what is this miracle? Read on…

About Markdown

Markdown was created by John Gruber to make it easier to write blog posts. It has been extended every which way to work with more technical documents, but the vanilla version is well-suited for writing fiction as well as blog posts.

If you’ve ever decorated a text-only email, you already know how to use most of Markdown. Here’s an example that easily covers 90% of what you do in fiction writing:

# The Swamp Road

Night was falling,
yet Joe doggedly marched up the swamp road.
Time was pressing,
after all.

In the flickering light of his torch,
Joe saw two signs:

**SHORTCUT LEFT**

**Do NOT take the shortcut!**

He pondered the advice for only a second.
*Bah*, he thought,
*I have to get home*.

Taking the left fork,
Joe soon found himself sinking in the bog.

Let’s see how this looks when formatted:

The Swamp Road

Night was falling, yet Joe doggedly marched up the swamp road. Time was pressing, after all.
In the flickering light of his torch, Joe saw two signs:
SHORTCUT LEFT
Do NOT take the shortcut!
He pondered the advice for only a second. Bah, he thought, I have to get home.
Taking the left fork, Joe soon found himself sinking in the bog.
It’s pretty easy to see how this translates: blank lines start a new paragraph. Use asterisks to highlight, *for italic* and **for bold**. The number of pound (or hash) characters set the heading level. For example, # Heading 1, ## Heading 2, and so on.

In the example above, I broke lines inside each paragraph so each line is a phrase. That’s not necessary; you can go long and run your paragraphs together, like you would in Scrivener or a word processor. Either way, you’ll get properly-formatted paragraphs.

But I LIKE Scrivener!

Hey, no problem. Scrivener has built-in Markdown support, and can use it to produce cleaner output for publishing than its direct word processor or eBook output. We’ll have a look at how to set things up, and a couple of things to look out for, next week.


Thoughts? Questions? Floor’s open!

Thursday, February 09, 2017 No comments

Tech Tuesday (on Thursday): Tines 1.11

I didn't get this posted Tuesday. Oh well.

The two biggest components in this release are compatibility enhancements:

  • Tines now compiles and runs on Cygwin, something I've wanted for a while. That involved changing escdelay from a variable to a CLI command. The change is backward-compatible; there’s no difference in how it works in .tinesrc and scripts.
  • Tines now preserves and (where it makes sense) uses the metadata in the OPML <head>. You can access and change metadata through text variables, and Tines uses reasonable defaults when necessary.

With 1.11.0, Tines is essentially complete. The Creeping Feature Creature will get hungry some day, no doubt, but for now I’m going to focus on making packages available for people who don’t want to compile the app themselves, making the code more robust, and squashing any bugs that turn up. I might tinker with alternative RC files to focus Tines on special purpose uses as well.

Monday, February 06, 2017 2 comments

In-Tents Weekend

Mason is in Cub Scouts (Tiger) now, and there are a zillion activities happening all the time. We went on his first camping trip over the weekend, over at Scoutland (a Scout Camp on Lake Lanier, near Gainesville).

So I started digging around, looking for all my old camping gear. The Boy had destroyed the big cabin tent, back in his Drunk and Doofus days, and I couldn’t locate anything but my old sleeping bag and my backpacking espresso maker (don’t judge… we’re talking dozens of pre-teen boys running around, wired on s’mores and trail mix, you gotta keep up somehow). Mason didn’t have a bag in any case, so the wife went out and got him a sleeping bag and us a tent.

I found The Boy’s old backpack from his scouting days, and there were a few useful items in it (most useful of all, a drawstring bag for clothes). So we gathered up food and other essentials, and loaded up the Miata—a backpack on wheels—and arrived at the camp as dusk was coming. Scoutland campsites have wooden platforms with metal pipe framework on them for a cabin-style tent, and several people pitched their tents on them. Our “four-person” tent1 was just slightly too large to fit comfortably on the platform, so we cleared the ground of pinecones and pitched it there. I unrolled our foam pads on the tent floor, put the bags atop them, and shoved our gear to the side. There was just enough room. I hung the battery-powered lantern on the loop at the apex of the tent, and that gave us plenty of light to arrange things as it got dark. Several people were impressed by how much stuff we pulled out of the Miata, by the way. Having gone backpacking a few times turns out to be a useful skill. ;-) For some reason, the parents’ signup sheet asked for age, and I’m pretty sure I was the oldest person there. Growing older, but not up.

The forecast low was 27°F, but that wasn’t a big deal. In fact, a couple of Girl Scouts were sleeping in hammocks. (Don’t mess with Girl Scouts!) As for us, Mason’s bag was rated for those temps, and my bag is an Army surplus down mummy bag, probably good to -40° in its prime. But I learned something important that night: when I was 28, even 38, I could toss my bag onto a foam pad and sleep okay. At 58… not so much. My hip drove into the ground, and now I find the mummy bag too confining, so I guess I need to retire it. The wife suggested (after the fact) I swap bags with Mason, which isn't a bad idea. He woke up once from the cold, and was fine after I told him to just burrow down into his bag & pull it over his head. Around 2 a.m., I fished a pool float out of the trunk of the car, blew it up (which warmed me up as well), and slept well until it deflated.

So Saturday morning was cold as you-know-what. Water buckets were iced over, cars covered in frost, etc. As Mason went to sleep at his usual bedtime, he woke up at his usual 7 a.m. The camp was dead quiet, except for him talking to me… but the Girl Scout leader (who was coordinating the campout for the county troops/packs) heard the noise and got a fire going. Soon, we had bacon and eggs going, and the kids filched marshmallows. Then the boys went running all over the large campsite, leaving the adults to wander around or sit by the fire and try to get warm.

Turns out a couple of the dads in Mason’s pack are very much into these clever things called “Hot Hands.” When you expose them to air and shake them, they produce an exothermic chemical reaction. I brought gloves that were more than adequate for 27°F, and my old ski mittens that would have sufficed for much colder temps, but my feet were cold… and I hate for my feet to be cold these days. So they tossed me a packet of “Toe Warmers,” which work the same way as the Hot Hands do. You take them out of the pack, stick them to your socks, and enjoy your day. At least I did. I also zipped into Gainesville to get an air mattress. For their part, they thought my espresso maker was awesome.

Saturday night was cold, but not as cold as before. That was fortunate, because it started raining around 2 a.m. The hammock’ers, not having thought to put up rain flies, bailed for a tent. Indeed, I think I might have been the only person in the camp who expected rain—as a motorcyclist, I know when you’re outdoors, 30% chance of rain means a near-certainty. The other pack dads left everything out, and I mean everything. So when Mason woke up at 7:15 a.m., declaring “I slept great!” I decided to just load up and go home. I always keep a towel in the Miata (highly recommended for any convertible), so I wiped down the tent and the cooler I left outside, then loaded the little car while Mason had one last run-around with the kids who hadn’t gone home Saturday afternoon. Overall, he had a blast and didn’t really want to go home.

Mason ended up with three patches for the weekend: Family Camping, Leave No Trace (for helping pick up trash), and Polar Bear (for camping in below-freezing weather). The latter is on the way, but he brought the other two home…

I left a blank spot for the Polar Bear patch

We’ll sew them onto his backpack.



1Camping equipment manufacturers love to play fast and loose with capacity. A tent measuring 6 feet by 9 feet can only be considered “four-person” if a) the people in question are children; b) they have no gear. In reality, there is barely enough room for two people and the gear you don’t want to leave outside.

Wednesday, January 25, 2017 2 comments

Water, Water Everywhere!

Among his other issues, Charlie has some dietary restrictions. Specifically, he doesn’t tolerate most kinds of formula—Similac Sensitive is the only one we’ve found that 1) doesn’t cause unpleasant reactions; 2) he doesn’t spit out. As he became one year old, WIC added Lactaid (a lactose-free milk brand) to his approved list. “Woohoo,” we said, “maybe a chance to break loose of the formula!”

Nope. It gave him a really bad case of the runs, leading to a bad case of diaper rash. Thus, it fell to me to let him soak in some soothing baby wash while the wife went to baby-sit her dad for a while. Oh, did I mention Charlie loves the water?



So he had a great time. All I had to do was wash his hair, and make sure he didn’t slide forward and bang his head on the back of the sink.

Sunday, January 15, 2017 4 comments

Charlie & Mason Blogging

Mason continues to be one of Charlie's favorite people, as you can see here…

"Are you fighting a… a Diamond Ender Creeper?" "sigh No such thing, Charlie."

Can you believe the little rugrat is a year old now? I mean Charlie, of course. Mason is 7; he only acts like a one year old on occasion. Mason is doing very good in school, especially math, and will be testing for the gifted program early next month. Now if I could only get him more interested in reading.

As for Charlie, we took him to Emory Neurological Evaluation Center earlier this week (at the tail-end of Winter #1) for some tests with a team of psychologists. The schools opened Tuesday, but on a two-hour delay, so we had to keep Mason out of school and take him with us. Give him a fully-charged iPad, and he’s fine with that. They noted Charlie’s issues with coordination and the like, and that his physical appearance indicates Fetal Alcohol Syndrome. (On top of the meth issues. I so want to punch Badger Boobs right now.)

The million-dollar question is, of course, whether he can grow out of all that and lead a normal life. That was not a question they had answers for; but did schedule more tests for next month, including a genetic test.

Still, I see lots of hopeful signs, many that have just started happening. He’s always had good people skills (that, his good looks, and sunny disposition will suit him for management… and even if he isn’t all that bright, that isn’t a handicap for management). He was sick, more on than off, for the last two months but he’s finally moved on past that.

Now that he’s feeling better, he’s acting more aware of stuff going on around him. He’s also fighting sleep tooth and nail, which is only hopeful because The Boy and Mason both did the same and they were both pretty advanced—otherwise, it’s a pain in the butt. Now Daughter Dearest wasn’t much for fighting sleep, and she ended up at least as advanced, so maybe that’s not an indicator. Lately, he wants to squirm off laps and get to the floor, which we tend to forbid unless it’s fairly clean. You can see in his face that he knows he should be able to move himself around by now, and he’s really trying to get it.

But today brought a bunch of “firsts.”

He’s shown a fondness for starches lately (bread, pasta, and now rice). Just this week, he’s really started to get the hang of chewing stuff that isn’t fingers or teething aids. He’ll eat all the bread we’ll give him; usually we’ll break it into small bits and stick it in the ol’ pie hole. Today, the wife put a piece on his highchair tray; he got frustrated after several attempts at trying to pick it up. Me, not knowing about this, tried the same thing a little later. He got it on the second attempt! Then he repeated it, so he’s at least beginning to get the hang of self-feeding. At suppertime, after gobbling his container of baby food, he scarfed a good chunk of potato and a couple spoons of rice, both new foods at least in non-puree form.

In between that, I had him on his play mat on the living room floor. The phone rang, so I laid him on his tummy and grabbed it. I then heard a thump; thinking the wife had come up while I was occupied, I walked through the kitchen to see if she was in the garage. She wasn’t, but I heard Charlie wail. He had somehow gotten off the mat and was in front of Rosie’s pen… a good four feet away, and he had to have turned to get there. He’s not crawling yet, but he can flop from Point A to Point B now. On the bed, I’ve seen him get his knees underneath and scoot forward (especially if I’ve put a toy just out of reach).

With Spring #1 being an unusually warm one, all of us (including Charlie) have been enjoying the outdoors this weekend. If we’re doing stuff, he can at least sit in the stroller and watch. If he gets bored, we just send Mason over to talk to him for a few seconds. We took a brief ride in the Miata with the top down this afternoon, and I’m planning on grilling steaks for lunch tomorrow. In the middle of January, when it’s usually inhospitable outside. I might let him sit in his stroller and watch.

Saturday, January 14, 2017 2 comments

Cyborg-Mom!

Back in October, Mom had a pacemaker installed. It’s a routine thing these days, almost an outpatient procedure. They keep you overnight, wait for the happy juice to wear off, then send you home with a long list of things you can’t do for the next six weeks.

That should have been the end of the story, but would I be blogging about it if that was the case?

To begin with, Mom is pretty dang athletic for being 80, so there isn’t a lot of excess padding where a surgeon can hide a pacemaker. So they just stuck it under her skin, making a nice little lump but otherwise not interfering much. My youngest brother Solar lives near her, so he made sure things like laundry and heavy lifting got taken care of until she was off restrictions.

That should have been the end of the story. Again. But…

Whether it was a matter of the pacemaker being too close to the surface, or one of those airborne things getting into the mix during surgery, an infection set in. One of those nasty antibiotic-resistant hospital infections. Of course, this happened right before Christmas, when we planned to come down. Solar ran out of chill and advised us to cancel our hotel and just stay home. Meanwhile, they yanked the pacemaker and put on (on, not in) a temporary, then started shotgunning the antibiotics.

Wife suggested I go down myself, day after Christmas, and Solar was good with that. He had been taking care of his business and Mom’s, and was going into negative-chill over the hospital wanting to send her home despite never having done that when a patient has a temporary pacemaker. Still, Mom wanted to be in her place, and I suspect the hospital wanted to prevent a possible secondary infection. So I came down, and Solar got to have a break for a while.

Mom looked a lot better than Solar was describing—definitely not 100%, but able to dress herself, fix her own food, and so on. A home nurse came in daily to help keep up with her medications and do blood tests. So here she was: pacemaker taped to her shoulder, a pump pulling the crud out of the infected area, a PICC line in her arm—tubes and machines everywhere. Cyborg-Mom! Her primary complaint was “I only got to play tennis twice before this happened!”

I thought Solar was worrying way too much. Sure, he was comparing Mom to herself at 100%, but she was able to handle the basic tasks of life. We went to the grocery store, she made coffee, and helped me fix a meal or two. I was comparing her to my father-in-law, who only gets out of his chair when he needs to use the can or eat. He completely depends on the wife (mine) to get his meals, arrange his meds, and bathe him. Compared to that, Mom seemed hardly affected… besides being unable to play tennis, of course. I even got to take a couple walks on the beach, where I saw six people using a four-person inflatable float and a melting snowman (sandman). Had to look up the float; I might get one for our week at the timeshare.

Put me in summer and I'll be a… HAPPY SNOWMAN!

So back to Mom. Once they identified the infection (a cousin of tuberculosis), they knocked off the shotgun antibiotics and gave her one or two that had the most effect against the bad buggly. (Good thing, all those drugs were starting to bang on her kidneys a little too hard.) So the infection started clearing up, and they took the pump off. Mom really bounced back after that; she always had to remember to pick up the bag with the pump and make sure the lines weren’t going to snag on something. I kind of missed it; it made a soft fart sound every ten minutes or so, which thoroughly delighted my inner 12-year-old. (“Yeah, Mom, blame it on the pump!”)

So I went home on New Years Eve, and she went into the hospital on the 3rd to get the new pacemaker put in. This time, they put it into a muscle so there wouldn’t be a repeat problem.

That should have been the end of the story. But… are we starting to see a pattern here?

She came home on the 4th, and the very next day she was right back in for a mild heart attack. They ran a catheter in, and found no blockage, so they concluded it was stress-related. (Stress? Now why would she be stressed?)

She got to come home a few days later, and everything is finally more or less on an even keel. We rescheduled our vacation for spring break, I got reservations at the cottages we often stay at, and she should be back to playing tennis by the time we come down in early April.

Not even 2016 could do for Mom. Nobody messes with Mom.

Friday, November 25, 2016 12 comments

Patient Zero (#FlashFicFriday)

Some of us are trying to bring the fun of flash fiction back to Twitter. Here’s my contribution, inspired by Daughter Dearest’s text this morning: Walmart is empty, like nobody in the parking lot. That would be as much a sign of the zombie apocalypse as anything…

Do join us! Go to the #FlashFicFriday blog and leave your link in the collector.



Heather was alone in the unruly crowd, but she was closer to the doors now. After all the stress of the Thanksgiving family gathering, her friends Brit and Becks (aka The Bs) invited her to a party followed by Black Friday shopping. Seemed like a great idea at the time. “Maybe it’s food poisoning,” she muttered to herself. Aunt Tammy made the most god-awful side dishes, and insisted everyone get some. Not to put too fine a point on it, she felt like shit. Thank God for the crowd, she thought. It’s the only thing holding me up.

A vision of being a Black Friday statistic brought her to her senses.”Girl up,” she growled. “You’re on a mission.” Big-screen TVs were $125 at Mallet’s (“don’t go to the maul, go to Mallet’s!”) and she meant to get two—one for her, one for her cousin Whitney, the only family member she ever looked forward to seeing nowadays.

She looked at the big digital clock over the doors. 4:54 a.m., and Mallet’s would open at five. Her vision was blurry, and her mind wasn’t much better. She focused, trying to piece together what had happened. She never got hammered enough to black out. Maybe Becks was right, and that guy she had hooked up with at the party gave her a roofie. The Bs ended up carrying her to the car, after threatening the guy’s life, and drove with her window open until she came to.

Her shoulder itched, and she winced as she scratched. A memory sputtered to life: the guy had his hand in her shirt—but behind her neck, gently scratching her shoulder. It felt good, so she hadn’t made him stop. The way it felt now, he must have taken a few layers of skin off. “Some pervs have the weirdest kinks,” she said, and this time the mom in front of her glanced over her shoulder.

Plan. Focus. Get what you came for. The terrified employees lined up a bunch of carts, staggered so you could slip between them to get to the first row. The digital clock went to 4:59, then 4:59:30, then the crowd counted down the last ten seconds.

The doors slid open, the employees got the hell out of the way, and the stampede was on. Heather made the most of her solid build, pushing the mom aside, elbowing her way forward, rolling with her staggering run, letting nobody slow her down. She weaved through the carts, grabbed one in the second row as the first row sprinted into the store, and joined the mad chase.

At Electronics, she found the stack of big-screens, and shoved two onto her cart. Someone grabbed her hoodie, trying to yank her backward, and she stepped back and threw an elbow. The stout middle-aged woman grunted and staggered back, and Heather pushed the cart away from the growing melee around the TVs.

Now that she had what she wanted, her resolve and energy crashed. Slumping against the cart, she trundled to the customer service desk in the back.

“You okay?” the flack behind the counter asked. “Do I need to call 911?”

“No,” she managed to reply. “Just need to rest a couple minutes is all.” She collapsed onto the bench and knew no more.


“Hey. Hey.” Shaking. “Hey. If you’re not sick, you have to go. I’ll call 911 if you want.”

She pushed herself up with a grunt, swaying a little. The TVs were gone, so was her purse, but she had no memory of those things. She was here for…

Rrrrowlrrrrr, went her stomach. She was here to eat. And the meat standing before her was as good a start as any.

Saturday, September 10, 2016 5 comments

Charlie on the Ball

Hmmm… cushy!
As part of Charlie’s state-supported foster care, someone comes by the manor every couple of weeks from Babies Can’t Wait, a sort-of physical therapy program for babies with developmental issues. She gets to play with other people’s babies all day and get paid for it, although the therapy part is very real and not all babies are nearly as good-natured as Charlie. He enjoys the time, because she brings all sorts of interesting stuff, but does get worn out toward the end of the session. He gave her his “OK, I’ve had enough” growl on Thursday as she was close to wrapping up anyway.

Physically, Charlie is behind, although he’s starting to show signs of catching up. The therapist has been working on his sitting and grasping, and recommends we give him lots of “tummy time” so he’ll get the hang of crawling. (Usually, he just flips onto his back and grins.)

More fun than the flop-over game!
We try to do some of the things the therapist does, both to help him practice doing stuff he should be doing and to wear him out a little. So this morning, I laid a blanket over the carpet in our bedroom and sat with him. He immediately flopped over, so I had to catch him, and Charlie thought that was a fun game! I tried a little tummy time as well; the first time he inchworm’ed forward a foot or so then laid there. After that, he just flipped onto his back and waited for me to play with him. So I grabbed a couple large Duplo blocks from Mason’s stash and one of those huge Mega Blocks. New game: picking up the blocks (it was easier with them upside down at first) and waving them around, occasionally smacking himself for the fun of it and chewing on the corners. He preferred the blue blocks to the red one, at least at first… but most importantly, he sat freestyle (no leaning against Granddad) for a good ten minutes. So he’s capable, he’s just a bit lazy. In a previous therapy session, he did a fine imitation of Monorail Cat, a boneless sprawl over the ball both on his tummy and his back. I really wanted to get a pic of him doing that, but this time he was more interested in sitting on it. (Rosie the Boston Terror gets anxious when the therapist balances Charlie on the ball… it’s rather cute.)

I’m not concerned with his mental development. He’s always understood that when he’s hungry, and we take him in the kitchen and start mixing stuff, it means the food is on the way and he’ll stop crying and fussing unless he’s half-starved. (You can see in the pix how many meals he misses…) He vocalizes plenty, and has recently added “joyous ear-splitting screech” to his repertoire. That one he usually saves for Mason, either as a reaction to his clowning or to tell him, “Hey, do something funny!” Charlie probably won’t start talking as early as The Boy or Mason (both could say a few words well before age 1), but he could well talk before he walks.

Right now, he’s sleeping off his floor time with me. As I was up until 1am last night, and had to get up with Charlie at 7:30, I’d like to be doing the same.

Tuesday, September 06, 2016 2 comments

Lucky Seven

His favorite cake
Mason’s already 7. How time flies.

We had pizza in town for his birthday dinner. Most of the kids close by (including Sizzle & DD’s bunch) came to help celebrate. Last I’d heard, it was going to be at the father in law’s place, so I went straight home from work… only to find out I’d driven right past everyone in town. Grumble grumble jump back in the car and head on back.

After supper, I ran to pick up the cake you see here. This really is Mason’s favorite kind of cake; he loves blueberries, strawberries, kiwi, and Mandarin oranges, so who cares about the cake part, right? I think he had candles on his dessert pizza, so it’s all good.

The Boy & his wife came up to join the celebration, even though he has to get up at 5am for work. They bought Mason a trampoline for his birthday (oh joy), and we’ll get that this weekend or next. I guess if he has a climbing wall, he should also have a trampoline. We’ll have to find a flat spot to put it, or maybe we’ll borrow a tractor with an end-loader (aka “yooper scooper” as we called them in college) to scrape out a flat spot. The latter is more likely; level ground on Planet Georgia is usually not found in nature.

So enjoy those Wii games you got for your birthday, rugrat!

Tuesday, August 30, 2016 No comments

Tech Tuesday: Distraction-Free for Free

I’m a very technical boy. So I decided to get as crude
as possible. These days, though, you have to be pretty
technical before you can even aspire to crudeness.
— William Gibson, Johnny Mnemonic

The writing advice people (and websites) are always harping about minimizing distractions. Shut off Twitter (or your social media of choice), close the browser, fill your screen with the editor, and just write look a squirrel! You can even buy special editors that fill the screen automatically… well, of course you can. Seems like everybody and their dogs are trying to make money off writers these days, aspiring and otherwise.

The thing is, it’s really easy to set up a distraction-free writing environment using the tools and apps that come standard with your operating system—at least for MacOSX and Linux. It’s probably true for the Microsoft thing as well, but I’ll have to look at it a little closer. Both MacOSX and Linux evolved from Unix, an operating system that dates back to when computers were more expensive than displays—so you would have a bunch of people using one computer, typing commands and text into terminals. That was back when timesharing didn’t refer to a sketchy way to sell the same condo to 50 people.

The interesting part is, all the code needed to support that circa-1980 hardware is still part of modern operating systems, and we can use that code to create our distraction-free environment. So let’s get to a shell prompt, the way we all interacted with computers before 1984.

Down and Dirty

If I really wanted to get down and dirty, I’d get a USB-to-serial adapter and hook up that old VT220 terminal I still have laying around. But we’re focusing on stuff you already have on your computer.

Personally, I like to have some music playing while I’m writing at home—it masks TV noise, kid noise, dog noise (unless there’s a thunderstorm, then she’s moaning under my feet), and noise from outside. But you might have a stereo in your writing room, or you find the music distracting, and you don’t need anything but a screen to type into.

Keeping the Johnny Mnemonic quote above in mind, Linux is more technical than MacOSX, so it’s easier to get to the crudeness you want using Linux. Press Ctrl+Opt+F1, and you’ll be presented with a glorious console with a login prompt. Most versions of Linux have six of these consoles; press Ctrl+Opt+F7 to get back to the graphical interface. I have never dug into the reason why Linux typically has six text consoles… I’m sure there’s a reason. Anyway, enter your usual login name and password at the prompts.

If you’ve set up MacOSX to automatically log you in when you start up… don’t. For one thing, you’re inviting anyone who gets into your house to poke through your stuff. For another, you can’t get to the one console that Apple provides. To fix this, open System Preferences, select “Users and Groups,” then click “Login Options” at the bottom of your list of user names.


Once you’re there, make sure “Automatic login” is set to Off. Next up, set “Display login window as” to “Name and password.”

While you’re in this screen, make sure your regular user name is not an administrative account. Set up a separate admin account if you need to, and remember that admin password. These are things that make it harder for malware (or your teenage niece) to do things they shouldn’t be doing on your computer.

But I digress. Next time you log in, instead of typing your usual user name, type >console and press Return. This immediately drops you into a text console and presents you with a login and password prompt.

So… Linux or Mac, you have a text console until you press Ctrl+D at a shell prompt to exit. Skip down to “Now What?” to see what’s next.

Work Within the System

If you’re not quite ready to abandon all hope the graphical interface entirely, because you might need to jump onto the Web to goof off research something important, you can still eliminate most distractions… although all those distractions are still easily available if you can’t resist. Perhaps it’s a small price to pay to have your music, right?

Most Linux systems make it really easy to get a terminal app on the screen, whether through shortcuts or the application menu (look in Accessories or Utilities). Macs aren’t much more difficult—press Cmd-space to pop up Spotlight; typing term should be enough for it to complete Terminal (it’s in /Applications/Utilities if you want to do it from the Finder). Press Return, and it should start. If you’re using the Microsoft thing, look for “Command Prompt” or “PowerShell” in your Start menu. One or the other should be in Accessories.

Now that you have a terminal window up, you need to maximize it to keep the distractions at bay look a squirrel!. On Macs, press Ctrl-Cmd-F to enter full-screen mode (press it again to exit). On Linux, your distribution determines the keystroke; Ubuntu uses F11. You can always click the “maximize” button to expand the window, although this leaves extraneous window elements visible. You can also maximize a command window in the Microsoft thing.

One of the advantages of a terminal app over a console: you can increase the text size, either by using the terminal app’s preferences or by using a keystroke (Cmd+ on Macs). 18 points should be sufficient on a laptop; you might want 24 points or even huger on a big desktop screen.

Okay, you’re ready to go…

Now What?

Okay, now you have a screen full of nothing but white text on a black background. There’s a prompt at the top, usually ending with a $ symbol.

The distraction-free writing paradigm basically turns your computer into an electronic version of a manual typewriter. No going back, no editing on the fly, just type your story and hope the result isn’t too incoherent to salvage (says the guy who likes to edit as he composes).

There are few lower-level ways to input text than using a line editor, and Unix derivatives (including both Linux and MacOSX) include ed.  Johnny Mnemonic, that technical boy, would have been proud of ed. It’s about as crude as it gets. So let’s get crude! Type ed and press Return.

Nothing happened. Or did it?

Ed (as we’ll refer to ed for a while) is a program of very few words, which is exactly what you want when you’re going for a minimalist writing environment. If you give Ed a command he doesn’t understand, or one that might destroy your work, he will respond with ? (a minimalist understands when that means “huh?” or “you don’t really want to do that, right?”). Ed’s commands all consist of a single character; in some cases, you might include a range of lines or some other info. But right now, there are three commands you really care about.

Right now, you should see a blank line. Type i and press Return. This enters input mode, where everything you type is copied into Ed’s buffer. Ed will happily ingest everything you type, until you enter a line containing only a . character. That tells him to return to command mode. The following screen shot shows an example.


Now for the second command: saving what you entered. Type w and the name you want to give the story. Make sure you’re not using that name already, or you’ll overwrite what’s there! I reserve a few file names like foo, junk, and tmp for situations like this, when I either don’t need to keep what’s in the file or plan to do something else with it right away (like copy it into Scrivener). Anyway, after you use the w command, Ed responds with the number of characters it wrote into the file. If you want a rough word count, divide by 5 (I wrote 1458 characters, a shade under 300 words, in the above example).

All done! Type q and press Return, and you’ll return to the shell prompt. If you want to keep writing instead, type $a and press Return. This command means “go to the last line” ($) “and append.” Again, Ed will take everything you type as input until you enter a line containing only a . character. This time, you can just type w and press Return, because Ed remembers the last file name you used. Just remember to use q when you’re done.

Bonus Info

Now you’re at the shell prompt, and you want to know exactly how many words you typed? Type wc and the file name, and press Return. The info you get looks like this (using the above example):

Kahuna:fiction larry$ wc tollen.md 
      31     269    1458 tollen.md
Kahuna:fiction larry$

You get three numbers: lines, words, and characters. So that number in the middle, 269, is the actual number of words I wrote.

If you’re not enamored with Ed’s ultra-minimalism, try entering nano or pico instead. Both of these are simple screen-oriented text editors that include a little help at the bottom of the screen (but will let you arrow back and noodle with the text).

Like with any writing tool, you’ll improve with practice. Don’t give up right away; try a different editor or even a different color scheme (most terminal apps let you choose colors). And don’t forget to copy your text into your normal writing tool!

Your Turn!

Have you ever tried a minimalist writing environment? How did it work? Get as detailed (or as minimalist) as you like in the comments.

Tuesday, August 23, 2016 2 comments

Weekend of Woof

Our weekend began well enough, until Mason… shall we say, displayed symptoms of a 24-hour stomach virus starting late Friday evening. The fun went on a little while through the night, then settled down. Saturday went well—Mason bounced right back well before lunch, and was playing outside. I managed to get the lawn mowed, and started editing Blink on a paper copy.

Call it the eye of the hurricane.

Source: oversharing.tmi
Sunday late afternoon/early evening, the wife started feeling pretty rotten, and I was about three hours behind her. “I meant to tell Daughter Dearest to bring up that medicine,” she said.

“We’ve got Pepto here,” I replied.

“That won’t work.”

Be that as it may, I figured it wouldn’t make things worse, and took a couple tablespoons when I started feeling queasy. It seemed to work for me; I only had MGV (Merde Gran Vitesse) to deal with. I skipped supper, and slept very lightly, but I slept. Unfortunately, the “lightly” part meant I woke up whenever the wife ran for the bathroom, which happened several times through the night. Thankfully, Charlie slept through the night. One less thing to worry about.

Monday morning came. Sizzle came up to watch Charlie, while I felt human enough to take Mason to school. On the way home, I picked up a bunch of Powerade. My first act upon returning home was to email work and tell them I wouldn’t be coming in. I poked at a couple things online, sipping at a tall glass of Powerade, then got back in bed and stayed there until about 2:30pm. By then, I felt quite a bit better—even though I’d skipped three meals in a row for the first time in, like, forever. Wife was past it as well, although she was debilitated and most likely dehydrated. I spent the rest of the afternoon finishing a paper edit of Blink, and plying the wife with fluids.

By supper time, I felt more hungry than crampy, and decided to have a sandwich. It gave me no problem, which was good, but I was ready to sack it again by 10:30. That was good, because Charlie woke up at 6:15 this morning. I got him a diaper change and bottle, and he went right back to sleep right when Mason got up (also a little early). So we got him off to school, and me back to work. Wife is still a little tired this evening, but is otherwise recovering well.

I sure hope Charlie avoids getting it. Nobody should have to go through this, but that goes double for a baby. Besides, this stomach virus already violated the Interspecies Accord by hitting more than one person in the house at a time, so it needs to leave the rugrat alone.

Friday, August 19, 2016 7 comments

A Titanic Change (#FridayFlash)

"Untergang der Titanic",
by Willy Stöwer, from Wikimedia Commons
September 11, 1931

There is a running joke about using a time machine to go kill your grandfather. I mean to save mine.

April 17, 1912 saw one of the greatest maritime disasters in history. Everyone knows about it: the Titanic, having first dodged a near-collision with another liner as it left port in England, then surviving a brush with an iceberg, came into New York harbor at full steam. It ran aground and capsized. There were few survivors.

I saw the disaster, and nearly did not live to tell of it. I was part of a great crowd, gathered to see the marvelous ship arrive safe in port. Safe! My grandfather, who had retired from the steamer lines, insisted on bringing me to see. I was glad to come, if only to escape school for a day. I remember it was a chilly day, and I was glad for my new jacket.

“The finest ship built by the hand of man,” Grandfather told me as we first caught sight of the proud liner, entering the harbor. “A pity we didn’t come sooner,” he said, waving at the crowded pier.

“You think we could board it?” I asked, every inch the wide-eyed innocent.

“If we can find a man I know—hoo, she’s comin’ in fast. The captain better be going full-reverse—ho!” A tugboat turned hard a-port to avoid the speeding Titanic. “We best get back!”

Too late—the spectators crowding the pier realized the danger as well, and we were swept up in the panicking mob. I stumbled, but Grandfather was there to snatch me up, and we joined the jostling throng. The horrors of that morning are still etched on my memory, and I need only close my eyes to see them once again. Looking over Grandfather’s shoulder, unable to turn away, I saw it all. Smoke poured from the funnels, the mighty engines at full throttle to the last. I saw passengers on deck, fighting to board lifeboats, falling or jumping overboard into the murky waters of the harbor. Terrified faces in the crowd all around me, screaming and cursing. I saw a young woman fall with a shriek, and others running over the place she fell. Though I watched, I never saw her get back up.

I had little time to think There I would be, if not for Grandfather, because the crowning horror now unfolded. With a screeching and tearing noise even louder than the voices around me, the doomed Titanic ran aground. I saw the hull crumple beneath the weight of the ship above it, but its immense momentum carried it forward, forward, up and out of Poseidon’s realm and onto the land from whence it came. I saw passengers, clustered around the now-useless lifeboats, scatter across the deck in all directions.

“It’s falling our way!” I shouted to Grandfather. But others heard, and foolishly paused in their flight to look behind them. Some stood stock-still, dooming themselves double if such a thing were possible. Grandfather bulled our way past several stricken refugees, knocking one or two aside to gain more distance. With the groan of a ravenous monster, the beached ship heeled over, its shadow racing far faster than the tiny morsels trying to escape its hunger.

Grandfather pushed on, trying to get clear, as the hull loomed ever nearer. Even as a child, I knew that getting clear of the hull itself would not be enough—the superstructure would tear free and crush anyone beneath. And for those unfortunate enough to be in the path of the funnels, even the most legendary runners could not escape their fate. But he drove himself onward, although by now he must have been frightfully tired with the added burden of myself.

I recall only snatches of the end. The cries of despair from those behind us, terrified screams as more would-be escapees stumbled and fell from fatigue or over the feet of others around them, the hull and superstructure looming above. There were things falling from the deck—chairs, lifeboats, people, detritus—striking down those behind us. I remember hearing Grandfather’s last words, Ah, shit! and how he flung me forward, giving me all his momentum in his last second of life. The thunder that went on and on, the blast of air flinging me onward. I try not to think about what flew around and past me in that moment.

When I hit the ground, I tumbled like a rag doll, coming to rest at last with a broken arm and more bruises than I could count. (This I only learned later, waking up in a hospital with my frantic mother at my side.)

It was only later that the public learned of the telegraph operator, staying at his post until the last, telling any who had a radio of the cause of the disaster. I cared little, and care little still. Nineteen years have passed, and at long last I am in a position to prevent it. Unbeknownst to the crew, I have made a tiny adjustment in the rudder trim. The Titanic shall strike the iceberg more than a glancing blow, crippling the doomed liner, and its passengers shall be picked up and brought home safely. How many men have saved thousands of lives at a single stroke? I am already a hero, though none may know.

Grandfather, I shall see you soon.

Tuesday, August 16, 2016 3 comments

CreateSpace Cover Calculator (Tech Tuesday)

To be honest, I’m surprised that CreateSpace doesn’t have something like this on their own site already. Any time you want to publish a paperback with CreateSpace, you need to include a cover (or pay them to make one for you). The DIY guidelines include a formula for calculating spine width, based on the number of pages and what kind of paper you’re using. But even if you’re decent at math, and I am, it can be nerve-wracking enough to double-check and check those measurements again.

Now if there was a way you could feed your page size, number of pages, and paper type to a calculator and get a no-sweat measurement that you could use for that cover…


Oh. Just look to the right. Over there in the sidebar. I’m no JavaScript whiz, but I had a clear idea of what I wanted to do and there’s plenty of information online. I had the thing going in not much time, which surprises me all the more that CreateSpace hasn’t done it. It’s been around for a month or so now, but I figured it was a good topic for Tech Tuesday.

The “Page size” dropdown lets you choose from all the standard CreateSpace sizes, plus a “Spine Only” selection if you’re using a custom page size. The widget automatically adds the 1/8" bleed to all four sides of your cover, expands to show the results, and collapses again if you click Reset. The rest of it should be self-explanatory.

Feel free to drop by and use the widget any time you need to calculate a cover. If you want your own copy, that’s fine, too. I released it under a Creative Commons attribution/share-alike license, which means give me credit and pass your changes on so all indies can benefit. Then again, I’m not sure what else it might need… except maybe a way to select Lightning Source.

Sunday, August 14, 2016 3 comments

The Great Closet Purge of 2016

I’ve been saying for a while now that I need to get clothes I don’t/can’t wear out of the closet to take to Goodwill. Well, today the wife took Mason to see The Secret Life of Pets, leaving me with Charlie. The baby was ready for his nap, but wasn’t about to go to sleep while Mason was making noise and doing amusing things… but it took less than 10 minutes to put him down once they left. With him asleep, and me alone and stuck in the manor, I decided this would be a good time to tackle that closet.

Now I figured to purge enough clothes to fit in one bag, then I could run by the Goodwill dropoff after dropping Mason off at school. But the Great Closet Purge of 2016 had other ideas. After taking a third of the old shirts out, I already had two stacks and wasn't even half done with the closet. Next came the pants; over half of those had to go, but I found 8 or 9 pairs I could wear and didn’t know I had. Finally, the sweaters and miscellaneous stuff on the floor. I ended up with four stacks, plus a separate pile for rags. Then Charlie woke up.

Note: the baby is to show scale and isn’t otherwise part of the purge.
Somehow, I don’t think I‘ll get all that into the Miata with room left over to carry Mason and his bookbag. Besides, I have to purge my dresser as well…

Monday, August 08, 2016 3 comments

Lucky 7 (Months)

Hey, put your finger in here…
Charlie’s 7 months old today. As you can see, he has been cutting teeth for a while. This of course is accompanied by the usual “chew on anything kind of soft” thing that babies do. If you give him a finger, he’ll s-l-o-w-l-y pull it up to his mouth, touch it to his teeth, then start applying pressure. And those teeth are sharp. At least he gives you plenty of warning.

He’s not sitting by himself or crawling just yet, but I can no longer drop him on my bed between two pillows and expect him to stay put. Saturday afternoon, he wriggled out from between the pillows (in his sleep) then flipped over while I took care of some laundry. Fortunately, he didn’t go any farther. Now I know I can’t get away with doing that anymore.

We’re converting the wife’s office, a tiny bedroom really, into his room. That entails moving a bunch of furniture around, as always. Mason’s big enough to help now, which should make life a little easier. The office stuff will go into the corner of the living room where Charlie’s bed (and some other stuff) is now.

Diamond sword something something creeper…
His surrogate big brother Mason is obsessed with Minecraft these days, but he’ll always make room for Charlie to sit and watch. Mason’s always ready to clown around for Charlie, who always appreciates his antics and weird noises.

Charlie, of course, has a bit of clown-sense of his own. Sometimes when I'm giving him a bottle, he'll catch my eye, grin around the nipple, and go “hee heeeee.” That cracks me up, which gets him going, and it turns into a positive feedback loop. Usually, when he does that, he’s had enough bottle anyway.

Stay tuned… always something weird around FAR Manor.

Tuesday, August 02, 2016 No comments

Tech Tuesday: Getting Your Outline into Scrivener (pt 2)

In last week’s post, we saw how you can import an OPML outline directly into Scrivener. For those of us who use an outliner for more than the barest-bones plotting, it’s rather limiting. Fortunately, Scrivener has another way to import. It requires an extra step, but Tines (the console-mode outliner I use and maintain) can do the work.

So let’s go…

No Extensions Required

OPML entries have a type attribute associated with them. The standard deliberately leaves the content of type undefined, except it’s some kind of text to describe the entry.

Tines supports two type definitions: "todo," to give an entry a checkbox, and "text" to mark entries as content (non-text entries are assumed to be headings). Tines assigns the F3 key to toggle between text and heading types. A lowercase t to the left of the bullet gives a visual indication. So now, let’s add some more info to the first scene:

Nothing like a little slapstick to start a story, huh?
Note the t at the beginning of each entry under Scene 1. Those are text entries. Other entries will become documents in Scrivener.

Now here’s where the magic happens. In Tines 1.10, there’s an Export->XSLT function that allows exporting through xsltproc. Since OPML and Tines’s native hnb format are XML files, it’s easy to convert them to just about anything. Press ESC to bring up the menu, and go to the File menu…

Changes to the look and feel are due to experiments with the configuration.

Scroll down to Export->XSLT, press Return, then press M at the next prompt to choose Markdown. When prompted, enter a name for the Markdown file (I used storymap.md). If you want, have a look at the Markdown file to see how it does things—a # character at the beginning of a line is a heading, and the number of # characters says what level heading it is. Other lines are body text. Easy, huh?

Now let’s load it into Scrivener. There’s two ways to do that.

Import and Split

I don’t really recommend using File→Import→Import and Split. It works as advertised, importing your Markdown file and splitting it up, but it doesn’t build a hierarchy. It might be useful for importing an outlined chapter into an existing project.


Import as MultiMarkdown

MultiMarkdown is, as one might guess, an extended version of Markdown. Since it’s an extension, you can import plain Markdown as MultiMarkdown without a problem. So try File→Import→MultiMarkdown File instead. Here’s how it looks:


Now this looks pretty close to what we want! Everything is in a nice hierarchy, content is content, and we’re ready to get the story knocked out.

Until next time… keep writing, and keep geeking!

LinkWithin

Related Posts Plugin for WordPress, Blogger...