Developing Perspective

The Craft and Business of Software Development

4 notes

5% off everything.

As a general rule I hate leaving ‘money on the table’ whenever I buy something. There is something that just doesn’t feel right about buying something when I think I could be getting a better deal. This is a big part of why I despise sites that use coupon codes.

I realized that every-time I buy something from Apple I was doing just that. As part of my developer setup I have an affiliate account via LinkShare. In a nut this allows you to create links to the various Apple stores and for every purchase made after following one of your links you receive a 5% kickback. This is typically used by bloggers and developers to make a bit of money when driving traffic to their products.

However, you don’t have to link to only specific products. It is also possible to create links to each of Apple’s main stores (iTunes, App Store, Mac App Store, iBookstore). I just setup a simple webpage with general links to each of these and now I can easily get 5% off all of my Apple purchases. So every time I want to buy something I now just open the page, click the relevant link and then buy what I want.

If you want to see what this looks like you can see my page here.

Here is how to do it:

  1. Open LinkShare and login/create your account.
  2. Signup for the Apple affiliate program.
  3. Open Links > Get Links > iTunes, App Store, iBookstore, and Mac App Store
  4. Pick ‘Banners/Images’ from the Links panel.
  5. Choose the App Store category and grab the ‘Apps Top Paid’ link
  6. Choose the Logos & Marks category and grab the ‘iBookstore’ link
  7. Choose the Logos & Marks category and grab the ‘Mac App Store’ link
  8. Choose the Logos & Marks category and grab the ‘Download in iTunes’ link
  9. Combine these four links into a simple HTML page
  10. Deploy this anywhere you have a website and your done.

Now just open the page before you buy anything and enjoy your 5% kickback. You could also share this with friends and family to make a bit of money of their buying habits too.

1 note

One Last Thing…

While listening to last week’s The Talk Show John and Dan discussed the prospect of Steve appearing at the iPhone 5 launch event. While I tend to agree with them that in all likelihood it will be Tim Cook and Phil Schiller talking through the lineup, I couldn’t help by try and imagine how it would go down otherwise.

Here is the result of letting my imagination run wild, a bit of ‘fan fiction’, as it were. I could see a desire to create a public, specific point in time when we began the post-Steve era. Here is how I imagine it going down.

The usual Jack Johnson dies down and we see Tim Cook walking out on stage. A step or two behind him comes Steve. The audience was politely clapping for Tim, but when they see Steve the expected ovation begins.

The keynote switches from the Apple logo to just the phrase ‘One Last Thing…’

Once the audience settles down Steve says simply “We have done some amazing things here at Apple. From my parent’s garage 35 years ago until today we created the best in class in personal computing. Today we continue that history with a number of exciting announcements.”

Pause.

With his trademarked coy smile Steve then says “Tim, I think you should take it from here”, and walks off the stage.

0 notes

What Steve really did.

There have been dozens of posts covering in far more eloquent ways the news of Steve Job’s transfer from CEO to Chairman of the Board.

At first I was saddened by the news. While it was not really unexpected, the realization that it had finally actually occurred was quite moving. I was privileged to attend two ‘Stevenotes’, and while I have never had the pleasure of meeting Steve personally he has always felt strangely personal to me. I know that is a sentiment mirrored by many of my peers.

Steve Jobs is equal parts legend and man these days, and with good reason. He took a company that on September 16, 1997 (when he retook his role as CEO) was trading at an adjusted $5.48/share. To a company trading at $376.18/share. That kind of turnaround is worthy of the legend. Saying nothing of what he did at Pixar, he is worthy of all the accolades you can throw upon him.

But when I think about what Steve really did as CEO at Apple, I find myself thinking more about the people and structures he is leaving behind. What I think sets Apple apart from almost any other company is its unflagging resolution to never let a failure out the door. A commitment to quality and user experience above all else. And the ability to execute on a vision, however complicated.

Those qualities are embodied in Steve but now seem etched into the company itself. I’ve never worked at Apple, but I get the sense from people who have that the ephemeral culture of the place is permeated with Steve’s style. I doubt that will change anytime soon. Apple is no longer embodied by a single product, so much as a singular style. An almost intangible way of doing business that brings forth great products.

