Coming soon: Runner’s Log 2.0

Tuesday, May 26th, 2009

Those of you who are following me on Twitter have probably known about this for a while, but for everyone else I’d like to officially announce Runner’s Log 2.0, which I hope to release sometime later this year.

I’m very excited about this release. I’ve learned a lot of lessons since the first release of Runner’s Log, and I’m using this as an opportunity to fix some of the things I was never really satisfied with, as well as clean up and polish the entire UI. Best of all, I’m making some changes to the underlying data model that will both speed things up and allow for a lot of flexibility working with other applications and devices, including an iPhone companion app I’m planning.

If you’ve already bought Runner’s Log, good news; updates to version 2 will be free. If not, this really is the best time to purchase a license. Not only will you be supporting development, but you’ll be saving $5 since I plan to raise the price once 2.0 is released.

I’ll post screenshots and beta testing information as the release date draws near. In the meantime, please add your suggestions on the new Downtown Software House UserVoice feedback forum.

2 Comments.

Code snippets and reuse

Monday, May 4th, 2009

Jeff Atwood recently wrote about copy and paste coding, and those small, frequently reused code snippets that pop up at every programming blog or website.

To me, the most troubling limitation of copypasta programming is the complete disconnect between the code you’ve pasted and all the other viral copies of it on the web. It’s impossible to locate new versions of the snippet, or fold your features and bugfixes back into the original snippet. Nor can you possibly hope to find all the other nooks and crannies of code all over the world this snippet has crept into.

What I propose is this:

// codesnippet:1c125546-b87c-49ff-8130-a24a3deda659
- (void)fadeOutWindow:(NSWindow*)window
{
        // code
}

Attach a one line comment convention with a new GUID to any code snippet you publish on the web. This ties the snippet of code to its author and any subsequent clones.

I’ve been idly thinking about the same thing lately, especially since I’ve started using services like gist.github to share and view small code snippets. A good example is a category on NSBezierPath to add rounded rectangles, which I remember copying from someone 5 or 6 years ago when I first started with Cocoa. If I was using this in a project today there’s no way I would remember who it originally came from, or be able to tell (except accidentally) that Leopard added the same thing when it was released and now I don’t need to use the snippet at all.

I really don’t know if GUIDs are the best (or even a workable) solution. I don’t have anything against the idea, but how can you enforce it on every blog, code sharing website, programming forum, and so on? Still, when I think about a programmer’s dream world I imagine my IDE tagging these snippets with contextual information, popping up a window with text from a blog post just like it does with autocompletion.

No Comments.

Link Roundup

Thursday, April 30th, 2009

Steven Frank critiques the Office 2010 UI. I gave up on Office and started using iWork exclusively a little over a year ago, and I couldn’t be happier.

Set piece replicas of the Fifth Element stones are on sale for $240. They’re expensive, and yes I want them. I WANT… THE STONES.

Tweetie for Mac OS X is out, and it’s great. I’ve tried a lot of Twitter clients this year, and Tweetie is the first one to really replace the web interface for me. John Gruber has an interesting write-up on why the Twitter client app market has exploded recently.

No Comments.

Terminalicious now open source

Saturday, April 18th, 2009

If anyone still remembers it, I’ve decided to retire Terminalicious, one of my very first applications released under Downtown Software House. Given my focus on other projects there hasn’t been time for any development for a while, and 10.5’s Terminal.app has made it a bit redundant anyhow (it was always sort of a niche application to begin with).

In case anyone might find it useful, I’ve released the code on GitHub. There’s some interesting stuff with customizing windows and NSTextField, but just keep in mind parts of the code are probably outdated by now. You can also find the latest binary there too if you’d like to give Terminalicious a try.

No Comments.

Kacie Kinzer’s Tweenbots

Sunday, April 12th, 2009

I love stuff like this. Kacie Kinzer designs robots that require human intervention to get to their destination, and sets them loose in New York City.

No Comments.

Time Warner Cables’s plans to kill the Internet

Saturday, April 11th, 2009

