What has Garcia tried?

Here are my current thoughts on the open letter from Juan Luis Garcia to Spike Lee.

Garcia admits it was his blunder to do spec work in the first place, which freelancers are constantly advised not to do, but that part is irrelevant either way. If Garcia is real and his story is real, he deserves satisfaction from the agency for using work which he did not sell to them, and then harassing him for complaining.

On the other hand, I don't see what he has to gain by ostensibly appealing to Spike Lee's sympathies as a fellow artist, but really, it seems to me, hoping public sentiment will guilt Spike into doing… what? Why would Spike inject himself into a legal matter between Garcia and the agency?

Let me digress for a moment. I'm a computer programmer. I'm on a number of mailing lists where people ask questions about programming and other people answer them, purely voluntarily. On these lists, there is such a thing as a good question and a bad question. A good question describes the problem and what efforts the person made to solve it. A question that boils down to "Do my homework for me" is likely to be answered with irritation and the counter-question "What have you tried?"

What has Garcia tried? It seems he tried everything except legal recourse or even the threat thereof. If he has a case that will hold up in court, and the way he tells it, he should have a pretty darn good one, then an open letter to Spike Lee is the least efficient way to get satisfaction. Many worthy causes are promoted online; the Internet is hugely important that way. This is not one of them.

On Twitter, Spike Lee's response was not as gracious or neutral in tone as many would have liked:

I Never Heard Of This Guy Juan Luis Garcia,If He Has A Beef It's Not With Me.I Did Not Hire Him,Do Not Know Him.Cheap Trick Writing To Me.YO

Spike's gotten a lot of negative responses to this, and I know he was already far from universally liked even before this episode. But whether you like Spike or not, Garcia's beef isn't with him, it's with the agency. And writing the open letter to Spike is a trick tactic; by Garcia's own admission, he decided to skip whatever advice his attorney gave him and try an end run. Yet I see tweets from people concluding that Spike Lee deserves to have his own work stolen because he won't intervene in this case.

I'll be interested to hear more solid information if it ever becomes available. Not edge-of-my-seat interested, but interested. And I'm leaning toward seeing Oldboy regardless.

Always great when young people create

When I was a kid, I'm going to guess about 9 years old, I learned to play the soprano recorder. One of the songs we learned was for two recorders, so I recorded one part on an audiocassette (remember those?) and was able to accompany myself. The whole thing was 16 bars, simple quarter- and eighth-notes. I thought I was badass, though in retrospect probably driving family and neighbors nuts.

I know Jacob Collier is ten years older than I was, but still, what kids are doing nowadays (and, in truth, what some very talented kids were doing in my day) is amazing.

"Because" has not become a preposition

Stan Carey writes on his blog that "'Because' has become a preposition". Here's an example he gives:

No work tomorrow because holidays!

The reason for calling this a "prepositional because" seems to be the assumption that this is short for

No work tomorrow because [of] holidays!

The idea seems to be that the elided preposition "of" has been absorbed into the "because", which is now a new kind of preposition. But that's not what I think the sentence is short for. I think it is short for

No work tomorrow because holidays [are here]!

In other words, of the two conventional ways "because" can be used, I submit that it is being followed by a finite clause ("holidays are here") and not a prepositional phrase ("of holidays"), and it is the finite clause that has been shortened to just "holidays".

This is not a new thing. We do it all the time. Carey says he hesitates to call this ellipsis, but that is exactly what it is. It turns out[*] there is something called answer ellipsis where we answer questions with short fragments rather than complete sentences. Here's an example from Wikipedia, slightly modified:

Q: Why will they resist our help? A: Pride.

"Pride" isn't a complete sentence — it's just a noun — yet it counts as an elliptically grammatical answer to the question. The listener understands it to mean "They will resist our help because they have pride." Likewise:

Q: Why is there no work tomorrow? A: Holidays!

So when we say

No work tomorrow because holidays!

the "because" is still a subordinating conjunction, but we are allowing it to be followed by a third thing — not just

(1) a finite clause

or

(2) a prepositional phrase

but also

(3) an answer ellipsis

This theory fits the facts better than the "prepositional because" theory, because as Carey points out, the "because" doesn't have to be followed by a noun. He quotes examples from Twitter where it is followed by a verb:

Bye going to study for English because didn't finish this morning because fell asleep

Hot cocoa because need.

And examples where "because" is followed by an adjective:

Going to bed way early because exhausted:/

{Falls on her bed and cuddles pillows because tired}

A preposition is never followed by a verb or an adjective, so it doesn't make sense to call these examples of "prepositional because". On the other hand, they do fit the answer ellipsis model:

  • Q: Why didn't you finish studying English? A: Fell asleep!
  • Q: Why are you getting hot chocolate? A: Need! (As in "I need it!")
  • Q: Why are you going to bed early? A: Exhausted!
  • Q: Why did you fall on your bed? A: Tired!

A number of commenters on Carey's blog post agree with me that "because" is still a conjunction, but I haven't seen anyone else call the part after "because" an answer ellipsis.


[*] "It turns out" is shorthand for "I didn't know this until I looked it up today."

Immediate reactions to "Gravity"

I saw the movie "Gravity", by myself, a couple of hours ago. Coming out of the theater I had a hard time describing the state of mind it left me in. Here, a couple of hours later, is an attempt to say something about it.

