For a couple of years I’ve been so busy running my company Noteflight that I’ve given up writing posts for my own site. This reflects the low priority that I assign to sharing my life online, but hopefully I’ll be able to get back to it sometime! I’m just one of those people who needs to write 1400 or 14,000 characters to feel OK about it; 140 doesn’t really do it for me.
At the corner of Magazine St. and Perry St., Cambridge, Mass.
Yes, you read that correctly. Let me explain.
Today, Apple released a beta of their iPhone OS version 4.0; in order to access the release and start developing their applications for it, iPhone/iPad developers were required to accept the following restriction:
This is a fascinating and wacky position. Much of the outrage over the above statement is coming from developers who would like to use tools such as Adobe Flash CS5’s iPhone packager, Unity and others to create applications — these tools produce intermediate translations from their own representation of an app into a form that is at some level compatible with Apple’s own standards. With this restriction, Apple appears to be attempting to outlaw the use of such tools, presumably to monopolize not only the ends but also the means of iPhone development. One can only speculate on the possible reasons: an Apple/Adobe vendetta-in-the-Valley, a mistaken belief that consistent developer tooling means a consistent user experience, a desire to control every aspect of the value chain.
Personally, I think the outrage should be over the metaphysical angle here, not the business angle. Apple is implicitly taking a position that apps are not “originally written” in the minds of developers, in the form of cognitive representations of problems and their solutions. They are taking a position that the brain is not a translation tool for mapping from these representations into C, Objective-C, or what have you. They are subscribing to the theory of a “ghost in the machine”, implying that at some point an app crosses some magical boundary from being an mental thing into a physical thing that is “written” in some definite programming language. They are maintaining this because, if they weren’t, every single iPhone app would violate their licensing agreement by virtue of the developer’s mind itself being a tool that produces Objective-C as an “intermediary result”. Apple may thus be the first company to bet the farm on Cartesian dualism.
If this seems like a really nerdy joke (which it could be), try a few thought experiments. What if Ben writes a Flash app, shows it to Amy, who codes it up in Objective-C, compiles it and submits it to Apple? Should it be rejected since it was not “originally written” in Objective-C? If you think Apple’s answer would be “no” — a good guess — then substitute Adobe’s iPhone Packager for Amy. Now should it be rejected according to the rules? What, at the end of the day, makes Amy different from a machine translation tool? (Personally, I’d rather hang out with Amy than with iPhone Packager, but that’s another story.)
You may be thinking that what makes Amy different is that she could at least in theory translate the idiom of the original application to the idiom of the iPhone, which would provide a better user experience. Maybe so — so let’s look at another example. What if Ben’s application is an adventure game, and he wishes to describe the behaviors of the game objects and rooms using a simple scripting language that is translated to C as part of the process of compiling his game. He’s not using Flash or Unity or anything like that. Coding game-behavior scripts in C is a pain in the butt, and Ben’s a better programmer than to waste his time on that. He’d rather create the ideal one-off translation tool for the job. Sorry, Ben — clause 3.3.1 says that your program must be “originally written” in C, not translated to it. Maybe you should hire Amy to translate your scripting language by hand, that might be acceptable (since Amy will be “writing”).
Doesn’t this start to seem like backward progress, rather than forward progress?
Programs aren’t “originally written” in any definite language, or in any definite location. Programs are encoded information that is contiguous and continuous with the information in our heads, and in the world. Programs are often generated by other programs and tools, to which the same difficulties in definition apply. My programs are originally written in the shower — at least according to my definition. We could engage in a long argument about whether these shower-programs are really “code” or not, but my main point is this: it seems silly for a company like Apple to take a definite position on exactly what “originally written” and “intermediary translation” mean. (They declined to define these terms in the agreement, of course.)
I leave you with a final quote from the license agreement:
“10.4 Press Releases and Other Publicity. You may not issue any press releases or make any other public statements regarding this Agreement, its terms and conditions, or the relationship of the parties without Apple’s express prior written approval, which may be withheld at Apple’s discretion.”
Oops, close call. Good thing I didn’t click “Accept”.
It’s been a brutally busy fall and winter, as I see from the embarrassingly long-gone date of my last post. What brings me here is another Flex speaking event being touted in these pages — and a good one. This time it’s my ex-Allurent-colleague Daniel Rinehart, a superb all-around developer who will be talking about the new features and capabilities in AIR 2.0. Yes, you could read the Adobe materials on this stuff (and why not?), but it’ll be so much more interesting and enlightening to hear Daniel’s take on what’s in there. Please come this Tuesday Jan. 12, at the Boston Flex User Group.
I was pleased to read on Friday about the discovery of water on the moon, but not for the lame-o, unimaginative reasons given by various scientists and reporters. Before we get to the point, let’s just mention a few of these reasons so you can read how dull they are.
Michael Wargo, a chief lunar scientist at NASA headquarters in Washington said, “Water and other compounds represent potential resources that could sustain future lunar exploration.” And an article by the New York Times stated, “Lunar ice, if bountiful, not only gives future settlers something to drink, but could also be broken apart into oxygen and hydrogen. Both are valuable as rocket fuel, and the oxygen would also give astronauts air to breathe.”
Give “future settlers” a drink? People… you are missing the point. That’s our water, and it belongs in terrestrial supermarkets. We should be shipping that Moon water straight back to Earth, putting it in expensive-looking theme-y bottles, and selling it at inflated prices at Whole Foods. The profits from this commerce can be plowed back into more space exploration, ultimately leading to the discovery of other water-bearing celestial bodies.
In fact, I already have a brand name picked out for this bottled water: Lunessence. And I don’t need a marketing expert to tell me how to sell it, I already have Fiji Water to serve as a tutorial. Here’s our ad copy:
We all make assumptions. For instance, we assume that bottled water is “better” than water straight out of the tap. But is it?
The reality is a bit more complicated. Some bottled waters come right out of municipal reservoirs before they are “purified.” And, even “spring” water is affected by the earth’s many pollutants as it bubbles to the surface. It’s better not to get your water from anywhere even near the freakin’ earth.
Then there’s Lunessence… uncontaminated and uncompromised. Preserved and protected by its source and location, Lunessence‘s aquifer is in a virgin ecosystem — well, not exactly an ecosystem, more like a sterile deep-space environment — at the edge of a lunar crater, hundreds of thousands of miles away from the nearest industrialized civilization. Winds that carry acid rain and pollutants all over Earth just aren’t a factor here.
So if you ever wondered what really pure water tastes like, just open a bottle of Lunessence. And remember this — we saved you a trip to the moon.
Got a Lunessence logo? Post a link to it here!
Regional Flex people: do not miss this talk!
Libby Freligh was the senior product manager for the Flex platform at the time of its introduction by Macromedia, and the Boston Flex User Group is lucky to have rounded up Libby as a speaker this coming Tuesday, October 13 at One Broadway, 5th floor in Kendall Square, Cambridge.
This won’t be a techie talk for a change: instead, this one’s all about the business landscape inhabited by Flex then and now. If you don’t know Libby, I can tell you this: she is a speaker with a lot of humor, intelligence and energy. Not only will you not be bored, but I expect you will be treated to some inside-type material about the origins of Flex that you’d simply never hear anywhere else. I think it’s fair to guess that you will walk away with a broadened perspective whether you are a technician, a business person or just plain curious.
Hope to see you there!
“Won’t anyone think of the children?”
Oh, snap. Apple may be our techno-culture poster child for great design and great execution, but they appear to have flubbed it badly while trying to keep the children sitting in front of its computers safe from whatever’s out there.
We recently were dealing with a support call concerning a number of Noteflight scores created in a particular school classroom. These are XML documents, and it turned out that they had been corrupted by the injection of web proxy HTTP headers in the middle of the document, rendering it unparseable. The corruption now appears to be the handiwork of Mac OS X 10.5’s Parental Controls option, which has been reported to have a buggy interaction with Firefox that can insert this garbage into the content of any HTTP POST. And indeed, all the cases we found occurred with Firefox (various versions) and Mac OS 10.5 with Parental Controls in effect. Safari reportedly has no problem.
The garbage typically takes the form Proxy-Connection: keep-alive\rCache-Content age=0 and appears a little under 1500 characters into the POST — probably not coincidentally this is approximately the length of a network packet. Parental Control’s web aspect is implemented as an HTTP proxy server, no doubt one with a bug in it.
What’s really amazing is that this bug has been around since the beginning of 2009 or so, and little has been said or done about it. But if you Google for the garbage, you’ll see that this garbage has made its way into every corner of the web.
Now, that’s what I call viral!
This is not an entry for the recent Noteflight composition contest — I’m flagrantly ineligible to enter. But sometimes, you just have to get something out of your system.
This piece is dedicated to the memory of George Russell.
It sounds a little like a synonym for the expression “Bronx Cheer”, but we’re being completely literal here. We are talking about a raspberry in the city: a regular raspberry, the kind that grows on a bush in clusters.
I was walking to the Noteflight office this morning, a walk which meanders through Cambridge’s various ideas of upscale, downscale and industrial-scale before terminating in a neighborhood one could describe as biotech chic. It’s ironic that what we call the “life sciences” seem to require, for their successful pursuit, a sterile environment purged of all life. This notion seems to have leaked outward from their labs and glove boxes into the architecture, which is designed to convey that same sterility. I much prefer the industrial stretch of my walk, right at the boundary of bio-land and the residential neighborhood preceding it. In this area, a disused auto repair shop looks exactly like what it is, lying just outside the zone in which it would have been cleaned up to reflect its rows of newly minted equipment inside.
On that walk today, I met an urban raspberry. Like the auto repair shop, it looked exactly like what it was. I ate it, looking at the cracked and broken windows of the buildings around me. A perfect moment unfolded on my tongue, fading half a block later.