Subservient Blips

September 2nd, 2006

I was pleased by the kind of “cheezy space film” mood David Van Brink’s pointless applet put me in, so I got the wild idea of creating a Mac OS X screen saver out of it.

Since I don’t do Java and am not sure how difficult it would be to use it directly in a screen saver, I decided to do a more-or-less verbatim translation to Objective-C Cocoa. This turned out not to be too much work, and the process I adopted was to paste David’s Java code into my Cocoa source file, #ifdef’d out. I then proceeded to bite of chunks of the code and translate them into equivalent Cocoa. This was motivational because I got visual feedback on my progress, even if it wasn’t too pretty at first:

Some of the bugs were surprisingly charming:




Though not as charming as the final product, with most if not all of the bugs ironed out.

Download Subservient Blips 1.0
Download Source Code (Requires Xcode)

In David’s applet you can add new blips by clicking the window, but in the screensaver that would just stop the screensaver from running. Thanks to Mark Dalrymple for pointing out that I can still grab keystrokes without waking up. Press “b” to add a new blip, and “i” to toggle the stats display.

If you like the screen saver, donate some cash and I’ll split the proceeds with David.

Update: Well, I just can’t put this thing down. I decided to play with the background color and I think this looks just amazing with a medium gray backdrop. I’ve decided to update the binary download with this setting.

If you don’t like it, well, build your own!

FlexTime 1.0.3

September 1st, 2006

I released FlexTime 1.0.3 today, the most substantial “bug fix” update yet. This version fixes a few teeny bugs, expands scripting support to include “time remaining” and “elapsed time” for activities, and extends the “shorthand input” to the duration text box. So now you can just type “30s” or “15m” for instance into the duration box for 30 seconds and 15 minutes respectively.

This release also contains the first non-English localization of FlexTime. Alexander Repty volunteered to do a complete translation to German, including the help files. Thanks, Alexander! I’m really excited about this and am now looking forward to adding support for other languages.

The support for scripted access to elapsed time for activities was motivated by this forum post, where a user was looking for a good way to present “motivational encouragement.” I’ve included in the examples folder a scripted cue that demonstrates a good use for this. Let’s take a ridciulously arbitrary example. Say I’ve scheduled my Listerine gargling into a FlexTime routine, and want to be regularly prompted with info about my progress, I just set the intervals cue to “Run Script” and choose the Encouragement Cue script file:

The script is written such that it will show text for 2 seconds each time it is run, containing the elapsed and remaining times:

Pretty nifty.

FlexTime + Growl == No Procrastination

August 24th, 2006

Chanpory Rith of LiveClever has come up with an… umm… clever way of hooking up FlexTime’s scripted cues to Growl for, as he puts it, a “gentler way to end procrastination.”

I love to see these creative applications of FlexTime’s scriptable interfaces, and hope to see more as people work through the possibilities.

My Nightmare App

August 22nd, 2006

The My Dream App web site opened this week to a great deal of publicity. Reaction from bloggers and the press has been mostly positive, I think because it’s a truly novel concept. This is an innovative gimmick that will generate a great deal of publicity for everybody associated with it, and that’s about where my admiration for the idea ends.

Am I just a cranky developer who wishes he had thought of the idea first? No! Well, cranky, yes. But I know at least a little bit about how good software gets made, and it doesn’t happen when a small team of developers is forced by contractual obligation to implement three separate projects, none of which came about from their own inspiration or passion.

Summary of the official rules: lots of people send in ideas, they get whittled down to 24. Then these ideas get narrowed down to three winners whose app designs get developed and marketed as shareware. The winners get 15% of the profits while the rest is split up somehow by the My Dream App team. Now, it would be one thing if the team got to pick their own burden, but the decision will be made by popular vote:

Registered users of the Contest website will narrow the field of twenty-four (24) Finalists to three (3) Winners through five rounds of popular voting.

The three winners give up any rights to benefit independently from their idea (a shaky legal restriction, if I ever heard one):

If a Submission is Accepted (and thereby becomes MDA’s property in accordance with Section 7), You do not use any information or material in the Submission for Your own personal gain.

Ideas can become property? Only if they’re patented, and you can’t patent something after it’s been made public. But the worst part is what’s in store for poor Austin, Jason, John, and Martin, the contest’s software developers. Who knows what motivations they had for agreeing to participate in this event, but it looks like a raw deal from where I’m sitting:

MDA Has the Obligation to Develop an Accepted Submission. After a Submission is Accepted (the 3 Winners), MDA has the obligation to put forth all reasonable effort to develop a product based upon the Accepted Submission and release it for commercial gain.

We can’t see the contents of their legal agreements with My Dream App, but it would appear that they, or somebody else in their stead, will be compelled to develop three applications whose specifications are unknown, without pay and in exchange for notoriety and a cut of future profits. If there are any. If somebody came to me with a contract like that I’d tell them they were out of their freaking mind. If they’re lucky, they’ll end up with three winners that the team can actually get fired up about. If they’re not, then the fulfillment phase of this arrangement will be a nightmare, indeed.

My Dream App celebrates what I think is an utterly false notion in software development: that ideas are golden. Ideas are practically free. They run like flood-water through every conceivable channel of the internet. This contest will do nothing except put a heavy burden on a small development team to turn somebody else’s ideas into the type of application that can usually only be inspired by the developer’s own dreams.

Even when a team pursues a dream – their dream – success is far from assured. Good luck to the My Dream App team!