StuffIt updates to version 13.0

Ah, StuffIt. The most perplexing rip-off in the recent history of software. I predicted we’d see version 13.0 before 12.0.4. Turns out I was bit conservative; the last 12.0.x update was 12.0.2.

For those who missed my previous hating on StuffIt, I’ll recap: do not buy it, and you probably shouldn’t update if you already own it. It is redundant, outdated, buggy, and a sad excuse for professional software whose company makes money by bumping the version number for every minor update. Back in the day, StuffIt was a must-have tool. Now it is an example of why giving complete control over a product to a marketing team is a terrible idea.

If you need a file compression and archiving solution, do yourself a favor and try something like Springy or BetterZip instead.

Kindle markdowns

From the science fiction landing page in the Amazon Kindle store (this was right at the top):

Science Fiction Classics on the Kindle

I’m always so glad when I can spend $8.00 rather than $0.75.

Whoever at Amazon approved that section is an idiot. Plus at least one of those books is available from Feedbooks for free (always check for a free version before you buy a classic).

Sometimes I wonder why more publishers aren’t gunning to get their author’s books onto the Kindle. And sometimes I don’t.

Swarm

They came in over the hill shortly after dawn, slipping through the grass in a gentle susurration just shy of being inaudible. From the porch the grass looked like it was merely swaying in an energetic breeze, but as the motion swept closer glimpses of sickly pastels flashed briefly between the overgrown blades.

Tom stood on his porch, hands gripping the barrel of his shotgun, and wondered where they had all come from with so little warning.

Jemima stuck her head out the door. “Tom, what in tarnation are you doing with a shotgun?” she said, and then glanced beyond him at the waving grass, the teeth and twitching wet noses flashing in and out of sight. “Good merciful God,” she said.

Tom turned his head and spat off the porch without taking his eyes off the hill. “Get out the front, Jemima,” he said. “Don’t reckon I can hold ’em long.” On the shotgun his knuckles stood out white and bloodless against the black of the barrel.

“What is that?” said Jemima. “Tom?”

“Never told you what I was hunting all them times I went east,” said Tom. “Didn’t want to worry you.”

At the crest of the hill, two prongs of quivering shadow thrust into the sky, silhouetted briefly against the red glow of sunrise. Tom’s arms jerked in an aborted attempt to swing the shotgun up to his shoulder, but whatever it was dropped out of site, disappearing back into the grass as it proceeded down the hill with its brethren. The wave of swaying grass was almost to the circle of dirt that bordered Tom and Jemima’s home.

“Jesus God,” said Jemima.

“The son-bitches,” said Tom. “I never thought they’d swarm like this. I could have swore I cleared them out years ago.” With a practiced gesture, he broke the gun open and checked its magazine.

“Bastards can have both damn barrels,” he continued with a glower as he slammed the action home and gave the pump a pull.

Jemima at last gave the shotgun more than a passing glance. “Christ, what’s that?” she said. “That’s not your shotgun. I thought those things were only in movies.”

“Bought it off eBay,” said Tom, taking his eyes off the grass for a moment to admire the sleek, semi-automatic, double-barreled beauty of his firearm. Its matte black surface had an infernal glow in the strange light of the red dawn, every oiled line of its body speaking of barely-restrained brute force. “Had to mortgage the house to get it.”

Jemima went slack-jawed. “You did not mortgage our house,” she said. “God, you did not.”

“I told you to run, Jemima!” said Tom. “They’re coming out!”

As one, a line of pink, yellow, and white fuzzy bunnies shuffled from the grass and onto the dirt. There they paused, focused on Tom and the gun in his hands. Their adorable little paws shuffled quietly in the dirt as their beady eyes surveyed the porch.

Tom whipped the shotgun up to his shoulder. “Try it,” he growled. “I’ll take the lot of you.”

Jemima wrinkled her nose in confusion. “But they’re bunnies,” she said. “Like Easter.”

Some of the bunnies wiggled their button noses. Others twitched their precious fuzzy ears. Tom’s finger tightened on the trigger, the gun’s barrel swaying first left, then right. The pause went on for an indefinite second, tension suspending bunnies and the two on the porch in a timeless state of adrenalin. Then, without any apparent signal, the bunnies surged forward, more in the grass hopping over the heads of the frontrunners even as they pelted for the house, the grass whipping as if in a tornado as bunnies poured over the hill in a now visible stream, leaping and kicking their feet in a frenzied animal rush.