While I have no way to knowing directly, I imagine Steve would say the thing that he was most proud of building at Apple, was the company itself. Setting up a place that has churned out such a long list of hits is truly unparalleled by any company I can think of.


I wish Steve all the best. I am most saddened by the realization that this move is more because of his health than anything else. For him to step aside from running his live’s work must mean he is physically overwhelmed, which is a terrible thought indeed.

0 notes

Peak Performance.

It is important to remember that benchmarks measure peak performance, not typical performance. I’ve had FileVault on for a while now and noticed zero hit in my day-to-day use.

1 note

Kindle Cloud. Almost but not quite.

I played around a bit with the new Kindle Cloud Reader, basically this is a way in which Amazon is skirting the In-App Purchase rules. By creating a fully browser based application that allows for offline reading they are pushing the limits of modern web apps.

They have done an excellent job technically. It is probably the best example I’ve seen so far about just how close you can get to a native look and feel without actually leaving Safari. For that Amazon deserves some credit.

However, for all of their efforts it still doesn’t feel right. The interactions just aren’t fluid. The response time just isn’t right. The app feels like it is living in the Uncanny Valley where it is such a good web app that it feels like it should respond natively, but isn’t able to follow through. Its UI is writing checks its interaction can’t cash.

I wish them the best. I’m a big proponent of native development, but it is encouraging to see how far HTML and CSS have come.


A quick example of where it really falls down is during rotation. There are a host of things that iOS does to make the animation between states fluid and glorious. The actual transition itself is comprised of dozens of tiny animations. In this web app they just can’t keep up. Here is what rotation from landscape to portrait looks like. Notice the strange middle ground that persists for a second or two before the true switch happens.

landscape

midpoint

portrait

2 notes

The Cost of Independence

When considering a move from salaried, full-time work to independent, self-directed work, there are a variety of factors that come into play. The changes in your commute, working hours, possibility for income, and enjoyment are just a few. I recall that when I went independent for the first time 5 years ago these were the factors that I was most focused on when weighing the relative value of leaving the ‘stability’ of my 9-5.

When you jump from working for a company to being self-employed you loose a lot of the financial supports that you may never have realized were surrounding you in a typical salaried position in a technology company.

Note: the analysis to follow is based on dozens of individual assumptions and choices, my goal is to draw a framework that is helpful for indies starting out, but your individual situation will vary. Also this is entirely US focused.

Here are the general costs associated with a single person starting a company. For the purposes of calculation I’m assuming that you are married, your spouse doesn’t work and you have no children. Here are the costs I currently face living in northern virginia. I suspect some of the insurance values would change state-to-state. For the values that are income based I’m using $100,000/year as the basis income.

  • Medical: If you can find a way to get into a group plan, either by having your spouse work for your business or forming a coop. For a $10-copay generously apportioned plan: $790/month
  • Medical: If you are going the individual route then you are looking more in the range of $2000/month.
  • Dental: A typical indemnity plan: $93/month
  • Vision: A basic new glasses every year plan: $12/month
  • Disability: Short and Long Term coverage: $50.27/month
  • Business Insurance: Basic liability and property coverage: $41.67
  • Local Taxes: A business license and incorporation costs: $58.33
  • Self Employment Tax: Social Security add-on to your federal taxes: $967.10

The resulting total cost is around $2,012/month. Or $24,148/year. ($38,668 if you need individual medical insurance).

That money is coming right off the top of the income you receive from your new venture. iOS development is a very lucrative industry right now so generally speaking you can easily cover these. For example, if you consult at $125/hr and work 48 weeks a year only around 10% of your income is going to these types of expenses.

I hope that these numbers are helpful to other indies thinking of taking the plunge. I found it very difficult to track down actual numbers shared so I was only able to get a sense of the costs I was facing after a lot of back and forth with an insurance broker.

0 notes

Is Compilation CPU Bound?

While compiling my Mac Value Analysis, I started wondering how important the CPU performance of a machine is for a developer.

