Today is a good day to code

Why I Decided to Raise the Price of Mides

Posted: February 13th, 2010 | Author: irv | Filed under: Apple, Cocoa, Companies, Objective-C, Programming, iPhone, mides | Tags: , , , , | No Comments »

A few days ago I completed an analysis of what my profit and loss looked like for both of my applications. What I discovered was very disturbing, or would be to any entrepreneur.

I have to date put around 200 hours of work into Mides and around 90 hours into CycleMetrics. So far I have made less than $2,000 total on either of them.

Part of this is my fault, I started out with something of a flawed concept with the design of Mides because I was in love with the idea of nested code, self closing tags, and closures. This ended up eating away almost all of the devices’ memory, and was so recursive as to be nearly unmaintainable.

So I killed my darlings, went in for a heavy refactoring of the code without nesting, and ended up with a pretty decent mobile IDE.

However, at what my hourly rate is at this point in my career, based on my salary plus benefits, I am as of now, with all of my original plus ongoing effort into the software, about $30,000 in the hole on Mides, and $10,800 in the hole on CycleMetrics.

When I launched my app, shortly after the app store launched, I thought that I would be able to make back my money in 2 years and get positive. It has been 2 years, and I’m nowhere near making my investment back.

This is mostly O.K. since I have an awesome job, and I’m not missing a house payment or anything, but I think it is unwise to basically give away software that you keep shelling out effort on. I can’t let it die either, that doesn’t make sense, I love the idea of programming on your mobile, and I love the idea of being able to code on the apple tablet even more.

I also hate ads, and don’t want to do the ad driven thing. So while I’m still subsidizing the hell out of Mides at $9.99, it isn’t the slap in the face that $4.99 was.

So as a result, I have decided on $9.99 for Mides. I am putting in a fair amount of work to get to the tablet in an intuitive and sane manner, I also have a bunch of features planned. Some of which have been suggested by the awesome community at getsatisfaction.com/mides, and others that fit in with my dream of Mides.

I am still not sure what I want to do about CycleMetrics, but I have some online features that should be able to drive more reveneue for me. I don’t want to go to ads, and I don’t want to lock users in or try to steal their personal info to try to make a buck on it. That just doesn’t jibe with my philosophy.

We’ll see if the market thinks Mides is worth $9.99. I still think it is worth way more, but that is because I see it as it will be, not as it is. If people don’t think it’s worth $9.99, then they will later, but I can’t promise to keep the price there as I struggle to make it my dream of a fully featured mobile development environment.


What if Apple’s Vision of a Modern Platform is Right?

Posted: February 8th, 2010 | Author: irv | Filed under: Apple, Cocoa, Companies, Google, Microsoft, Objective-C, Programming, iPhone | Tags: , , , | No Comments »

This past weekend, I was thinking more about the iPad.  One of the thoughts that kept coming back was about the iPhone / Cocoa Touch development ecosystem as a platform, and how that looks in comparison to existing platforms.  The conclusion that I came to was a bit disturbing to me as a developer concerning the future of application development in general.

It is somewhat useful to quickly recap the development environments of the past to contrast them to today.  First we need to talk about Microsoft and what a platform meant to them.  To Microsoft, the computer was a tool for technical users.  Even if their said goal was to put a computer on every desk, the engineers clearly have and had difficulty putting them into the place of their users.

As the computers’ abilities increased, so did their complexity, and the complexity of the OS.  Doing simple tasks like taking a piece of text from a word processing program and putting it into your spreadsheet program in DOS was mostly ridiculously complicated.  Windows made things a bit easier initially, but only for the most technical users.  Doing what should be mostly simple tasks were still difficult, DOS was still around and necessary to do many common tasks.  The thing booted from DOS which created no end of problems.  It just wasn’t an optimal solution for the mass of computer consumers out there.  This was evinced by a proliferation of “computer” classes which were supposed to take the burden of designing something that was easy off of the engineers who designed the system.  That it did, and they proceeded to make a system that was even more of a tangle.

For those who would say that the Macintosh is much easier, I take issue with the word “much.”  In reality Unix / Linux / Mac OS X.x is not terribly easy to use.  To someone who has a good understanding of the computer, and conventions it is much simpler and more straightforward to use and manage.  For a technical user Apple does a fantastic job of making most things that normal people want to do easy without preventing technical users from doing complicated things, but the underlying complexity is not without its cost to the typical end user.

Now, if you were designing a platform today, for millions of people worldwide, with different levels of technical ability, the issue of computer and operating system security looming large, and the ever increasing abilities developers have to make computers do insanely complex things in the blink of an eye, how would you develop it?  Would it be like Windows, putting the burden of learning, understanding, and protecting themselves on the user?  Would it be like Unix / Linux, putting the burden of everything on the user, but exposing incredible levels of customization to the user?

What you would do would depend on what your goal was, but if your goal was to provide the best possible user experience, you would likely ( I know that I would ) take it upon yourself to protect your users from viruses, phishing, hacking, malware, etc…  You would likely make it difficult or impossible for developers working on your platform to make choices that would negatively impact the usability of the platform.  You might choose a somewhat difficult language combination for development to make a barrier to entry for developers, to make sure that the developers that did create for your platform were of a caliber such that they could actually make compelling content for your devices.

You might establish a certification board of some sort to determine if the applications being developed for your platform met your requirements for ease of use, stability, and security.  You may come to the conclusion that the only way to enforce your vision of the platform and be the ultimate consumer advocate, you would have to make sure that every application went through this board before they were available on your platform.  Once available for your platform, you might make the installation and configuration experience as painless as possible for the user, even if it meant imposing further complexity of implementation on the developer.

Does any of this sound familiar.  When I went through, designing a platform as a consumer advocate, what I ended up with was pretty much like what Apple has for the iPhone / iPad / iPod Touch development environment.  With one exception, I was actually more stringent in that I wouldn’t allow wapletts ( web application applets ) on the platform.  I would require those developers to just build a web application customized for the experience.

The funniest thing, or strangest if you don’t like that colloquialism, was that designing the platform as a developer, it didn’t look anything like this, in fact, it looked much more like the development experience around Ubuntu linux.  Where I ended up is that perhaps as developers, we are heaping too much responsibility on the average user trying to use the platform.  I think that Apple has the right mix with the app store experience for the types of devices that are running the Cocoa Touch framework on Objective-C.

That being said.  I don’t like it.  However, I understand it, and the UX / UI Designer at my heart rejoices at the emergence of this paradigm, where the responsibility for security and workflow consistency are on the developer, not the user.  But the programmer in me rebels at having someone tell me how to design and implement what I want on my device.  Having someone lord over me as to what is an acceptable software application is irritating to say the least.  I think the UX designer, and consumer advocate in me wins, and there are platforms like Mac OS X that I can work on to satisfy the programmer urges in me.

I predict, however that Apple will do away with the use of the existing Mac OS X on the MacBook,the iMac, and the MacBook Air.  I think they will start running this Cocoa Touch OS with all of the restrictions and HIG guidelines as the iPhone.  I think that there will be an app store for these devices, and I think that it will be the only way to install software.  Seeing iWork on the iPad is the first example of the migration of Cocoa Touch to a full fledged computer operating system.

Apple will probably, keep the MacPro line and the MacBook Pro, perhaps adding an iMac Pro running Mac OS X.x in the way we have always come to expect it, and it will likely become even geekier than it already is.  The most floor slapping, hilarious thing is that Apple has come full-circle to an old Microsoft idea that was right on, however, big surprise, was improperly executed.

