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!

Monday, August 01, 2016 1 comment

Giggle Fits

Yesterday afternoon, after a lawn-mowing session, followed by some fixes and improvements to Mason’s slide and climbing wall, Rosie the Boston Terrible was moaning and woofing at the thunder coming in. Charlie thought that was highly amusing, but that was nothing compared to when I started making fake thunder noises myself.


I thought *I* was easily amused.


Related Posts Plugin for WordPress, Blogger...