With a roar Tom discharged his shotgun and punched a hole through the front line of bunnies, blood misting the air as bunny bodies tumbled and spun limply backward. Jemima screamed once, loud and shrill, like a fallen angel just starting their descent and realizing how truly far they had to go. The desperate dual shunk-shunk of Tom’s pump action melded with Jemima’s scream before he sent a second thunderous cluster of shot tearing into the pack. Then the bunnies were there, bouncing wildly, eyes black as the inside of a coffin.

And at last there was silence. Pink, fluffy silence.

Textmate Emulation Applescripts for Coda

Update: TEA for Coda documentation and other information has now moved over to One Crayon:

http://onecrayon.com/tea/coda/

Textmate is a fantastic editor. Every once in a while I try a different text editor, but none of them allow me to get even close to the speed and productivity that I enjoy with Textmate.

However, I recently took another look at Coda when it was updated to version 1.5 because the update came out at the same time that a project which benefited a lot from Coda’s all-in-one interface hit my plate (gotta love remote editing with SSH access in the other split). Although nothing can salvage Coda’s craptastic CSS editing (nothing but a straight-up duplication of CSSEdit‘s fantastic auto-complete and intelligent indentation, that is) with a little Applescript I was able to emulate four of the functions from Textmate that I find absolutely critical to my coding happiness and productivity. Without further ado, I give you the Textmate Emulation Applescripts for Coda:

Download TEA for Coda

TEA for Coda currently offers four of my favorite actions from the Textmate HTML and Hyperlink Helper bundles (in slightly less elegant and feature-rich implementations, of course, given that it’s Applescript and Coda’s less-powerful editing environment):

  • Insert Open/Close Tag: this is the functionality that I can’t live without. Just type the tag you want and run the script to have the tag automatically created and your cursor inserted inside (you can also type a tag with attributes, select it, and the script will intelligently exclude the attributes from the closing tag). The only thing that makes me sad is that Coda doesn’t have Textmate’s intelligent text indentation, so adding divs with the script is still a little frustrating.
  • Tidy HTML: this runs Tidy HTML optimized to correctly indent your code rather than clean up messy code (Coda lacks automatic code indentation, and I write clean code anyway; see the Read Me for info on changing Tidy’s default options if you’d rather use it to fix Word HTML, for instance).
  • Wrap Selection in Link: this mimics the basic functionality of Textmate’s Hyperlink Helper Wrap Word as Link, but without the cool automatic title attribute generation or tab controls. It will automatically grab whatever’s on the clipboard, though, making it easy to create links if you’ve copied them from elsewhere.
  • Wrap Selection in Tag: use this script to wrap the selected text in an arbitrary tag. Like Textmate, it allows you to enter attributes but doesn’t stick them in the closing tag. Unlike Textmate, it forces you to use enter the tag in a dialog box; about the same speed, but much less elegant.

Make sure after installing the scripts that you customize yourself some shortcuts either using the System Preference Keyboard and Mouse area, or with a utility like FastScripts. The ReadMe includes a list of the default Textmate shortcuts for your reference if you’re a Textmate user.

Hopefully these scripts will help other people who want to leverage the awesome HTML editing capabilities of Textmate along with the all-in-one sweetness of Coda. If you’re an Applescript ninja and decide to improve on or add to the scripts, please let me know! I’d love to implement better solutions to my own workflow, and I’m a bit of an Applescript noob so the scripts could doubtless be improved.

As far as my own plans for the bundle go, I intend to add a script to emulate Textmate’s Wrap Each Selection in Open/Close Tag and I’m also hoping to increase the intelligence of some of the scripts by offloading some of the logic to shell scripts; just need to work on my Python-fu or something before that can happen.

While Coda is still a jack of all trades and master of none, the TEA for Coda bundle has at least made it usable for me on those projects where its collection of features and awesome split abilities make it a better choice than Textmate. I just hope that Panic will implement some intelligent indentation for a future version, as that’s still the most glaring omission when trying to perform basic text editing, even with TEA for Coda installed.

Minor update Sept. 1, 2008: With thanks to Brian Haslanger, Format with Em (menu title: Em) and Format with Strong (menu title: Strong) are now a part of the TEA for Coda. If you’ve already installed the bundle, just redownload, copy the HTML/Format folder into your ~/Library/Scripts/Applications/Coda/HTML folder, and add the cmd-I and cmd-B shortcuts in System Preferences.

