Tuesday, September 30, 2008

A month of writing every day

This started out as just another post about how I've achieved this month's goal of writing every day, a little hey-world-look-at-me-I-made-it. (Really oughta be accompanied by video of me twirling around in a plaze and throwing my hat up in the air.)

But then I started thinking about this goal that I now often take for granted. It's a great thing when I'm keeping up with it. I've been writing every day, and I did a ton of writing last month too...and that's the pattern of my life. I get home, we feed the kids and put them to bed, and I write for an hour, sometimes two.

I'm watching less TV. It's going to be harder now that a new season of Heroes is back.

The write-every-day goal isn't enough when there are other things going on. But when I pair it up with a goal like "get this contest entry done by the 15th" or "get a draft of 'Dragon Hunter' sent to someone for review by the 30th", it works great.

When I look back at the past couple of years, I can see that I've stepped up my fiction writing; I'm spending a lot more time on it than in previous years, I'm learning a lot, and I'm finishing projects. Things seem to take forever while I'm working on them, but give me an external deadline and I can put everything else aside. I did NaNoWriMo a few years ago...fifty thousand words in a month is something to be proud of.

It's harder with internal deadlines, and I'm not surprised when the Dragon Hunter draft goal has hung around for a couple of months. Now I here I am finishing a readable draft of it -- my other writing goal this month. This makes me very happy -- and lets me get back to the story I put aside for Dragon Hunter, "The Wonder Kid."

I'm getting close to 40. I really want to have a novel project under way when I get there. I can think of no better midlife crisis insurance than that. But I've started novels before. I want to be sure I'll finish this one, so I'm taking my time planning and evaluating several ideas.

And I'll get there, by writing every day.

Monday, September 29, 2008

Dr. McNinja and the Monster

The latest Dr. McNinja story may be the best one yet. I love the wacky weirdness of this long-format webcomic. We're talking about a guy who was born a ninja, but felt that being a doctor was his calling -- despite the opposition of his family. And he has a gorilla for a receptionist.

The latest story concerns the arrival of a fellow who was part of a superteam the doctor joined when he was in college. This fellow's power is to turn into a big purple monster. Maybe he'll eat people. He has a dad who references a certain famous disabled scientist. Their relationship is painful and hilarious. The comic plays with emotions in a powerful way, no matter how silly it may sound. Check it out.

Sunday, September 28, 2008

Whistle while you work

I'm always having to try to write while people near me are watching TV or otherwise making noise. The laptop's ability to play music is a big help with that: I just put on some headphones and play some tunes. I don't even bother to load up the laptop with a bunch of music any more; I just head over to the Deezer streaming website and play one of my playlists there. It's free, there's a lot of music available....and I've already invested the time to make several playlists.

My friend Bill suggested making a playlist of songs specific to one writing project, and then playing that list when I wanted to get in the mood for writing. I thought it was silly, but it's the kind of silly thing any writer might do when procrastinating. So one day I made a playlist for the short story I was working on.

And I'm a convert now. It ain't magic, but it's something. I feel like I'm training myself: when you hear Enya and Loreena McKinnit, get to writin'.

Maybe one day we'll have an application that generates hypnotically productive playlists on demand. I could probably sell those. "Guaranteed to make men fear you and women want you!" I'll be back later, I gotta go work on the late-night commercial for that one. 

Saturday, September 27, 2008

Holly Lisle on finishing a novel

I enjoyed this essay by fantasy author Holly Lisle about how to finish a novel. I hadn't encountered the idea of candy-bar scenes before; she defines a candy-bar scene as:

one that you're just itching to write
-- something sweet enough that you can dangle it on a stick in front of yourself so that you can say, "When I've done these next three chapters, I'll get to write that one.
I think sometimes, on a project, I'll write all the candy-bar scenes up front, and then stall on finishing all the scenes that bridge it and tie everything together. It wouldn't have occurred to me to parcel them out to myself piecemeal.

Friday, September 26, 2008

