#humblebrag

Or not, whatever. This was a thrill for me, and my colleague Nicko was kind enough to make me a GIF, so I’m sticking the links here for posterity.

tomlee-testimony

I need to add, though, that although I have worked on these issues first-hand and know a bit about them, my knowledge absolutely pales in comparison to that of my current and former colleagues Kaitlin Devine, Drew Vogel and Kevin Webb. They deserve credit for what I think is the best, deepest and most sustained work on federal spending data quality that’s been done by anybody. And none of us would know how to make that expertise relevant to the people who can fix these problems without Sunlight’s helpful, friendly and frighteningly smart policy team.

Additional not-that-flattering photos available here.

the new iphone is bad news for the quantified self movement

Ashkan tweeted that the new iPhone will have a Fitbit-style accelerometer, enabling (presumably) Fitbit-style applications:

Tell me if this is crazy:

* Software is a more competitive market than hardware.
* Standardizing accelerometer hardware (assuming Android device makers hop on board, too) will gut the market for devices like Nike Fuel, Fitbit, etc.
* There’ll be much stronger demand from consumers for data portability across services/interfaces/apps.
* All of this means thinner profit margins for fitness tracking firms.
* A smaller pie means less hype (this is the one I’m least sure about)

Maybe this isn’t bad news — it depends on your perspective and hopes for QS. More people will be using these pedometers, after all. It’s just that it’ll be clearer that they’re pedometers.

Tessel, Arduino, Raspberry Pi

Eric asked me what I think of the Tessel! Well, sort of. Anyway I find myself delighted to have semi-informed thoughts about hobbyist microcontroller-y solutions. It’s a pleasant byproduct of all the time I’ve spent on silly electronics projects over the last decade, and makes me feel better about my own perpetually-dawning software senescence.

But so: the Tessel. Will it succeed? Is it worthwhile? You can read about it here but the important details are that it’s got wifi and a bunch of GPIOs and its development environment is built around Javascript — so much so that it can allegedly run many many node.js packages!

That’s all potentially interesting, but its odds of success can’t be understood outside of the environment it enters. So let’s talk about the two gorillas in the hobbyist space: Arduino and Raspberry Pi.

Raspberry Pi is a really cheap Linux computer with 256 MB of RAM. Like, $25 cheap. No onboard wifi — it’ll cost you another $10 to add ethernet (and double the RAM), or about the same for a USB wifi adapter. But it’s a pretty capable little system! There are some GPIOs, but not that many, and they’re not that robust, and there’s only one hardware PWM output, which is annoying if you know what that means. It’s also not open source. Still, it’s a genuine Linux system, which makes it able to harness an immensely powerful library of software. And its makers seem to have a sweetheart deal with Broadcom that enables their price point.

Arduino is a friendly microcontroller environment, and I should probably explain what that means. A microcontroller (uC) is a little computer — so little that it suffers really serious limitations. For instance, it’ll usually have less than 1MB of memory, and it’ll run thousands of times slower than your laptop CPU, and it’ll only be able to manipulate integers and have no video output or keyboard input. Pretty sad! On the other hand, it only costs a couple of bucks. And this list of capabilities isn’t too dissimilar to, say, the videogame systems you had growing up (if you’re as venerable as me, anyway).

The cheapness of uCs mean they can be singleminded. Your computer is doing a ton of things all the time. Its most fundamental pieces of software decide how to split up processor time between those things, like a library of fantastically complicated clockwork systems that need to be cranked forward, one at a time, by one very spritely curator. The curator has pretty good instincts about how to manage her charges, but sometimes she remembers it’s time to rebuild your search index or sync your system clock or check for Chrome updates or whatever, which means everything else might not get her attention right when you expected it would.

This is mostly fine, but it doesn’t work very well when you need extremely precise timing. Everything is so fast that it’s mostly still pretty precise (and you can pursue some ridiculous hacks to make it more precise still). But when you’re dealing with the real world, or finicky electrical systems, the need for very precise timing comes up more often than you’d think.

Microcontrollers are pretty good for this kind of thing. They can just sit there running one program because they’re so cheap. The curator’s attention is undivided; her behavior is predictable.