With all the talk recently about SSDs as the savior of computing performance, I had assumed that things like compilation had become I/O bound and therefore most sensitive to changes in hard drive. If that were the case then things like Geekbench64 become even more obtuse measures of real life capability. While synthetic benchmarks always exhibit this drawback, I didn’t want to be overly misleading my comparisons.

As a developer I probably spend 80% of my day in Xcode. Within that 80% probably the majority of my non productive time each day is spent during compilation. Each time I hit “Build and Go” and then wait for the app to launch is time wasted.

Method

To try and quantify the impact of CPU vs Hard Drive, I came up with the following test using what I had around in my office.

  • I had three Firewire 800 hard drives available:
    • An Other World Computing, Mercury Extreme Pro SSD
    • A Hitatchi 5400RPM conventional disk
    • A lacie BigDisk set to RAID 0
  • I have two machines
    • A late 2009 27” iMac: 2.8GHz Intel Core i7 (Quad) [Geekbench64 9890]
    • A mid 2009 15” MacBook Pro: 2.53GHz Intel Core 2 Duo (Dual) [Geekbench64 3581]
  • I have three main projects Audiobooks, SimpleCasts and My Recipe Book
    • These projects represent a good variety of code and resources and together provide a pretty good baseline of a ‘typical’ iOS app project.
  • I copied each project onto each of the drives
  • Then, I ran xcodebuild clean && time xcodebuild with each of the machines connected to each of the drives.
  • This gave me a rough estimate of the compilation speed of each setup.

Results

results

From this it appears that CPU is far more significant factor in compilation time than hard drive choice. The predictable increase in speed was seen moving from a slower to faster hard drive, however, these improvements (in the range of 10-15%) are dwarfed by the CPU changes.

What seems most interesting in all this is that moving from the one machine to the other the overall average for each machine increased almost exactly as quickly as the Geekbench64 result. The increase from 3581 to 9890 in score was matched by a change in 12.55 to 34.79, a change of 2.76x and 2.77X respectively. This is likely more of a coincidence than a rule, however, it is still an interesting result.

That isn’t to say that an SSD isn’t helpful. When I upgraded my iMac to an SSD I saw a nice bump in my daily usage, and I would continue to recommend SSDs as the best option for your main boot device.

Notes

  • The gains you see based on a changes in CPU aren’t really representative of actual time savings for each compilation since Xcode does incremental build.
  • Choosing your machine based on just statistics like this would be rather foolish. Ultimately the best machine is the one that best fits your work style and budget.

3 notes

App Store Sales Volatility

After reading a tweet by David Barnard about the wild variability of sales in the app store, I was curious to see how my sales have varied this year. Below are the percent changes day-to-day and week-to-week for the year to date.

As you can see, daily swings in the 40% range and weekly swings in the 20% range are not uncommon.

If you make your living in the App Store, a strong constitution and a bit of patience is essential. Enjoy the ride.

335 notes

Mac Value Analysis

As an extension of my previous post about the new Mac lineup I did a quick analysis of the cost per performance of the current entire range of Macs.

Spoiler: The Mac Mini still wins.

Method

  • Select each Mac in the current lineup
  • Choose each available CPU option
  • Keep every other option (RAM, HD, etc) as base
  • Note the price
  • Head over to Geekbench Results Browser
  • Take the average of the 5 most recent results for Geekbench 64-bit for each machine

Notes:

  • I only evaluated single processor Mac Pros. Beyond that we are getting costs beyond the ‘typical’ consumer.
  • I was unable to find a Geekbench64 for the 2.7GHz i7 Mac Mini. However, a 32-bit value was available. So the value shown below is an approximation of what the 64-bit value would be based on the typical change in i7 processors.
  • All processors are dual core except where noted as Qi7 or Qi5, which are quad core. The 6Xeon Mac Pro is 6 core.

Keep in mind this analysis is entirely focused on CPU/Memory performance. While not really representative of overall performance, which is likely far more dependent on hard drive and network speeds, this is the best apples-to-apples comparison we can do across the whole lineup.

Results

In my experience above around 9,000 will be more than adequate for most uses. Almost half the current lineup hits that mark.

The Mac Mini is the clear winner in value for money. Even if you consider that you’d need your own monitor. At almost 50% better performance for cost.

Source Data if you are curious.