Slightly vicious bear sketch


Here's a bear I drew recently. I liked how this one turned out. He'd make a good subject for polymer clay.

Thursday, September 25, 2008

What's their theme song?

What's the theme song of the George Washington High School Crossbred Canine Club?

I like big mutts and I cannot lie!

Three tiny dinosaurs


My three-year-old daughter often asks me to draw things for her. Recently she asked me to draw her three tiny dinosaurs.


But while I was drawing the first two, she asked me to make the third one...a big one. A really big one. So I did. 


Wednesday, September 24, 2008

Ha! ROM CHECK FAIL!

I can't remember the last time I tried out a game and it made me laugh like this one. ROM CHECK FAIL is a free download that was put together in a few weeks for a game contest. I tried it because someone posted it on MetaFilter. It's made from the sprites from a bunch of old games. The kicker is, it isn't the game it looks like at first. While you are playing the game, the game's graphics and rules change. But the level layout and opponents do not. The game becomes a test of adaptability.

You may start the game as the spaceship from Asteroids, then find that moments later you are Mario or Pac Man. When you change, your abilities change. Sometimes you get dealt a bad hand -- the Space Invaders gun, which can only move left and right -- and you have to try to stay alive until your luck changes.

This article will give you more details about how to play, and you can go here to download the game.

It's a supremely retro blender experience...a mashup of a game. The author was able to create it because he was able to get graphics and development tools off the net for free. Lately I've been thinking that you could try a new free game on the net every day for the rest of your life, and never run out. More and more I've been thinking that you could find one highly recommended, excellent game every day...and still not run out. It's a great time to be alive.

Tuesday, September 23, 2008

One big key

I was always fumbling with my keys to find the one that opens my front door. Until my wife found some oversized, decorated key blanks at the store and got us each one. Mine has Mickey Mouse on it. You can't miss it. It's brightly colored and almost twice as wide at the base as a regular key.

"I'd like to be IN the car when it leaves..."

I found a note in my journal about this one...I took my son, then 10 years old, to the dry cleaners with me, and we were getting back into the car. I got in the car, turned it on, and put it in gear without realizing he hadn't gotten in yet. He hops in and says, "I'd like to be IN the car when it leaves."

I believe that's my favorite thing about my kids this year -- seeing them develop good senses of humor.  It's just in time, too, because my son has started middle school, and there are a ton of new expenses. If they're gonna be costly, they'd better make us laugh.

Monday, September 22, 2008

Tree Elf/Yoda Costume Idea


Here's one I'm fond of. I might try this year if my plans to be Dr. Horrible go horribly awry:

Create a costume of a small character, where your head is the head of the character, and most of your body is disguised as a tree. This would be good for a Yoda costume or an elf.

To make this work, you wear dark brown clothes and use foam pool noodles or pipe insulation to make branches that stick up from your back, and you hold branches in your hands, with draping to cover your hands. You wear a doll body (no head) hung from your neck, and fasten the doll's arms to your arms and its legs to your chest. The idea is to make it look like there's an elf standing in the tree.

The biggest problem with this one is that it's likely to be uncomfortable. Well, that applies to almost every elaborate costume idea. That's why I burn through so many costume ideas every year. ;)

I dunno whether the doll body thing is going to work the way I imagine it. This one needs a mockup, but I haven't so far been willing to rip the head off of one of my kids' dolls...

Sunday, September 21, 2008

Make batch files that do different things at work and at home

The DOS/Windows batch file, one of my favorite tools. I worry that Kids Today won't learn how to use 'em, not like back in the dawn of the IBM PC, when I used to make menus for people using batch files. And they were grateful for them. Grateful, I tell you!

Here's something easy you can do with a batch file. Say you have a laptop you tote between work and home, and you have want to back up a file before you use it, but only when you're at the office. I say office, but any two computing environments might work. Use this trick to write a batch file that you use to launch the file...backing it up before launching it.

