Friday, October 31, 2008


Riot?”, asks Sudhir Venkatesh.

He lists a lot of reasons he thinks there haven't been riots or even protests surrounding financial institutions, responding to the generally irresponsible practices leading to a financial meltdown and massive taxpayer-funded bailout. He cites anger from pundits on the radio and on blogs, but no popular uprising.

I'll submit another reason: introspection. We all fucked up. Sure, government failed to regulate, and investment houses took bad risks. And there was out-and-out fraud on all sides of the sub-prime market. But people, too, took out lots of risky mortgages on houses they couldn't afford when they should have known that housing prices were in a bubble. It wasn't like it was a secret that we were in a housing bubble. I'm no economist, but I listened to the news when I lived in California and heard all about housing prices staying high as the bottom fell out of the pre-fab market. It seemed like pretty conventional wisdom to me that that was a harbinger of the bubble's collapse, but people kept buying houses at ridiculous prices. I worked with one. Everyone at the lunch table told him to wait for the bubble to burst (including a guy who'd been studying the market for years). He had all kinds of advice telling him to wait and to act rationally and he ignored it.

I bet a lot of the angry voices are people with an agenda to push. Certainly not everyone whose house has been foreclosed borrowed irresponsibly, but I think among many of them there's more introspection than anger. What is the American dream that I was chasing? What is the foundation of my personal finance, and of our economy as a whole? It gives us pause.

OK, I have yet another reason: the suburbs. Suburbs and exurbs have been hit hardest in the financial crisis, and it's hard to organize in the suburbs. This is because they're not dense and emphasize private spaces over public ones in every aspect of life.

Thursday, October 30, 2008

Same title as the last post

God, the air was filthy on my run this morning. I've even run through this exact area before and it wasn't nearly as bad the other time. It's not easy to find perfect running routes around where I live if my criteria involve safe neighborhoods and lack of pollution.

I went to a talk on the use of human-powered technology today (human physical power, stuff like hand-powered blenders and bike-powered washing machines). It was at the Chicago Center for Green Technology Training Center (Richard M. Daley, Mayor), which is at an odd location next to a Metra railyard on the west side. Also adjacent to a stretch of the boulevard system, which these days mostly provides confusing and poorly-configured extra lanes on roads that don't need them. Anyway, the most interesting parts of the talk for me were examples of its use in remote areas, and the note that the low power requirements of today's portable electronics make it much more feasible to use manual generators to power gadgets.

I also had an opportunity to display my pretty good instinct for understanding people and my complete incompetence at communicating. One chart in the presentation showed the relationship between power and endurance, how much power a typical person could generate while sustaining for various lengths of time. One questioner was confused that more power was generated over shorter lengths of time. It sounded to me like she wasn't clear on the difference between power and energy. The presenter wasn't helping much, so I chimed in to try to explain, but only convinced the presenter that I didn't know the difference between power and energy.

EDIT: More things I'm remembering from the presentation. Because mechanical energy is pretty cheap in the developed world our development of human-powered devices often lags behind that of motorized ones in convenience, efficiency and ergonomics. But some recent efforts, like the OLPC's "yo-yo" generator, buck the trend. Carousel-powered water pumps whose maintenance is ad-supported. WEIRD. Even where there's no running water, we must get ads to the people. Oh, and a bike-powered washing machine is just silly. The guy that set it up said it's pretty hard to keep up the tempo for the spin cycle. Well, duh! If you're going to wash your clothes with manual power, why do it in a washing machine designed around a very non-human motor? People have washed their clothes manually for ages using techniques more suited to comfortable levels of exertion.

And I met up later with Nisha, from the relay a couple years back, who was in town for a conference. Good to catch up. We wound up talking a lot about politics. Seems to be in the air.

Wednesday, October 29, 2008

This is not to say, Chicago, that I don't love you...

... but in theory one of the good things about cities is that things are located close together, often even within walking distance of each other. Perhaps one of those things would be my home, and another would be a music store. Where I grew up, in the suburb of Elmhurst, Luscombe's Music was a quick walk from my house. There I took lessons, picked up supplies, and sent my clarinet for repair.

Now in the great city of Chicago, when I needed dulcimer strings today, the closest promising suggestion from Google and the yellow pages was the Old Town School of Folk Music in Lincoln Park. Turns out they didn't have any in stock. The "Lincoln Square" location did, according to the dude there. I remembered some guitar stores listed along North Avenue, but at that point didn't want to risk their not being open or not carrying dulcimer strings. So I biked on up, and then back home. Almost 18 miles of biking, nine times my round-trip distance back in Elmhurst.

Meanwhile, it appears the place people go for woodwind repair is in Skokie. I've been there, actually; it was also the only place I could find that carried cork grease.

