FastScripts 2.3

September 26th, 2006

Today I released FastScripts 2.3 (and an updated FastScripts Lite!). FastScripts 2.3 contains the following significant changes:

  • A refined grayscale menu bar icon
  • Support for unmodified keys as script shortcuts (10.3 and later only)
  • New preference for toggling “Launch at Login” feature
  • Reorganized Preferences dialogs
  • Improved AppleScript access to FastScripts script hierarchies
  • Miscellaneous bug fixes

The new grayscale menu bar icon was basically saved by the help of Bryan Bell, an awesome icon designer who agreed to help me out with it. I’m not sure what’s more exciting, the fact that FastScripts has a great looking icon, or the fact that such a prestigious art is shipping in one of my applications! Thanks, Bryan.

Credit is also due to John Gruber who complained almost a year ago about the old icon, when I promised I’d look into improving it “within a few weeks.” He finally recommended Bryan to help me set things right.

FlexLog: Logging For FlexTime

September 23rd, 2006

One of the requests that has come in for FlexTime is that it should support some kind of logging mechanism. That is, you should be able to keep statistics on certain activities. This is especially important to people using FlexTime to improve their productivity or adherence to beneficial habits like stretching or exercise.

I do hope to fulfill this requirement in a future release of FlexTime, but in a stunning example of customer ingenuity, Ryan Ballantyne has beat me to the punch and implemented just such a mechanism, by leveraging FlexTime’s scripting support. When I see things like this I have to take a step back and say, “whoah!” It’s gratifying to see somebody seize on the functionality of FlexTime with such enthusiasm. Sure, the enthusiasm was toward filling a shortcoming of FlexTime, but the fact that he had the vision and followed through on it is at least a testament to its … flexibility.

Ryan also had some general observations about FlexTime, and how he uses it:

“I was once given a stretch routine by a chiropractor to help my back and neck. It really does help, but it’s hard to stay dedicated and do it with frequency. Also, each stretch calls for 20 seconds, and it can be hard to count out the time on my own.”

Another interesting use he describes is using it as a timer in a group gaming scenario:

“I once used it to time a game of Rummikub. In that game, everyone is allowed only 2 minutes per turn. I set flextime up to speak text at 30-second intervals, reminding people of how much time they had left. It was great.”

Interesting stuff, Ryan! I hope that your example will inspire other people to see what Flextime can do for them.

Ten Free Ideas

September 23rd, 2006

I meant it when I downplayed the value of ideas in my critique of the My Dream App contest:

“Ideas are practically free. They run like flood-water through every conceivable channel of the internet.”

In the month since I wrote that article, those words have been the most controversial. It seems most people still think ideas are golden. Ideas are important, yes. Necessary, yes! But they’re nothing special. Like water, they’re critical to life but at easy reach for most of us.

They’re mainly significant to the person who thought of them, because they represent an “inspiration bookmark” for that person. They are reminders of something that satisfies you. In the same way that you might make a note of a brand of wine you particularly enjoyed, or a movie you want to rent, or a museum you want to visit. Ideas are personal. Somebody else’s idea is only valuable if it happens to be something you were inevitably going to be passionate about, yourself.

“No one wants to hear what you dreamt about unless you dreamt about them. Don’t let that stop you. Tell them anyway.” — Built to Spill (iTunes Song Link)

So I’ll tell you about my dreams. Here are ten ideas from my years-old idea file, in no particular order.

Most of this ideas won’t inspire you, because they’re mine. You’ll know them because they’ll sound like a bad idea to you. But if you like an idea you read here, if it really fires you up, then pursue it! No permission necessary. No credit necessary. I won’t sue you. You’ve got a right to be inspired, too. Just pick your own app’s name. Maybe I’ll even buy the product. Also, let me know if any of these ideas already exist. I’ve summarized what my take is on the “state of the market” for each idea is, but I might be missing some awesome product that I just haven’t heard about.

