Sneaking Audio Onto The iPhone

July 26th, 2007

Well – it looks like I wrote my first iPhone utility. A pretty remarkable feat when you consider that I don’t have an iPhone. Even more remarkable when you consider the utility was written in late 2005, and hasn’t been touched since :)

Today Jason Snell, the editor of Macworld, discovered a clever trick for putting getting audio onto your iPhone from whatever Mac you happen to be on. The clever trick is implemented with the help of my experimental utility, Typecast.

I had originally written the utility to help turn normal files into podcasts, because I prefer the way iTunes handles podcast files for spoken word audio. Jason figured out that if you sync the iPhone’d podcasts separately from music, you can effectively overwrite your “podcasts” with whatever audio files no matter where you are. Just set up a fake podcast with Typecast, and sync!

I think it’s a pretty cool example of simple software enabling a complex solution. The fact that the software is still useful now, and useful in conjunction with a piece of hardware I don’t even own, makes me pretty happy.

Respect For All Trades

July 23rd, 2007

I was chatting recently with Ian Baird about the benefits and demands of running an independent software business. It seems a lot of people are excited about the prospect of going solo, and I can’t blame them. I’m excited, too! Working for yourself means you answer to nobody. Except, of course, when you’re answering to all those people, customers and business partners, who you gave yourself permission to answer to.

But! You do wake up excited to pursue the day’s pressing problems. Some days that might mean the boring art of turning a profit, but on other, less strenuous days, your attention may turn to timeless questions such as “really, truly, what’s the ideal cascading behavior for new document windows?”

Working for yourself means a neverending list of outstanding questions. How do I improve my marketing? Can I streamline my quality assurance? Do I need a customer relationship management system? Maybe I should rent office space. When do I hire somebody? Is the printer ink deductible, even though I printed a couple concert tickets? How many free copies of my application should I be giving away? Should I be granting interviews? And if so, what’s my title, anyway?

In most “real” jobs you answer a much smaller set of focused questions on a day-to-day basis. In many ways, this is good. Being expected to fill a well-defined role is not only comfortable, it’s also efficient. I guess that’s why business evolved that way. After all, why should you spend time on questions that don’t pertain to your primary talents?

The best answer I have is that it’s really fun to run the show. As an independent developer, you learn a ton about all aspects of running a business, which is both challenging and rewarding. In some ways, this ambitious journey is like a long, strange approximation of earning an MBA. (And I don’t mean “Mister Bad-Attitude!”)

It’s not like I’ve earned the right to call out mistakes in this pursuit. I’m just getting started, myself. But I am opinionated. If there’s one shortcoming I spot in other developers who are intent on being self-employed, it’s a lack of respect for non-engineering aspects of the job. These developers seem to think that indie software development is all about software development. They quit their jobs convinced that they’ll do the same programming work as ever, only sell it directly to users for majillions of dollars and be happy and rich. If the software business was this simple, the companies these developers used to work at wouldn’t need all those other people, the passionate and talented folks who don’t do the programming! What does it take to run your own business? Take a look at every single job in your old company, you’ll be doing it from now on.

Every day brings new challenges, which is of course a huge part of the excitement. But the majority of these challenges fall outside our conventional areas of expertise. What are we to do? It’s relatively simple: learn as much as you reasonably can about all aspects of your business. Marketing, design, quality assurance, accounting, legal protection, payment processing, customer relations, and yes, software engineering, should all be topics of interest to you. If you’re not somewhat interested in these fields, I don’t see how you can run an indie software business. You’re better off in a real job, where you’ll be allowed to specialize in peace.

But the good news is that mere interest in these varied fields will carry you a long way. You don’t need to be an expert to recognize where your expertise ends. By learning enough about your business and the limits of your own abilities, you’ll be well-positioned to do as much as you can do yourself, and to outsource the rest to more capable hands. Just like a real business!

While I do enjoy the romantic image of the successful indie developer as jack of all trades, I’m convinced it’s both impossible and unnecessary. You’ll go much farther in this pursuit by developing a respect for all trades, instead.

MarsEdit 2 Supports Flickr!

July 23rd, 2007

Last week I gave a sneak peek of the post editor window in MarsEdit 2.

This week it’s on to the new “Media Manager” window, which replaces “Images & Files” from MarsEdit 1.2. You might notice a new tab…

Browse through all your Flickr photos, or filter by matching tags or image name. With keyboard shortcuts, you can bring up the window and insert a photo link without ever touching the mouse.

Twitter Undo

July 21st, 2007

There are three things you should know about Twitter:

  1. You should use Twitterrific on your Mac.
  2. You only get 140 characters to make your point.
  3. Once you’ve made your point, it can’t be edited.

It’s really frustrating when you type out a tweet quickly and send, only to realize that you’ve made an embarrassing typo or worse, said something you fundamentally regret. It’s too late, really. It’s probably already showing up on somebody’s tweet list and they’re gasping in horror. But it doesn’t have to live on in perpetuity!

While you can’t edit tweets, the folks at Twitter were kind enough to give us a sort of back-door method of editing, by allowing us to completely delete tweets that we don’t want to stick around.

So from time to time I found myself running to Twitter’s web interface after making a tweet. I’d find the little trash icon next to the item and click it. Not too much trouble, really. But I’m a Mac user, so of course I expect more.

Wouldn’t it be cool if you could undo a tweet from right in Twitterrific? You can, with my spanking new script: Undo Tweet. This script requires FastScripts by default, but can be easily modified to use “display dialog” instead of the more user-friendly FastScripts message display.

For the sake of argument, let’s say you want to use FastScripts, or its free Lite counterpart, to set up your very own “Undo Tweet” functionality in Twitterrific. Here are the easy steps, once you’ve got FastScripts installed:

  1. Download the Undo Tweet script, and open it with Script Editor to put your twitter name and password in.
  2. Open Twitterrific and click its window to make sure it’s “active,” then create an app-specific scripts folder for it with FastScripts:

  3. Drag the Undo Tweet script into the folder. Voila! You’ve got a Twitterrific-specific menu item for undoing tweets.

  4. Select the menu item while holding down the Apple/Cmd key. Make sure that cmd key is down, or you’ll undo a tweet! This is a FastScripts trick for jumping right to the keyboard shortcut editor for any script. I chose Cmd-Shift-Z for mine. Just like Undo, but with a little more trouble since deleting a tweet is serious business.

And you’re done! Rest assured you can now easily undo any tweet. Let’s see how it looks in action.

First I write an embarrassing tweet.

Oh! That was embarrassing. Quick, press cmd-shift-Z! Since deleting the tweet can take a little while, I’m glad the author of this script was thoughtful enough to put up a little status message via FastScripts:

And a few seconds later…

Phew! A few people might have seen that tweet, but at least it’s permanently erased from the embarrassing annals of internet history.

Note that because of the way Twitterrific works, it won’t disappear from the visible list. Fear not, if the Undo Tweet script says it was deleted, then it’s because Twitter’s API claims it was deleted. Don’t run the script again or you’ll delete your previous tweet!.