Now, to be fair, it wasn't this hard when I lived on the north side. I was about a mile and a half from Lincoln Square. Anyway, one lead I saw on Google Maps that didn't really look promising was near McKinley Park in an industrial area. I checked it out anyway, and I'm glad I did. At 3636 S. Iron St. (there's also a Coal St. somewhere around there) there is a complex called "Iron Studios". Rehearsal spaces for bands, studios, and what looks to be a fledgling gym, tucked in among old industrial buildings. The listing was probably for a luthier. If I ever need a rehearsal space I'll keep the place in mind. On that ride I also chased a lead which appeared to be an obsolete listing for a store in the former Music Mart. RIP, Music Mart. So that was another 11 miles of travel searching for music supplies.

For all that, coming across Iron Studios was worth the 29 miles of riding around looking for dulcimer strings. You'd have to have been there...

Thursday, October 16, 2008


Watching the debate last night with Ed I commented that Obama's euphemism, "Cavalier Activities", could be a great Internet catch-phrase. I was thinking something along the lines of a YTMND page. Well, no such page, yet, but at least someone is selling shirts — and has the domain name, no less. To quote the site, "God bless technology."

Heather's recently-adopted cat likes to sneak. To sneak and survey. She comes up behind me, rubs herself against my legs, then runs away the second I make eye contact. She likes to do this especially while I am at my computer. I think perhaps she likes my chair better than me. This is because my chair is a better scratching post than it is a chair.

Internet Governance

Please forgive me, Lord, for I have sinned. And gravely. Mere minutes ago in the elevator lobby of my office I uttered four horrible words. That's what she said. Though I know this is a terrible offense, God, I hope that you can show mercy. You see, what could I have done? Matt said, "Who cares about explicit consent?"

