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:

Hunter Walk's idea for the movies

Hunter Walk proposed an alternative movie theater experience where he'd be able to use his mobile devices and talk out loud:

Look up the cast list online, tweet out a comment, talk to others while watching or just work on something else while Superman played in the background.

[...]

I’d love to watch Pacific Rim in a theater with a bit more light, wifi, electricity outlets and a second screen experience.

[...]

If you took a theater or two in a multiplex and showed the types of films which lend themselves to this experience I bet you’d sell tickets.

This idea got a lot of criticism in the comments and elsewhere — John Gruber, for example, called this "The Worst Idea This Week" — to the point where Walk posted a point-by-point response.

I don't think it's fair to call a preference a bad idea. As a business proposition, the "I bet you'd sell tickets" part is fair game. But you don't get to tell someone how they should prefer to enjoy any cultural artifact, whether it's popping open a laptop at the movies or reading the ending of a novel first. You can tell people to respect the prevailing rules of etiquette, which is why I don't pop open my laptop at the movies, but Walk isn't suggesting otherwise.

Since the experience Walk wishes for isn't currently available, is it possible that it's a bad idea in the sense that he only thinks he'd like it, but really people are always happier paying full attention to the movie in front of them? The answer is clearly no. Anil Dash writes that "American shushers are a rare breed overall":

The most popular film industry in the world by viewers is Bollywood, with twice as many tickets sold in a given year there as in the United States. And the thing is, my people do not give a damn about what’s on the screen.

Indian folks get up, talk to each other, answer phone calls, see what snacks there are to eat, arrange marriages for their children, spontaneously break out in song and fall asleep. And that's during weddings! If Indian food had an equivalent to smores, people would be toasting that shit up on top of the pyre at funerals. So you better believe they’re doing some texting during movies. And not just Bollywood flicks, but honest-to-gosh Mom-and-apple-pie American Hollywood films.

Note that Dash questions what behavior should be acceptable in "regular" movie theaters, whereas Walk is proposing separate theaters to provide a separate experience. The distinction is important, but the point remains: there is not just one way to enjoy a movie in the theater.

I'm reminded of an anecdote from Iron & Silk, Mark Salzman's autobiographical novel about his adventures in China. In one chapter, Salzman tells about his visit to a family that lived on a fishing boat, and what happened when they asked him to play his cello. At first he was disappointed that while he was playing, the family proceeded to ignore him, chatting with each other and horsing around.

But then I remembered what a Chinese friend had told me one night at a performance of instrumental music where the audience talked, laughed, spat and walked around during the show. I mentioned to him that the audience seemed unbelievably rude, and he answered that, on the contrary, this showed they were enjoying it. He said that for the majority of Chinese who are peasants and laborers, music is enjoyed as a sort of background entertainment and is intended as an accompaniment to renao, which literally means "heat and noise." Renao is the Chinese word for good fun, the kind you might have at an amusement park in America, and noise and movement are essential to it.

Compared to these descriptions of accepted audience behavior, Walk's suggestion hardly seems bizarre. Even if it were bizarre, it would fall in the category of "preference", not "bad idea".

Walk is criticized not only for how he wants to enjoy the movies, but for how he wants to use his computing devices. One commenter wrote:

That's the issue with people like you today. You can't put your damn phone down to actually interact with a person or place.

The bad-idea angle here is that introducing mobile devices into the moviegoing experience would aggravate a societal problem that has already gone too far. This is narrow-minded and needlessly judgmental, but it's a common sentiment. I would counter with Rachel Smith's blog post, "What I See When You're Using Your Smartphone".