Arduino isn’t actually a chip, it’s a development and deployment environment wrapped around a particular family of chips made by Atmel. It makes it a hell of a lot easier to write code for those chips. Even that comes at a cost. My dumb Christmas lights require communication in 10 microsecond pulses (rather pokey as these things go). But if you look at the “Timing” section of this post you’ll see that to fake a 10-ish microsecond delay on Arduino you need to tell it to delayMicroseconds(3) or delayMicroseconds(4) depending on the Atmel chip. The Arduino environment introduces overhead — it’s a bit finicky. Still! The Arduino is much better about this stuff than the Raspberry Pi.

(In the real world, sophisticated processors deal with applications that require precise timing requirements by speaking to microcontroller-like chips that handle their responsibilities precisely, but which can also speak to the main processor in a relatively timing-insensitive manner. Your sound card — or, more likely, the part of your processor that used to be a distinct component called a sound card — is a good example. Some of my current projects use a Raspberry Pi to speak to an Arduino to speak to an LED controller chip, which is less silly than it probably sounds.)

So! Enough preamble. Where does the Tessel lie on this continuum?

I think it’s almost certainly going to be more Pi-like than Arduino-like. The fact that it’s Javascript-focused is notable (though it’s also worth noting that the BeagleBone — a Raspberry Pi precursor — also pushes a JS-first approach). It’s a testament to the shockingly widespread impact of the V8 engine on our technical culture — one of the many genuinely unselfish things that Google has given to the world.  We’ll have to remember this when they’re forcibly uploading our brains a few years from now.

Could the Tessel run a Javascript environment in some incredibly constrained manner that allows for precise, uC-like timing? Eh. Maybe? It seems pretty unlikely to me, particularly given all the general-purpose node.js packages that it claims to support. If you want a high level of precision, you need to know about and account for everything the system is doing. That means you can’t work at a particularly high level of abstraction, as the Arduino example above hopefully demonstrates. You probably need to write assembly or C, not an interpreted language like JS that passes through a black box of voodoo optimizations. This is particularly true for an environment like node.js that emphasizes asynchronous approaches with somewhat unpredictable timing (says the guy who’s never written any node.js code). And even if that sort of thing were easy to do in node, all those package authors would not have done it, since the Tessel didn’t exist when they did their work.

It seems most likely that the Tessel will be a stripped down *nix environment (the Tessel’s processor is a cheaper installment from the same ARM family that powers the BeagleBone). But it’ll only have 32 MB of RAM! You can run a tiny OS in that — I’ve done it plenty. But it’s going to suck in various ways. And I’m not really convinced it’s going to be cheaper than the much more capable $25 Raspberry Pi.

The Arduino, meanwhile, is waiting at your neighborhood Radioshack for $30, and Chinese clones can be easily had for $7 or less.

The Tessel, I think, aims to land between Arduino and the Pi. And that’s not crazy. Making this stuff more accessible is really worthwhile! Building a lovely little network-capable platform with handy modular sensors and helper libraries is worthwhile! Getting an Arduino online is terrible and expensive, and the Raspberry Pi’s universe of shields is still a bit underwhelming. There is good work yet to be done.

But both of those projects are hugely popular. You shouldn’t underestimate how important those network effects are. I spent a ton of time on BeagleBone, then gave up. Other than price, it is a much better platform than Raspberry Pi: it’s fully open, has more GPIOs and a better processor. But people got so excited about the Pi, thanks in large part to the enormous publicity it attracted. Seemingly overnight I could pick from a million awesome tutorials penned by brilliant people eager to figure stuff out for me. Same goes for Arduino.

Could Tessel carve out a new niche? Sure. I think it’d have to offer something new, though, and I’m not sure it does. The Tessel looks nice, but it’s probably not going to be cheap enough or offer enough additional utility over established platforms to become a huge success. You can run node.js on a Pi, after all.

book review: Invisible Cities

