Dec 29

The Varieties of Anti-Intellectualism

One of the recurring features of American intellectual life is hand-wringing over “anti-intellectualism” by, of course, intellectuals.

One of my regular commenters has pointed out that the term and concept of anti-intellectualism are used to describe several distinct phenomena that are relatively easily confused. He’s right, and I think it could bring some clarity to the murkier corners of the culture wars to develop the point.

Note: The term “intellectual” is not infrequently applied to me. By the end of this essay it should be clear why, though I recognize the justice in that application, I’m not completely happy with it.

Continue reading

Dec 28

The Smartphone Wars: a bit of Christmas cheer

On Google+, Andy Rubin reports: “There were 3.7M Android activations on 12/24 and 12/25.”

That’s a 170% spike over the 700K activations per-day Rubin announced on 20 Dec. I’ve previously observed that only about 1 in 10 of Android activations show up in the smartphone statistics for the U.S. so Android is probably looking at about 370K new U.S. smartphone users for Christmas, the way comScore counts them.

I’m guessing Apple won’t be releasing the corresponding number, because on previous trends it would only be about 185K Christmas users for their smartphone – and that wouldn’t look good. Well, it could be worse; they could be RIM.

UPDATE: My spike-percentage calculation was wrong. Way too low.

Dec 21

Are threads still a menace?

An interesting question showed up in my mailbox today. So interesting that I think it’s worth a public answer and discussion:

In chapter 7 of The Art of Unix Programming, you classified threads under the section “Problems and Methods to Avoid”. You also wrote that with the increased emphasis on thread-local storage, threads are looking more like a controlled use of shared memory. This trend has certainly continued; recent programming languages like D, Scala, and Go encourage the use of threads as mostly isolated lightweight processes with message passing. Observing this trend, I have often wondered, why not go all the way and use multiple OS processes? I can think of two reasons to use threads in this newer, controlled way rather than using full processes:

1. Portability to Windows, which doesn’t have an equivalent of fork(2)

2. Performance, particularly because message passing between real processes requires serialization and deserialization, whereas message passing within a process can be done with shared memory and (maybe) locks

So what do you think? Are threads still a menace to be avoided in favor of full OS processes? Or has the situation improved since 2003?

I think it has, and I think you’ve very nearly answered your own question as to why. Bare threads were dangerously prone to deadlocks, livelocks, context-trashing, and various other sorts of synchronization screwups – so language designers set out to encapsulate them in ways that gave better invariants and locality guarantees without sacrificing their performance advantages. I think Scala’s transactional memory stands out as a particularly elegant stab at the problem.

I don’t develop for Windows or communicate much with people who do, so I’m not equipped to judge how important Windows portability is in motivating these features. But the performance issue you called out is real and quite alive on Unix systems.

UPDATE: Matt Campbell, who has materialized in the comments here, send the original question and has given me permission to cite him. Thanks for a good question!

Dec 20

The Smartphone Wars: Andy Rubin brings the news

Over on Google+, Andy Rubin says:

There are now over 700,000 Android devices activated every day…and for those wondering, we count each device only once (ie, we don’t count re-sold devices), and “activations” means you go into a store, buy a device, put it on the network by subscribing to a wireless service.

This does clear up some points people have been wondering about, but it raises larger questions. Like, why aren’t those users showing up in the comScore statistics?

700K users per day ought to translate to about 21M a month. But Android has only been gaining 2M U.S. smartphone users and change per month. If comScore isn’t way undercounting, that implies than a bit less than 9/10ths of daily Android activations are tablets or overseas.

That percentage seems pretty high to me. But I don’t have any alternate theory.

Dec 12

Coming soon: reposurgeon does Subversion

For those of you who have been following the development of reposurgeon, a pre-announcement: the next version, probably to be numbered 2.0, will directly read Subversion dumpfiles and repositories.

I’ve got this feature working now – it’s why my blogging has been scant recently – but I intend to have a really good regression-test suite in place and at least one large repo conversion done before I ship it for general use.

Note an important limitation: it will not write Subversion repos. So it will be useful as a conversion tool but not directly as an editor.

Fear the reposturgeon!

Dec 03

Why I love Walmart despite never shopping there

In a discussion thread that wandered to the subject of Walmart and its enemies, I said “Scratch a Walmart-basher and you’ll find a snotty elitist, a person who hates capitalism and consumption and deep down thinks the Wrong People have Too Much Stuff.”

The commenter replied: “You know, I don’t think you need to be an anti-capitalist in order to disdain over-consumption and its enablers.”

No, certainly not. My own preference is to live simply, getting and spending little and putting my energy into creative work. Much of what we think of as “normal” behavior in a consumer society strikes me as wasteful and vulgar. But it’s a disdain I tend to keep quiet about, for at least two reasons:

Continue reading

Dec 03

Bad at languages?

I had a very international childhood – lived in Venezuela and Rome and London, and visited lots of other places in Europe (Paris, Athens, Venice, Barcelona). The cause was my dad working for a multinational; the result was that I learned and forgot three languages before I was thirteen.

Continue reading