Macs are such a huge part of my life, I can’t imagine where I’d be without them. I’ve spent thousands of hours installing new applications, customizing icons, designing and abandoning workflows, trying new utilities, widgets and gadgets and generally just using the hell out of Macs and OS X.

Garrett Murray has replaced Prettify with a new site called Useful Mac (@usefulmac). A site dedicated to Macintosh computers; featuring interesting apps, reviews, wallpapers, and icons. Definitely worth bookmarking. I love my Macs.

Last night at about midnight this idea popped into my head. It was so good (to me) that I decided to write it on my iPhone, while half-asleep, because it was keeping me from going to sleep. I posted it.

Now that I woke up and read it I realize there are a lot of gaps there. Also I don’t even explain the problem very well.

So here is a repost of the idea with URLs explaining what I meant.

As a web developer one thing that is very easy to do is file uploads. There are so many ways to get a file from your computer to my site that people will argue about the best way to do it (it’s Nginx Upload Module, btw).

The problem is when someone using an iOS device hits the “browse” button on their iOS device. There is no file system available and so the button does nothing. Here is where Apple could solve all of this by making the “browse” button open your camera roll and allow you to select an image from it. (Surprise: this is what Android does.)

Since Apple doesn’t allow this many people end up making iOS apps that do everything a mobile site could do plus image upload. If there were just a way to fire up the camera or camera roll from a web page and choose an image to upload, many web developers I know would be very happy (me).

It turns out there is a way to launch an iOS app from a web page. It’s called a protocol handler. Here is an example of it being used in the application Terminology.

The URL terminology://q=word (yes, that’s a valid URL) only works if you have the Terminology application installed, or some other iOS app has registered to handle that URL. So if someone puts it on a web page only people with the app can click the link.

Here is my idea: make an application called Community Community registers to handle any URL like camera://url=[…] where […] is a URL that accepts an image upload.

Someone clicks the camera:// link and it opens the Community Camera app with a location to post an image file. The user then either takes a picture or selects an image using the standard controls and then Community POSTs that image data to the URL that was passed in.

This way anyone who wants to make a web site that accepts image uploads from iOS devices simply needs to provide a camera://url= link on their page. The script at /upload/token/asdf1234 should do three things:

  1. Accept a file upload and return an OK or FAIL message.
  2. Accept the image arriving using the token value. Each token should be a disposable key used for the transaction.
  3. Return a URL for returning back to the web site.

After uploading, the Community tells the user if the image was accepted and a button to continue goes to item #3.

Sometimes I get these ideas and I forget them. I really want someone to do this and so I got a bit excited and posted that cryptic post last night. Thanks for reading!

Someone make this: an iOS app with protocol handler “camera://” that lets me pass a URL for the application to post an image to.

Every web app that needs an iOS app just to get a photo or image into the site could use this non-site-specific iOS app by simply passing in something like:


The app launches, user selects image or takes a photo, and then the iOS app posts that image data to the URL passed in via url=...

Now anyone with a web app can offer image uploading as long as that community camera/image picker is installed.

A thread on MacRumors after the launch of the original iPod in 2001.

What I find most interesting about this thread is how ignorant people were of what Apple was really doing. Given the launch of the iPad, we're all a bit wiser (we'd like to think) of what Apple intends on doing with the device, so this time the arguments aren't just about how limited the device is in hardware features, but how closed the thing is to anything not approved by Apple.

I'm staying out of this whole iPad debate because I find the entire thing a colossal waste of energy. I am in the middle of trying to launch this company, get work, and adjust to my new life. The last thing I care to fixate on is what Apple does with Apple's money to make money.

I am a zealot about me, and less about standards, DRM, or whatever argument of the day is. Perhaps I'll regret it later, but for now it's fun to watch this stuff play out. Mostly I think because it's not a major investment, something I'd really like to try out at our house, and like the AppleTV won't be the only game in town for very long.

Amber has put together 20 prints in a holiday gift guide for 2009. She pored through hundreds of prints (I know, I watched) and agonized (I know, I watched) to whittle that list down to 20.

They are fantastic prints ranging from the very affordable "$50 & Under", "For Kids", and the "Extravagant".

If you can, please share with friends and link her guide or use that StumbleUpon thing that confuses me.

Sign in bathroom at Apple headquarters.

The last couple of days I've been setting up my laptop while I work. As I've needed apps I've downloaded them. I think it's neat to see which ones I really need to do what I do.

It doesn't include iWork, the XCode tools, or some PHP modules, but that's most of it.

An Apple IIc unboxing. Hott.

Matt Haughey asks the question: What if you invested $10,000 (in AAPL) the day before the keynote, then sold at the end of the keynote day?

I totally missed this, but it looks like there was a contest to produce a free and open sourced version of the wildly under-featured for its price .Mac. For now both the server and client have to be running OS X, but people are already working on making the server Linux/Windows compatible.

Dude won $8,622!