Originally Microsoft had its Windows Professional and Home lines, they had Windows 2000 for business and Windows 98 for home users.  The concept was that they wanted to have a much simpler OS for normal consumers and a much more complicated, and powerful, platform for businesses to use.  Apple has slightly turned this on its head, they, in my humble opinion, want to have a platform that is an awesome one for media consumers, and general consumers, and a platform for the programmer geeks that have made Apple what it is.  It is for that reason that I anticipate a iPad Pro soon after the launch of the iPad, perhaps even as soon as WWDC ‘10.  The iPad Pro would likely run a Cocoa Touch OS that was less restricted, and more like Mac OS X.x.

Ultimately, I think Apple wants, and will make everyone happy, but we are at the beginning of this incredible consumer platform, and I think that for its stated goals, the App Store, the “awful policies,” et cetera, are the best possible way to get to it.  However, I think for its perception among geeks, Apple needs to communicate their strategy as soon as possible.  If they intend to make all of their devices like the iPod Touch, then we have a problem.  However, this is extremely unlikely.  I can’t wait until WWDC this year!


Losing Weight With Technology

Posted: February 3rd, 2010 | Author: irv | Filed under: Lifestyle, Programming | Tags: , , , , , , , | No Comments »

About 8 months ago I started running because I noticed that Nike+ was built into my iPhone 3GS.  I had run in the past, but never very seriously.  I started to lose a bit of weight, but it wasn’t coming off like I felt it should.  I’ve always been heavy, except for the couple of times in my life when I went on a crash diet.  Once I lost nearly 100 lbs, way back when I was 16 by eating every other day.  Recently I think I have found something that works so A few days ago I felt motivated to indulge in telling my story on my blog since perhaps someone would find it helpful.  Since my weight kept going up, and I kept exercising harder and harder, I thought that something must be wrong with me.  At one point I was riding my bike to work, totaling over 200 miles a week and I didn’t lose an ounce.

Over the years, the lifestyle of a software engineer and a literature nerd took its toll on me and I gained back all of the weight that I had lost when I was 16, and then some.  I signed up for one of Nike’s virtual running plans and started to run more and more.  I was really enjoying analyzing the data that was coming out of my nike plus, that combined with the weather data from slowgeek.  But I wasn’t really losing any weight.  I just sort of settled into the fact that maybe I was just one of those people who were meant to be fat.

My wife wanted me to go to the doctor and ask for statins, which I did, because she was worried about my blood pressure and cholesterol, which I hadn’t checked in forever.  My doctor agreed with me that something wasn’t right about the fact that I wasn’t losing weight, even though I was working out like a demon, that my blood pressure was so high, and that I was having allergy and miscellaneous immune issues.  She didn’t want to give me any drugs, she is an awesome doctor, so she sent me over to get a lab done.

The cool thing about my doctor is that, much like a software engineer tracking a problem, she was able to string together a bunch of seemingly random data, anecdotal and otherwise, mix it with empirical data from the labs and quickly come to a working theory of what was going on.  I had a chronic vitamin D deficiency.  I know it sounds like a joke, and I thought it was pretty silly when she prescribed me high-dose vitamins, but my laughter in ridicule quickly turned into joyous laughter once the weight started dropping off.  My cholesterol was fine, so that was the only thing.  My doctor told me that a) everyone has a vitamin D deficiency, and b) since I was African American it was worse for me, especially living in the Bay Area.  She said that vitamin D plays a role in, get this, metabolizing sugar.  That without it your body has a hard time using the energy from sugar.  Well most of everything we eat is sugar ( high-fructose corn syrup ), so this would explain why I couldn’t lose weight.

That wasn’t all either, I had been moody for quite some time, but the Vitamin D mellowed my moods and helped me to concentrate.  About the same time I had been reading a book called The Omnivore’s Dilemma.  I was becoming more conscious of what I was eating.  I figured that since the iPhone was so awesome at capturing data with the Nike+ and that I always have it with me, if I could find something that would track my nutrients and calories on the iPhone I’d be able to see what was going on with my diet.

When I first started using LoseIt! (ITMS Link) I was shocked that almost all of my calories, between 4,000 and 6,000 a day were coming from carbohydrates.  I was running at something like 90% carbs 2% fat and the rest was protein.  Prior to using the program I was under the assumption that all I had to do was keep my fat down.  With my Vitamin D deficiency preventing me from actually burning the massive carbohydrate load I was putting in, my body was just storing everything.  Once I finally got the Vitamin D levels evened out with supplements, I started cutting down the calories.

Almost immediately I noticed that I started choosing the lower calorie foods with high protein such as eating a chicken breast, with no bread or rice, and a salad, instead of a salad and a horde of pretzels.  The pretzels had an insane amount of calories, so did bread, and rice, so I stopped eating so much of those almost immediately.  I started eating way more fat, and when I say way more, I mean that between 12% and 20% of my calories were from fat.  I still eat way more fat than people say is good for you, all the while losing weight at between 1 and 3 lbs a week, with little to no ravenous hunger that doesn’t occur at mealtimes.  Of course I avoid trans-fats and saturated fats, but I am not afraid to eat a steak or dark chicken meat.  Once you get into training for endurance sports your needs will change, but at the beginning it is really good advice to follow Chris Carmichael’s : Eat Right to Train Right foundation percentages.

All this data was making me giddy, I could actually see what was happening to my body as I changed the mixture and quantity of what I was eating.  As I fixed my diet, the constant hunger went away.  LoseIt had me at around 2800 calories when I was at about 260 lbs, but now it has me at about 2060 at 200.

LoseIt works on a very simple assumption, that 3500 calories a week equals 1 lbs, so short 3500 calories a week, you should lose 1 lbs per week.  With all the data I can now see, based on what I am eating, what is happening to me during races, long rides, etc… I have a much better understanding of why I am cramping up on rides, or during swims, or why I bonk, or can’t crank up the output on some days.  I am learning which foods burn best for what.

Everyone thinks that the government has BMI and the diet guidelines all wrong, and to be fair, it is a bit off, but not as much as people think.  People want to believe that they are just the way they are, and that they don’t need to, or can’t change.  Many people think that they can be healthy while being seriously overweight, or that they are somehow special and the laws of thermodynamics don’t apply to them.  Everyone is so focused on eating more “good calories”, etc… That is all bullshit.  A calorie is a calorie.  If you don’t burn it you will gain weight.  Unless you are a triathlete, marathoner, etc… 3500 calories = 1 lbs period.  First you have to fix any chemical or other issues in your way, but aside from physical biochemical issues, it is possible for everyone to be at a healthy weight, and it isn’t hard as long as you can be anal about tracking calories.

I would have lost 1 lbs per week had I not been running, picked up swimming, and started cycling more.  Instead I was losing around 3 to 3 and 1/2 lbs per week.  While doing all of this I was building my CycleMetrics application for the iPhone.  Testing it was a monster, I had to do intervals to test the power output on the bike even when I wasn’t riding simply for fun.  All the while aggregating my exercise data on Google Docs, and using LoseIt to count calories.  Some people may think it is rude when I pull out my phone at dinner and start tallying up the damage before I eat it, but it helps me with portion control, and screw them if they don’t like it.

At the moment I have lost 60 lbs.  I still have a bit to go to hit my ultimate goal, which is to hit the top end of the normal BMI range for my height and shoulder width, but now that I have a framework with which to control my weight and keep myself at peak physical and mental performance I am not concerned that I will hit them.