Calvino books are Calvino books. They’re rewarding if approached in the right mindset. What distinguishes them is simply their framing, and this wasn’t my favorite. Drained of verbs, these descriptions of cities reflect thinking that is often profound, though also sometimes banal (yes, suburbs often seem alike). There’s a few too many setups involving superficial duality and an ensuing revelation of redemptive humanist imperfection.

So: pretty good. Cosmicomics and Mr. Palomar remain my favorites, though.

book review: The Angel’s Game

Carlos Ruiz Zafon is a talented writer and a miraculous self-promoter. The Angel’s Game — like The Shadow of the Wind — will leave you convinced that you’ve read a better book than you have. But that doesn’t mean you shouldn’t read it.

In the case of TAG, the approach is fairly straightforward. Ruiz Zafon reverentially invokes the institution of Literature in all its forms, from a refuge for the young; to the pretentious journalistic elevation of copyediting into a sacred crusade; to the fucking smell of books; to the invocation of Dickens to canonize the institution of the blood- and melodrama-soaked potboiler.

This is all fine so far as it goes. Its real purpose is to telegraph what’s about to come — to create a theology of letters in which pulp holds a place of esteem no less dignified than nominally loftier stuff. Ruiz Zafon is going to give us pulp. He wants us to understand it to be exalted pulp.

I think this perspective is basically right. It reminds me of Michael Chabon’s essays insisting that literature can include acts of imagination, excitement, adventure and the fantastic. As I steel myself for this year’s Man Booker long list, it’s good to be reminded that “good” books don’t necessarily have to be about terminal illness and divorce.

Still, I do think that this framing is at least a little self-serving. Which is fine: Ruiz Zafon delivers a real page-turner, and ably adorns it with literary allusions and devices (albeit occasionally heavy-handed ones). The book has some problems with pacing, and the emotional pallette favors breadth over depth. But it’s pretty great entertainment, ably weaving together thrills, supernatural horror, sexual tension, tragic romance, satire, noir and light comedy.

But I do worry that I will remember that this book is good more than I’ll remember what the book is about. That’s certainly the case with The Shadow of the Wind — I remember where I read it, I and I remember liking it, but I remember terribly little of the book itself, which is pretty unusual for me. Perhaps TAG will fare better.

book review: Foucault’s Pendulum

Eh. It’s clever, writing a book like this one as a follow-up to his own debut. Diving headlong into mystic Christian conspiracy theories, Eco cleverly parodies himself while leveling a broader critique against the human temptation toward gnosis and syncretism. The action surrounding our main characters is also pretty fun.

But the damn thing’s just way too long. Eco tells us over and over again that these imagined connections are meaningless, which makes it difficult to wade through hundreds of pages of historical arcana. By the end, exhaustion had distracted me from his characters’ stories and struggles. A decent editor could have made this great. As it stands, Eco can’t resist the temptation to show off, whether through his own (always modestly disclaimed!) flights of historical fancy, or with inserted experimental fiction that left me cold.

As a sidenote: it was legitimately fascinating to see so much occultism cleanly laid out. I found myself wondering if Mike Mignola used this as a blueprint for his Hellboy universe or if the grail conspiracies are just well-established. But it’s all there: the Templars, Ultimate Thule, Aggartha and on and on…

book review: Nemesis

Pretty brutal. I’m ashamed to admit this is the first Roth I’ve read — my mom sent this to me — but based on his reputation and my sense of the book, it’s hard for me to imagine this is among his best.

The problem is really just length. Roth wants to throw together some research about summer camp and polio and musings about theodicy. The polio asserts itself through the decimation of various basically interchangeable children surrounding the protagonist, who’s a youth educator. But he’s a flat and boringly noble character, devoid of psychology aside from overdeveloped senses of duty and guilt. These ensure that polio will destroy him utterly, even after the crisis of the epidemic has passed. And that could could be interesting.

But instead of that tragic flaw’s artful revelation, the dynamics of it are dumped on us by the narrator in the book’s last ten pages. It feels rushed and unnecessary. Those ten pages are solid, and include this gut-punch about bitterness:

“I’ll never be me as I was me in the past. I’ll be this instead for the rest of my life. I’ll never know delight again.”

