For no particular reason, my recipe for scrambled eggs.
I was pretty dubious about John Carter. It was one of those movies which, as a serious SF fan and historian, I have to see even given a quite high likelihood that it was going to offend me with aggressively stupid handling of its source material. Therefore I am surprised and pleased to report that it is actually quite good!
For those of you who will be in or near the metro Detroit area in late April of 2012, announcing…the Penguicon Friends of Armed & Dangerous party!
I’m thinking about writing another book. I won’t disclose the title or topic yet, but there’s a bit of research for it I think can be usefully crowdsourced, and may also give a clue about the book for those of you interested.
I’ve written before about the difference between descriptive and generative theories. To recap and simplify, a descriptive theory accounts for what is; a generative theory finds causal regularities beneath a descriptive account and predicts consequences not yet observed.
Now I want to zero in on a parallel difference among entire sciences. Some scientific fields – like, say, evolutionary biology – are tremendously productive of models and insights that can be applied elsewhere. On the other hand, some other sciences – like, say, astronomy – seldom export ideas or models.
Note that while it is appropriate to think of sciences that export lots of ideas as ‘generative’, the class of sciences that don’t are not merely descriptive. Astronomy, for example, has lots of generative theory inside it; astrophysics, for example makes predictions about stellar spectra and elemental abundances. But astronomy as a whole is not generative because none of its theory really informs anything outside astronomy.
So I’m going to start with a (non-exhaustive) list of scientific fields, indicating roughly how generative I think they are and what if anything they export. I invite additions and corrections from my readers.
Friedmann Friese’s Power Grid is one of the acknowledged classics of the modern Eurogame genre. It embroils 2 to 6 players in a simulation of running power companies, competing to light up the most cities. Strategy involves a mix of positional play, resource management, and (most entertainingly) competition for new plants in an auction every round.
Since the game’s original release in 2004, Rio Grande Games has published an alternate power-plant deck and five pairs of expansion mapboards, introducing minor rules variations and new tactical challenges. My wife Cathy and I own all of these; we have been fans of the game since almost the date of release, and regularly compete in the World Boardgaming Championships Power Grid tournament.
With Power Grid: Robots, the game’s developers take off in a completely new direction. This expansion introduces robot players, assembled at random from tiles that define how they will behave in the auction, resource-buying, and city-building parts of each turn. With six possibilities each for five behavioral slots, one may face almost 7776 robot variations.
CyanogenMOD, the third-party, fully-open, bloatware-free port of Android, has recently passed a million installs. And there’s talk of creating an underground Market app for CyanogenMOD to distribute apps that the cell carriers and the MPAA/RIAA don’t want you to have.
Set this against Apple’s mind-bogglingly greedy and evil new Eula for iBooks, and it couldn’t be clearer what the ultimate stakes in the smartphone wars are.
Even in the short term, CynogenMOD’s numbers, and the plan for the Underground Market, and the wideapread revulsion against the iBooks EULA are a big deal – they’re going to crank up the pressure on cell carriers and various other malefactors in interesting ways. But maybe the most important thing CyanogenMOD’s numbers tell us is that there is, in fact, a mass market for freedom.
Five weeks ago I wrote that direct Subversion support in reposurgeon is coming soon. I’m waiting on one final acceptance test before I ship an official 2.0; in the meantime, for those of you kinky enough to find the details exciting, description follows of why this feature has required such a protracted and epic struggle. With (perhaps entertaining) rambling through the ontology of version control systems, and at least one lesson about good software engineering practice.
This is a shout out to all hackerspaces and engineering schools within easy reach of Philadelphia. I’ve got a nice little design-and-build project that would do the world some good, but I don’t have the skills or facilities to do it myself.
The problem: build a ruggedized special-purpose test enclosure to be mounted on a roof or utility pole and host a bunch of GPS sensors. The tricky part is that it needs to be outside and not under top cover (for good skyview) and thus weatherproof, but also transparent to the GPS radio frequencies. Another part of the design problem is getting data and power cabling back to my development computer.
UPDATE: I’m now pursuing a different path – trying to figure out how to build a GPS repeater on the cheap so I can effectively pipe the RF from a roof antenna to be retransmitted in my office. This has the obvious advantage that the GPS test rack will be able to live inside, near my desk, rather than outside in an enclosure that can only be reached with a ladder. So now I’m looking for a hackerspace frequented by radio hams.
This is a status update for those of you among my regulars who have been following the saga of Sugar, our cat. She had her 90-day followup ultrasound today.
Just when you thought the smartphone industry couldn’t get any more soap-operatic, everybody’s favorite pair of aging drama queens – Microsoft and Nokia – may be at it again. There’s a rumor, from a gossip with a good track record, that Microsoft intends to buy Nokia’s Smartphone division.
Today the New York Times is carrying a story on Chinese fears of “cultural encirclement”.
“We must clearly see that international hostile forces are intensifying the strategic plot of westernizing and dividing China, and ideological and cultural fields are the focal areas of their long-term infiltration,” Mr. Hu said. “We should deeply understand the seriousness and complexity of the ideological struggle, always sound the alarms and remain vigilant and take forceful measures to be on guard and respond,” he added.
This quote reminds us of something too easily forgotten, which is that Communists have always taken ideological struggle seriously. Communist theory teaches them to believe that the most effective way to break the will of the opposition is to de-legitimize its ruling class, degrade its culture, destroy its confidence in its own institutions and its own way of life.
Hu Jintao believes that the West is waging a conscious memetic war against Communist China – because he knows that Communists including himself have been waging a conscious memetic war against Western civilization since the 1840s. Sadly, this is not yesterday’s news.
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.
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.
The best Yule present my wife and I are getting this year is that our beloved cat Sugar is not dying.
An interesting question 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!
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.
A government that is big enough to give you everything you want is big enough to take everything away from you – including your Internet freedom.
That’s the thought that keeps running through my head as I contemplate the full-scale panic going on right now about SOPA, the “Stop Internet Piracy Act”.
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.