Update: Some good news for once; it looks like Time Warner Cable has capitulated on the new tiered plans. The language seems to indicate they might try it again in the future, hopefully if they do they’ll make the bandwidth caps more sensible for consumers.

If you’ve followed technology news this month you’ve probably heard about Time Warner Cable’s plan to expand its new bandwidth caps to four other cities, including (of personal importance to me) Rochester, NY. The idea of capped broadband isn’t exactly new, but TWC’s plans (ranging from 5GB to 40GB) haven’t taken long to draw criticism from customers and journalists.

The plans are, simply put, bad. I’m not even really against the “pay-as-you-go” pricing model. I use a lot of bandwidth and would prefer unlimited access, sure, but I can see the argument of having reasonable metered usage fees. The difference is that TWC’s usage fees are not reasonable; it’s hard to see them as anything but protecting their traditional cable TV subscriptions from new services such as Hulu and Netflix’s downloadable service. TWC’s tiers are priced as if it’s still the 90s, but with Mozy, Hulu, Netflix, Steam and so on it’s easy for someone to greatly exceed the bandwidth cap with only legitimate usage. This is no longer something that’s only going to affect only technical users or media bootleggers.

At best, Time Warner Cable is hurting their own customers in order to protect their cable TV subscriptions. At worst, this is something that’s going to hurt a lot of emerging online business markets as their customer base on TWC (and other ISPs that follow them) are reduced or eliminated.

It’s not all bad news though. New York state congressman Eric Massa announced he’s drafting legislation that will prohibit the bandwidth caps. Time Warner Cable also seems to be adjusting the new plans in response to the bad press they’re receiving, including introducing a new “unlimited” tier for $150 per month. Still, at three times the cost for the same service subscribers have now, it’s a pretty small gesture.

It’s going to be interesting to see how this plays out over the next year. If it’s something you care about, I’d suggest dropping Time Warner Cable if you’re a subscriber (and telling your friends and family to do the same) and supporting any local legislation aimed at preventing this sort of thing.

1 Comment.

Installers on Mac OS X

Thursday, March 26th, 2009

One thing I’ve noticed more and more of lately is news of trojans appearing for Mac OS X. Take this, or this for example. These stories aren’t the result of a security issue, but of users trusting applications they shouldn’t, and explicitly authorizing them to do whatever they want to the system.

The reason I’m bringing this up is because there’s a rule every OS X developer should follow, one that I think is more important now than ever: never, ever use an installer unless you absolutely need to. I’ve seen a lot of applications use an installer when they don’t need it (especially cross platform applications), and if trojans like these become well known to the public conscious, you’re going to have a lot of potential customers trashing your app before even trying it.

So when do you need to use an installer? Obviously there are exceptions, but it doesn’t seem to me like there are many cases where you do. Preference panes can be installed with a simple double-click, and users can drag application bundles wherever they want (frequently I run an app from the disk image before I decide if I want to keep it). Even if you have good reason to put support files or background applications elsewhere on the hard drive, you can check and do this the first time the user opens your application.

2 Comments.

MacHeist bundle now available

Wednesday, March 25th, 2009

If you haven’t been following MacHeist 3, be sure to take a look at the new software bundle, which just went on sale last night. The $39 deal includes some great apps, a few of which were just released last winter. Best of all, it looks like the earlier developer complaints about payment terms are resolved:

So why is Flying Meat participating in MacHeist time around, when I blasted it a couple of years ago? Well, it’s pretty simple. The folks at MacHeist fixed the payment terms after MacHeist 1, and developers are getting a much better deal now. Tada.

No Comments.

Blog Update

Sunday, March 22nd, 2009

After a brief stint with Tumblr, I’m moving things back to WordPress for the time being. With a little .htaccess luck the move should be pretty seamless, but I apologize in advance for anything I break!

No Comments.

git-bundle-version

Sunday, March 8th, 2009

From Mark Grimes, this ruby script for Xcode automatically copies the first seven characters of the latest git commit ID to your project’s CFBundleVersion Info.plist key. I’ve been waiting for something like this for a while, it works great and it’s very easy to set up.

No Comments.