Menu

Monthly Archives: July 2009

Yesterday I sent out a newsletter to all my “Wii Transfer”:http://www.riverfold.com/software/wiitransfer/ customers. You can see the “text of the newsletter here”:http://www.riverfold.com/newsletter/2009/07.html. I wasn’t sure how effective this would be, but I immediately got a bunch of responses to the survey, and hopefully more interest in Clipstart too.

I decided against doing any specific tracking for number of views and links clicked, but there was an obvious spike in traffic for a couple hours as people clicked on the links in the email.

The survey results are about what I expected. Most people are buying Wii Transfer to watch movies and listen to music on their TV. I’ll use this feedback to simplify the user interface around these features, and prune back a feature set that had grown a little too fast for its own good.

Here’s a chart of the results so far:

I used “Campaign Monitor”:http://www.campaignmonitor.com/ for sending the newsletter, and as usual I’m very pleased with how simple they make this. I did a full customer export from my registration database and Campaign Monitor merged it with the existing list from my newsletter last year, weeding out duplicates and removing anyone who had already unsubscribed.

I get a lot of funny looks when I tell people I host everything on Dreamhost. It’s not a great fit for everything — I have some ideas for projects that would be better suited to Amazon EC2, and who knows, maybe I’ve just been on a lucky server — but it has generally been more reliable than any previous hosting company I’ve used, including when I used to run my own server.

Dreamhost succeeds because of scale. They have so many servers, and such low prices, that they are forced to automate everything. This means they can more quickly deploy new software, rebuild servers, or restore a broken installation, and that their panel interface has to provide access to every feature a customer might want.

“This post from their status blog”:http://www.dreamhoststatus.com/2009/07/18/network-problems-due-to-distribution-switch/ is revealing. There are over 600 machines on that list, but it must be only some fraction of their customer base, because my server name isn’t on there. “According to WebHosting.Info”:http://www.webhosting.info/webhosts/reports/total_domains/DREAMHOST.COM, Dreamhost hosts about 875,000 domains.

I strongly believe that “being small is a competitive advantage”:http://www.manton.org/2007/02/customer.html, but anyone who’s played the role of sys admin knows that automation means everything, and that’s what Dreamhost seems to get right.

Sometimes it seems like every app is trying to be “the iTunes for <insert subject here>”. I’ve worked on “an app that fits into this category”:http://www.vitalsource.com/software/bookshelf/, and there are countless more. iTunes 1.0 represents one of the biggest shifts in Mac user interface design we’ve seen — single window, source list, and smart groups.

While the iTunes UI is great for music, I’m not convinced it’s automatically great for all workflows.

“Clipstart”:http://www.riverfold.com/software/clipstart/ goes out of its way to do something different, by twisting the traditional source list a little to promote tags as the most important part of the UI. At first I feared that some customers would find it worse, that the UI would fail and I would be forced to become more iTunes-ish for the next version. But I think only by trying something different can you hope to be better. I’ve been using Clipstart to manage my movies all year and the tag-focused UI really works, especially when you start building up your library and can search and find related tags across all your videos.

I released Clipstart 1.1.1 a few days ago with a bunch of bug fixes, and an “iPhone 3GS giveaway”:http://www.riverfold.com/software/clipstart/press/3gs.html too.

This month I’ve been lucky to have “Clipstart”:http://www.riverfold.com/software/clipstart/ featured in both the US and UK print editions of Macworld. It’s great to see the product in print.

Around 1996 to 1998 I worked for a small Mac software company called Purity Software. When “Ned Holbrook tweeted”:http://twitter.com/nedley/status/2639266306 that he had a collection of old Macworld print magazines, combined with having Clipstart’s review fresh in my mind, it jogged a memory that one of my products from Purity was reviewed in Macworld and I had always wished I had kept a copy. WebSentinel was a C++ PowerPlant app with a great UI for server products of that era (“screenshots here”:http://www.purity.com/websentinel.ws?page=exp — warning, Mac OS 8), though in hindsight it suffered from some annoying bugs and had trouble scaling. It turns out that 10 years later the review is nearly impossible to find online, but by following a series of broken links I eventually got a copy from the Internet Archive’s Wayback Machine.