This is one case where I feel it's a shame that imperfections in the physics detracted from the effect of the movie for the people who are sensitive to such things, although I loved Neil de Grasse Tyson's tweet: "The film #Gravity should be renamed 'Angular Momentum'". To be honest, I didn't notice the science flaws; I'll have to look up what they were when I get a chance. [Update: I just thought of something obvious; I did notice it at the time as well. Doesn't bother me; I think the movie earned it.]

While the struggle to survive was a powerful part of it, I didn't so much take away an inspirational message as a bunch of things I have yet to sort out. There was a perspective on humanity, which astronauts often speak of feeling when they see Earth from space. There was a sense of solitude that goes beyond loneliness, and the way that can be something people seek out but also extremely painful. I felt that the physical properties of space — the literally astronomical distances, the weightlessness, the physics between tethered people — somehow crystallized the emotions that were being invoked, in particular the feelings of loss.

Looking back at the storytelling, I'm seeing how important the first few minutes were. The action in those first minutes may have seemed routine, "procedural", but it was quietly accomplishing a lot more than character exposition. Those first few minutes gave us time to internalize the "physics" of the situation, maybe not 100% in the rigorous-science sense, but in the "game physics" sense. None of the emotions in the rest of the movie would work until we felt we were living in space too.

I think the audience's sense of immersion is an integral part of the movie, which is why I believe "Gravity" really has to be seen in a theater. It's the same reason I think Jurassic Park needs to be seen in the theater. That old CGI may seem like Saturday morning cartoons now, but a lot of us gasped when we saw our first "real" dinosaur.

Speaking of special effects, I wondered whether some of the scenes were shot in a zero-g plane.

These are my immediate thoughts, in the wee hours of the morning. I really hope I don't wake up tomorrow and decide I over-reacted, because right now I definitely feel like I am reacting.

Mining for API trivia

On Twitter, Peter Hosey wondered what is the longest public symbol name other than a selector in Apple’s APIs.

@Bavarious and Ken Ferry both found kCMSampleBufferConduitNotificationParameter_UpcomingOutputPTSRangeMayOverlapQueuedOutputPTSRange (96), which was announced in the release notes for OS X 10.7 and iOS 4.3, although it isn't documented otherwise. I've submitted feedback to Apple about the missing documentation.

Here's how @Bavarious found it:

Ken also shared the method he used. If you don't use the fish shell, here's a minor variation of Ken's commands that works in bash:

cd /System/Library/Frameworks/

ls /System/Library/Frameworks | perl -ple 's/(.*).framework/$1.framework\/$1/'  | xargs  nm  | perl -nle 'if (/([A-Z]\s.*)/) { $len = length($1); print "$len $1"; }' | grep -v ":" | grep -v ZN | sort -n | grep -v "install_name" | grep -v "OBJC_IVAR"

To find the longest symbol that's not only public but whose meaning is documented, I poked around in the innards of Apple's docsets. Focusing first on iOS, I ran this command in Terminal:

sqlite3 ~/Library/Developer/Shared/Documentation/DocSets/com.apple.adc.documentation.AppleiOS6.1.iOSLibrary.docset/Contents/Resources/docSet.dsidx

In the past I used to operate on a copy of the docSet.dsidx file, out of nervousness that I'd accidentally modify it. I don't bother making a copy any more, because I'm unlikely to accidentally perform an UPDATE or DELETE, and because in the worst case I can delete the docset and re-install it.

The dsidx file is a Core Data store containing information about API symbols and where they are documented. Each symbol has a token type indicating whether it's a class name, a macro name, etc.:

sqlite> .headers on
sqlite> select * from ztokentype;

Z_PK|Z_ENT|Z_OPT|ZTYPENAME
1|16|1|intf
2|16|1|macro
3|16|1|instp
4|16|1|instm
5|16|1|clm
6|16|1|intfp
7|16|1|cl
8|16|1|data
9|16|1|econst
10|16|1|intfm
11|16|1|tdef
12|16|1|func
13|16|1|cat
14|16|1|tag
15|16|1|intfcm
16|16|1|clconst
17|16|1|writerid

Here is a SELECT statement that finds the longest documented symbols in iOS 6.1 that are not selectors:

sqlite> select ztokenname, length(ztokenname) length, ztypename from ztoken, ztokentype where ztoken.ztokentype = ztokentype.z_pk and ztypename not in ("clm", "instm", "intfcm", "intfm") order by length desc limit 5;

MFMessageComposeViewControllerTextMessageAvailabilityDidChangeNotification|74|data
kCFStreamErrorHTTPSProxyFailureUnexpectedResponseToCONNECTMethod|64|econst
NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication|63|econst
CTFontCollectionCreateMatchingFontDescriptorsSortedWithCallback|63|func
NSPersistentStoreDidImportUbiquitousContentChangesNotification|62|data

The same technique applied to the 10.8 docset reveals the function name IOBluetoothOBEXSessionCreateWithIOBluetoothDeviceRefAndChannelNumber. Its length is only 68, so iOS wins with MFMessageComposeViewControllerTextMessageAvailabilityDidChangeNotification (74), assuming there isn't an error in the database or in my admittedly shaky SQL.

Note that the contents of the ztokentype table are different in the OS X docsets than they are in the iOS docsets, so if you experiment with the SQL commands above you may have to adjust your "ztypename in …" or "ztypename not in …" clauses accordingly.

UPDATE 1: I thought @Bavarious and Ken Ferry had found two different symbols, but as Ken explained to me, they had really found the same one. I rewrote the relevant parts to reflect my better understanding.

UPDATE 2: Here some other articles on the topic of long API symbols: