Archive for April, 2010
I’ll probably get a ton of hate in response to this post, but as a member of the Adobe developer community I was a little embarrassed by something I saw today. A new group just popped up on Facebook called I’m With Adobe, described as follows.
The recent war between Adobe and Apple reached a breaking point on April 8, 2010, when Steve Jobs not only recommitted to never allowing Flash to run on the iPhone or iPad, but even banning Adobe’s new Flash-to-iPhone C compiler which was to go on sale Saturday, April 10.
There is no longer any debate as to who the “bad guy” is in this story — Apple has proven themselves to be anti-competition, anti-developer, and anti-consumer.
I stand with Adobe.
It’s filled with the kind of material that you typically find on Mac vs. PC debates. There are calls for Adobe banning their software from Apple’s OS, people who joined just to shit on Flash, calls for boycotting products from both companies.
Seriously, guys? War? Apple’s the “bad guy” and Adobe’s the “good guy”? That’s an awful lot of drama. Surely you don’t think that software companies exist to manipulate the forces of good and evil?
I sympathize with the angst at platform/vendor lock-in. I based my career on expertise with Java, a technology that was marketed and designed specifically to avoid it, and I did so based as much on principle as with the fact that I really liked the language/platform. But I’m not getting all emotional about Apple’s decision.
Do I think that Apple locking out others is a dick move? From both a business and community standpoint, it’s a giant middle finger. But it’s no worse than Microsoft making .NET Windows-only, or Apple making OS X exclusive to their hardware, or any of the other decisions that companies make to maintain competitive advantages for their core money-makers. These companies exist to make money, and they’ll do that by whatever means necessary under a thinly-veiled cloak of consumer and developer PR. That’s not evil – that’s smart business.
Now, I know a lot of developers make their living on specific development platforms, and over time they sometimes get sucked in to the marketing hype at developer conferences and start to think that the companies producing these platforms love them and want what’s best for them. And indeed, all the community advocates I’ve met from all of the companies producing these platforms have seemed like genuine stand-up guys that wanted me to be successful with their tools, and the members of these communities are awesome and talented people, many of whom I am privileged to call my friends.
But let’s not kid ourselves. I don’t think for one second that any profit-driven, shareholder-beholden company would ever put my interests or that of the developer community at large ahead of their ability to succeed in the marketplace. That goes for both Adobe and Apple. Now I don’t know why Apple thinks that shutting out other development environments is a good idea, but they’ve obviously thought about it and decided that this is the way to protect their golden egg. In contrast, I do know that developer community programs exist specifically to get momentum behind proprietary applications so that software ends up on target platforms, giving consumers reasons to use those platforms and thus allowing companies to penetrate markets and make money. At the end of the day, developers are pawns in a very large game of chess played by every platform vendor out there, and those of you who haven’t come to realize/accept this yet should pull back the curtain and take a close look at the wizards you serve. Let’s not forget, however, that most of us make very comfortable livings in jobs we love as a result of this relationship; for me, it’s a fair trade.
So, why the emotional outburst from the non-iDevice developer community? Simply put, because Apple is telling them that if they want to put apps on Apple’s platform, they have to learn to use the native development tools or go away. Is that really so bad? Apple’s pro-quality dev tools are all free, and they have loads of great resources for learning their platform online. You could easily argue that the barrier for entry to iDevice/OS X development is either lower or on par with that for Adobe technologies. As for the App Store, you have to decide as a developer if you want to roll the dice at getting your app on their platform; it’s Apple’s house, and they make the rules. If you don’t like it, develop for another platform. I haven’t seen it in person myself, but people I respect tell me that Android is pretty awesome, too.
As a Flex developer myself, I thought that the Flash cross-compiler was one of the coolest things Adobe released at MAX last year, but it was clearly a move of desperation by a company that was being deliberately shut out. Of course I’d prefer if iDevices ran my Flex apps, but it’s Apple’s prerogative to do whatever they want. And I’m sorry, but I can’t take seriously the opinion that Adobe would behave any differently from Apple if the tables were turned.
Apple threw away the Java-Cocoa bridge in 10.5, and as a Java developer I was sad about that too – but it didn’t stop me from enjoying the other benefits of their platform. Getting massively upset about Apple’s latest decision regarding Flash apps on the iPhone isn’t going to change anything any more than getting upset about the fact that I can’t use the .NET framework without running Windows and learning C# is going to make Microsoft port the platform to OS X. Other unproductive things I’m certainly not going to do are engage in incendiary rhetoric, web sites attempting to hurt Apple’s business, or a show of solidarity on a Facebook group.
What this really comes down to is sour grapes, plain and simple. As Flash developers, we all thought that we might have a shot at getting our Flash and Flex apps on to iDevices with little to no effort, and now we’re finding out that we really have to learn Obj-C and Cocoa after all. I guess I don’t see why that’s the end of the world.
Back in 2005 I made a prediction about Apple’s plans with the iMac/iTV, which was completely wrong. Today, I plan on building on this solid track record by offering my thoughts for what’s next.
Apple’s done a pretty impressive job of being the first successful entrant in to the mobile computing market. If you ask me, their lead at this time is so far ahead that it’s almost not worth anybody else trying, because the rest of them have already missed the endgame. Allow me to explain.
Looking back, we now know that that the iPod was the Trojan horse that got us to buy iPhones and Macs. The iPhone may end up being the Trojan horse that gets us to buy iPads. So, what nefarious plan is tucked inside the shiny exterior of the iPad?
None of other than the death of cable TV.
For years, people have criticized Apple for making products that are too expensive. But guess what? They’ve still sold the crap out of them using a simple formula. First, they price their products between the boundaries of more than you want to spend and less than you refuse to. Then, their sexy product implementations wear down your resistance and seal the deal. Finally, their top-of-the-line user experience draws you back for the next product release, and the cycle repeats itself.
Now clearly, if you can’t afford their products, no amount of slickness will transcend that physical barrier. However, for Apple, this is still a plus. I’ll explain why in a second, after I talk about how much cable TV sucks.
I Hate Cable
Cable is awful. It’s expensive. I get 7,000 channels. I only watch 10 of them. I follow maybe 5 or 10 TV shows. I have to watch the programs on the cable company’s schedule, or DVR them and endlessly fast-forward through ads. Many of these ads hold no interest for me; they suck (”TYLENOL IS BETTER!”; “NO, ADVIL IS BETTER!”), and they aren’t targeted at me in any way.
What would I like instead? A subscription-based TV model, where I pay, oh, I don’t know – $0.49 to $0.99 per episode? Or maybe even something like the $8/month I pay NetFlix to get all my content on-demand in streamed form. In doing so, I could save myself about $80 a month in cable subscriptions and get out of watching crappy ads. Unfortunately, this is exactly why I’ll never be able to just buy all of my shows. The cost of creating quality television and film content is so high that the only way to offset the production costs is the subsidies from advertising revenues. This is why NetFlix’s streaming service mostly streams shows and movies from the last decade.
So, there’s this new device now called the iPad. And it’s just big enough for me to entertain myself using nothing else besides a pair of headphones and my fingers. I can get all my music, all my movies, my NetFlix, some games, Internet browsing, and apps related to things I’m interested in. And I can get all of this whenever I want, wherever I want (once the 3G version comes out). And all I have to do is pay AT&T $30/month for the wireless service.
And what’s this? Apple has released a platform called iAd. This allows app developers and content providers to embed advertising in their content. Not only are these ads basically mini apps, but my device knows exactly who I am and can tell the ad server all about it. I might decide in the future that I’m willing to trade personal info about my interests in exchange for free content, and put up with a little advertising in return. At least it would be targeted.
And you know what else? The advertisers know I can’t be a complete scumbag, because if I was, I wouldn’t have been able to afford an Apple product in the first place. Being an Apple product owner by itself likely says a few things about me, namely: I’ve got some loose cash, I like shiny things, and if you can give me a high-quality experience I’ll take a look at your product. That might be worth more to the advertiser than a random cable TV ad which can only be hit-or-miss at best.
I think this is it. Apple may have finally figured out how to provide advertisers a viable alternative to the dying medium of wall-mount TVs, cable company nonsense, and banner-based Internet advertising in one fell swoop. It seems likely to me now that Apple didn’t introduce multitasking until OS 4 because iAd wasn’t ready yet. Multitasking became a necessity so that you wouldn’t be afraid to lose your place in your free app/movie/TV show when you clicked the ad that popped up.
Now of course, Apple is not big enough to offer sufficient advertising eyeballs to replace the cable TV industry by themselves. But if Apple’s model is successful then others will follow suit. And if nothing else, there might be enough eyeballs in the iDevice platform to make it attractive to advertisers, and if that’s the case then it becomes worth the network’s while to give their content away for free in exchange for a little ad space.
The real goldmine that was touched on during Apple’s demo was when Steve showed how a fan could buy a Toy Story 3 game right in the iAd for the movie. Imagine if, as you are watching TV, an ad pops up to let you seamlessly pause the show and buy a pair of sneakers one of the characters is wearing. Or order a copy of a game that you see them playing in the show. That’s real bacon. I don’t even want to guess how much more money is going to be wasted on items purchased from QVC once the online purchasing experience is integrated into the programming.
I surely hope this is the case; I’ll be happy to kiss cable goodbye forever. Yay for free/cheap, on-demand, ad-driven mobile content!
The iPad uses ePub format, but many eBooks come in non-ePub format. Here’s an article I found on various ePub converters (many of them free).
An interesting read provided to me by my friend and co-worker Chris Martin. Obvious parallels to agile methodology abound.
And you all thought there was no reason for that seemingly stupid noise your Mac makes when it starts up.
I came across this a while back while looking for hints on better UI/UX. Mike Rohde sketched his notes to a variety of talks at SXSW 2008, and the results are truly remarkable. You get loads of info from the sketches, and they are quite a treat to look at.
Many thanks to Mike for sharing his talents and making these sketchnotes available to all.
I recently had some issues with VNCing in to my Mac at home over an SSH tunnel, and couldn’t figure out what was wrong with it. I could get an SSH shell no problem, and even mount a directory share over AFP, but when firing up VNC over the tunnel I just got a black screen. I was trying to VNC in since I couldn’t get my home iTunes library share through to my work computer over SSH, which usually means that a new version of iTunes has installed itself and the stupid license agreement is waiting to be approved.
So, I did a little Googling and found that there is a utility on OS X called screenCapture, found in /usr/sbin/screencapture. From the man page:
To capture screen content while logged in via ssh, you must launch screencapture in the same mach bootstrap hierarchy as loginwindow: PID=pid of loginwindow sudo launchctl bsexec $PID screencapture [options]
So, at the time my loginwindow process had a PID of 35, so I used the following.
sudo launchctl bsexec 35 screencapture /Users/porgesm/cap.png
This wrote a screen capture to the file cap.png in my home directory. I then used Quick Look in Finder to view the file (since I had mounted my home directory over AFP), and that let me see that my computer did indeed have an iTunes license agreement up. Working from memory, I sent a few key commands over my VNC connection, and ran the screencapture command to see what I was doing. I was able to remotely accept the iTunes license agreement and get iTunes sharing working again.
As it turned out, there was something about Finder’s VNC client on my laptop that was screwy. After changing the image quality for screen sharing several times, the picture for VNC returned and I was back in business. However, I thought the screen capturing technique was useful, so I’m blogging about it here.
Most Popular Yelling
- Scrolling Large Data Sets in Flex Charts (41)
- Configuring Tomcat SSL Client/Server Authentication (28)
- Fixing "Bluetooth audio failed" Error Message on Mac OS X with Sony DR-BT50 Headphones (16)
- How To Become A Software Engineer/Programmer (15)
- Using Axis's wsdl2java in a Maven Build (13)
- Speak and Spell Samples (13)
- An Objective-C Tutorial for Enterprise Java Programmers (12)
- On A Personal Note (10)
- Abandoning ColdFusion? (9)
- Adobe Says: "Thousands of Developers are using CF 8" (9)
Stuff I Like
- October 2011
- August 2011
- April 2011
- March 2011
- January 2011
- December 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- January 2007
- December 2006
- August 2006
- July 2006
- June 2006
- April 2006
- February 2006
- December 2005
- November 2005
- October 2005
- August 2005
- July 2005
- June 2005