Big Brother Apple


Do you remember the [[http://youtube.com/watch?v=OYecfV3ubP8|1984 ad from Apple]]? I’ve embedded it at the bottom if you haven’t. Anyways, the point is that I was trying to download the “free” Apple iPhone SDK today and apparently they require me to sign up first. I thought alright, that doesn’t seem too unreasonable. Now I have the sign up form in front of me, and I just don’t understand why the following fields are marked as “required”:

* company: what if I’m NOT in a company? what if I’m NOT using the SDK for work related purposes? what if I just don’t want to tell you where I work? Of course I realize I can always make this up, but why does Apple feel the need to pry on my professional/personal life so badly?
* address: are you going to send me a check in the mail? As long as I’m not involved in a monetary transaction with Apple, they shouldn’t be need my address. If they want to geo-localize interest in their SDK, I’m sure they are already doing that by logging my IP address. Again, I can make up an address but that’s not the point (besides, I’m sure somewhere in the fine print they will have me click some check box that is a proof of my consent that the information I have submitted is accurate)
* phone number: tele marketing?


Well guess what, the iPhone SDK is only available for Mac. So much for cross platform development and openness and what not.

httpv://youtube.com/watch?v=OYecfV3ubP8

Experiences with Google App Engine


I’ve been playing around with [[http://appengine.google.com|Google AppEngine]] for the past two weeks, and the experience has been mixed so far. First, the good:

* really easy to build something simple and get started.
* no need to worry about scaling, backup, replication etc. I haven’t verified this obviously, but at least thats the claim.
* the integration with Google accounts is nice.
* good documentation, lots of sample code available.
* dev server really helps with most of the development.
* the sort of restrictive resource usage limits (see below) forced us to think carefully about our code and heavily optimize certain operations to make them work on GAE.

{{ http://code.google.com/appengine/images/appengine_lowres.jpg}}

And now, the bad:
* too many limits: 1 million is their favorite number. No files over 1MB, no request should take more than 1 million CPU cycles (whatever that means) and who knows what other limits they impose internally. While developing, this was the biggest barrier for us. Things would randomly fail, and then our application would be disabled for several hours.
* The dev server doesn’t replicate the constraints in production. So everything would run fine and dandy locally, and the minute we upload, it would fail. Since we can only debug in production, and our application exceeded the quota every time we ran it, debugging was extremely slow and painful.
* local data store is excruciatingly slow. But this is not that critical, since it is only for testing anyways.
* even the remote data store is very flaky and slow at times. Any query involving more than a few hundred elements exceeds the quota.
* the bulk uploader is very useful, but again it is really really slow. If you want to upload anything in “bulk”, you’ll have a hard time. The parameters have to be chosen carefully as well. Even for very simple data models involving 3-5 fields (mostly strings), we had to reduce the batch size to 2-4 to make it work. And despite that we got a few HTTP 500 errors while uploading.

But its been fun so far. Hopefully most of these issues will get ironed out moving forward. As for what we are building? That will have to wait for another post ;-)

Inspiration or Imitation?


Compare these two sites:

[[http://alistapart.com|{{http://floatingsun.net/wordpress/wp-content/uploads/2008/07/ala-300x240.png}}]]

[[http://www.cra.org/ccc|{{http://floatingsun.net/wordpress/wp-content/uploads/2008/07/ccc-300x240.png}}]]

I’m assuming that appropriate permission were taken and attributions were given, otherwise this is just a blatant rip-off.

Shrinking carrots


I got a promotional offer in my mail today from American Express. The highlight? **An extra 1% cash back**!! Clearly an offer I couldn’t resist. I rushed to the sign up page, where I was greeted by the following:

{{http://floatingsun.net/wordpress/wp-content/uploads/2008/07/screenshot7.png}}

Pay close attention to the text below the image. First, they make sure I understand that I will continue to earn my usual cash back on //virtually// every dollar I spend. What more, //virtually// for every dollar that I spend (that is, //after// I have already spent $500 that month), I will get a bonus rebate of an extra 1% cash back.

This is //exactly// what we need to fix this country’s financial problems. Go American Express, America is counting on you! Thank you, thank you soooooooo much for this generous offer. You really made my day.