I would like to editorialize a bit and rant about the food industry.  It is absolutely insane that I need this much technology to figure out what is in the foods that I am eating.  I shouldn’t have to track every calorie this way, corn shouldn’t be in everything in the quantities that it is.  The government shouldn’t tax fossil fuels, they should tax high-fructose corn syrup.  Also, eating out is inordinately hard.  I needed The Daily Plate ( Livestrong ) (ITMS Link) Application just to figure out how to approximate what I was eating and what the calories are in stuff at restaurants.  They should really consider putting this on their menus voluntarily, and if they won’t the government should make them do it.  Only because if they don’t everyone’s health care bills will rise.

With all of the money that we are looking at spending to improve health-care, I can’t believe that we don’t do something about the sugar / corn intake of people.  Unless you look at what you are eating, the amount of calories that you can consume is really absurd.  The bag of pretzels next to your desk that you munch on while coding and listening to glitch music is about 1400 calories, you’d be better off with two butterfinger bars.  Better than that would be to eat a balanced lunch with fat, carbohydrates, and protein.

If I was reading this, and I was still where I was, I’d be saying to myself, yeah its all well and good that you found religion, but you are working out, eating right, and got quality medical care.  It worked for you, but how can I know that it will work for me?  Its a good question.  I don’t know that it will work for everyone.  However, what I do know is that for each of the people that I have given this app to who have seriously tracked what they ate, their results are the same as mine.  Think about it this way, development without a framework is hard, it is tough to know where to start, and even harder to know when you have built enough.

LoseIt is like a framework, it makes the hard decisions about how much and what to eat.  It lets you think about that fancy Lisp project that you want to build, instead of feeling guilty about eating too much, or wondering whether to eat this or that.  Really it doesn’t matter much what you eat, if your goal is to lose or maintain a healthy weight.  I still eat McDonalds, although I get a happy meal, I eat dominoes and drink copious amounts of beer.  The difference is that either I work out to get rid of the excess calories or I stop eating and drinking when I hit my limit.  That is not to say that you won’t have any health problems eating this stuff, it is just to say that your weight won’t be one of them if you stay within your calorie boundary.

As far as the exercise goes, there are so many different types of sports out there, even people who say they hate sports admit to not trying them all, who knows, you could have a desire to be a curling champion, or to do pole vault, etc…  There is something for everyone.

If you capture the data, imagine the awesome analysis software you can write to find trends.  Right now I am cross referencing my diet with the weather, and speed with altitude to see at which humidity and carb levels I perform best at with altitude.  It isn’t so much that I care, it is mostly about the fun with analyzing the data.  I never thought I would have so much access to the inner life of my body.  Anyway, I this is about wrapped up.  If you are having trouble losing weight look into Vitamin D, and if you haven’t already, grab LoseIt (free) and a copy of Omnivore’s dilemma, it will change your life for the better.

*UPDATE: 2/19/2010*

I forgot to write an additional thing that I am doing to control my weight.  Since my father died a little over a year ago, I have been trying to get 100% of my fiber each day, somewhere between 25 and 30 grams.  Coincidentally, I learned later that fiber plays an important role in helping you to feel full after meals, as well as helping your body dissipate excess calories.  I would recommend that anyone increasing their fiber, however do it gradually or you might have some uncomfortable results.


Google Wave : Simultaneous Attack on Facebook, Twitter, Yahoo, and Microsoft

Posted: January 29th, 2010 | Author: irv | Filed under: Companies, Google, Microsoft | Tags: , , , , , , , | No Comments »

I have had a wave account for some time, but I never really got it.  I understood it as a communication platform and all of that, but I didn’t really understand what was in it for google.  Then I thought a bit more about it and I remember something that Yahoo! said a long time ago, “email is the social network.”  That didn’t make sense to me at all, until now.

Most people use email for a large chunk of their interaction with other people.  By Yahoo! saying that email is the social network, they were indicating that most of what Facebook does is overglorified email.  People typically, pre – facebook would share photos, music, and videos over email.  The biggest complaint was that email didn’t allow them to have large enough attachments.  Enter youtube and flickr.  They allowed people to embed links to larger content and then email them.

Enter Facebook.  Facebook allowed people to be able to control who could see what.  It allowed for semi-private posting, plus all of the features of youtube and flicker with email.  It became the ultimate communication platform.  Once apps was created, it was over, runaway success.

Google initially tried to build a social network with Orcut, but that really wasn’t going to have the traction that Facebook had obtained.  Google wisely stopped pushing that.  When wave was announced, I thought that it was aimed specifically at outlook in the enterprise, and maybe some minor aspects of personal communication, but nothing significant.  However, with their plugin system, and its federated nature, it starts to pretty much become a better facebook than facebook.

The first aspect of Google’s attack on Facebook with Wave is that it is private by default.  Waves are only available to specific people or groups that you explicitly choose.  You have a wave status that you can update, you can attach pretty large files or URIs, or even embed some content into the wave… There is commenting.  It really feels like a social network, and the plugins are just genius.  This will eventually challenge facebook since anyone can run a wave server.  It also tackles Ning, and pretty much any other social network out there.  All it takes is for Google to flip a switch to give users the option to produce a public wave, or a wave that all your contacts can see, and it starts seriously eyeing content management systems.

It attacks Twitter in that it is immediate, and it is optional.  I can follow or unfollow waves as I wish, so I can jump in and out of conversations.  Something that I have desperately wanted for some time, this is what makes Twitter and Yammer awesome.  That I don’t always have to pay attention to them, email is too immediate, and there is always important stuff mixed up with unimportant stuff.  Wave lets me discriminate.  Wave will always scale better, and have more history, therefore more data mining value than Twitter.  It is federated, and peered from what I understand of the spec, and therefore should be more resilient than anything a single company, save Google could build.  Also since it is an open standard, more people should get behind it.  If I were Twitter, I would be looking at how I could merge my service with the standard.

Wave destroys Yahoo mail, period.  I would imagine that Yahoo has something up their sleeve since they killed 360, but they are hurting so badly for cash right now that I’m not sure.  I think that a federated wave could hurt a lot of web email providers.

Finally, Microsoft.  Exchange has hammered everyone for a decade with its expensive licensing and limited feature set.  Wave easily destroys it on features and usability.  Hopefully Google will unleash Wave into Google Docs, and the enterprise Google Docs.  I think that savvy IT managers and most of the engineers will jump nearly immediately.  This will be mostly the end of Yammer if it happens.  Although I think Twitter and Yammer have features that wave is missing, the standards body could just add them, everyone could implement their UI for the features and be done with it.  Microsoft exchange and outlook never really understood why anyone would need additional features and media types, so I don’t expect for it to live long past the wave proper launch with enterprise wave server and client providers.  The costs would be so cheap that it would be difficult for them not to look at it.  Especially since most enterprises are still running very old version of Exchange.

Microsoft has such a tarnished reputation in enterprise now that most people have to seriously look at whether to upgrade to the latest Microsoft thing or not.  Mostly they trial it for extremely long periods before committing the updates to the masses.  Since waves can persist, this can even replace sharepoint, and it does it with a metaphor that people are very comfortable with… email.


Thoughts on the Apple iPad

Posted: January 28th, 2010 | Author: irv | Filed under: Apple, Companies, iPhone | Tags: , , , , | No Comments »

First off, let me say that I am an apple fanboy to the highest degree.  Prior to today, there has been only one Apple device since 2001 that I have not really wanted in its original form, that product is the Apple TV.  Today, there are two.  In the rest of this post I’d like to explore why I feel this way.