To make it even easier for you to steal my ideas, I’m including a proposed “next action” for each idea (this approach comes from GTD and is also consistent with my Easy Programming philosophy). What simple step can you take to come closer to realizing the dream?

  1. Privacy Guard is an elegant, simple UI wrapper on some private web-browsing technology. Probably Tor, the powerful and popular solution from the EFF. Privacy Guard runs in the background and offers a menu bar icon to easily reflect your privacy status, and allow you to flip between protected and unprotected modes.

    State of the market: Vidalia is an open source UI wrapper available from EFF itself. It’s a good first step but has cross-platform clunkiness. It needs a Mac overhaul, but could prove to be a good arena in which to realize this “product.”

    Next action: Look into adding a menu bar icon to Vidalia.

  2. Snapshots examines any folder or disk on your Mac and produce a reference description against which future “snapshots” can be compared. This is particularly useful for “before and after” tests, for example when installing software. Taking a snapshot of your disk before and after a Software Update would show you in precise detail every file that the update has changed on your disk. No contents of files are actually saved, just a checksum or something to show you whether something is the same or different.

    State of the market: I don’t know of any product like this, but I haven’t looked too hard.

    Next action: Write a shell-tool proof of concept that accumulates checksums for a directory of files.

  3. Google Book Reader is a desktop application aimed at leveraging the growing availability of public domain books via Google. The UI consists of a stylish window designed as a “book metaphor.” The front cover consists of a search box that allows the user to easily bring up Google book results. When a result is clicked, the window animates as if opening a book, and presents the contents of the PDF file. The current page of this book is saved between launches so a user can always easily resume reading whichever “books they have open.”


    (Click for full-size)

    State of the market: specialized PDF readers seem like a ripe market to me, yet everybody still reads with Acrobat or Preview. With the PDF capabilities in OS X, there should be many more specialized reading apps. This would just be one of many.

    Next action: Investigate viability of searching Google’s public domain offerings programatically.

  4. Font Spy makes it easy for users to instantaneously examine attributes of any font displayed on the screen. Similarly to the Cmd-Ctrl-D “dictionary lookup” feature in Tiger, Font Spy offers a global hotkey that, when pressed, pops up a handy reference window including the text’s font name, color, and other style considerations.

    State of the market: Nothing like this exists, that I know of. It might be appealing to designers, though it’s possible that most designers are familiar enough with fonts that the information provided by Font Spy would be useless.

    Next action: Come up with a reliable way of detecting font information for whatever is pointed to on screen. This is not so easy, even with the Accessibility API.

  5. Focus is a productivity aid that embraces the concept of “work modes.” The user defines any number of modes which instruct Focus to performing an arbitrary list of instructions as appropriate. Focus understands a number of common instructions such as hiding or launching applications, and can also run arbitrary scripts. Focus triggers these actions when a mode is entered or left. For example if the user switches to “play mode,” Focus could open the web browser, start iTunes, etc. When the user switches to “writing mode” Focus could quit or hide distracting apps like Mail, iChat, and Safari, and open up something like WriteRoom.

    In addition to one-time actions upon mode switch, Focus enforces certain policies of the mode. For instance a user can configure “writing mode” such that Safari cannot be used at all, or such that it can only be used 5% of the time. Focus would strongly encourage the user to stick to their mode policies, by presenting dialogs that inform them of the violation and offer to return them to a “mode compliant” application.

    State of the market: There are a number of “sort of like that” utilities out there, but they tend to, ahem, focus on a specific method of focusing. Whatever the author in particular thought would be most useful. Focus unleashes the power of variable work modes for the user to describe as they see fit.

    Next action: Maybe a proof-of-concept based on AppleScripts alone, triggered by FastScripts or another launcher.

  6. Figure Bot is a graphic-generation application that streamlines the production of consistently styled “annotation figures” for graphics production. Designers use Figure Bot instead of tediously composing in PhotoShop or Illustrator stylistically repetitive figures such as numerals or letters in circles:

    With Figure Bot, the user selects an enclosing shape, font, colors, etc., and a starting number or letter. A global hotkey then copies the next figure onto the clipboard where it can be easily pasted into whatever graphics application the user is working in.

    State of the market: I’ve never seen anything like this. I’m curious to know whether the field of “generated graphics” is larger than I know. I expect lots of stuff like this is achieved through scripting of a particular application.

    Next action: Write a command-line tool to prove concept of copying a generated graphic to the clipboard.

  7. Hancock is the world’s simplest “PDF signature applicator.” It’s a million times simpler than PDFPen, and strives only to be a signing agent, not a utility for general PDF manipulation. Hancock provides a simple “signature capture” UI, using a similar motif to what you see on ATM checkouts at the supermarket. Any number of these captured signatures can be stored, optionally in the keychain to preserve the illusion of signatures being secure. The signature can then be overlaid on any PDF or other graphical document, nudging and scaling the graphic to fit appropriately into the designated space. The resulting document can then be printed or saved as a separate PDF for further transmission.

    State of the market: PDFPen probably does this fairly well, but it’s too complicated and too expensive. But there might not really be that many people who want or need to apply signatures to PDF documents on a regular basis.

    Next action: Develop a simple signature capturing subclass of NSView.

  8. Sign Shop leverages the graphical powers of Mac OS X to provide users with a number styled “beyond fonts” graphic generation modules. The user types in whatever text they desire and sees a live preview of their text in a given preset style. For instance, I select “Wavy Ripples” and type “Red Sweater Blog”:

    Other built-in styles include “Engraved Wood” and “Stitched Embroidery,” producing textual graphics that are impossible with plain fonts. A published plugin format allows 3rd parties to provide modules

    State of the market: Don’t know of anything like this. Could be a hit especially if some of the effects are really fun to play with, as in Apple’s Photo Booth.

    Next action: Build a few example plugins and work towards a standardized format.

  9. Be My Guest establishes a “shared files zone” between computers on a LAN, without requiring any special configuration. Users who are interested in sharing files each run a copy of the application, whereupon they each see a shared Finder-like window onto which any files or clippings they drag are visible to all other users on the LAN. Files remain visible and available as long as the providing user is running Be My Guest.

    State of the market: There are some “simple file transfer” apps out there, Drop Copy being perhaps the closest in simplicity and functionality to my vision. But they all require a “target” which adds mental noise to the equation. The idea of a shared zone makes it easy to pop things “into the commons” where all users on the LAN can be assured of having access to it.

    Next action: Develop a Bonjour-enabled server/client that pays attention to the comings and goings of peers on the LAN.

  10. Page Flipper uses a built-in or external iSight camera to detect user gestures (head nods and shakes) as instructions to turn pages of a PDF document forward or backward. Page Flipper is especially useful for pianists and other musicians who store sheet music in digital form on their Mac. With Page Flipper and a laptop, users can practice pieces all the way through without pausing to turn the pages.

    State of the market: This could be a lifestyle-changing product for technically adept musicians who are considering “going digital.” Current solutions involve printing longer pieces and taping them up in a long strip of sheets, or having an assistant on hand to turn the pages for you. After evaluating response in the music market, other uses might be considered. Hands-free page turning could be handy for the kitchen, auto shops, etc, where other triggers such as voice recognition might be suitable alternatives to head gestures.

    Next action: Research the viability of detecting head movements reliably.

