Chaplin’s Coming Back and He’ll Need A Parking Space

August 2, 2010 on 11:03 am | In Uncategorized | No Comments

ChaplinSmall

At the corner of Magazine St. and Perry St., Cambridge, Mass.

No Comments

Apple Dev Program takes stand on nature of consciousness

April 8, 2010 on 8:49 pm | In Flex, Programming | 62 Comments

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:

“3.3.1 … Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).”

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”.

62 Comments

Daniel Rinehart at Boston Flex User Group 1/12

January 7, 2010 on 8:38 am | In Flex, Programming | No Comments

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.

No Comments

Space Exploration Funding Crisis Solved

November 15, 2009 on 7:21 pm | In Miscellaneous, Uncategorized | 3 Comments

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!

3 Comments

Libby Freligh @ Boston Flex UG 10/13: Not to be missed

October 8, 2009 on 8:15 pm | In Flex, Programming | No Comments

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!

No Comments

Mac OS X Parental Controls Stomp the Web

September 17, 2009 on 1:34 pm | In Programming | 1 Comment

“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!

1 Comment

You Are My Starshine

September 12, 2009 on 3:01 pm | In Music | No Comments

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.

No Comments

Urban Raspberry

September 10, 2009 on 12:42 am | In Miscellaneous, Travel | No Comments

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.

Raspberry bush on Emily St., Cambridge

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.

No Comments

Remembering George Russell

July 30, 2009 on 2:13 am | In Music | 2 Comments

I just heard that the jazz composer George Russell died 2 days ago. George was a very significant person in my musical life, and I’m sorry that he’s not with us any more.

I first heard his music in 1974 or so, when I was 14 or 15 years old and living in London. I would occasionally hang out with my father’s friend and colleague Erik Edvardsen, an electronic engineer. Erik lived in Brixton (which meant I got to go on the then-new Victoria Line to visit him, kind of a treat) and he had an adventurous taste in music. Over time, he lent me a whole bunch of albums which I took home and listened to. The ones I liked a lot, I’d record on cassette. I still have a lot of those cassettes, although I don’t have a way to play them now.

Some of the music he lent me I found inaccessible at first, and George Russell’s music fell into this category. Something about it held my attention though, and kind of riveted me to my spot and forced me to listen. I think Erik had a few of the early 60s albums in there — Stratusphunk, Sextet at the Five Spot. Anyway, I kept listening, and I began to connect with it, to the point where I didn’t really want to hear anything else for a while. Then I started getting hold of his other recordings. George’s writing became then, and still is, some of my favorite music of all time. It has a startling freshness, a willingness to explore, an openness to tonal possibilities, that to me has rarely been equaled in jazz or in music of any genre. And for all of its modernity, George’s music is never dry or academic: it’s emotional, hard-swinging music that has a lot of feeling. Another thing: there is nothing extra or gratuitous in it. Everything that is there is there for a reason, and you can directly experience those reasons by listening.

A couple of years later, as I continued studying and playing music while attending high school in Lexington, Mass., I learned about his “Lydian Chromatic Concept of Tonal Organization” — a system of thinking about harmonic and tonal relationships that changed the thinking of a lot of well-known jazz musicians from Miles to Coltrane to… well, a whole lot of people. I knew that George Russell lived in Cambridge and somehow screwed up my nerve to look him up in the phone book and call him up. I remember that it was kind of a weird stilted conversation, because I didn’t really know what I wanted to say to my idol; I guess this makes me kind of a teenage George Russell stalker. I think I stammered out something about wanting to find his book on the Lydian Concept, and he got me off the phone quickly and gracefully by telling me I could find his book at the Busy Bee bookstore (if I remember the name right), which was on Hemenway St. near Berklee College of Music. I drove into Boston and bought it immediately.

The book was a revelation to me. It instantly unified and clarified of a whole current of confused and half-formed thoughts that had been running through my brain about scales, chords, and above all, tonality: the concept of music “being in a key”. A whole lot of junk dropped away and what seemed like a Rube Goldberg apparatus of chord symbols and modes turned into a much simpler way of looking at things.

There’s a lot that could be and has been said about George’s theory, and I’ll try to use my own language to hint at what he did that was so important to me and to others. In essence, George had a way of considering sets of tones (like notes in a melody, in a chord, or in a scale) as intervallic structures. He had rules for what one might call “orienting” these structures: determining what tones in a structure act as a harmonic foundation for the others, and how those other tones relate to the foundation. He also laid out some rules for how tonal structures related to each other in terms of a kind of “distance”. These rules had a way of reducing myriad musical ideas and variations into a much smaller number of essential forms that could be thought about much more easily, and could then be used to generate even more ideas. They corresponded in an obvious way to inner musical perceptions familiar to jazz improvisors. George’s concepts anticipated later work in tonal perception by theorists inside the academic community like Fred Lerdahl and Ray Jackendorff: work that has yet to catch up with George’s theories, if measured by its practical value to musicians. I think the fact that academics did not openly acknowledge or build on George’s work left a bad taste in his mouth, although it was hard to be sure.