Minor update Sept. 2, 2008: TEA for Coda now includes the most recent version of Tidy (the HTML Tidy site provides binaries that are several years out of date). Additionally, the Tidy script will now accept selected text and only tidy that text (without inserting a bunch of useless body tags and so forth). If you don’t select any text, it will tidy the entire document. I’ve also revised the tidy_config.txt file to some more sensical defaults. Updating procedure is the same as before.

Minor update Sept. 25, 2008: TEA for Coda now has a dedicated landing page; please reference that for the most up-do-date information about the scripts. I’ve also updated the scripts with bug fixes and more, but I won’t be updating this post any more when I update the scripts down the road.

Minor update Nov. 10, 2008: So I lied about never updating this again; since this post continues to be a popular landing spot for Google, I wanted to let folks know that TEA for Coda now includes a Universal Binary version of Tidy HTML. If you’re using a PPC, definitely grab the download above and update (more info on updating in the Read Me, or here).

Minor update Nov. 11, 2008: TEA for Coda now requires Coda 1.6 (which is a free update for all Coda users), and the scripts will now perform their actions in the active document, even if there are multiple windows open.

The perfect time tracker

I just discovered an odd little website called ididwork (via Chris Bowler). It’s basically a personal or small-team Twitter, but with built-in tags and the ability to analyze your logged comments. The intent is that whenever you do something during the day, you log it into ididwork and then you (or your manager) can analyze your time.

Well, okay, that’s kind of cool, but to be honest it’s just one more damned web app that I’d need to track, so the ididwork service itself seems like more effort than I’m ready to put into it. Chris Bowler wonders whether there’s a desktop solution (so far as I know he’s out of luck, but maybe someone will tip him off to something wonderful and he’ll share).

For myself, though, ididwork makes me wonder why this kind of thing isn’t built into a time tracker. Currently, most of the time trackers out there can be used in one of two ways: you either track your time for a project in a chunk and write what you did in the notes (easier to manage, harder to see specifically how long a task took) or you can open a new timing ticket for every task (major pain in the ass, but makes retrospective analysis extremely simple). What if instead, while you were timing, you could hit a hotkey, enter a short description of what you just did, and the timetracker would log that snippet with the active session along with the time that you entered it?

OfficeTimeI currently use OfficeTime because it’s the best of a large selection of imperfect solutions. Specifically I chose OfficeTime because:

  • It lets me start/pause and stop/restart any timing session and only rounds once (rounds when you stop, removes rounding if you restart).
  • If I start a new session (in another project or not) the current session is automatically paused.
  • It allows me to pause any active session and start a session for any active project from the menubar.
  • It has robust reports that let me easily filter past sessions, invoice sessions, and check off sessions as invoiced or reported.

No other time tracker that I’ve found has quite this configuration of features (particularly not in a package that’s so straight-forward and simple to use; interface bloat is a serious problem for time trackers). Where OfficeTime fails me is that it is incapable of showing me the times when I paused and restarted a project, and I usually forget to fill out the comments field as I go, which causes me some headache at the end of the day. Additionally, thanks to my one-session-per-project-per-day usage, when looking back after a week or two it’s almost impossible to remember how long a task on any given day took (assuming that I remembered to note it in the comments field at all).

If all that OfficeTime did was offer an easy way to enter comment snippets and associated them with a timestamp (either real time or, preferably, relative to the active session) then almost all of my issues with it would be solved. Heck, I wouldn’t mind if it just appended “2:13 Finished feature X” to the comments field of the active timer (assuming 2:13 is 2:13 into the timer, not 2:13 PM) most of the weaknesses of the program would be solved (from my workflow’s perspective). Additional analysis tools would be a nice bonus, perhaps, but might just be interface bloat.

Of course, I’m not picky. If some time tracker other than OfficeTime implemented comment logging (assuming that it already had my must-have reports, pause/restart, simple interface, and only-rounding-once features) I’d be more than happy to switch over. Because that particular selection of features sounds to me like about the perfect time tracker.

Patricia Briggs is officially one of my favorite authors