We had been talking about something funny that happened earlier today on his computer. He was trying to copy and paste some data from one terminal to another, but all that would paste was a URL (I won't mention which, it is a site that doesn't deserve even the meager publicity that a mention on my blog would give it). I guessed that some web site was repeatedly overwriting his clipboard (there was a visual cue that PuTTY's text had been removed from the clipboard), and suggested that he close Firefox and try again. It worked.

If Matt had been asked for permission to overwrite his clipboard, he surely would have said, "No." If you asked most Firefox developers whether scripts on web pages should be allowed to repeatedly overwrite the user's clipboard, they would probably say, "No," my distrust of the Mozilla Foundation notwithstanding. But people don't get asked every time. Web pages are allowed to set the clipboard, and they're allowed to set timers to generate events at short intervals, so there's not much that can stop them from doing both over and over again. Code analysis Just Ain't That Good, and there are too many shady behaviors to guard against. We've dug our grave, now we lie in it. Only an Evil Bit can save us.

In the days of the old West, I'm sure many people questioned whether a land so large could be policed like the cities of the East. They probably said of the West, as many programmers often say of the Internet, that people there must defend themselves, must determine who's trustworthy and who isn't (the favored method of most Web users, including myself, is how nice their pages look). But, you know, today there are red-light cameras in Albuquerque.

In fact, even some laws are enforced on the Internet. Most of the enforcement, such as that against online gambling, seems to be done in ham-fisted and shameful ways. Then again, lots of physical laws are no better. People arrested for taking pictures in public places, for example. That's probably worse than any of the online gambling enforcement.

Online gambling is a bad example of what I'm talking about, though, because it's protecting people from social problems and not technological ones. When we walk down city streets we know there's nothing that can physically stop any random person from gunning us down. But we know it's not very likely, and so we keep doing it. On the Web we know that sites will attempt to get our computers to act against us all the time. And we don't do the logical thing, abandoning Javascript for something with much stricture limits. Why? The companies that make money in the real world don't like street violence. But on the Internet, legitimate companies want just as much control over your computer as shady ones, because the whole business is advertising. You're not the customer, but the product. Because of that, I'm not optimistic. We'll be stuck with a web of detained shareholders and clipboard-hijacking (or their more refined variants) forever.

Tuesday, October 7, 2008


Hey, why do we care about this bullshit, let's talk about the substance of the debate.

Like, I want to hear more about Barack Obama and John McCain standing on that floor, you know, trying to mis-characterize each other's positions. Oh, right. Carry on then.


EDIT: Oh, one other thing. I love it when politicians say they're going to "kill Bin Laden". I think Democrats especially score high on the grep -c '(capture and )?kill (Osama )?Bin Laden'-o-meter; they say it often enough that you remember they're serious about wanting to kill this guy (because always a concern, when it comes to Democrats, that they don't enjoy killing enough to lead the USA), but not so often that it loses that visceral punch. I bet politicians practice this line in front of a mirror 50 times a day just to desensitize themselves.

(I wrote a song about this and a few other things in college, not long before the invasion of Iraq, and I've started singing it again lately. Maybe being in an election season and hearing "kill Bin Laden" all the time again has brought it back into my consciousness)

Monday, October 6, 2008

These are not really original thoughts in any way...

...but as we're fully in the grip of election season, the philosophies and ideologies of politicians and the various people that like them for some reason get increasingly compressed into "positions" on some discreet set of "issues". Like software that adds features for their value as bullet points on the outside of a box, everyone is all about taking the strategic stand.

Last month Nate Silver had this to say about the media's (and therefore most people's) understanding of political strategy:

Think how much different the conventional wisdom would be if Al Gore had won 300 more votes in Florida. Bush's strategy of rallying to the evangelical base would have been considered a failure, as would the Rovian politics of personal destruction. But instead, because of what was essentially a mathematical coin-flip -- the vote count was so close in Florida that nobody really knows who won -- these things are considered to be standard operating practice in any competent campaign.

While watching the vice-presidential debate back whenever that was I got a pretty clear view of the fact that the actual campaigns are (as one would expect) thinking in more sophisticated ways, from how the candidates handled the topic of gay civil rights and marriage. In just four years it's turned from a wedge issue into a consensus issue (note: this doesn't mean that I think, in this case specifically or in the general case, that just because politicians claim the same position in a debate that their likely actions are the same; here, a President Obama would be much more likely to initiate gay-rights legislation than a President McCain). In this particular debate Joe Biden sounded a lot more comfortable taking and explaining the position than Sarah Palin did. To be expected, not just because Palin isn't comfortable doing much but reading a script, but because this new consensus position is the one that Democrats have been sitting on for at a few years. Yay progress?

Well, at least, if you ignore the fact that the position is completely incoherent. It with the claim that gay couples should have the same legal rights as straight ones, with respect to things like contracts and hospital visitations. The argument is made either on the basis of interpretations of existing laws or through appeals to the virtues of fairness and tolerance. Either way, it's an argument based in questions of how to best govern, not in the politician's personal beliefs. Then the question of gay marriage comes up; the position says, "no," and the arguments say things like, "I don't believe in gay marriage." Politicians of all stripes hide behind the phrase, "one man and one woman," knowing that if they use those five words they won't have to answer any more questions. Now it's about personal beliefs.

I'm sure this has been Focus-group-ed Up Beyond All Recognition, and that's currently the place to sit safe. Can't support gay marriage, it's too radical. But you can't pass a Constitutional amendment banning it, that's too radical the other way. You'll never hear anyone defend that middle ground as a specific position, only pull it out when claiming someone else is too extreme. You'll also never hear a reason why public policy on marriage is supposed to be determined by somebody's arbitrary personal beliefs. As long as we don't expect politicians to provide one, they'll have plenty of personal beliefs, borne of convenience, coming into play.

Wednesday, October 1, 2008

Gentoo libselinux coreutils silliness

This blog entry probably isn't interesting to anyone. I'm writing it because Blogger blogs often turn up in Google results and it might be useful to a random searcher. Point: if you have libselinux on your system and want to get rid of it because it doesn't belong in your profile and is masked and frequently causes lots of obnoxious warnings, you probably shouldn't just emerge -C libselinux. You also probably shouldn't just do a emerge --depclean libselinux or even emerge -C libselinux && revdep-rebuild They might not work.

Not only will they not work, the emerge -C libselinux might not even finish correctly. The problem is that coreutils will build against libselinux even if you USE=-selinux. One of the autoconfiggey scripts does it. There's a bug in Gentoo bugzilla but no official action has been taken yet. If you happen to have updated coreutils since libselinux turned up, after you delete /lib/, lots of stuff doesn't work. /bin/ls, for example. And plenty of other programs you take for granted, and that emerge needs to finish unmerging libselinux. This was my experience and that of others. Learn from it.

The first thing you need to do is get a coreutils that doesn't need libselinux. First just make sure you need to do this at all: ldd /bin/mv | grep selinux. If no results you're OK. emerge -C libselinux && revdep-rebuild is all you need. Otherwise a new build of coreutils is in order. The person that filed the Gentoo bug kindly provided a couple patches that do the trick perfectly. It took a bit of messing around to figure out exactly where to put 'em, though.

The way I did it was to create a partial portage overlay. It has just one package in it. Hey, might as well learn this stuff. Create the directory /usr/local/portage/sys-apps/coreutils and copy the ebuild from the main portage tree into it. Also copy over the files directory and its contents from the the main portage tree. Apply the ebuild patch to the ebuild, and download the other patch into the files directory. Then run ebuild $fn manifest, where $fn is the name of the ebuild. This builds the manifest file so portage doesn't suspect your ebuilds of mischief. Now set up PORTDIR_OVERLAY in your /etc/make.conf to include your overlay directory (/usr/local/portage). At this point you should just be able to emerge coreutils and you'll get a version with no libselinux dependency. Now you can safely unmerge libselinux, run revdep-rebuild, and drink some delicous beer. I recommend a porter for this occasion, for obvious reasons. Then you can get rid of the overlay, because you shouldn't need it anymore.

If you don't want to mess with overlays you can always just download the straight source of coreutils, patch it up similarly to how Andreas did, and install that; you can just overwrite it with officially sanctioned coreutils whenever you get around to it, or not. However you do it, check your resulting binaries to be sure they don't need before unmerging it. Also make sure the binaries get installed to /bin and not /usr/local/bin so portage, etc. will find them. You knew that.