I’m archiving it below. It ran in the December 1998 issue.

—

WebSentinel 2.0

Master of the Realms

By Jeff Davis

For Macintosh Webmasters who find their server’s built-in security limited and tedious, Purity Software’s WebSentinel 2.0 promises relief. This WebStar API (W*API) plug-in provides support for multiple database mechanisms and an attractive interface for an array of security services, including new features such as support for workstation restrictions, HTML log-in forms, and account expiration.

WebSentinel 2.0 extends the realms model of Web security common on Macintosh Web servers. Rather than applying permissions to a folder (such as the Logs folder), you set permissions for a group of URLs (the realm) that share some specific text (any URL that contains .log, for example). This method can be very powerful, allowing administrators to secure like files regardless of their location on the server.

In addition to standard HTTP authentication for realms, WebSentinel 2.0 supports HTML-forms-based authentication, allowing you to present personalized log-in screens. Webmasters can designate customized forms and no-access files for each realm. WebSentinel 2.0 even offers Redirection realms, so requests for certain URLs can be automatically sent to another page.

Once realms are defined, you grant access to users, groups, and workstations. In addition to simple user names and passwords, administrators can define expiration criteria for each user, consisting of a date, a number of days, or even a number of accesses.

WebSentinel 2.0 supports multiple “data targets” (back-end databases); you can save your information to more than one type of outside database, including those in Purity’s own Verona format and those in FileMaker Pro.

It took me about 60 seconds to install WebSentinel 2.0 on a Mac server running StarNine’s WebStar 3.01. After another five minutes, I had my users, groups, and realms up and running. Both the administrative application and Web-browser interface are attractive and usable, but a few very minor interface glitches exist. Although assigning access to users and groups is quite simple, WebSentinel 2.0 needs to offer an easier way to display all users and groups assigned to a given realm within a single window.

The security options all worked nicely, and there was no noticeable performance hit with ten users and realms. I did encounter problems when trying to use the plug-in with WebTen, due to an inconsistency with Tenon’s W*API implementation. Tenon has a patch that addresses these problems.

Macworld’s Buying Advice

Macintosh Webmasters will definitely find that WebSentinel 2.0 offers an elegant extension of WebStar’s realms-based security. But those dissatisfied with the whole realms concept should look to other options, such as Tenon’s WebTen, which offers built-in file and folder security.

“Huge post from Craig Hockenberry”:http://furbo.org/2009/07/10/year-two/ on the App Store. Lots of good points. I especially like the insight comparing it to the music store, the need for upgrade revenue, and ideas for improving discoverability.

Where I have a problem is at the $999.

Not for support or early access to new versions of the iPhone OS, that’s fine. ADC Select and Premier members are used to paying for non-essential bonuses. The issue is whether we should pay extra to work around a problem that Apple has created for themselves and developers.

And I totally respect that Craig is just throwing out a bunch of possible solutions, hoping that something will stick, that Apple will start to pay attention and draw inspiration from the community. “As he said on Twitter”:http://twitter.com/chockenberry/status/2577781479: “I just want to put money where my mouth is.” I think the $999 figure speaks to just how painful this process has become. Luckily developers are also natural problem-solvers, forever hopeful even when desperate.

But just as the $99 fee to become an iPhone developer didn’t filter out the junk apps and unserious developers new to the platform, neither will throwing more money at the problem make it go away. The gold rush is still on, and we should expect app submissions to only accelerate.

Most importantly, let’s take a step back and remember: it was Apple’s choice to build a closed system, one in which they alone could approve and deny apps. The idea that we should pay extra because they underestimated how much work it would be to approve thousands of apps really bothers me. It would be punishing developers for Apple’s own failure.

“Colin Barrett pointed out”:http://twitter.com/cbarrett/status/2576856894 that Apple loses money on free apps, when you consider server overhead and review staff. I find it difficult to believe that Apple is doing anything except raking in the cash from the App Store. After all, they are used to giving away bandwidth for a number of products: Safari and QuickTime downloads, iLife and iWork software updates, not to mention updates to Mac OS X itself.