There are bound to be many, many people who will find a tablet like the on Apple described yesterday to be wonderful.  I am coming from a slightly different place, as I have a MacBook Pro, an iPhone, and a Kindle.  What I was looking for was something innovative enough to replace all three, and the tablet isn’t it.

Looking at my needs for a portable computer, we can eliminate the tablet right off.  It can’t run GCC, it can’t run clisp, PHP, etc… So for me as a developer it isn’t practical, as a writer, it is.  Between iWork’s pages and the keyboard attachment, it will make a fantastic transportable word processing device.  The biggest problem with this is that I can’t run openoffice or word.  Not that I would necessarily want to, but if all of my files are in word format, and Pages mangles them, then this is a non-starter.  Also, without the ability to move files easily onto and off of the device, I’m sure there will be a mobile me tie-in here, it just isn’t as flexible as my laptop, ahem… netbook.

On the smartphone front, this device is way too big to put into my pocket, doesn’t have a camera, and doesn’t support standard cellular voice.  Of course I could use skype, etc… but sometimes, for as much as we complain about AT&T, it is nice to just make a regular voice call and have it not be complicated.  On top of that, since it doesn’t tether to my iPhone, something that I should be able to do just in general.  Instead, I have to, on top of the data plan that I already pay for for my iPhone, pay an additional $29 per month to use the internet.  The 250 MB plan is a joke, as soon as I watch a few Hi-Def youtube feeds, I will have gone through it.  This doesn’t replace my smartphone, iPhone.  It doesn’t even really work together with my iPhone.

While the iPad, even with its unfortunate name, has a really beautiful ebook reader application.  The books are way more expensive than the Kindle, and the screen is still a backlit LCD.  I can read my Kindle just fine in the high-noon sun, which I do a lot.  I can read my kindle with no problem at the playground with my kids.  I can’t even see what is on my laptop in the sun, perhaps the iPad will be better, but it doesn’t even come close to the readability of the Kindle.  It is great that the battery life on the iPad is 10 hours, I can’t look at the screen reading text for that long.  So it doesn’t really replace the Kindle in its current form.

Overall, it is awesome at some things, but it doesn’t really replace what I have, is it better at browsing the web than my laptop with a 3G card?  No, not really, I can use Verizon or Sprint 3G, I’m not stuck with AT&T, I have the choice to use Firefox or Google Chrome, I’m not stuck with Safari.  I like Safari, but Chrome and Firefox have better features.  Is it better at media, since I tend to consume a lot of audio podcasts, no it isn’t.  For users like me the iPad is just what I hoped it wouldn’t be, its a big iPod touch.  I already have an iPod touch and an iPhone and a laptop.  There is nothing that the iPad does that would make me replace any of them, not even the iPod touch, since I can actually put that in my pocket and take it with me.  There is also the neck pain that comes from looking down into your lap for 4 hours that we have all felt from playing games on the iPhone.

I don’t intend to buy the iPad, at least in its current form.  I was really hoping that Apple would come in and do something super cool with gestures or something to make that form factor work, what they have done is smart in that they aren’t really challenging the other markets, they are trying to make a niche that is there own.  I think the super wealthy digerati will buy this, and some people who don’t already have an iPod Touch or a Kindle, or even some people who don’t have a laptop, but most people will still spring for the $300 netbook over the iPad.

It has dawned on me though that the iPad is a megaton bomb on Google’s Chrome OS hopes.  iPad Safari will be able to run all of the google apps in the same fashion that Chrome OS likely will, from an icon on screen, so to the majority of users they will be the same.  Google does have one advantage, and that is its openness.  Google is talking about allowing NSAPI plugins that run native code on the platform, Apple can claim that one could just write a native application, but it doesn’t allow augmenting the web browser to provide additional functionality to web applications.  The lack of openness could end up biting Apple as we transition all of our desktop environment to the web.


Mides 1.7 New Features and Changes

Posted: January 25th, 2010 | Author: irv | Filed under: Apple, JavaScript, PHP, Programming, iPhone, mides | Tags: , , , , , | 2 Comments »

I wrote Mides originally to help me to write web applications when I am on the go.  A huge part of web application development is JavaScript.  The iPhone / iPod is an awesome device for heavy client JavaScript apps.  So as a result, I added JSLint in Mides 1.7 to make debugging JavaScript easier.

The main problem with the developer setting in Mobile Safari is that it is inaccessible to other applications.  Since one of the main purposes of Mides is to enable development with either no, or an unreliable internet connection, it wouldn’t be possible for Mides’ internal HTTP server to run and serve the mobile safari application with content.  This is the entire reason I wrote an HTTP server for Mides, so that JavaScript XHRs would work correctly for testing.

What I have done to help out with JavaScript debugging is to modify Douglas Crockford’s JSLint library slightly to make it work on the iPhone.  It helps out with outright errors, but also with many excellent tips for writing safe and readable JavaScript applications.  You can see the errors and optimizations by tapping on the burst and exclamation point icon when it appears over your JavaScript or HTML.  This feature is optional and can be disabled in the iPhone settings.

Another issue I wanted to address with a new feature is that I always forget the argument, or the exact PHP method call that I want to use, especially around MySQL.  I already had the documentation in there, but since it is a full-text search, it tends to take a while.  So I added a new feature that allows you to look up just the method signature, that is the method name and the arguments to the method.  I didn’t want to put a button in there for this, it just didn’t seem right.  I tried for a while to come up with something usable, and I think I have figured out something that works.  You just need to twist the phone to the right ( or left ) to do the code-completion on the method.  If the text before the cursor matches one or more PHP method signatures, then it will add that value in context, in line into your code with the argument types.  If it matches more than one, it will display a modal dialog that will allow you to choose from the top 5 PHP methods that match what you have typed.

One fix that a customer asked for on getsatisfaction.com/mides was that I make tabs parse properly.  I also added that in Mides 1.7, now your tabs will be properly displayed.  To create a tab, just space 5 chars into the document.

I am adding features both at the request of customers on the burgeoning community on getsatisfaction, as well as through my own usage of the product.  I probably won’t implement all of them, but please keep the suggestions coming.  They help tremendously.  Some of them are really tough to implement, but if they make it more usable I’m all for it.

One of the main issues around Mides is moving files onto and off of the phone, Apple hasn’t made it easy, and FTP is not the best solution, it is a nightmare to support, and difficult for users to set up.  I thought about having a small application that you could install on your Mac and PC that would make it much easier to transfer files with, but this didn’t seem like the best solution either.  I am actively thinking through better ways, but nothing so far has really stuck.

At any rate, I am constantly trying to make Mides more useful, I know it has been rough, but I’m glad to see that some of you are starting to get real use out of Mides.  I hope to keep making it better and eventually to rival and in some ways improve upon the desktop coding experience.


Why the Volume Approach to Sales in the Apple App Store Won’t Work

Posted: December 16th, 2009 | Author: irv | Filed under: Apple, Companies, iPhone | Tags: , , , , , | No Comments »

For a few months I have been thinking about the app store. Specifically I have been thinking through all of the drama and screaming that is occurring on the internet over the rejection of a few apps, the difficulty of finding anything quality in the app store, and the impact to actual users. The conclusion that I have come to is one that is different from the conclusion to which I had figured I’d arrive before thinking deeply about it.