Use the batch IF command to create some behavior that only occurs in one of your environments.

IF keys off of the existence of a file or folder, so you need some distinction of that sort. But usually, you'll have access to some mapped drive letter in one environment that you won't have in the other.

So, write your commands like this

IF NOT EXIST X:\WORKFOLDER GOTO :NOTATWORK

xxx commands to be run when you're at work xxx

:NOTATWORK

Saturday, September 20, 2008

Remove XML/HTML tags using a regular expression

I'm sharing my slow journey through the wonders of regular expressions here. Here's something I learned recently: searching some text for all instances of the regular expression
<.*?>
and replacing it with nothing will quickly remove most XML tags. 
(The key item here is the ?, which makes the expression non-greedy. A <.*> would try to grab all text between the first and last angle brackets on a line; the ? makes the expression grab the text up to to the very next angle bracket.)
I used this in emacs with a replace-regexp command, it was like magic...quick and easy.
I haven't tested this exhaustively...maybe someone else can improve it. I noted that when I took a whole file, some tags that extended across lines didn't get removed. But this only applied to some of the meta information at the top of my file. 

Friday, September 19, 2008

Use clay to hold things together when gluing

My favorite model-building tip this year has to be this one that my brother-in-law Tyson Watkins pointed out to me. I'm sure it's old hat in a lot of modeling circles. But I was having trouble gluing arms and such onto miniature figures, and he suggested using a little blu-tac or poster gum to hold the parts; I used clay, since that's what I had handy. Now I use this all the time, because you can mold a hunk of clay to provide robust support for a part like an arm or a weapon, and then walk away and let it dry.

This'll work nicely in a lot of model-building situations, because typically the parts are not very heavy.

Thursday, September 18, 2008

How many stories have you gotten published, Daddy?

See, I thought I had a wife to puncture my ego, but now I have kids for that too. The job is currently overstaffed and we will be taking on no more people for the purpose of ego denting.

Last week my 11-year-old son asks me, "Daddy, how many stories have you gotten published?"

He seemed to think I'd put a lot of material out there in the world. I had to tell him the number was one, although I suppose if I go back to some school items I could bump it up a little. And I've done a couple of University of Texas Madrigal Dinner scripts that have been performed, but hey, I don't like to brag. 

Wednesday, September 17, 2008

Daddy, waffles can't wash their ha-ands

I was solemnly informed by my three-year old daughter this morning of this important fact.

_Soon I Will Be Invincible_: a supervillain novel


I finished reading Soon I Will Be Invincible, by Austin Grossman last week. I'd been wanting to read this book for a long time, ever since I heard about it. The title was enough, hinting that it would be about superheroism from the villain's point of view.

But the book actually takes a two-character chapter-by-chapter tack, alternating between villain Dr. Impossible and heroine Fatale. 

I liked the tone; the book describes characters who are locked in a slow spiral towards terrible conflict. It manages to deal with super powers and comic-book themes in a more realistic way than most comics. The lone mad scientist's ability to come up with gadgets no hundred-person lab can make is made more plausible by the treatment of Dr. Impossible's history and story as an outsider.  

The premise brought me in, but the language kept me around. Here's Dr. Impossible talking about the moment when he gained his superpowers:

The temperature went on rising. Spiderweb cracks formed on the glass of the containment chamber an instant before the explosion. the pain was like burning or drowning, and it went on and on, unbearable. I wanted to faint, to leave my body. When you can't bear something but it goes on anyway, the person who survives isn't you anymore; you've changed and become someone else, a new person, the one who did bear it after all. The formula saturated my body, and I changed.

And how about this bit where Fatale thinks about what it's like to be normal:

I used to have a real life; I used to be someone who went on vacation to Brazil. I used to be able to walk down a street without getting stared at, and lie on a bed, and talk to a man who would look at me in something approaching a normal way.