Fast forward two more years: In 1979, I left Wesleyan after a dismal year of liberal arts education for the New England Conservatory of Music in Boston, to study piano and composition and make a musical life for myself. The fact that George taught there was no small part of this decision. I knew I’d be able to take his class (which I did) and that I’d have a chance to study composition privately with him (which I also did).

I found out some important things by studying music with George. I did learn a bunch more about his system of thinking, but perhaps the most surprising and hardest-to-accept lesson was that the things I loved the most about his music did not come from his theory, were not acknowledged by him in any explicit way, and could not be learned from studying with him. There is a kind of essential pride in his music, a matter-of-fact willingness to make a musical statement boldly, asserting itself according to its own musical logic, in fact, defining the very terms of that logic. This pride, this courage, the simultaneous respect for and departure from convention — they can be married with the materials of his theory, but they are not by demanded by that theory (and do not require its adoption). These qualities are there in his work and they were there in his life. George was fond of saying, “You play off the top of your knowledge.” In other words, knowledge determines your starting point for creation, but where you finally end up is the result of playing — and I mean, literally, engaging in unconscious, joyous play — with that knowledge.

Thank you, George Russell, for everything you did. Your thinking and your artistry had a huge impact on me. I will miss you.

Here is the melodic statement from George’s Stratusphunk, one of the first pieces of his that I remember hearing. It’s a simple and economical theme, moving around only a little bit. Nevertheless, in its economy, it generates an entire world of surprising implications when heard against the surrounding blues harmony.

2 Comments

Visiting with The Echo Nest

June 13, 2009 on 11:45 am | In Music, Programming | 1 Comment

Yesterday I paid a head-spinning visit to The Echo Nest, a small software company in nearby Somerville, at the invitation of their CTO Brian Whitman. You might not have heard of The Echo Nest, but their products power an increasing number of music recommendation engines in sites around the world.

You heard it from me: these folks are writing some of the most badass music-related code on the planet.

The Echo Nest are experts in “machine listening”: they have developed a set of algorithms that crunch through raw audio media and extract a set of distinctive musical features. These features roughly describe what is happening in the music at a hierarchy of time durations (beat, measure, section), and from the features they can compute a notion of similarity between different pieces of music. This similarity metric drives the recommendation aspect of their business.

Naturally enough Noteflight and The Echo Nest have some mutual interests, hence our visit. Audio media and music notation are both descriptions of music, so our companies both think a lot about how those descriptions are related. It’s a tough problem to go from either description to the other, and no algorithm can perform either task anywhere near as well as a human musician.

Anyway, while I was over there they showed off a very cool music hacking tool called Remix which you can grab from Google Code. It’s basically a Python library that takes an audio file, analyzes it using Echo Nest wizardry, and then returns a data structure describing the audio down to the beat level. You can then mess with these beat-length samples based on their descriptive data, and reassemble them in bizarre and unexpectedly musical ways.

As an example, they played me a version of “Here Comes The Sun”, in a strangely filtered version in which only beats in the same key as the opening intro had been retained. The result was a odd, drone-like modification of the song in which the intro itself was intact, but then unfolded into a sequence of snippets from the song that were completely familiar but from which all harmonic motion had been precisely excised.

I then heard a Hall and Oates song that had had beats 2 and 4 surgically removed from every measure. The result? A weird double-time version in which the song form progressed at twice the normal speed, the lyrics were mostly unintelligible but with many recognizable syllables, and the entire song’s length was chopped in half. The latter aspect could be viewed as an improvement on the original.

As a code-on-the-spot challenge, I asked if they could put together a version that sorted all the beats by amplitude, putting the softest ones first and the loudest ones last. 5 minutes of Python hacking later, we were listening to a bizarre, long crescendo of segments from the song, seamlessly reassembled into a whole. The beginning consisted mostly of quieter instrumental chords or the unaccented syllables of words, while the end was a kind of synopsis of all the climactic moments in the song with kick drum or vocal accents. The whole song turned into a single musical gesture, reassembled from its fragments into something completely different but still wholly familiar sounding.

1 Comment

Next Page »

Entries and comments feeds. Valid XHTML and CSS.
All content copyright (c) 2006-2007 Joseph Berkovitz. All Rights Reserved.