Basically the App Store is great for Apple, but bad for developers. OK, you may think, well that is obvious and it is, but I don’t think that it is quite as simple as that. Firstly, I think Apple has brought their brilliance for marketing physical machines, accessories, and their integrated software and applied it to third party applications. Secondly, they have created an ecosystem where sales volume is king and the primary means of competition is over price, not quality. Regarding the second point, I am certain that they did not intend to do this however, it is in fact where things are today.

To understand why volume alone in software sales does not make one rich or profitable, you have to look at the contrast between physical goods sales, and service sales in an environment similar to the app store.

Imagine that you have an area like the Akihabara district in Tokyo, Japan, where you can buy anything technology based, motherboards, cameras, MP3 players, etc… Everyone who wants to sell this stuff crams into the Akihabara district even though there are already thousands of people there selling the same exact thing. So why would you do this one might think? It is because even though you have to drop your price to compete with the others, the number of people who will come to the Akihabara looking for some electronic thing is very high, if you were to locate elsewhere, you could increase the price, but you would have fewer people coming to your store. This is less than optimal for someone selling a physical good, to understand this, you have to look at how profitability works when selling a real thing.

If I can buy 5 widgets at $2, my cost is $10, if I sell the widgets at $4, my revenue is $40, my net profit is $30, not too bad. Now lets say I move into the Akihabara, I will need 1000 widgets to accommodate all of the foot traffic, and the people who want my widgets. Because I can sell 1000 widgets, the supplier is willing to sell them to me for $0.25 each. Now I have to cut my price because I have thousands of others selling the same type of widget, so lets say I cut the price to $2.50, my cost is now $25.00, but my revenue is now $2,500, that leaves my net profit at $2,475. I am making way more money now that I am in the Akihabara, even though I am losing some business to my competitors and my per item cost is lower, my profitability is actually better.

Now, lets say we do the same thing for a service based industry like plumbing. I have a plumbing business out in the suburbs and I charge $175 / hour to fix plumbing, maybe I get 100 hours of work every month since I am out in the suburbs and I am the only one. I am making $17,500 per month, I’m doing pretty well. Now I move into the plumber’s alley in town with 50 other plumbers, well, in order to get jobs, since it is so easy for customers to shop around, I have to cut my rate to $65 / hour, and since I am around there with 50 other plumbers, there is a bit more foot traffic, but I am just one guy so when I am out on a job, I can’t collect any more work. Now I am doing 150 hours of work each month, but at $65.00, I’m only making $9,750 per month. The answer would be to hire another guy, let’s say I do that, now I can do 300 hours of work each month, but I have to pay this clown, plus the drain on my time to train him to do it my way, after his pay, I am making $45.00 / month, $13,500, not bad, but still not as good as working less and making more in the suburbs.

Software is not exactly the same, but it is similar enough that the calculus works out nearly the same. I have just seen this happen with my CycleMetrics application, which applies to a broad vertical, versus my Mides application, which applies to a very narrow vertical, and came out when there were very few items in the app store.

With software, there is a significant up-front cost of your, or if you have to hire a team, your team’s time.  But for most people in the App Store, it is just you, lets say you want to build a really high quality application, it takes you about 18 months to get it all done alongside your day job.  You have put about 2,000 hours into it.  Typically your time is worth about $125 / hour, or at least that is the neighborhood in which an agency would price you out at as an iPhone dev in the bay area.  So you have put $200,000 into this iPhone application, or if you were to do a 12 month consulting job instead ( because it would be full-time ), that is what you would have made in salary plus benefits, or salary if you are a typical contractor.

By the time you put out your app, there are 300 other applications that do the same thing, 90% of them are crapware fake web apps with a Cocoa wrapper.  But in the App Store, the users can’t really tell the difference since the reviews have been gamed endlessly.  You don’t do any of that stuff, you play by the rules.  All of the other apps are priced at $0.99.  The target you have set to recoup your initial capital investment of $200,000 is two years.  You expect to sell about 100 a month average over 2 years, because your app is super awesome and you get a good pre-release review.  You realize that you would have to sell your app at $84 each to make that up in 2 years.  So you give up and hope for the best, you hope that Apple features you, or you hit the top 50 list.  You price your app at $19.99.  Apple rejects you a few times, so you have to put in another 100 hours into getting through the review process, now you are 2100 hours into it.  You figure you will eat that as a sunk cost now, chalk it up as a learning experience.

You sell 15 initially because people think it is so awesome that name-the-apple-podcast reviewed it.  Soon you start to notice a few bugs being reported in the comments that the Apple review has missed, and so have you.  But it will take a while to get the fix to market, and so you start this process over and over again.  This time it only takes 10 hours, but you have invested 2110 hours into the project, and have a 2 star rating in the App Store.  Now your sales are so low that you have to drop the price to keep moving units.  If you try raising your prices later, you will just not sell.

Even if all of the past time is sunk, you have future time in support and maintenance costs, even if you don’t add features.  It is the plumber model, you can never be as profitable as if you are a single guy working in an area in which there is nothing else like what you offer.

Most developers don’t count their initially invested time as money, so most developers don’t see this, but time is the only truly non-renewable resource.  They hear about the guy that sold 80,000 copies of x game in a month and raked in a million dollars.  Of course there will be a few like this, its like winning the lottery.  Apple picks a few and they do well for a time, after that however, they get pushed back into the pit with everyone else.

So, is there any way to fix it?  Apple has no incentive to fix it, they, and the app consumers are the beneficiaries of the huge delta in hours invested in the iPhone apps in the app store, and the lack of profit that the devs are getting.  I don’t think we should complain about it though.  It is awesomely powerful to be able to reach millions of people through the app store with a tap and a search.

There are three ways for devs to acheive profitability, one is for everyone in a section to raise their prices.  The overall sales volume would drop, but the profitability would increase, and everyone would make more money, not as much as if they were by themselves in the section, but more than they can make with the brute force of the quasi-free market forces in the app store.

The second way is to use the app store and your application to sell services outside of the app store, like Omni or pandora.  In Omni’s case, they use OmniFocus to drive sales of their mac desktop application where they have a vertical they own, selling productivity products for Mac OS X.  In Pandora’s case, they are using their application to drive affiliate link revenue as well as potentially some aggregate data mining products.  Either way, the bulk of their revenue is going to come from their other business efforts, the App Store is just an adjunct to this.

The third and probably most difficult way would be to come up with a product that is so unique in its technical application that it creates a natural barrier to entry, or to create a product for a vertical that is profitable, but is so small or difficult to understand that most competitors wouldn’t bother.  Examples of this would be like some sort of law research assistant with artificial intelligence that you could charge $199 for, or a notional application that would speak to industrial robots for which you could charge $30,000, but then you become acutely aware of the 30% that Apple charges.  At that price point, it might make more sense to develop it for Android and offer it directly from your site, but you get the idea.

The gist of all of this is that Apple has created a wonderful retail location in the image of their physical item store, one in which they have a monopoly on impressions and can leverage economies of scale.  Since economies of scale have no clear practical application to software development, the App Store should be seen as a massive lead generator for some other monetization strategy.  Getting angry at Apple for being Apple is pointless, take what they have given you and use it.

The last thought that I will leave you with is that Objective-C development is fun, and researching the background of Objective-C / Cocoa from smalltalk is also fascinating.  I am not for one minute suggesting that you shouldn’t develop applications for the iTunes App Store.  On the contrary, I think you should, but you should develop the applications because you enjoy the process, not because you hope to recoup your investment in a number of years.  You will likely not be able to recoup but a fraction of what you have invested.  That is not to say that you won’t get an awesome job with someone who has figured out how to make money in the store because of that initial time investment.  That is what I would be using the developer program for, to enrich and expand my programming abilities, not to try to get rich quick.