From an article back in May, “Techcrunch also assumes”:http://www.techcrunch.com/2009/05/14/about-those-iphone-app-store-numbers/ that Apple is doing quite well off the App Store:

“$1 million a day means that Apple would be making $300,000 a day (its 30% cut). Extrapolated out over 10 months (the approximate age of the App Store), that would be about $90 million.”

I want to believe that there is a solution to this. A quick reading of “AppShopper.com”:http://www.appshopper.com/ shows that on some days up to 100-200 apps go live on the store. That’s a lot of apps. But Apple is a large company, and they’ve surely dealt with more difficult staffing problems than hiring some people who know how to use an iPhone.

Other than a handful of exceptions in the jailbreak community, iPhone developers are playing by the rules Apple created. The burden is on Apple to deliver fast reviews, and it’s something that all developers deserve, not just a select few with extra cash to burn.

Every product needs a believer. Not on the product team, but outside. A champion beta tester. Someone who sees the potential and will offer such constructive criticism and feedback early on that if you don’t make the app perfect you will be personally letting them down.

This is so critical, that many products succeed or fail to reach 1.0 on this point alone. Without inspiration from your peers, it becomes difficult to push through “the dip”:http://sethgodin.typepad.com/the_dip/, the rough times in development when everything goes wrong and you can’t imagine how your app will ever see the light of day. Seek out that one person — friend, spouse, blogger, anyone — who will light a fire under you to ship a quality product.

Yes, I want to hear how much you like my app, but I also want to hear where it fails and frustrates you.

The feedback I’ve received for “Clipstart”:http://www.riverfold.com/software/clipstart/ is astonishingly well thought out and helpful. I like to think the app is attracting the best kind of customers: articulate and experienced enough to know what they want. If I could only implement half the suggestions to improve the app it will evolve into something great.

Of course, great beta testers only go so far. We still have to work really hard. “Merlin Mann said it best”:http://www.43folders.com/2009/03/11/kutiman: “The only person who can sit on your ass is you.”

“Clipstart 1.1”:http://www.riverfold.com/software/clipstart/ is out, with support for the iPhone 3GS, YouTube, and more. I’m really happy with the response I’ve received so far. The 3GS is such a convenient device for video that even people who weren’t taking lots of clips before now find themselves with a bunch of videos. That deserves a dedicated management app.

“Ryan Irelan”:http://ryanirelan.com/ asked me the other day if Clipstart would support a simple email option, for quickly sharing a video with family without uploading to a web site. This is a pretty good candidate for using Clipstart’s file actions, which allow you to process the selected video files with a script.

I liked how “Acorn handled this kind of thing”:http://flyingmeat.com/wikka/AcornExtraScripts, so I essentially lifted its file actions feature directly and put it into Clipstart, even down to the ACShortcutKey shortcut comments. Even though Acorn is for still images and Clipstart for videos, it seemed similar enough that you could conceivably take lightly-modified scripts from one app and use it the other, if they did not deal with the file’s contents.

Here’s the email script that will be included in Clipstart 1.1.1:

#!/usr/bin/osascript

on run argv

set filepath to item 1 of argv

set old_delims to AppleScript's text item delimiters

set AppleScript's text item delimiters to {"/"}

set path_items to text items of (filepath as text)

set AppleScript's text item delimiters to old_delims

set filename to last item of path_items

tell application "Mail"

set new_msg to make new outgoing message with properties {subject:filename, content:"" & return & return}

tell new_msg

set visible to true

tell content

make new attachment with properties {file name:filepath} at after the last paragraph

end tell

end tell

activate

end tell

end

Running scripts has been in Clipstart since 1.0. The implementation is pretty simple. I parse the available file action files to extract the executable path and any shortcut keys and modifiers, then dynamically create the menu items. When it’s time to run an action I use NSTask and friends to execute the program and pass the script file and selected movie path to it.

Instead of this:

/path/to/myscript.sh /path/to/movie.avi

Clipstart does it like one of these:

/usr/bin/bash /path/to/myscript.sh /path/to/movie.avi

/usr/bin/osascript /path/to/myscript.sh /path/to/movie.avi

I did this to not require setting +x on the file, but it also seems to be a more convenient way of processing command line arguments when run from osascript.