Marcus Cavanaugh

June 2011: I just started working for Game Closure in Palo Alto, CA.

I enjoy working with Clojure, Python, and Javascript. When I’m not at a computer, I like playing jazz piano, frisbee, running, photography, and coffee. More →

You can find me on Twitter, Facebook, Hacker News, and via email.

Drake Life

Six years. Great memories.

Published

2011 Drake iOS Talk

Here are the notes for the talk I gave at Drake’s 2011 iPhone Development class:

Code Resources

  • Stack Overflow for questions
  • Search for "iPhone _____ library": popups, audio, networking, JSON, Facebook, Twitter… many of the results from GitHub (an open-source code sharing site) will be good.
  • Here’s a list of 10 iOS libraries.
  • If a popular app has a cool UI widget, someone probably cloned it as open source.
  • If you’re writing a lot of code that isn’t for the main feature of your app, chances are, someone has already posted code for it and there are questions on Stack Overflow about it. Don’t reinvent the wheel.
  • To brush up on major iOS libraries, check out the iTunes U talks. I used Stanford’s.
  • Apple’s documentation is great. XCode 4’s documentation browser is also great.

The App Submission Process

  • If you’ve figured out how to get certificates and provisioning to work, you’re 90% of the way there.
  • Expect a week for every update. Best to submit and forget about it.
  • You might get rejected. (Crashes, Private APIs, violations of Apple’s terms)
  • You can expedite the process for good reason, but use sparingly. They won’t do it often.
  • Apple’s reviewers don’t test for old iOS versions. If yours breaks on an old version, you’ll hear about it in bad reviews. Consider only developing for the latest iOS (set your build target to iOS 4, for instance).

Building a Business

  • Do math; with a couple of solid apps, you can live off the money.
    • Pricing: $5 x 70% = $3.50. Sell 20 apps a day to make $25,000/year. (Or two apps with 10 sales/day).
    • Don’t sell for $.99 or less. You’ll go broke.
  • Sales can be unreliable if your app isn’t popular.
  • Lots of categories are saturated with apps. Don’t make another gimmick app unless your gimmick is new. Popularity is everything. Browse the categories on the App Store to get ideas. (There’s the Mac App Store too.)
  • Try as hard as you can to market your app.
  • Subdivide sent out 300 physical letters to band directors across Iowa. It seems to have paid off.
  • Get people to post reviews (either by asking users in-app, or word of mouth).
  • Track your sales with something like AppViz.
  • When all else fails, you could write apps for other people. Charge $100/hour. (Tell them that ahead of time.)

Published

ASA Laser Eye Surgery

I started wearing glasses in kindergarten. Red, green, and blue, because kids wear everything in bright colors. Huge frames, because it was the early nineties. Every year, my eyes would grow a little more nearsighted, but that was okay because it meant I could look forward to a new pair of glasses and frames like clockwork.

My eyes decided to settle in at around -7, meaning anything more than a few inches from my face was blurred beyond recognition. Heck if I knew which direction that foot-high letter E was facing. No matter. My glasses fixed everything, and since I lived with them since childhood, I didn’t mind.

The little annoyances add up, though: wearing clip-on sunglasses, cleaning (or not cleaning) lenses, not being able to look through my DSLR’s viewfinder without smudging them, not being able to wear over-the-ear headphones comfortably… but sunglasses pushed me over the edge. I run most days, and clip-ons glare terribly from the sides and back. Running with geriatric-style fitovers would have garnered more than a few funny looks and cackles.

All that to say that I got ASA laser eye surgery on April 7th, 2011. I’ll update this post with my experience as I go.

Pre-op

After a few consultations with Dr. Husain, I began taking eye drops and medication that they prescribed. No problem.

Day of Surgery (April 7th, 2011)

In the surgery center, I sat in a recliner for about 45 minutes while a nurse doted over me every few minutes to drip more anesthetic drops into my eyes. When the surgery time drew near, she gave me a valium and we watched a brief video explaining the procedure. Then they sent me into the surgery room, gave me a warm blanket because they keep the surgery room cold, and we began the procedure. It took only a few minutes. Watch the video from my procedure:

That laser was like staring into the eyes of God. I absolutely loved the procedure itself. You walk in practically blind, and as you stare at a red blinking light, a magic machine blasts your eyes into the perfect shape. I’d do that again in a heartbeat. Did I mention that the laser was awesome?

My only concern before the surgery was that I would be tempted to blink. That wasn’t a problem; in fact, I don’t think the procedure could have gone any more smoothly. The procedure was the best, and easiest, part.