Ever since I read Dragon Bones and Dragon Blood I’ve been slowly working my way through Patricia Briggs’ body of work. I’ve finally read everything that’s readily available on the Kindle (the first book in her first series is unfortunately not on Kindle, or anywhere else that I can find), and it’s safe to say that Patricia Briggs is one of my absolutely favorite authors. Here’s why:

  • She writes excellent fantasy, every time. There’s lots of really bad fantasy out there. Ever since the runaway success of Harry Potter, publishers have been pouring money into making crappy fantasy look worth buying. Briggs is consistently excellent and sometimes edges into outstanding. I really value an author whose books I can buy without worrying whether I’m in for a disappointment.
  • She writes realistic fantasy. Too many authors forget how fragile human bodies are. In Briggs’ novels, villains don’t waste time monologuing; they kill the people they want dead. Injuries matter. Heroes sometimes win simply by surviving long enough for the villain to bleed out. Sure, there’s magic and so forth, but Briggs keeps reality firmly out of Superman-ville where bullets can be shrugged aside and there’s no need to fear for the hero because you know in your gut that they’ll make it through unscathed.
  • She writes fun, believable characters and moves beyond stereotypes. Briggs’ characters are quirky, believable, and no one is irredeemably evil or good. She also has a flair for capturing social interactions; her werewolf sub-culture is fascinating and feels utterly realistic (assuming there were a subset of people who could turn into wolves).
  • The books in her series are self-contained and always a decent few hundred pages long. I am not impressed by people who write epics, to be perfectly honest. Granted, there are some amazingly good epics out there (I was recently captivated by Robin Hobb’s Farseer Trilogy — Assassin’s Apprentice, etc.) but writing absolutely every detail is lazy in a lot of respects (aside from the challenge of keeping someone’s interest through every little detail). I am much more impressed by authors who can compress a worthwhile story into a digestible chunk without letting themselves go. Briggs does this without fail.

I really can’t recommend Patricia Briggs highly enough. This is definitely the kind of fantasy that I’d like to be able to write myself, and I greatly admire Briggs’ ability to write realistic fantasy that maintains the excitement and fun of more clichéd fantasy. But as much as I like blathering on about how great Briggs is, you probably are more interested in which book to pick up first. Here’s my thoughts on that:

  • Moon Called is the first book in the Mercy Thompson series (currently three books long, a fourth on the way). This is urban fantasy of a sort (set in Kennewick, WA), and likely to have the broadest appeal of any of Briggs’ work. Although I love Dragon Bones, I think this might be my favorite group of Briggs books.
  • Dragon Bones as I’ve noted before is an excellent book, and my recommendation if you’d like to try some of Briggs’ more traditional fantasy. Raven’s Shadow is her other traditional fantasy duology, but it isn’t as strong as the Hurog books.
  • The Hob’s Bargain is a decent standalone traditional fantasy, but not really one to introduce you to Patricia Briggs. Read it after you’ve finished some of the other stuff and need your fix one way or another.
  • Cry Wolf is Patricia Briggs’ newest novel set in the same world and with a number of the same characters as the Mercy Thompson novels, but it isn’t a good starting place for two reasons: first, you’ll want to have read at least the first Mercy Thompson book or the world won’t make enough sense to you; second, the book picks up after a novella and the beginning third or so throws you abruptly into a relationship between two people you don’t know all that well (unless you read the novella). Cry Wolf is excellent, of course, but it’s more geared toward people already loving Patricia Briggs.

So go read Briggs. I certainly am glad that I’ve discovered her, and I’m looking forward to her next books.

Cuil is damned cool

Cuil, a newly released search engine, is extremely interesting. I love the multiple column approach (perfect for today’s widescreen monitors), and the idea of sorting by relevance rather than popularity (even if it’s a total pipe dream) is something I can get behind. I’m happy to find that it’s a lot simpler than Google, too, which is great. Google is easy, but Cuil is way easier (and more helpful when it comes to constructing queries).

That said, I did a vanity search for “beckism” (though I sometimes am tempted to vanity search my name, it’s always useless thanks to another, rather more famous Ian Beck; the fame doesn’t bother me, but what really pisses me off is that he’s an author and writes fantasy, which means if and when I’m able to get published I won’t even be able to use my own name). In any case, it turned up an interesting result:

Beckism on Cuil

Aside from the fact that the link (and as a result their index) is woefully out of date (I redesigned the blog back in February, which was when I changed my link structure), I’m curious how that image got associated with Dirt Man. It’s clearly some sort of clothing accessory, but aside from the fact that it’s an image that has never been on my servers, why on earth would it be associated with my site? I don’t sell clothing. I don’t even like clothing. Well. It’s nice when it keeps off the rain, I suppose.

I want to love Cuil, but it definitely has some kinks to work out.

In other news, the last time I updated Dirt Man was February 2006. Jesus. No wonder no one ever reads it.