Come Through Rails Back to PHP

Posted: November 17th, 2009 | Author: irv | Filed under: PHP, Programming, Rails, Ruby | No Comments »

I am struggling mightily with this one. I love ruby and rails, but more and more I am resenting the constraints of the controller architecture, the router, and activerecord, and I miss writing and tweaking raw SQL. This is not to say that I don’t love rails for quick and dirty stuff, and it has done wonders for writing MVC web applications, but I miss being able to break that pattern where it applies and being able to understand the result. I view rails just like I view Cocoa Bindings. I love the magic that they do, but there is a performance cost, and it is suboptimal for me to have little to no visibility into how they do what they do.

My friends who are really into rails tell me of course, you can use it without those modules, namely ActiveRecord, but if my problem is with ActiveController, and its routing magic, along with the conventions then what is the point. I was looking at MERB, but it is difficult to say what the result will be in rails 3. But almost no matter how I consider the outcome of that Merb will inevitably become more Rails like. I mean, rails is the 800 lbs gorilla in the web dev space, who would argue with Rails and win?

Well, there are plenty of examples of ugly PHP sites, and there are some examples of almost elegant code in PHP. Better yet, there is no magic, I can avoid heavy frameworks if I choose and still have my choice of easy deployment options with mod_php. The rails community keeps saying that hardware is cheap, and it is if you have money to begin with. If I need to deploy on a $30 / month host, it is very hard to deploy a rails app with a homegrown framework on rack. I am sure they exist, but PHP hosting has gotten so cheap as to almost be an afterthought.

Some of the PHP code that I have written recently is quite clean and readable. Its using classes and MVC to a degree, but I have objects that implement a hydration base class that allow them to persist their contents by overriding some simple parameterized SQL via PDO in the subclass. That is really all of the database abstraction that I need. If I want to persist objects, I’ll just save them to disk. Ruby’s marshal works just fine for that, so does PHP’s serialize / unserialize. If I want to use a relational database, I’ll write SQL and let it play to its strengths instead of pretending that it doesn’t exist.

The functional and library support that PHP has is unparalleled in the web dev community. I would have to agree with Rasmus Lerdorf that I like my SQL to look like SQL, my JavaScript to look like JavaScript, and my implementation language to look like my implementation language.

This is not an anti-framework rant, despite the way it sounds. I love Rails, Cake PHP, Groovy, Struts, etc… I think they are a great way to get a project going quickly or as a way to learn good web development processes, but I also think there is a time where you need performance and control, and this is it for me. I think most web developers should start by learning one of these frameworks. Once they can understand the tradeoffs you make when using them, it is probably time to leave. I don’t differentiate, I think that JavaScript frameworks are the same thing. They are awesome until you are performance bound, or you are trying to express a design that the frameworks either didn’t consider, don’t support, or don’t match the framework creator’s view of the world. That is fine, I don’t want for DHH to accept that there are times when convention over configuration is too cumbersome and the performance tradeoff isn’t worth the simplicity, or that some things are better expressed in a functional way instead of an OO way. For those projects, I just won’t use his framework.

There are totally justifiable situations in which Rails is the absolute best choice. I work in Rails every day at work and love it for that particular problem domain. I just have started realizing that I have been seeing the world as Rails shaped nails. There is no one language, framework, design pattern, or library that is the end-all-be-all method for solving problems. It takes good practices and pragmatic choices to choose the best tool or tools for the job. I was getting away from that, now I am coming back.


The Post Free Era and What it Means to Google

Posted: September 16th, 2009 | Author: irv | Filed under: Companies, Google, Media | Tags: , , , , , , | No Comments »

For the past few months I have actively quested against using anything that is free, asking difficult questions of the product, and often choosing a paid alternative when the answers were not forthright enough, and I have been noticing similar tension on twitter, and the other social media places that I haunt, as well as casual encounters with friends and family. Why have I have been trying to move off of the free ecosystem? What reason could there possible be? I mean who doesn’t want stuff for free? Well, that answer is complicated, to fully understand it, I think we have to look at some of the things that the “free” ecosystem has brought us.

The first, and most significant negative thing that the expectation of free software and services has brought to us is a huge proliferation of spyware and malware. There are a few reasons that the amount of spyware and malware increased dramatically around the time that software became available for free. It is largely a consequence of the law of unintended consequences. First, fast internet became widely available at costs that are reasonable. In fact, for a while ISPs played around with having a free price point, but that faded away quickly as capital intensive enterprises are incompatible with the gift economy.

The next is a series of unsustainable business models driven by advertising with ever declining value delivered to the sponsoring companies due to consumers being advertised out. This in turn has driven to many choosing not to consume content at all, or destroying once vibrant businesses such as newspapers, music, and movies. What is the answer to the decline, to increase the ads of course, to make up for a clear down trend with increasing the volume and driving down margins while lowering the quality of the product to keep the same profitability. Does this sound familiar, it should, its the same thing that happened in the housing market to continue an unsustainable business model. Instead of innovating out of the crises, the advertising companies are clinging stupidly to the old systems.

Once fast internet became widely available, the GNU / GPL driven software model with distributed version control systems became possible. Now people were able to collaborate on software, in countries where labor costs were cheaper, driving the price of development down in general for large projects. The GPL began with a powerful intent, to make software, and its source code available to facilitate learning and improve the quality of all software. It has largely achieved this end, however it got end users used to being able to download high quality software for free. At first, this was all gravy, but eventually these same people started to get tired of giving away their hard work, some of them graduated college and needed to make money, others just wanted to improve their standard of living, the reasons are too numerous to go into, but the result is that these “alternative” business models started to spring up around software that at its core was free. The service / support model was the first to appear, along with making closed source software available for free but with embedded malicious software. The idea behind this was simple but powerful, by installing covert software on millions of remote PCs you could send spam email advertising whatever you wanted, and no technology ( at the time ) could stop you.

This was the beginning of the advertising ecosystem. Yes it basically came from malware.

TANSTAAFL : There ain’t no such thing as a free lunch. Truthfully, nothing is free. Businesses saw what was happening in the malware / spam / zombie / email space and wanted to find ways that they could do this in a legitimate way, since millions of dollars were being made off of the spam networks. What the malware / spam networks were getting from users, in addition to their IP addresses, were profiles of their behavior online, the networks could generate information about what sites were trending etc, where people went when they were looking for a product, where they went after the first click. Crack cocaine for marketing executives. It is always surprising to me how many people do not understand what is happening when they use google, bing, yahoo, etc, and why they are free. These are hugely expensive enterprises, with huge costs that could almost never be made up by charging people to use them. I don’t know what Google would cost if they didn’t advertise, but I would imagine that it would cost thousands a year to use it in order for Google to be profitable in the same way.

Webmasters often don’t think about why Google would give away analytics when Omniture has built such a profitable business selling web analytics for years. The reason is simple, Google makes more money from adwords when they can trend users from the Google search page, through their path from site to site. By including Google’s tracking code, an authenticated user logged into Google’s services can be followed.

This has benefits to the user in Google’s case, since Google has so far shown that they can be trusted with the vast amounts of user behavior data that they have amassed, and they do frequently show ads that are highly relevant. So Google’s business is in gathering data points about your behavior, and using that data to present you with the ads that are most appropriate to you. Every application and service that Google builds is to this end.