Mentiac predicts that in the very far future, the stars will have cycled through all possible stages of their fusion reactions, from hydrogen to helium and so on down the periodic table to iron. And then there will be a true iron age, when every atom in the universe will have turned to iron, everything transmuted by inexorable centuries to basest metal, even high-tech alloys, even diamonds. Everything. In my imagination, iron stars orbited by iron planets float through an iron galaxy in an iron void. But even then it won't be over. There's always a Rust Age. 

Or here's Impossible musing about losing a girlfriend:
My style of work takes a lot of preparation. I build things and test them out. I have to order parts, or cast them myself. I have to pull all-nighters to debug my robots' pathfinding routines before an invasion. It isn't that interesting to other people.
But getting a glimpse of the inner workings of Impossible's mind will be of great interest to other people. I recommend this book highly. 

Tuesday, September 16, 2008

Rodian Protester Costume Idea: Han Shot First And We're Not Gonna Take It Lying Down

Since Halloween is just around the corner, I'm going to start posting costume ideas.

Here's a simple one that I came up with last year: A Rodian protester.

Rodians are the Star Wars alien race that claims Greedo the Bounty Hunter as a member. When George Lucas remade Star Wars: A New Hope, he changed the scene where Han shoots Greedo to make Greedo shoot first. This created protest among some fans, generating the "Han Shot First" t-shirt.

So combine a Greedo mask with a "Han Shot First" t-shirt, and you've got a credible Rodian character protesting Mr. Solo's evil ways.

Monday, September 15, 2008

Daddy, what does ponic mean?

A couple of years ago, it was a Sunday morning and the whole family was at the breakfast table. My oldest daughter, then about 7, was talking about hydroponics -- you know, like you do when you're 7 -- and she asked us what 'ponic' meant.

So I tried to answer her...and my wife just had to correct me every time: 

"It's something that has to do with sound, or a hedgehog..."
"No, that's sonic."
"It's when you have a disease and you have it all the time, you don't get well."
"No, that's chronic."
"It's what you take to avoid getting malaria."
"No, that's tonic."
"It's a system for learning how to read by sounding out words..."
"No, that's phonics."
"It's a sort of black dialect way of speaking..."
"No, that's ebonics."
"It's a way of cleaning out your digestive system..."
"No, that's a colonic."
"It's when something is really well known, everybody knows what it is..."
"No, that's iconic."

"Well, then I don't know what ponic means."

This didn't amuse the kids quite as much as it did my wife, but that's plenty for me.

Sunday, September 14, 2008

Threatening spam: We have hijacked your baby

Last week I got some spam with the subject line, "We have hijacked your baby."
That's the most threatening spam subject line I can recall. It included a file named photo.zip, so I suppose they're banking on someone being frightened enough to open the file. 

That's pretty callous, though, to play on that particular fear. I wonder what kind of payload that photo.zip file had? Was it a virus that would hijack my machine and make it part of the vast zombie networks I read about? Do we need to increase the penalties for sending spam?

Baling wire and duct tape wireless

I may have actually have impressed my son this week. We received a used computer from my dad that was better than our office desktop computer, so I was swapping computers around to make the older one into a box the kids could use. The main thing I had to do to it was install a wireless card. But after installing the card and its drivers, I still couldn't pick up my house wireless network. 

But every now and then I would briefly detect it. So I thought the problem was with the antenna. I unscrewed it and got out a piece of wire and an old radio antenna from my junk box. I duct taped one end of the wire to the antenna, and taped the other end to the antenna port on the card, then balanced the antenna on top of the computer with a wad of play dough. 

And it worked. We got a strong signal and the internet was ours....briefly. Duct tape isn't holding it forever. I'm going to have to get hold of a connector or something...maybe I can cannibalize the faulty antenna for that. But it was a lot of fun to channel MacGyver for a minute and prove my theory. 

Saturday, September 13, 2008

Goblin, in polymer clay





Here's the first figure I've seriously tried to sculpt, using an armature and a base. He's a 5"-tall goblin.

Friday, September 12, 2008