There you have it, ideas are not golden. And I put my ideas where my mouth is. So rip me off!

Incidentally, while combing this file, I found these notes:

- Stretch Buddy
   - Simply utility to cue the recital of a timed
     series of actions, such as a stretching routine.
   - Features:
      - Manages any number of "routine" documents
         - An array of timed stages - sort of like 
           "Automator" in design
         - Plays a custom "start sound" when triggered
            - Built In Sounds
            - Text to Speech
            - Custom sound file
      - Supports the ability to export a "routine," 
        as an audio file to iTunes

and

- FAST Script Menu Implementation
   - keep scripts cached in memory for rapid execution!
   - Can be a faceless background app with NSStatusBar

Good to know that at least some of these ideas have become a reality!

Lawful Prey

September 22nd, 2006

I wrote somewhat extensively about software pricing, just before choosing a number for my then “nearing completion” product, FlexTime. The price I settled on was $18.95. I thought it would only be fair to report back with some data on the sales of FlexTime, after a month of availability at this price.

You’ll recall that $18.95 is a dollar less than what Brent Simmons suggested was the minimum price for software to be taken seriously. I did consider pricing above $20, but ultimately decided that, at least in its 1.0 incarnation, FlexTime’s feature set did not justify such a move. But I wanted to at least take baby steps in that direction, so I picked $18.95 for the beauty of the numbers, and for the thrill I got from pricing it a full $4 higher than my other products.

Sales have been encouraging, though certainly not a runaway success. In the 35 days since FlexTime went on sale, I have won 33 paying customers. And they seem happy. Subtract the commissions from Kagi and PayPal and I’m left with a cool $500 in revenue. Not enough to live on, nor enough to pay for the hundreds of hours that went into building and fine-tuning the app. But it’s a start. Beats donation-ware.

Especially interesting to me was observing the effect of the “red zone.” This term, also compliments of Brent Simmons, refers to the period of time surrounding the expiration of a trial period. For FlexTime, the trial period is 30 days. So while sales around its release on August 17 were fairly good, they dropped considerably after a couple weeks, to almost nothing. I waited and hoped that the red zone would pan out, and it did. At least to the tune of a few sales. Yesterday was “day 34,” and it was the single biggest sales day I’ve ever had: 5 freaking copies! I’m looking forward to a day when such a daily number seems disappointing, but for now I am getting a charge out of it. It can only go up from here.

But was the price wrong? Maybe at $9.95 I would have sold 200 copies, for around $1600 in revenue. Or at $35 maybe it would have sold 23 copies for $800. There’s no way to know, though it might be worth experimenting with a sale. One good thing about “erring upward” is it’s much easier to justify a temporary price reduction than a spike the other direction. I can’t announce, “This week only! FlexTime is available for the special price of $35!”

There is an adage that goes something like “if nobody’s complaining, then the price is too low.” I have been satisfied that complaints about FlexTime’s price are few and far between. Some people have suggested that the price would be more palatable at around $10. For them, I hope they eventually decide to cough up the extra $9 and come on board. The service and support is worth it. Really, I’m that good.

I was browsing the large collection of books at the Brewster Library Book Sale this summer. I ended up buying an old paperback, “How to Stay Alive in the Woods,” by Bradford Angier. The copyright is 1956, but to my surprise it’s still available from Amazon (last printing 1998). I read it mostly contemplating what my sorry vegetarian ass would do if forced to survive off of bear blood or rabbit’s droppings. But towards the end of the book, in discussing the equipment one might purchase before trekking into the wilderness, Angier cites a quotation from John Ruskin:

“There is scarcely anything in the world that some man cannot make a little worse, and sell a little more cheaply. The person who buys on price alone is this man’s lawful prey.”

Although this was written 100 years ago, it rings especially true for software. Keep that in mind before whining too loudly about the next $18.95 product you’re on the verge of buying.