Yahoo and Microsoft are desperately trying to copy this business model, as are many smaller vendors, and that is the problem. While Google can be trusted, I do not believe that the others can be, and frequently I am not 100% certain about Google. The problem is that Google is behaving as though it were the only company out there doing this, and they seem to be oblivious to the fact that people don’t want to see ads, even good ads. I keep hearing that poor targeting is the culprit, but I am not so sure that is true any more. There is a class of people that is rapidly growing who just don’t care what type of ad it is they are just tired of the cognitive noise. I would be included in that class.

With so many different ad networks trying to copy Google, the result is end-users inundated with ads, everywhere they go there are these behavioral ad networks trying to determine what ads to show you, with varying success and quality. They are all clamoring for data, trying to convince site owners to put their little tracking code into their stream. Unfortunately this hasn’t stopped at the web, iPhone apps, Blackberry and other mobile apps, even desktop apps are showing little ads in order to compensate the developer, whose time is extremely valuable, for their hard work.

The problem for a company like Google that is interested in doing the right thing, or at least trying to, is that the lesser companies are producing ad-fatigue in users, which has lead to adblock pro and other advertising blocking solutions as end-users try to reduce the noise around them. These companies, realizing that their ad driven dreams are beginning to fade have moved to making ads look like content in the old 30’s radio business model. The funny thing is that those old tactics led to the FCC getting involved and setting guidelines as to how advertising should be embedded into programs. It is a vicious cycle that is reproducing itself in all mediums.

The embedding tactics range from “independent” product blogs, to product shils on twitter, to television programs designed to specifically and only show you a car gratuitously. Again, not all of these are bad, I follow several businesses on twitter that do not annoy me, and actually behave more like a partner than someone trying to cheat me out of my money with a product that I don’t want, and can’t use. Some of these ad sponsored “apps” on the iPhone for example are so thin as to be a press the monkey with a batman logo. What is the point of that? It is just noise.

So what’s the problem? Everyone is getting paid.

The overriding problem is this… its too much sponsored content in general. Everyone seems oblivious to this and I’m not sure why. It could be the same thing that lead to the housing crash, everyone was making way too much money to look at the obvious. People are tired of being advertised to. Everyone is touting some kind of free future where everything is free and companies are always making money in “other” ways. Typically these “other” ways are not specified, but I can fill in what “other” is. They are increasingly nefarious and opaque ways of capturing your behavior and data, then using that information to influence your behavior, usually resulting in you buying stuff with you not being able to remember why. This is bad, and is not really a proper way to run a business. It can only end with massive data leaks and a public so unhappy that government legislation is required.

I don’t think this will happen. I believe that the public is smarter than this and that they will start to back away from free software due to being saturated with ads, and begin to embrace paid software from companies with clear agendas and business models. I think that the VC money will begin to follow suit, heading instead to companies with models that a 5 year old could understand, as opposed to models that only a PhD in macroeconomics can comprehend. We make a product ( content ) and then we charge more for it than what we paid to make it.

Another of the problems with the ad model is that where once it liberated artists to develop art without needing to think about how they were going to get paid for it, it is now doing the opposite. Companies are hiring artists to make movies, television, plays, books, video games, you name it just to push some product. Artists are now the slaves to the master that they were once masters over. I would argue that the newspapers have it right, that they just need to start charging for content. It is critical, however that they get their pricing right. I think that PayPal and micro-payments will be the Visa of the future, if Visa gets their act together and drops their rates, perhaps they could be the one. Perhaps newspapers’ circulation will drop, but they would be more profitable and healthy. One company has demonstrated that this is a sound business model, and they are standing astride the world right now as a colossus.

Apple is poised to do very well in this system. Not only have they always chosen to provide high quality products and charge top dollar for them, we see that the public is more than willing to pay for quality software and hardware. MobileMe may have had its issues, but Apple’s motive in making it is simple, they want to sell more iPhones and Macs, they make 50% profit or more on each one, there is no ulterior motive, they are not selling my data, there are no ads, period. They make money in a way that I can explain to my daughter in one sentence. They could put some ads in the iLife suite and give it away for free, but why? They have proven that people will pay not only for the Mac to run the software, but they will pay a reasonable amount for software on top of that.

Microsoft and Adobe are as guilty for creating the free / illicit software market as anyone, by charging ridiculous amounts for their software for what it does, people had to figure out alternative means to get their work done. This feature of software engineering is furthering the dependence on these opaque difficult to understand business models. If you make a solid product and charge a reasonable sum, even a high-reasonable sum, people will pay. Otherwise, they will pirate or find ways to cannibalize the standard method of doing business.

To sum up, the free era is over, Google’s business model is in danger, and Apple and content companies that create quality product and are willing to charge for it stand poised to make a comeback. Microsoft and others following Google are lemmings headed off the cliff. I think the advertising bubble is about to be popped.


The Case For Apple In Five Parts : A Rebuttal

Posted: August 12th, 2009 | Author: irv | Filed under: Apple, Companies, iPhone | Tags: , , , , , , | No Comments »

After reading Jason Calacanis’ “The Case Against Apple-in Five Parts” I had been thinking about a response.  I have found myself on the same side of his argument time and time again, more so over the past few years, but I don’t agree with him, and here’s why:

About 8 years ago, I switched from PC to Mac.  I bought a Bondi Blue iMac.  I wish I could say that I have never looked back, but that just wouldn’t be true.  There are some very great things about Windows, and the PC market in general.  I have, from time-to-time thought of switching back, and I have even tried a few times.  What happens is that it always looks better from the outside in.  When you actually start using that stuff and running into the problems and confusion, you realize why you chose Apple in the first place.  It is really like cheating on your significant other, and realizing that the grass is always greener, then coming back to find a challenging but still rewarding relationship.

Jason’s point #1: Destroying MP3 player innovation through anti-competitive practices

Jason Calacanis asserts that Apple is killing innovation in the MP3 player market because they don’t allow other devices to sync with iTunes, and they prevent the iPod / iPod Touch / iPhone from syncing with other music programs.  I would heartily disagree.  I think that Apple has made their store DRM-free over the past few months, yes after intense pressure from their customers, but they did it.  You can pay your fee of $0.30 per song to get out of iTunes jail if you wish, then use whatever music organization software you like.  You can even put the now liberated AAC files on your Zune if you want, or you can convert them to MP3 and use them as you would.

You can’t sync iTunes with other music players.  Apple does not want to encourage that behavior for several reasons.  First of all, it goes against their business model.  Apple does not sell software for profit, they sell hardware.  If they were to allow you to sync your cheap $20 MP3 player with iTunes, the development team and the IP that went into iTunes wound net them $0 back for their investment with each user that did that.  Apple only makes software to sell hardware.

Apple does nothing to stop someone from creating their own awesome music organization solution and portable music player.  No one else has done it. What all of the other options in the market are, is hodge-podge crap cheaply thrown together with no attention to detail.

Apple is dominant because everything else is the suck.  As soon as you try to use other music organization software with an MP3 player that installs crap drivers that crash their PC and music program, or they get only half a song, or only half of their play-lists copy over  onto their device and it reboots constantly, they realize their mistake and go back to iTunes and iPod.

Jason’s point #2: Monopolistic practices in telecommunications