Donjon: elegant and simple dungeoneering

The only tabletop role-playing game I've really played in recent years has been Donjon, an indy game that I discovered via web recommendations and the Forge website. I bought it as a PDF file. (Here's a review of Donjon that I enjoyed.)

I like it because it's pretty simple and freeform, rules-light and elegant. It has a few concepts and it uses them consistently. You can make up pretty much any character you like with it, and rate them, and still not unbalance the game. You can call your characters abilities what you like...but your character gets the same number of dice as any other, so it'll still be fair.

But the most interesting things about it are in the mechanics that allow the players some measure of the kind of control usually relegated to the gamemaster.

The gamemaster can't and shouldn't make a detailed map beforehand, because players can create landscape and building features during play. This power, normally reserved for the GM, is shared with the players when the players make successful die rolls; the players can use some of the successes they achieve to erase wounds, create objects, or assert reality.

For example, a player who is trying to open a door makes a really good roll and gets 3 successes. Each success can become 1 fact in the game. The player can decide to state things like this:

1. There is a troll behind the door.
2. The troll has her back to the player.
3. The troll's weapon is on the far side of the room.

So it's not just that players are allowed to do this stuff...it's that their access to this power is metered out by the rules of the game. That's fascinating stuff.

One thing I noticed when playing this with my small kids, though, is that one of these more modern, simple, and elegant games -- one that expects you to make most of it up on the spot -- has problems for kids. Kids don't have the vast array of canned creatures, plots, etc. that a longtime genre fiction reader like myself has (or any adult who has watched years of TV). Yes, I know they're watching vast amounts of TV too. Maybe it's the fact that they didn't try to memorize the Monster Manual years ago.

I should probably quit whining and introduce my kids to some of the online resources available for Dungeons & Dragons, and use all of that. I have to admit that though I like the make-it-yourself aesthetic, it sometimes dissuades me from playing, thinking that I'll have to make everything up. You really have to be able to think on your feet.

As soon as I introduced the game to my son, I had to adjust. I'd been thinking of a game world where there were just two intelligent races -- goblins and elves -- to focus on conflicts between them. Nah, he wanted to play a Pixie, because he'd been reading Artemis Fowl. Heh. He's my son, and I let him do it. I could probably have browbeat an adult into letting me have my way as gamemaster. But that's not how Donjon is supposed to be played; you could introduce a new race in the middle of a fight, if you wanted.

Thursday, September 11, 2008

Hall of Technical Documentation Weirdness

I just feel that it would be wrong to fail to point people at the Hall of Technical Documentation Weirdness.

I'm the octopus of the library

Recently I learned that you can use the Austin library's hold service through the web, and in an amazingly convenient way, to bring books from all over town to your local branch.

I thought the library hold was just for getting a book that someone else had checked out, to make sure you got to read it next and that they couldn't recheck it and keep it out. Or to make sure you got notified when the book got turned in.

But putting the whole library catalog online and automating the hold feature has made it possible to browse the entire library collection, select a book, and have it sent to the branch of your choice. You get an e-mail when the book arrives. 