They sent me home with eye shields, and instructed me to sleep for four hours. Then I was to keep my eyes closed the whole day. I was fairly tired, so I got through the rest of the day just fine while listening to a few podcasts.

Day After Surgery

I went back the next day for a post-op consultation in which they told me everything was progressing normally. They told me to rest as much as I can.

Week After Surgery

The next few days were a little rough, but only because I’m used to working all day at a computer, going outside to run, and being able to see. After a few days, I could see well enough to work off and on, provided I kept my font size absurdly large. My left eye was progressing more slowly than my right, but at my next consultation, Dr. Husain explained that it’s completely normal.

Week Two

My vision improves slowly. It’s blurry in the morning, and most clear in the late afternoon, but as long as I make heavy use of Mac OS X’s zoom functions, I’ve returned to my normal working habits. Having bought a nice pair of Oakley sunglasses, I can now go outside to run and frolic without consequence.

I stood in the rain, and for the first time I could see without having to look through water-smeared glass.

I knew that recovery would take a long time, but despite reading logs from others’ experiences, I hadn’t fully digested that I would have substantially blurry vision for such a long time. It’s not bad, and certainly worth it. I expect that if I didn’t have to work on a computer all day, I’d notice less.

Week 4+

It’s now six weeks past surgery. My vision continues to get better, slowly. Before surgery, I read articles that seemed to gloss over the later-stage recovery process, but I now know why: There isn’t much to say. The eyes get better over time. At one follow-up appointment, the doctor mentioned concern about dryness, but that’s all. I don’t expect any further updates here unless something drastic changes. If you’re reading this a year or more down the line, you can safely assume that my eyes are doing well.

I would do this again in a heartbeat.

Updated

The iPad Doesn’t Ring

(You Can’t Read Sideways)

In the iOS 4.2 Beta released today, the iPad’s orientation lock switch became a mute switch. In iOS 3.2, you could mute the device or lock the orientation quickly, with a single button press.

In the new beta, you can mute the device quickly, but you can only lock the orientation with a 4-step process: double-tap, swipe, tap, tap.

Why would Apple make this change? It isn’t out of practicality, that’s for sure. I often want to lock the iPad’s orientation, but I often want it unlocked too. A hardware switch lets me fix unwanted rotation before it gets frustrating. A software toggle makes every unwanted rotation frustrating.

There are three possible reasons Apple made this change:

  1. Consistency with the iPhone. It would make sense to rationalize the hardware switch being a mute button if it was never a rotation lock in the first place, but switching it in the middle of the product cycle is unexpected. I don’t think Apple would make this change solely to unify the iPad and iPhone’s behavior.

  2. Consistency with a future FaceTime-enabled iPad. The iPhone needs a lock switch because it may spuriously ring. The iPad doesn’t spuriously ring — not yet. But a FaceTime-enabled iPad could ring unexpectedly; that would justify a mute switch taking over a hardware button. If Apple plans to release a FaceTime iPad and they want to use the switch for muting, they have two choices: Let the two iPad models have a hardware button that works differently between revisions, or change to a mute switch now to maintain consistency in the future.

  3. Someone at Apple thought the iPad needed a mute switch instead. Apple tries to maintain a consistent product vision, but I would be surprised if they chose to change the switch now just to maintain consistency with the iPhone or a future iPad. I would expect them to wait for a future hardware revision to do that. Barring those two decent reasons, only one remains: Someone at Apple thought the iPad needed a mute switch more than it needed a hardware orientation lock.

The new behavior is demonstrably worse, and I hope Apple reverts it in the next beta. A configurable setting would solve the problem too, but Apple tends to keep customization to a minimum.

If you’re a developer and feel this way too, submit a bug report. That’s the best way to make your voice heard.

Update: Apple introduced the option to select your preference in iOS 4.3.

Published

SiteBlocker

A website-blocking Safari Extension

siteblocker icon

SiteBlocker is a Safari 5 Extension that allows you to block websites that suck your time and attention away from getting things done.

When you try to visit a site you’ve blacklisted, you will be redirected to a website of your choosing. By default, you’ll be directed to Merlin Mann’s What Are You Doing Right Now? page.

This extension doesn’t offer complex rules or timers, by design.1 A procrastination plugin with a bunch of settings is just another opportunity for distraction. If you really want to procrastinate, grab your iOS device of choice and go procrastinate. If you’re going to work, work.

Download SiteBlocker
v1.0 — Safari 5+
License: MIT. Source here. Run with it.

  1. Yeah, that’s a convenient cop-out. I don’t have time to build this into a LeechBlock-scale extension. It’s open source though — take it further if you’re so inclined.

Published