Oof. Preach. Anyway it’s more of a sermon than anything else.

Still, great prose and a quick read. It’s really just a novella, though. Could easily have been a proper novel but you get the feeling the author’s heart wasn’t in it.

book review: Alif the Unseen

Though not totally meritless, it’s safe to say this was not a favorite of mine. I had two primary objections.

First, Becks got it about right when she said “I’ve never read a book that got technology as wrong as this.” Much of the technobabble reads like this Onion article. It’s gibberish — nonsense that’s clearly been passed by a technologist for vocabulary-correction, but which is conceptually empty. I can usually forgive this (though after been recently treated to the very high technical standards of Cory Doctorow’s work, I’m less inclined to do so that I used to be). But in this case the nonsense is used both to define the various maguffins that drives much of the story and to provide the too-tidy resolution that our protagonist drops in the climax. And where the hell did Wilson get the idea that overloaded computers can melt? It’s completely laughable.

Second, I was pretty uncomfortable with the book’s politics. I have complaints about the facile approach to political unrest — the restoration of mobile broadband is treated as if it’s the same thing as a popular uprising’s successful conclusion. But these are superficial compared to my discomfort with Wilson’s sympathy for Islamist counterpoints to the repressive secular state that employs the book’s villains. I’m very ready to admit the beauty, wisdom and historical richness of muslims’ faith. I’m less prepared to accept Wilson’s glib assumption of compatibility between her readership’s liberal cosmopolitan values and her religion’s ethics and politics. Of course the imam wouldn’t really object to popular music. Of course our plucky female lead wears her veil out of choice. I’m sure it’s right that this culture is misunderstood and often subjected to ignorant racism. But that doesn’t mean its attitudes toward women and personal liberty aren’t genuinely noxious. Wilson doesn’t ignore this completely, but she’s much too ready to retreat into mysticism when it comes up.

I understand Wilson to be a convert to Islam herself (married to an Egyptian man) so I don’t want to accuse her of cultural ignorance, or to underestimate the difficulty of reconciling her identity and values with the religious culture she’s chosen. I’m sure that’s been a difficult and very personal process, and one that I have no right to criticise. But, speaking purely as an outside observer, the philosophical gymnastics that seem to be required don’t survive the translation to the page. Frankly, she’s got some nerve to snipe at western fiction for its substantive bankruptcy. Her work ignores those depths.

OK. Enough of that. What’s good about this book? Well, Wilson’s a comic book writer (I suspect this explains a bunch of the silly GR Stephenson comparisons that Becks notes). She has a talent for keeping the action moving and for letting her imagination stretch to interesting locales, characters, scales. They don’t always feel fully sketched-out — perhaps she’s used to collaborating with an artist on that? — but she does often succeed. I particularly enjoyed the inclusion of the djinn, even if the narrative bridge constructed to them — the Alf Yeom — didn’t really make much sense.

Still, I don’t think the book succeeds. The scaffolding’s there (though it’s at least one act too long), but the foundation’s incoherent. Not recommended.

book review posts incoming

I haven’t figured out a decent way to automate this, it turns out. Maybe I’ll write a Goodreads WordPress plugin.

Italo Calvino on the lifecycle of social networks

In Ersilia, to establish the relationships that sustain the city’s life, the inhabitants stretch strings from the corners of the houses, white or black or gray of black-and-white according to whether they mark a relationship of blood, of trade, authority, agency. When the strings become so numerous that you can no longer pass among them, the inhabitants leave: the houses are dismantled; only the strings and their supports remain.

From a mountainside, camping within their household goods, Ersilia refugees look at the labyrinth of taut strings and poles that rise in the plain. That is the city of Ersilia still, and they are nothing.

They rebuild Ersilia elsewhere. They weave a similar pattern of strings which they would like to be more complex and at the same time more regular than the other. Then they abandon it and take themselves and their houses still farther away.

Then, when traveling in the territory of Ersilia, you come upon the ruins of the abandoned cities, without the walls which do not last, without the bones of the dead which the wind rolls away: spiderwebs of intricate relationships seeking a form.

(Previously)