(To do this, you need a library card and a pin number. You go to the library web site and log in via the My Account link. Then you search for books. When you find one you want, you click the Place a Hold button. That's it. If it's not checked out, it'll probably be at your library within a couple of days.)

As a result, I now have a tall stack of great books to read...including many of the books from the Fables graphic novel series. I'm the octopus of graphic novels, sending my tentacles far and wide to draw them in.

It's been really nice to see the libraries start to stock graphic novels, but I'd just about exhausted the selection at my local branch. When you're able to easily read books from the whole Austin library system, though, you get an impressive selection. 

Wednesday, September 10, 2008

You Look Nice Today is worth checking out

I have become completely enamored of a little podcast by Merlin Mann, Scott Simpson, and Adam Lisagor, called You Look Nice Today. Apparently, if one can believe the intertubes, these guys were all popular contributors to Twitter, who started this podcast of random humor.

It sounds like three guys talking about random stuff. But it's distinguished by a few things:

  • It has a certain radio morning show quality -- three guys talking -- but it's been edited to remove the boring bits.
  • Each of the three hosts seems willing to follow up on any crazy idea suggested by the others. Someone suggests something. The others take it and twist it and it goes weird fast. This aspect of suggesting, in apparent seriousness, wacky ideas is one of the things I love best.
  • As a result of the above, it's quickly building up it's own language. Hmm. That's not really unique. But I do like the things they come up with.
  • I like the fact that it's very simple. Although it's edited, it's not heavily edited. It's just been snipped.

Of course, I think all three of these guys are really close to my age. So there's that.


The only problem I have with this podcast is that there isn't enough of it.

Tuesday, September 09, 2008

Big broccoli, big chameleon

I was working on a fantasy story this spring, and I had my characters riding ostrich-like birds. I was aware that this was a trite choice, and I was casting about for other ideas, so I asked my eight-year-old daughter for help.

She responded by drawing two pages for me, in crayon. Each page had been divided into a grid of boxes and each box contained a labelled choice. Here are some of the choices she offered me:

Giant Venus flytrap
Mini dragon
Big turtle
Big bunny
Live rock
Giant bear
Big scissors
Live crayon
Pterodactyl
T-rex
Big (hermit) crab
Big broccoli
Big camillion (chameleon)

I really liked the broccoli, but I ended up using the chameleon. So now I've got characters riding around on giant chameleons. They don't change colors for camouflage in their domesticated form, you understand. They just do it to show emotion.

Monday, September 08, 2008

That DOS knowledge still comes in handy: CHKDSK saves the day

Last year we had a power outage and our home desktop computer crashed, and I could no longer bring up the Windows operating system on it.

I thought the machine was completely hosed, but I put the main drive into a USB enclosure that we borrowed from a friend, and connected it to a laptop, and ran a
chkdsk \f
command on the drive, from the DOS prompt.

The command found a bunch of lost chains on the disk, and fixed them, and afterwards, I was able to reinstall the drive and boot it normally. Everything was fine.

Not only that, but I found some e-mail files that had been "lost" before. I assume the chkdsk command recovered those.

Sunday, September 07, 2008

You lecture me...

A couple of Saturdays ago, I took my eight-year-old daughter to Wal Mart. She'd been wanting to go, asking almost every day, because she wanted a particular "Littlest Pet Shop" toy.

She buys it. Then at checkout, she sees a roly-poly lantern she wants. She buys that too.

On the way out, I tell her, "You know you just spent all your money. You should keep some back, in case of an emergency, or something else you want to buy."

She gets real serious. "Daddy, I'm a kid." She waits a beat.

"I don't really have emergencies." Another beat.

"And if there was an emergency, you'd pay for it."

That was true enough. But she kept going on. "The only emergency I'll ever have is a toy I can't afford." "If I really needed something, you'd buy it for me." She said it several more ways, amounting to the same thing, until finally I said, "Stop, stop! I get it, okay?"

Then she said, "You lecture me, I lecture you!"

Saturday, September 06, 2008

Bat cartoon figure


At the risk of ridicule, I will begin to now reveal some of the cute cartoons I've been routinely doodling. In honor of my oldest daughter, a bat...her favorite animal.

Friday, September 05, 2008

NASA is funding science workshops for SF writers

This is a sweet deal. NASA is funding science workshops to teach scifi writers better astro science. It's all-expenses-paid, too. But the catch is, sounds like you have to be a writer with a bunch of publications to your name. This is going to be my favorite use of government funds this year, I think. Are there any other public funds devoted to the furtherance of science fiction? That can't be a big category.

Here's a report on the most recent workshop, from an attendee. He said it was like a mini and very exclusive scifi con. Jay Lake, a writer I've recently read a lot of , was one of the attendees, as well as Mary Robinette Kowal.

Thursday, September 04, 2008

Why should we criticize Sarah Palin because her daughter has a baby?

I was catching up on the news and read that Alaska Governor Sarah Palin, veep hopeful, has a teenage daughter who is pregnant. I guess that's embarrassing when you're a Republican. But all the candidates in the world seem to be lining up to support the idea that people shouldn't be judged by their kids. I'm sure they'll get no trouble from the vast numbers of voters who are parents.

But I was struck by this item:

She and her husband, Todd, have four children, Track, Bristol, Willow and Piper

That's a heck of a string of unusual names. Clearly they learned as they went along. I like Willow and Piper. But Track? Bristol? Makes me wish I'd named a kid Liverpool.

No: name them Essex and Sussex, but preach to them about abstinence their whole lives.

Wednesday, September 03, 2008

Printing houses

BoingBoing just posted this one, but I can't resist posting it, because one of my favorite jobs ever was working for a company, DTM Corporation, that made a rapid prototyping device -- a sort of 3D printer that creates physical objects from computer models.

There are lots of different 3D printing methods, and several of the technologies rely on extruding or squirting out pastes onto a surface from above. One company is working on a technology to extrude concrete and make buildings with it. Very spacey, very interesting idea, and there's the thought that we might use something like this to construct habitats on other planets. Neat stuff.

100th bike ride

Today I biked to work for the 100th time this year. Yea me! I have to have a new goal now, since it's only September. I'm going to try to hit 150 ride replacements...that number will include any days I work from home.

I'd buy myself a present, but I just bought a copy of the Grant Morrison graphic novel The Invisibles Vol. 1. I've read about half of it, it looks good. Secret groups associated with magic and battling behind the scenes of the workaday world.

Tuesday, September 02, 2008

Parenthood is changing me

I understand some things now....the protectiveness that parents feel. I remember before we had kids, I wondered whether I would be willing to sacrifice myself for my kid in some way. I can sort of see myself doing it now.

For example, I'm scared of large dogs. But I think I would fight a medium-sized dog with my bare hands to save one of my kids.

But I don't think I'd face a lion for one of them. I mean, I've got other kids.

Maybe I can work my way up to lion-tamer status. Start with wolves, for example. Is there a computer simulation for this kind of thing?

And heights are right out.

Monday, September 01, 2008

Can I have my search results as a link list, please?

The classic word processing search function isn't so useful in large documents, and there's a much better way to handle things that I've encountered in a few applications: returning search results as a list or report, with one hit per row, and making the rows clickable links back to the location of the search hit in the text. I'll call this a search report.

I want one of these in every future version of every word processor, please.

You've seen this on any web search page. You're just probably not used to seeing it in a desktop application. This feature is awesome, and I'll tell you why.

Suppose you're editing a document for variations on a term like WebLogic. You want to inspect all the places where it's used and make sure they're correct. Maybe you want to use the longer name "BEA WebLogic" in some places, not in others. A good search report will give you lots of help:

  • It'll display a total of hits, so you know instantly how much editing you've got ahead of you.
  • It'll show the hits in context, highlighting the search term.
  • You can use this feature to edit incrementally and check your progress. For example, you can make some changes, then rerun the search and see how many items you have left to fix.
Emacs has a good implementation of this through its occur feature, which also supports regular expressions. You can do lots of fun things with this. I do things like mark lines with special strings so that I can list them....creating touchpoints in my document that I can use to jump around and navigate it. For example, in a text document I create titles and put the marker "@#@" on the title lines, to delineate sections. Then I can issue an occur command for all lines containing @#@, and I get a linked list of those lines...effectively an ad-hoc table of contents for the document.

UPDATED 9/4/08: I was just using Emacs, and realized another neat aspect of an occur search. I couldn't remember a word I'd used earlier in the file I was working on. I knew it ended in "ium". So I did an occur search for "ium." Emacs then splits the screen and shows me the search hits in the lower half. I could see the information I needed without ever leaving the place where I was writing. Now that's service!