Come on, Apple didn’t pick AT&T to be the only carrier that would get the iPhone, they approached the carriers around the world that they thought were the best.  Those carriers didn’t want to accept Apple’s terms, and passed on the iPhone.  Apple had no choice but to go with the carrier that gave them the best business upside.  Apple signed whatever contract had to be signed and moved on.  You can bet that neither Apple, or clearly, AT&T thought the iPhone was going to be this successful.  AT&T got caught with their pants down in the middle of a credit crunch.  Building out towers and pulling backhauls is horribly capital intensive, it isn’t something you can fund by scrounging around the couch cushions for change.  Jason should know this.

Does AT&T’s service suck? Yes. will it get better?  It had better.  Apple knows that there are bags of money waiting for it in Sprint, T-Mobile, and Verizon in the US and so does AT&T.  I am sure they don’t care who carries the iPhone as long as they support the experience well and they get money off of the hardware.  As soon as Apple is able to, you will see the iPhone on every carrier that delivers visual voicemail, agrees to the free-for-all AppStore, and will pay Apple its hardware subsidy.

Think about how it was before the iPhone, you had to listen through all of your voicemails just to get to the important one.  There were 9 stores you had to go to for apps, and could only install ones the carrier approved.  Verizon still doesn’t like Wi-Fi on its handsets for some inane reason, could you imagine an iPhone without Wi-Fi and the AppStore?  It would destroy the experience, so until Apple can deliver the experience on these other carriers they won’t.  Period.  Can you imagine that Steve Jobs is happy that the 3GS still doesn’t have MMS, tethering, decent  service, and the full 7.2 Mbps HSDPA downloads that the device supports? No, he can’t be, it is screwing up the experience.

Jason’s point  #3 : Draconian App Store policies that are, frankly, insulting

I can’t, and won’t try to defend the AppStore’s policies, they don’t make any sense, and it is currently crippling the platform.  But again, you have to remember several things.  Apple doesn’t sell software to make money, and they don’t care how much applications in the app store cost.  They only care that they are there.  If each and every application in the AppStore were free, and the AppStore were costing Apple millions of dollars a year, they still wouldn’t care.  They are making the money up on the hardware side.  There is little incentive for Apple to change the AppStore right now until the actual end users, not the developers start complaining.  As a consumer there isn’t much to complain about except for organization. There are plenty of games that are pretty awesome.  The market has shown that is what end users want.  That is not to say that there isn’t a market for productivity and business apps on the iPhone, some of my favorite apps are productivity apps, but customers have indicated that they don’t want to pay for them.

Look at their competition.  Pre, Android, and BlackBerry are no match really, all of those AppStores are no better than the iPhone AppStore, they just have fewer problems because there are so many fewer developers and software.

When I think about how I would solve the problems, I don’t know how I would do it.  Especially when constrained by Apple’s business model.  Apple needs to move phones and iPods.  That means very low prices for applications, and applications that appeal to the widest audience possible, hence the bizarre puritan regulations on the types of applications in the store.  They also have to adhere to the language of whatever their contract is with AT&T, that they signed 2 years ago when there was no AppStore, there weren’t thousands of developers, and billions of applications downloaded.

The agreement was likely myopic, but who could predict this type of success?  Again, does the AppStore submission policies, rating system, and application exposure suck?  Sure.  Will Apple fix it?  They had better, and they know it.   Things will drastically improve after they have had some time to think about it, which they have, and when they can re-negotiate the contract with AT&T, which they are about to, using Verizon as leverage.

One final point, while it is irritating to developers, there are around 20 million iPod Touch / iPhone customers out there.  That is one hell of a market, so while complaining remember that Apple is enabling you, after jumping through a few hoops, to directly address a market that you wouldn’t have had a prayer of addressing two-and-a-half years ago.

Jason’s point #4 : Being a horrible hypocrite by banning other browsers on the iPhone

I grudgingly have to defend Apple in this.  I agree that it would be better if they allowed other browsers on the iPhone.  The problem is with the T’s & C’s of the AppStore and their ban on other non Apple provided scripting languages.  Something like V8 is really powerful, if Apple allowed other scripting engines like that one, it would break their security model ( which I agree has already been broken by the jailbreaking community ).  Apple can’t cave on this, or they would have a hard time explaining why they don’t allow the Ruby VM, or the Python VM, or allow you to download one app from the AppStore, and have it change around on the user once they have downloaded it.  Imagine you download an application that has a G rating, and then it downloads X content.  With in-app purchase, the application could circumvent parental controls and allow kids to buy porn on their parents’ credit cards.

Apple doesn’t want this so they prevent any scripting engines, and unfortunately browsers are caught up in this net.  I can’t really think of a good method of preventing this other than mechanical turk, I think if someone can, there is a powerful business opportunity for them.

Jason’s point #5 : Blocking the Google Voice Application on the iPhone

AT&T may not control what applications Apple approves or disapproves for the iPhone, but it is hard to believe that Apple would care if someone created a google voice application for the iPhone.  While AT&T may not approve applications, there is almost assuredly language in the original distribution contract with them that prohibits any  applications that simulate voice calling functionality over AT&T’s 3G network.  These applications would run afoul of the guidelines.

As an example, there are many file hosting / ftp / uploading / mobile office programs on the AppStore.  When Apple launched its own MobileMe iDisk application, they didn’t force everyone to remove any application with uploading and downloading functionality.  They are allowing the market to decide which is the best application / service, which is the right thing to do, and feeds into Apple’s business model.  Whatever it takes to move units.  The rejections reek of AT&T either directly or indirectly.

Jason’s Questions:

1. Do you think Apple would be more, or less, successful if they adopted a more open strategy (i.e. allowing other MP3 players in iTunes)?

I think that if Apple were to allow other MP3 players in iTunes it would undermine their core strategy of using their software to sell Macs or now mobile computers.  In the short term, it would boost their sales of music, but in the long term it would eat away at their hardware business.

2. Do you think Apple should face serious antitrust action?

No, Apple has not behaved anti-competitively, or limited consumer choice in any material way.  This situation with AT&T may be violating some sort of law related to the breaking up of the Bell System, but there are plenty of choices for customers out there in computers, mobile devices and applications, they just all suck, which is not Apple’s fault.

3. Do you think Apple’s dexterity and competence forgive their bad behavior?

Look, at the end of the day, Apple is a business.  They need to protect their bottom line and their shareholders, not make a bunch of programmers and technorati feel good.  They need to build and sell good hardware.  Software is an important part of that, but to continue to provide value to their shareholders, in their estimation, they need to control the experience end-to-end.  If that were a problem, their board would let them know, otherwise they are building awesome products that deliver that the mainstream consumer wants, as long as they have the majority of the market with the customer freely choosing their “locked down” solution, they will make the rules.  So I don’t think Apple needs to ask forgiveness.

As a bonus, for Michael Arrington I gave up on the iPhone about 8 months ago and went with a G1 exclusively.  I wanted to love it, but after a while with the slowness, and having to remove applications just to get email and the browser working properly I gave up and went back to the iPhone.  Android is OK, it doesn’t integrate with anything and after a while users will find that those rough edges add up to “not the iPhone.”  I went back to my iPhone with the 3GS and I am very happy with it, happier than I was before switching.  I am still not happy with AT&T, but what can I do?

I don’t regret switching away, and switching back, it made me realize how truly revolutionary the iPhone is.  I am confident that Apple will fix these issues, because ultimately it jeopardizes their hardware business.  I don’t think they will do anything until they believe they can fully address the issue.

I still think that Windows Mobile, and Android will ultimately have more units sold worldwide, but I think that the iPhone will remain the most profitable.  I would always want the most profitable 5% of the market over the least profitable 95%, and I think if I had a startup my shareholders would agree.