Sunday, December 14, 2008
2. But as much as I like doing this, I never would without having good maps and satellite images of... pretty much everywhere. I did set out in search of Heart of Chicago without a great idea of where it was, but that's practically in my back yard. I'm too risk averse to just set out west and hope. I live on Google Maps. It feels like cheating.
3. Wikipedia's description of the proof that the Cantor Set is uncountable is ridiculously intuitive. I think I've lost pretty much forgotten all my math terminology since I finished up with math classes pretty early in college, and I never even studied numerical topology. That is, I shouldn't have any advantages in understanding this over any of you guys. And not only do I understand that, but I have a better understanding of what numerical topology is, and what countability is, just from reading that one section. Kudos to whomever wrote it!
Thursday, December 4, 2008
- East-west streets
- Chicago grid-aligned numbered Streets and Places: Existing throughout the city and the suburbs south of Madison, the Streets align with grid addresses (i.e. 63rd St. is at 6300 S), and the Places are 50 address numbers, or about 110 yards, south (i.e. 21st Place, where I live, at 2150 S). Usually they're 8 to a mile, except, corresponding to the grid's distortion south of Madison, 12 in the first mile (Madison to Roosevelt), 10 in the second (Roosevelt to Cermak), and 9 in the third (Cermak to 31st).
- Presidential streets: Proceeding south in chronological order (though not including all presidents) between Washington Street and Roosevelt Road. Many of these extend quite far into the suburbs.
- Numbered streets in Elmhurst: First through third, proceeding north of the train tracks.
- Chicago grid-aligned numbered Avenues and Courts: These never to my knowledge appear within the city, but seem to appear closest to the city in Cicero and Berwyn (hence the 54th/Cermak L terminal). Avenues run on even-hundred blocks, Courts 50 numbers to the west. They come up also in Orland Park, and maybe other places in the south-west suburbs, up to at least 252nd. Always 8 to a mile.
- Alphabetized street names by mile west of the Indiana border: the idea was that streets in the first mile would start with 'A', the second mile with 'B' and so on. The idea came a little late to the game, though. Almost all north-south streets between Pulaski Rd. and Cicero Ave. in most places are 'K' streets, and many 'L' streets exist between Cicero and Central Ave. Up by Irving Park Road you see 'N's to Harlem, 'O's to Pacific, then 'P's until the grid comes to an abrupt halt. Plus the next bullet point, which is sort-of cheating. These are approximately by mile, because they're fixed to even miles on the grid, which doesn't hit the border on an even mile.
- Lettered Avenues east of the Indiana border: on the East Side, Avenue A along the border through Avenue O. Just over 16 to a mile.
- Numbered avenues in the west suburbs: extending west from 1st Ave. in Maywood, they seem to end at 25th if you're near the Ike or on Washington. But if you're farther north, on Lake or St. Charles, you see more, all the way up to 53rd just east of Wolf Road. There's even at least one Court just off of Lake.
- Numbered avenues in La Grange. These go from 6th to 10th extending east from La Grange Road. I don't know if there are 1st through 5th Aves. But, as there aren't, to my knowledge, 1st though 48th Avenues on the Chicago grid, this isn't really very troubling.
I'm sure there are more, but these are all the ones I know of, and including Elmhurst and La Grange ones is... kind of ridiculous anyway. Good night everyone!
Wednesday, December 3, 2008
1. My train home yesterday was the Holiday Train! Photo by Flickr user Yuan2003, available under this Creative Commons license.
2. Google maps no longer gives you directions from Boston to Paris telling you to swim across the Atlantic Ocean. For shame, Great Google, for shame.
3. I'm reading a book called Vas: an Opera in Flatland. It's unusual. I like it.
Friday, November 28, 2008
First thought: I ran cross-country in my schoolin' years, and from time to time people get knocked over at the start of races. It happened to me once in 7th grade, and it happened to Jim Mullaney at the State Meet his senior year. I've never heard of anyone being seriously injured in such a case. These shoppers must have been rabid.
That isn't to say the situations were equivalent. Cross races don't have 2000 runners, and the courses are designed to gradually funnel the wide stream of runners to a narrow one before the first turn. If the shoppers were pushing with enough force to break down the door the people at the front of the crowd probably had little choice but to keep going forward. And the ones at the back applying that pressure obviously didn't have any idea what was going on at the front.
But they broke down the door. There isn't an
em-y enough for that. And then how they reacted afterwards. You'd think that someone dying as a result of the crowd's insane greed would make people step back and get some perspective. Guess not.
Monday, November 24, 2008
One thing to take away from Joel Garreau about "edge cities" is that they're new both in construction and conception. For one thing, the individual built elements are fairly new. One consequence of this is that the wheat hasn't been separated from the chaff; these places may gain a history. Another is that the constructions, at every level, haven't had many opportunities yet for repair. Here I'm talking about Christopher Alexander's Timeless Way... There hasn't been as much time for buildings to be built to provide something observed to be missing in the neighborhood as there have been in older communities. This scales up to how neighborhoods are built and changed to improve the cities and regions they belong to, and down to the same idea for parts of buildings.
The second thing is probably more interesting, the new conception. We don't know how to think about suburban life. If we're going to separate wheat from chaff, we have to be able to identify each. We don't know as many ways to think about suburbs as we do about cities. And often we don't think at all. We build, we make things work, then maybe some people think occasionally. I think we should think more. It might help.
Glenbard East High School has a terribly ugly auditorium. I doubt anyone reading this has been there, so you'll have to trust me. I sat just about in the middle. The front wall is way too big for the stage, leaving a blank white wall stretching on each side. On the wall above the stage a cluster of dark loudspeakers is mounted, looking like a bow on top of a package. Along the side walls are some big circular decorative lights that seem off for a reason I can't identify (any architects reading?). The room is very wide (which is why it has such a large front wall), has no balcony, and the outer seating sections aren't angled in towards the stage. The overall feeling is of something that's been stretched.
The Village President had to mention the names of the people that worked to bring the Elmhurst Symphony to town to "bring some culture to Lombard", and the offices they held at various points in the process. We, the audience, applauded ourselves a few times. At one point during the performance we were given a play-by-play of the middle of A Midsummer Night's Dream by an over-amplified TV announcer. Can we pretend that was high postmodernism? Anyway, my dad can't sit still for very long without getting nerve pains in his hips. And he doesn't like Shakespeare.
Yeah, my dad doesn't like Shakespeare, especially watching it cold (as we were, because we weren't expecting them to put on a play in the middle of the concert). He can't make sense of the dialog as it flies by in a language with many of the same words as the one we speak, but used in different combinations. I think I do a little better than he does, but I understand where he's coming from. I think it's for him like watching a play in Spanish would be for me. My dad is a lawyer.
Friday, October 31, 2008
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
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
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
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.
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.
Tuesday, October 7, 2008
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.
DID YOU KNOW THAT THE FIREFOX SPELL CHECK DICTIONARY (VERSION 184.108.40.206 WITH THE ENGLISH DICTIONARY ONLY; NO, I DON'T KNOW ABOUT FIREFOX THREE, IT'S NOT STABLE IN PORTAGE YET) HAS BOTH "JOHN" AND "MCCAIN" IN IT BUT NEITHER "BARACK" NOR "OBAMA". SO MUCH FOR THE LIBERAL OPEN SOURCE BIAS, AMIRITE?!?
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
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
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/libselinux.so.1, 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 --library=libselinux.so.1 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 libselinux.so.1 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.
Friday, September 26, 2008
So it isn't saying much to say that tonight's debate was the best-looking Presidential debate I've seen. Campaigns are highly controlled and scripted, and anything surprising coming out in a debate would be considered a mistake for either debater. Other than McCain's spending freeze comment, which Obama effectively dismissed, I didn't hear anything new, and I don't follow the minutiae of political campaigns (I'd lose my mind). The spending freeze comment wasn't unpredictable, even, given his view that the way government spends money is a moral issue (a lot could be said about this, but not here). Both candidates kept to the script and neither pushed the other. So with no new material and no attempts at debates of substance there were plenty of attacks. Plenty of attempts to take previous statements out of context or to portray an opponent's position as unreasonable, unwise, dangerous.
The thing that made this debate stand up over the last couple rounds of them is that both of these candidates can deliver a zinger without smirking. Both can and do make attacks without dwelling on them excessively, and they don't take risks by improvising attacks. They punch but keep their gloves on and their hands up. Early on McCain twice referred to the "fiscal" crisis; the subtext is that it's a mere issue of balance keeping, the result of isolated mistakes and not of systemic problems. That's a phrasing that a more aggressive candidate might have attacked specifically (I can see Gore or Kerry dwelling on something like that), but Obama went back to the old "fundamentally sound" comment and didn't connect it to the language he'd just heard. As a result they cover a lot of ground, even if it is ground well-covered. At the very least, I don't think anyone's threatening to move to Canada over the idea of either of these two holding the presidency.
So, of course, the next debate is between Sarah Palin and Joe Biden. I don't expect either to be so cautious or so civil. Palin just held her first mini-press conference yesterday, and didn't go beyond some really general statements about 9/11 (to be fair, she was outside ground-zero and asked questions about it). The worst case is that she'll debate like Bush, with hefty doses of obstruction and pettiness. The best case is probably that she's being coached to debate like Bush, but is sharper. Either way, I don't see Biden responding to such tactics with the plodding sobriety of Kerry or Gore. Mud will fly. I'm bringing popcorn and beer.
Friday, September 19, 2008
Other important virtues included the curvy, black frame, which was really stylish, and the low height of the top tube, which allowed me to perform quick (and stylish) dismounts while transferring my rolling speed into walking speed. These dismounts were very useful for sniping parking spots at crowded campus racks. All told, I looked so damn good riding this bike that the frat boys had to make fun of me. No quick-release junk meant I didn't have to worry as much about theft (the quick-release seat is the most laughably stupid bike feature I've ever seen).
There was a bike I frequently saw on the racks outside Everitt Lab that had many of the same qualities, but not the curvy frame. It had thick, straight bars and a bright yellow and black paint job. I always thought of it as the cruiser's modern twin. On the front was a big Schwinn badge and on the top tube, in stencil font, "Heavy Duti".
Today I took the L to work and saw the same kind of bike chained up in the Clinton station. Of course, I thought of this bike I saw in college and wondered when they were made. It turns out Schwinn has made some variant of this bike at least as far back as the 60s.
Now cruisers are cool again, but with aluminum frames, derailers, rim brakes and quick-release wheels what's the point? Now it requires all the maintenance and care of a road bike but it's slow. But the Heavy Duti, from what I can tell, is still built to be an urban tank.
Now that's not quite the right formula for someone like me. I like to go on long rides out of the city and my road bike is great for that. I don't have space for two bikes, so I need one that can do everything. My current bike isn't the right formula either. Its aluminum frame and carbon fork are light, but the weight of my body and the stuff I carry overwhelms the frame weight. Meanwhile aluminum and carbon fiber have really awful failure modes. I wish I'd understood those things back when I bought my bike. Also, I wish I'd realized that I wasn't actually going to race it.
But because I went in knowing basically nothing about cycling I didn't know what to think. I got the lightest, most race-oriented bike I could afford. Which brings me back to the title of this post. The Timeless Way of Building, by Christopher Alexander, is one of the coolest books I've read. Because the author realizes just this problem, that people have become so overspecialized in their knowledge and skills that they've lost the ability to make their homes, neighborhoods and cities into the kinds of places that really fit their needs. Instead they serve the goals of experts in the field. He is an architect and mostly talks about his ideas in terms of building, but he and many others recognize that his ideas apply in just about any field.
They've been used especially in computer programming, and have also been misused. He argues against modularity, and I can see from his examples of the failures of modular buildings the same failures in attempts at modular programming: a lot of times the best part you can find just isn't quite right for the problem you're trying to solve. But some people have taken the idea of "software patterns" (from Alexander's "pattern languages") and used them to justify the worst in object-oriented modular excess. In order to avoid rewriting several 10-line functions (or even to avoid the possibility of having to do so in the future) they'll invent byzantine inheritance structures. Force dissimilar objects to have the same interfaces. If software patterns are really to follow pattern languages, to think in Perl terms, we need less CPAN and more PerlMonks.
I guess on a larger scale than programming practices you could say that tyranny of experts is the big problem with Windows Vista. It's the most advanced operating system ever made in many ways that only really matter to programmers at Microsoft. Linux-based OSes, of course, fall into this trap big-time, although Linux can mean almost anything, and Linux-based desktop OS projects have a different conception of their users than Apple or MS. Even so, all the big desktops are pushing compositing window managers with 3d acceleration. The compositing thing is a nicer abstraction for application programmers who in an ideal world could just treat their windows as canvases and not worry about redraws, but I'm pretty sure Plan 9 had that. The 3d-accelerated junk is, well, junk. In Microsoft's case, they tried so hard to make obviously-transparent window decorations that they made the window with keyboard focus really hard to distinguish from the other windows (particularly bad on multi-monitor systems). Hello! That's pretty much the only real use of window decorations; it's also the sort of thing that 3d window managers promise but don't deliver: that the illusion of depth will allow you to intuitively understand layering. Aero Glass looks like it was designed by people trying to make the coolest decorations, not people trying to come up with decorations for the most useful windowing system. By people that spend all day staring at the decorations instead of working in a system with them. I bet Ubuntu's and MacOS's defaults are just as bad, but I haven't used either enough to know.
Windows actually got worse last time it changed, too. Windows 95 gave you a pretty simple way to get a practically limitless array of color schemes, including several that were pre-selected for not being totally garish. Some of these presets illustrated why the flexibility was useful: high-contrast schemes in dark and light varieties, large- and small-text schemes, schemes for morning and night. With XP's "bluecurve" styling they cut it back to three choices, none catering to these practical use cases. The experts have chosen your colors for you, and while none of them are actively bad, none of them suit my needs as well as an old-school ugly theme with a really bright color for the foreground window border.
Meanwhile, FVWM, with its ugly old MWM-style window decorations, knocks it out of the park by default. There's no mistaking the window with the hot-pink border for a background window. But you can change it to anything you want (including nothing at all) if you're not afraid of a text editor. The flexibility makes my brain bleed. It's not as slick as the Windows 95 themer, but it allows me to build my ideal UI based on my experience. It couldn't be that slick because there are just too many choices to list in a GUI.
And that brings us back to do, do, do, do, do! Ok, I'm done!
Sunday, September 14, 2008
What I wind up doing a lot of is writing about computer stuff I encounter all the time, and what it means in a larger context, or I feel about the whole enterprise. Even though most of y'all reading this aren't programmers according to your college degrees many of you write programs and all of you use computers (many great programmers don't have degrees in a related field; this by necessity includes all computing pioneers). So I like to think about what computers do, and what we think they do but they don't.
I think these questions apply to everyone and I think they can be discussed by everyone. Probably not everyone really cares that much, and that's cool. I'm just saying it's not above anyone. Because I have some training and experience in computing I know a fair amount of its history and current happenings. I like to try to share them and de-mystify them, but without turning it into a tutorial that would be boring for someone like me to read (I usually post things that I wouldn't have thought of a week before). I just realized in my last post that I tried to explain HTML's hierarchical nature by referring to Wheel of Fortune, the Lolcat Bible, and a Unix shell command that's a somewhat common signature on geeky message boards; I also assumed knowledge of common old-school HTML tags. Maybe I just should have said, "You can't do Venn Diagrams."
Comments? I probably won't be offended by anything you might say...
I want to be really clear what this all means. HTML is commonly thought of as a Markup Language, a way to communicate to a computer some useful facts about a body of text. In HTML, the markup, that is, the elements that aren't text data but are metadata, come in the form of tags. These tags can enclose text. Some of the tags lay out the structure of the document (i.e.
<h1>, for a top-level section heading) or give some other semantic information about the enclosed text (i.e.
<samp>, for sample output from a computer program). Other tags tell how the author wants the text to be presented.
<em>, for text that should be emphasized, and
<i> for text that should be italicized; usually a web browser presents these the same way, but they mean different things. The Internet Police don't want you using
<i> anymore, and HTML doesn't have tags that cover all the reasons that an author might specifically want something italicized, so people (like the people that wrote Blogger) write stupid shit like
That's not the whole story on italics, even. People that want to write really “good” web pages will come up with classes of text they always want italicized (say, names of dinosaurs, or of planets), mark them up as instances of these classes (like,
Everyone bitched and moaned when <span class="planet-name">Pluto</span> was banished from the Brotherhood of Planets, but where were all they when the majestic <span class="dino-name">Brontosaurus</span> had its name reduced to the utterly unpoetic <span class="dino-name">Apatosaurus</span>?), and define a rule in a stylesheet that text belonging to those classes should be italicized (I don't remember how to do this, it's been a while). And then anyone that wanted to find all the planet and dinosaur names in your document could do so easily by writing a simple program looking for these classes. This last part is the promise of the Semantic Web: that the content of the web will be understandable by humans and computers alike.
The problem, though, is that HTML marks up text. That's not exactly true. I mentioned earlier that HTML is commonly thought of as a markup language; it's technically a hierarchical container language. That's because sections of text defined by tags are only allowed to overlap heirarchically. That is, if you were writing a “Before and After” puzzle for Geek Wheel of Fortune (in which you can use vowels for free but have to buy shell control characters) you couldn't illustrate the premise like
<i>If you duz good, you can has a cookie from teh Life Tree in teh garden of teh ceiling <b>cat</i> /dev/mem | strings | grep -i llama</b>. So HTML contains text, hierarchically. Language is not really hierarchical. You can sort of make it appear that way by diagramming sentences, but even that doesn't really represent all the relationships between words in a sentence. It's an awfully reductionist way of looking at language that doesn't do justice to its subtleties, nor to how it evolves. So HTML does a pretty good job of organizing the things that can be organized hierarchically, and leaves the rest to the human ability to process language. Otherwise we'd have this:
<p><sentence type="command"><subject implied="yes">you</subject><verb>see</verb><object direct="yes"><noun id="1">Jane</noun><verb performer="1">run</verb></object></sentence><sentence><verb id="2">run</verb><subject>Jane</subject><restate id="2" /></sentence></p>. And if that hurts your head, view the source of it and see the shit I had to write to express an HTML-like language in HTML. I need beer.
<sentence><subject>Al</subject><verb>drink</verb><object with-article="indefinite" plural="yes">beer</object></sentence>
My point is that as long as our Brontosaur-loving friend writes his rants in a natural human language computers will never understand his pleas. They'll go right on renaming dinosaurs, reclassifying planets, and destroying the game of baseball. And that he'll never get anything written in a computer-friendly language, especially if he has to spell out all the relationships between the words and the concepts they refer to, which he will, because computers aren't any good at figuring them out (there are attempts to make computer-friendly language models that suck much less than my token attempt; one is predictably named Babel, and it doesn't appear to represent non-hierarchical word representations at all). His clever use of stylesheets and classes comes out to little more than a very indirect way to say
<i> (yes, I know there are theoretically advantages in presentation flexibility and maintainability; I submit that they just about never matter in the case where you're making up your own classes).
Now there's XML. XML is a container language similar to HTML, aimed at representing hierarchical data. My language-modeling language up there is basically XML, though I'd need to flesh out a schema (a definition of the possible elements and how they can relate) for the data to be usable in computer programs. Because I used a lot of well-known grammatical terms (and probably misused some) a human could figure out much of the schema just from reading those simple examples. There seems to be a bit of an XML dream, related to the promise of the semantic web. People get all excited when they see the flexibility of XML and think that it could model all information some day, when computers have the capacity. But it's not that simple. Can the computer program deal with the ambiguity of the same information arriving in different forms and from different sources? Only if the programmer specifically knows about the ambiguity and writes code to handle it. So in reality XML is just used as a way to pass arbitrary hierarchical data around the Internet, much like ASCII is used to pass sequential data around in Unix programs, especially shells. Both present plenty of flexibility and transparency to make up for their inefficiency compared to more specialized data formats, but neither can describe the universe. Only Nil can do that (also see here for an example of a Nil paradox).
So as far as my little program went, I tried to use the hierarchy of the HTML document to interpret its contents (using Perl's HTML::TreeBuilder). It didn't work very well. An HTML document expressing the same information can be structured in a staggering number of different ways. But in order to make sense to its readers it has to present its text in a natural order. So it turned out to be fairly easy to put together a much more robust version of the program by scanning through it with HTML::Parser. And it's faster and uses less memory that way, too (I don't expect that the performance difference will matter, but it's a good example of an optimization coming from thinking about a problem in a better way). Instead of viewing the documents as structures of containers holding text, I viewed them as text with some helpful tags giving hints to their structure. Human sequential understanding, 1; computer hierarchical understanding, 0.
Monday, September 8, 2008
Next we compare the total of traffic fatalities for the Monday immediately following the DST shift with the pooled frequency of accidents for the previous and following Mondays. The spring DST shift (where one hour of sleep is lost) shows the expected increase in accidents with relative risk (RR) of 1.17 [95% CI=1.07/1.29, p2(1)=10.83, p < 0.001]. This 17 percent increase is larger than that observed in previous studies. The same analysis conducted for the fall DST shift, however, produces an insignificant reduction in traffic deaths [RR=0.97, 95% CI=0.89/1.07, p2(1)=0.29, ns.].
However, recent research indicates that pedestrian fatalities from cars soar at 6:00 p.m. during the weeks after clocks are set back in the fall. Walkers are three times as likely to be hit and killed by cars right after the switch than in the month before DST ends. Researchers from Carnegie Mellon University, who found a 186 percent jump in the risk of being killed by a car for every mile walked, speculate that drivers go through an adjustment period when dusk arrives earlier. Although the risk drops in the morning, because there are fewer pedestrians at 6:00 a.m., the lives saved in the morning don’t offset those lost in the evening.
So overall traffic accidents increase after the spring switch because the cagers are asleep, and pedestrian fatalities increase after the fall switch because the gradual shortening of daylight is interrupted, plunging their commute suddenly into darkness. I think I'd rather we not do any of this switching. Since we're now on DST for almost two-thirds of the year, why not use it all the time?
The funny thing is that people in my generation seem to waste morning sunlight in bed and keep our lights on late into the night. I'm certainly guilty of it now, though that hasn't always been true. In middle school I practiced clarinet early in the morning, before before-school band rehearsals. One summer I wrote music before morning cross-country practice. In high school I woke up early one winter, prompted by Jason Zencka and a Thoreau quotation. I think most of those days I went running. Once I hit college, though, I never managed to get my ass out of bed in time to do much more than take a shower and shovel down breakfast (if that) before class. That has certainly held true since graduation.
When I moved to my current apartment in June I took the opportunity to shake up my routine a bit. I waste less time on the Internet than I did before, and have been able to read more books. I still waste too much time on the Internet, and most of it is late at night. I think I'm going to try to get to bed earlier, wake up earlier, and use the morning sunlight to run. And hopefully I can use this shake-up to really cut time-wastage. We'll see.
Saturday, September 6, 2008
I forgot to cut my hair for a year, but that's no ...
OH RIGHT, my distaste for Lincoln Park has again compounded. Lincoln-Park-the-neighborhood, that is, which contains De Paul University's main campus, about a third of Lincoln-Park-the-park (which is about four miles long north-to-south), the zoo which is in that part of the park, and lots of other stuff. I have told you nothing about the place, though.
I've started reading Christopher Alexander's The Timeless Way of Building and will probably go on to read A Pattern Language (mostly to see if it can help me become less of a reductionist in my computer programming, but that's a story for another day). As far as I've read he's discussed how places cannot be separated from the patterns of events that occur there, and how physical elements of a place are really patterns of relationships.
One pattern that repeats itself in Lincoln Park is the bar devoted to Big Ten college sports. Related to this, during football season you'll see packs of young people wearing Ohio State and Michigan jerseys walking in sidewalk blockage-maximizing formations taunting each other. I'm not sure why this is such a thing in Lincoln Park; is it like that near Northwestern? U of C? I don't think it is around Loyola or UIC.
Supposedly not long ago Lincoln Park was, outside of the campus, a poor neighborhood. It's pretty swank at the moment. So the typical juke-n-puke bars are decorated like Disney fascimilies of Irish pubs or other little neighborhood joints. The guys at Forgotten Chicago call this suburbanification, but I think that's just heaping more blame on the archetypal suburb for the banality of hyper-specialization, which is most prevalent in wealthy areas, which happened to be largely suburban in the late 20th Century in America, but didn't have to be. It looks like suburban styles infiltrating gentrifying city areas, but that's not quite accurate. Chains that grew up in the city aren't any less suffocating (Starbucks started near (historic!) Pike Place Market in Seattle, and even plays the same music at all its locations, except for the drive-through only ones; at one of these distinctly suburban locations the workers chose Japanese heavy metal on the day when all the other stores were trading hype with Paul McCartney's then-new album). For Chambanans, think It's Brothers!, or really any of the new Green Street construction. Say what you will about the Daniel Street bars, they are not ashamed to show themselves as the vulgar, hulking dives they are. When they go down... well, I won't say anything rash about civilization dying, because human civilization is pretty robust to losses of dignity. But it will be sad. Yes, I'd be sad if Kam's closed, even though I never set foot in the place (I never set foot in most of the Green Street stores that were replaced by upscale chain retail; I don't buy stuff when I can avoid it, so it's no surprise perhaps that businesses that survive appeal to people that aren't like me at all).
Short version: I went out to the batting cages last night to blow off some steam, then met some co-workers at a bar in Lincoln Park afterwards, and now I have more steam than before. More to this that I choose to self-censor. Inquire within if ya must.
Monday, September 1, 2008
And the full quote that I took apart for the title:
A copy of a warrant at one house said the police were authorized to look for a laundry list of items, including fire bombs, Molotov cocktails, brake fluid, photographs and maps of St. Paul, paint, computers and camera equipment, and documents and other communications.
Photographs and maps of St. Paul.
People say we're living in something called the "Information Age". That doesn't mean that technology, liberty, and free flow of information change anything about our physical relationship with the world (the blogger linked was surprised to hear this; amusing), but it does mean that people have and can get information much more easily than ever before. Also misinformation and non-information, but I don't think those things are as important. It means that having maps and photos is pretty irrelevant. Public information about where stuff is and what it looks like is public with the force of two of our scariest big companies. Private information about whatever crazy shit you're planning can be hidden, at least for a while (it's harder and not as well funded as making information public). Ultimately raiding people's houses like this will be not only an abuse of police power but completely pointless. The reaction from governments has largely been to turn up the heat; as searches become harder to perform remove restrictions and expand police power. Try to outlaw encryption or force people to give up their passphrases (as I understand it there's a question whether computer files can be treated like physical property that can be seized or whether giving up your keys is testifying against yourself, which can't be forced). Ultimately trying to find the information will be futile anyway.
So quit the bullshit and do security right. Not that the geek Cult of Schneier is totally rational, but he cares about results over theatre (yeah, the feeling of security is important, too, but people can be educated about the realities, and they increasingly can get the information necessary to see through the illusions), and cares about living in a free society.
Sunday, August 24, 2008
Either that, or he makes them sound a whole hell of a lot more interesting than they really are.
I was going to say I didn't see a single person outside of a car for the entire stretch on Meacham Road (from Beisterfield to Algonquin), though car traffic was very heavy. But I did see a couple people walking near the Schaumberg convention center. Which is on Thoreau Drive.
Weird note: there are lots of roads in the suburbs, but I can't think of one in Chicago. Lots of streets (63rd, State), avenues (the Chicago-grid numbered avenues, as in, "This is a Pink Line train to 54th and Cermak", are actually in Cicero, and the numbered avenues you see on the Eisenhower are in various west-suburban towns, but Ashland and Madison are fine Chicago avenues; so is Chicago Avenue, for that matter), courts (the numbered courts, like the avenues, are in Cicero; McClurg is a Chicago court) places (I live on one, 21st), boulevards (a system of them, in fact; my favorite part of it in some respects is the weird section where it follows Western to California), a couple parkways (Diversey is one), some terraces (Junior Terrace in Uptown) Drives (these tend to be distinctive; King, Lake Shore, and many continuations or fragments of other streets inside of parks), even a plaisance (the Midway). But roads? Actually, while looking at a map for drives, I happened to look in Jackson Park, which I remembered having a 63rd Drive, and saw Marquette Drive. I checked what it was named outside of the park. Marquette Road. I'll probably spend all night looking at maps for more roads, now. I'm guessing there will be some on the far northwest side.
Second weird note (and more important): it occurred to me while I was somewhere shortly east of the Tri-State, still quite far north, and really tired, that the place I was was connected to the building I live in by a network of pavement. And that almost every place in North America is connected to almost every other place in the same way. Ain't it a hoot?
EDIT: OK, so for avenues I should have mentioned Fifth Avenue, which might be a remnant of the old, confusing Chicago address grids (I'll have to check if Forgotten Chicago has any info; some old buildings in Chicago still have both address numbers on them, often in cases where the old number is in stained glass). Fifth Avenue currently runs north-east from Cicero Ave. between Roosevelt and the Eisenhower to a cul-de-sac just short of Madison and California (it's broken up by the Ike, though). I never knew it existed until I ran there once. One of the few places I've run where I felt genuinely unsafe, and would not return to at any time of day. Also, as long as we're on the west side, Pulaski is a road, and a very long and major one at that. So my road count is at two.
Wednesday, August 20, 2008
- Has written a 634-line shell script (including its many necessary comments and lines of "help!" output), with a simple but unusual recursive structure, that performs the main computation for a daemon (which was written in Perl).
Tuesday, August 19, 2008
Friday, August 15, 2008
I stumbled with my bike out the front door and heard smalltrain making smalltrain noises. I've always been something of a smalltrain skeptic and thought that the train noises were more likely to come from the tracks on the embankment north of 18th, or some other, less run-down set of tracks in the industrial area near the Chicago Sanitary and Ship Canal (local euphemism for LOL @ St. Louis, were in ur river sendin u sewage... and then they sued us). But these noises were definitely close and definitely coming from the south. It had to be smalltrain.
I saw smalltrain looking down Paulina as I pulled onto Cermak, and got to the corner of Ashand, Cermak and Blue Island just after it. There aren't gates along smalltrain's tracks, and I didn't notice the crossing signs flashing or ringing (though they may have been drowned out by the sun and smalltrain's frequent horn outbursts). Either way, traffic on Ashland wasn't stopping for it. So smalltrain had to wait for the light at Ashland. It proceeded with the Cermak traffic's green. I tried to ride slowly to not get far ahead of smalltrain. I just wanted to see if it would actually travel along the overgrown and under-maintained track on Cermak. I could hardly help but pull away (it's hard to watch a train while biking on a major street without being a severe nuisance). Then when I reached Loomis I noticed that smalltrain was going back the other direction. I carefully looked at my surroundings, recklessly pulled a u-turn, and tried to chase smalltrain back west. But its engine was retreating past Ashland, down the better-hidden tracks along Blue Island. And following it would have meant going the exact opposite direction as going to work. So I abandoned smalltrain for today.
EDIT: also, I win. And smalltrain's engine is blue, in case you were wondering.
Thursday, August 14, 2008
So one of the things I ranted on about was the new Batman flick. And I managed to do something I almost never do, which is communicate my thoughts effectively. Maybe if I'm lucky I can replicate that here. This is the big thing that disturbed me about The Dark Knight: its citizens of Gotham couldn't handle the truth. They needed to be kept in the dark and even lied to repeatedly by Batman and the police conspiracy surrounding him, an idea that went unquestioned by just about everyone.
This is not an art-house picture with a self-selected audience of intellectuals that would consider itself different (probably foolishly) from the major populace portrayed. It's Batman. The audience is, very clearly, the population of Gotham. And the filmmakers tell that audience a story, but tell them they couldn't hear the story if they were the citizens of Gotham. In that case they'd need to be lied to.
After some thought I've backed down a bit on some of my other critiques. There are lots of elements that appear to be allegories of the War on Terror; there are others that I read as anti-intellectual. These things are a little questionable: it may be that Bush's rhetoric about the War on Terror has always resembled the Batman story; the others I could just be over-reading (or mis-reading). There's the Joker's association of anarchy with random destruction, which is unfortunate, but predictable, and only comes up once.
The film's overall attitude, though, clearly seemed to be summed up by the line, "Sometimes the truth isn't good enough. Sometimes people deserve more. Sometimes people need to have their faith rewarded." That's the main issue, and I think it's a pretty crappy message to leave people with. It's not even that the people are to have their faith in Batman (an image-obsessed, opaque, deceptive embezzler, but who at least is the Good Guy) rewarded, but in the fallen Harvey Dent. It's the suggestion that Evil is too great to be confronted honestly. That the nature of our problems is evil in the first place.
Monday, August 11, 2008
Now if you can manage to get through several minutes of these guys making idiots of themselves, you'll see that they took a 15-minute break from shoveling (artfully sliced) penises into their mouths to discuss the ethics of eating dog penis. Eventually they decided that eating dog penis is Not OK for them.
Hell, congratulations, eating dog penis is Not OK for me either. And they seemed to have a moment there. How often does do mass media folk consult their ethics and then talk about the results (however incoherently)? The ending, even, is a cliffhanger: did they go back in at all? What did they say — as many pains as they took to clumsily explain cultural relativism to their viewers, how would they explain it to the restaurateurs, with their more personal stake in the matter, and their position as Yet Another Representative Of China To The West In These Times?
But I'm, you know, a vegetarian (who embraces the hypocrisy of being vegetarian but not vegan in the same way that Joel Garreau's supposed Americans embrace the contradiction of building "cities in gardens", except I think I think I'm a lot stupider than they think they are, they seem to think (I think) that they're finding answers and shit literally by building and sprawling and driving a lot, and not by doing the things they do those things to do -- but this is outside the scope of the discussion, back to penis talk). These guys are emphatically not — they seem to, in fact, get even more of a macho kick from eating an animal's penis than they would even from generally eating animal flesh (surely a tough and manly thing to do in itself).
And the dog penis is the only one with a bone inside.
And nobody else has them.
These are going to be the best Olympics ever. All three of 'em.
(EDIT: shortly after finishing I realized this post needed more capitalization and pretentious pluralization, the scare-quotes of my Internet generation)
Sunday, August 10, 2008
So this led me to screw around finding what else X can autodetect now. Turns out you need almost nothing in your xorg.conf these days; actually I think that's been true for a while, even as far behind the times as I am, I just haven't bothered to mess with it until more recently. Specifically I started getting into xkb.
It turns out the version of xorg-server that allows one to set keyboard hotplug rules in a /etc/hal/fdi/policy/... file is still masked, but for some stupid reason, even though my keyboard worked fine, I kept messing with the settings. You see, the keyboard is a Sun Unix keyboard. It looks like this (it's probably cut off by the sidebar, but you can click on it to see it alone!):
I'm not sure if the guys that wrote Unix back in the 70s would be proud, amused, or bemused to hear people say stuff like this, but it certainly is often said that Unix is more of an ideal than an operating system. Implemented by many, never perfectly, probably getting worse with every new feature, but occasionally making feeble gestures towards perfection. Which is sort of why a bunch of those dudes plus several others wrote Plan 9, although those guys are real engineers and not pretentious dweebs that can program a little (see Dimond, Al), so they did it more for real technical reasons. At least that's what they think. Anyway, Unix being an ideal and all, it's been true for a damn long time that when you plug a Real Unix Keyboard into a computer running x.org, the major implementation of X, the major Unixy graphical system, X just goes on thinking it's a Windows keyboard. Alt Graph, Compose, Meta (the ones with diamonds on them)? Those keys have real meanings to Unix. And X always thought they were the Alt, Menu, and Windows keys, respectively.
And I could tell X to treat the right-side Alt as Alt Graph, the Windows keys as Meta, and the Menu key as Compose. Lots of people do, even people with normal Windows keyboards, so it's really easy to do. But I care what X thinks about the keyboard attached to it. Yes, it's important to me that my graphics subsystem knows it's running on a computer with a Real Unix Keyboard plugged into it. No, I do not have a girlfriend. If I did have a girlfriend I would care what she thought about keyboards; mine, hers, and just general thoughts. But I would not configure her user profile on my box to switch the Control and Caps Lock keys to the vulgar Windows-keyboard positions. I would do anything for love, but I won't do that.
The way you tell X what sort of keyboard you have is with xkb. It has a somewhat-complicated configuration system that's documented fairly inconsistently, even for a piece of software. It's actually hard to set xkb up the Right Way; most people are content when it works. I did finally get it working and Right. Mostly. Two flaws. The blank key up where Esc is on most keyboards gives the same keycode as the Props key (this is a known problem on many keyboards related to scancode-keycode translation and the fix is using the evdev driver, which is an trial for another day). And there's a "Compose" LED that doesn't light up, which I suspect is either a problem in kbd's USB HID support which will be fixed when I switch over to evdev, or a limitation in Linux's USB HID Keyboard support, which would be most disappointing. Close enough for now. I decided to look around to see if I could submit my changes upstream so other people with the same desires as me could have an easier time of it and found that someone had beat me to it, in the most recent release of xkeyboard-config. Most recent unmasked version in Portage is two versions back. Grumble. Whoever did it, though, made almost the exact same changes I did. The same feeble gestures.
So anyway, after all that I went running. About a half-mile from the end, at Cermak and Racine, I stopped to stretch. The sky was very clear over Pilsen, and immediately down Cermak there aren't really many tall buildings, just low-slung factories and warehouses. So I could see the Dan Ryan in perfect clarity, hovering over everything a half-mile away, and the green overhead sign probably announcing the Stevenson; this-a-way to Joliet, St. Louis, New Orleans, that-a-way to Lake Shore Drive. And though there were no clouds overhead there were low clouds over Lake Michigan, which in the distance looked like mountains. The whole scene reminded me of San José. And reminded me that although I have now rode a century, I still have to ride the century over Mt. Hamilton (or mountain of equal or greater value).
Wednesday, July 30, 2008
I finished reading The Death and Life of Great American Cities today. In the last chapter is the following sentence (and even though it's not long enough to warrant a <blockquote> I'm using one anyway):
Most sentimental ideas imply, at bottom, a deep if unacknowledged disrespect.
For win and awesome. Obviously this sentence exists in some context, but I'm not tellin' what it is. You'll have to read the book.
And everyone should read this book. Especially if you're American, and especially if you live in a big city. Now much of this book is a critique of particular urban planning theories popular in the early part of the 20th century that have fallen out of favor. So if you read it you might want to get some background on Wikipedia first. Actually you probably don't need much more than that to understand what Jacobs is talking about. Although I might get around to reading some works belonging to the movements she criticizes at some point. At any rate, some of her ideas about cities have given me a new lens through which to look at Chicago.
Tuesday, July 29, 2008
la ville: Hey, what's the book?
la ville: What are you reading?
al: Book called The Death and Life of Great American Cities.
la ville: What's that about?
al: It's about... urban planning. (this was not really a very good answer but I needed to say something before the pause became really unreasonable
la ville: What's that?
al: Ways that governments and other bodies try to shape development in cities, and the real effects that they have.
la ville: Oh. So you really come to a park to read a book?
la ville: That's pretty weird, man.
la ville: I mean, I guess I read some books when I was locked up. Not much else to do there. But in a park?
al: *Knocks on window of red Ford SUV well back in a column of cars stopped at the stoplight on northbound Halsted at Division*
la ville: *Startled, spins her head around to see Al. Looks positively terrified. Has a god damn dog in her god damn lap.
al: *Makes window-cranking gesture with his right hand. How anachronistic. Al's car still has crank-windows, but Al's car isn't here. Al's bike is here. It has no windows.*
la ville: *Fumbles nervously with some switches. In time gets the passenger window cracked open.*
al: You needed to give me more clearance on that bridge back there. Those bridges are tough to ride on, and we need proper space.
la ville: I'm sorry, I didn't see you.
*The light turns green at this point. Damn shame, as Al was about to get right pissed off. Didn't see me? If that's all the attention you're going to pay to the road when you're driving, you can take your car back to the suburbs where it belongs and GET OFF MY STREETS! Yes, they belong to me as much as anyone. More certainly than they belong to anyone that doesn't pay attention to the road.*
EDITORIAL RANT: The fact that this woman was visibly more scared of me knocking on her window in broad daylight on a busy street than I was at how close she came when she passed me can mean only one of the following two things, or both. First, that she is irrationally afraid of weird people in the city (it's kind of unfortunate that penetrating automotive isolation is considered so weird, isn't it?) and should follow her car back to the suburbs, where she won't necessarily be safer but will feel that way. Second, that I am way too desensitized to irresponsible cager behavior in the great city of Chicago and need to get away. In case the second is true, I am biking to Urbana on Thursday and back on Sunday.
EDITORIAL RANT #2: I have a sort-of new idea. Which is that when the cagers get out of hand, we should meow at them. You know, cat noises. Some jerk just honk at you for pulling out into the lane to avoid an obstacle, even though you signaled, had plenty of room behind, and got back right promptly? Don't anger 'im with a flip of the bird. Confuse 'im with a long, plaintive meeoooooooow! In fact, I should have meowed at red SUV woman today. Pawed at her window and then started meowing.
(Apologies to Claude Debussy. This is not the first time I've named a blog post after the final movement of La Mer.)
EDIT: it's come to my attention that not everyone knows what "cager" means. It means this. I like "cager" because "motorist" sounds like some starry-eyed motherfucker in a Model T, bouncing potholes on a dirt road on the way from McConnelsville, Ohio to New York City to make his fortune (it's by this point the afternoon of Wednesday, October 30, 1929; this guy hasn't exactly been keeping up with the papers while on his trip). Also because "motorist" includes scooter and motorcycle folk, who generally act quite differently than cagers on the road, for obvious reasons.
Wednesday, July 23, 2008
1. This guy took the wrong branch of the Green Line going to Pitchfork. If he is not from Chicago, well... understandable. We have lots of long streets resulting in many identically-named L stops. Three Ashland stops, three 35th Street stops, three Halsted stops... five Western stops (back when the Douglas branch was part of the Blue Line there was one on each of the Blue Line's three branches).
If this guy lives in Chicago, shame on him. He should know where the Green Line goes, and that a train going to 63rd is not going to take you to the west loop unless you're starting way out on the west side. And I'm guessing he picked up the train in the loop as it was going east, which really should have been a dead giveaway to a Chicagoan, because Chicagoans should have their bearings about them when on Loop Elevated platforms (it's not hard, as they're above ground and you don't just cross the tracks without noticing). I'm sure there are lots of people that live on the north side that would be lost anywhere in the city south of Roosevelt. Which is sad.
Also, "You're lucky you didn't come here after dark, or you all would've been jacked." OK. Well, he did say they were all hipsters, so maybe they would have.
2. I read a lot into, and internalize, coincidences. It's not that they happen for non-random reasons, but they bring about non-random thought. I tend not to think Freudian slips are what they're cracked up to be. People make mistakes in speech, occasionally they're ironic or funny, and that's it.
After reading some of Jane Jacobs' opinions about what makes effective neighborhoods work in The Death and Life of Great American Cities, I went out on my front porch putting on my shoes to go running. One thing she says that makes a lot of sense is that effective city neighborhoods need stable residents. People that stay there as their lives change, and as the neighborhood changes. Not a constant flow of people in and out who are all statistically interchangeable. That's really hard to achieve; she writes that few neighborhoods do, and I would guess that fifty-seven years later even fewer do today. It seems to be fairly true of Pilsen now, though things are changing. I moved to Pilsen in June. I vaguely want to live in Illinois for the rest of my life, though I don't know that I always want to live in Chicago, let alone in one particular place in the city; I'm not there yet, and I'm not saying I should or shouldn't be, but I'm not. Living in Pilsen, walking the streets here, and especially running to the south side, has renewed my love for Chicago.
As I tied my shoes a woman walked by slowly. She looked up at me on the porch and I nodded and said, "Good evening." She replied, "Good bye."
Tuesday, July 22, 2008
Today one of my co-workers mentioned he was trying to find the second-best solution to a problem. The problem was basically that he needed to write and run a daemon under Windows. Computer people, prepare to be bored, because you're not in the majority reading this blog. I'm going to explain some stuff. Most programs you run quit when you terminate your session. On Windows that means logging out (on Unix programs belong to a controlling process, usually a shell, which acts as the session). But sometimes you want a program to keep running after you log off. There could be advantages to this in terms of resource use and security. In our case, only one session is allowed on our Windows server machine at a time (don't ask me about the licensing, I have no idea), so we want various of our programs to run without anyone logged in to the machine to keep it open in case an administrator needs to log in.
Under Unix there is a "magical incantation" required of a program to "daemonize". The program makes a couple of calls into the system and comes out detached from its controlling shell. Now the user can log off the shell and the daemon remains. On Windows daemons are given the more toolish name "Windows Services" and apparently have to be registered with the system in a more involved way. I don't exactly know what this way is, but it's obviously something that's documented and known, as many people have written Windows Services over the last decade or so using all kinds of different tools. The programs also have to be able to follow general instructions given to them by the system (start, stop, and the like). I've never written a Windows Service, but if any of it is particularly difficult to do in standard C, maybe with a separate "installer" to set up some registry junk, I'll eat my hat.
Well, it turns out that writing a Windows Service using the .NET framework is involved enough that Microsoft includes a "Service" template in Visual Studio to make it utterly trivial. At least if you buy an expensive version. My company doesn't. So my co-worker that wanted to write a daemon ended up writing it as a Web Service, which works the same way except that every time the server restarts you have to load a web page hosted by the server and click a button to start it, instead of having it start automatically. Fun.
We discussed this while walking around the west loop on lunch break. The problem, he told me, was that you couldn't write a Windows Service using our cheap version of Visual Studio. This struck me as pretty unlikely. I asked him exactly what about it was impossible, but he didn't know beyond that there wasn't a template for it, as there was in a more expensive version of the product. So tonight I punched in a few queries to Google and came up with at least a couple ways to run any odd program as a Windows Service.
That's a larger-scale example of why the whole experience of Visual Studio seems toolish. I mean, even more than that they don't want you writing daemons unless you pay them $600 (developers, developers, developers, my ass). It lures you into thinking that if it's not in the menu it can't be done. Since I've started using it I've fallen into this kind of thinking at the code level. Habitually restarting Intellisense when it goes away, even when it's unnecessary. And Intellisense, like all the other features, works on its terms and not yours. Between all the auto-completion boxes, un-helpful tooltips detailing function parameters, and those obnoxious red underlines I get because I haven't finished typing my expression fast enough, it's more a pinball machine than an editor. If I happen to reference an identifier before getting around to declaring it (happens all the time... sometimes you don't know you need a method until you need it) the Great Wise Intellisense usually auto-completes it to something long and silly. Who the hell asked it? I certainly didn't. I thought the computer served Al, not the other way around.
The thing is, Intellisense is fast and smart at finding matches. It's great for navigating the stupidly verbose .NET class library (it's probably hard to be less verbose when you're trying to write the One True Class Library, which maybe should indicate it's not the greatest goal). Visual Studio allows me to just flat not think about some rare, inane details when coding. Which is great. I just wish it did these things at my command. Maybe there's even an option for this. But this is beyond options. The nature of programming is that the programmer is in charge of the computer, not the other way around. The nature of programming is that only trivial problems can be found by pointing at menus. Here's what Wikipedia says about creating a daemon on Unix:
The common method for a process to become a daemon involves:
- Disassociating from the controlling tty
- Becoming a session leader
- Becoming a process group leader
- Staying in the background by forking and exiting (once or twice). This is required sometimes for the process to become a session leader. It also allows the parent process to continue its normal execution. This idiom is sometimes summarized with the phrase "fork off and die"
- Setting the root directory ("/") as the current working directory so that the process will not keep any directory in use
- Changing the umask to 0 to allow open(), creat(), et al. calls to provide their own permission masks and not to depend on the umask of the caller
- Closing all inherited open files at the time of execution that are left open by the parent process, including file descriptors 0, 1 and 2 (stdin, stdout, stderr). Required files will be opened later.
- Using a logfile, the console, or /dev/null as stdin, stdout, and stderr
And here's what it has to say about Windows Services:
A Windows Service is created using development tools such as Microsoft Visual Studio and Borland Delphi.
Yes. Let the programmers at Microsoft and Borland toil in the underworld, you have business logic to write. I realize this is more a culture thing than a technical thing, but I don't think it's any surprise that it's turned out this way. You don't have to do all the stuff in the Unix article manually; if you want you can find libraries or packages for most languages to make daemon functionality trivial (Perl's Daemon::Generic is pretty good, for example), but you can, as with so many other aspects of Unix, find out how the stuff works and why, and not have the answer be, "Because it helps us sell more $600 copies of Visual Studio."
Anyway, I want to conclude by saying: we software people don't know anything. And if you feel some way about some software you're probably right. If you feel like a tool using Visual Studio, not like a badass that could write anything, that's because it was made to automate common things, not to bring to you an understanding of all the crazy shit computers can do and how. That's what I get most out of programming, anyway. The rest, that's for management to worry about.
And the Brown-Line train rocked gently from side to side like a gondola (it was actually a Red-Line train running on the elevated tracks because of subway construction). But that's not the damn point. Focus, Al. I wanted to write about Hawken, actually.
Paul Hawken is an environmentalist and an entrepreneur. He wrote The Ecology of Commerce from the premise that in the long run non-renewable energy sources will indeed run out and humanity will need to live within an energy budget limited mostly by solar output. And that in the long run if we produce toxic waste that we can't break down or use safely that it will continue to build up in the environment, accumulate in the fatty tissues of all kinds of animals (especially marine creatures, but land creatures like humans as well), and make us all crazy. He wrote this shit in 1993, when gas was under a buck a gallon in Georgia (source: I remember this kid on my block named David Hunt mentioning that it was in the 80s there, and it could have been some time around 1993, maybe before but not after -- he moved out of town not long after Clinton got elected, if memory serves). Of course, people with their heads screwed on their shoulders have been saying these things for a long time (the first peak-oil predictions came in the 50s and correctly predicted US peak production; cue arguments about whether the peak was artificially induced by drilling policy or whether that's irrelevant because only a fraction of US land available for drilling is actually being used anyway and because peak doesn't mean you're plum out, or that you couldn't possibly extract at a higher rate, just that it's not economical to do so), but I didn't read any of their papers 'cause I wasn't born yet.
So an aside. To my knowledge there are a few ways that people theorize we could deal with crises of energy and toxic pollution. The first is primitivism. Suburban sprawl faces obvious problems in a time of expensive energy (we're seeing that already), but so do big cities with energy-intensive industries that are very far from agriculture. So does anyone that wants a heated or air-conditioned home, hot water. Heating and cooling air and water consume lots of energy. More importantly (we can always take fewer showers, just ask the French), computers and data centers use lots of energy, and they're really important for, you know, progress and stuff. Anyway, in economic terms, the economy would have to shrink a lot. Economies like ours don't shrink in pleasant ways. That's what they say, at least. A severe adjustment could, as I understand it, overwhelm banks, which are already struggling because of the fall of housing and credit bubbles. At that point, all bets are off. I think there's at least a possibility of rampant starvation and economic collapse.
A second way is the idea of technological singularity. Hawken writes a lot about how our current economy is "linear", in that it extracts resources at unsustainable rates and outputs useless or toxic waste, similar to immature biological ecosystems (which typically grow quickly at first and then either suffer population crashes or in more benign cases just stop growing). He contrasts this to mature ecosystems, which are "cyclical", in that the waste products of one organism become food for others, almost universally. If there was toxic or useless waste the systems would not have developed to their complex state of maturity. What Hawken calls a "linear" economy is mathematically more properly described as exponential. Population grows exponentially; resource use does also, but more quickly. But there are technological exponential curves like Moore's Law, too. And rapid growth in various measures of information availability driven by world-wide network access. The time between world-changing events keeps shrinking, and this is taken as a trend by some futurists. One common idea is that the development of "true" AI, essentially the ability of a computer to think or even to take on human consciousness, could be a world-changing event that allows technological progress to continue forever. This could skirt the issue of pollution, as humans wouldn't have to rely on any other organisms or even their own biological processes to pass their knowledge on to another generation. Furthermore, this would make many current uses of resources obsolete, and potentially allow for extraction from other planets (in theory time isn't as much of a problem for computers as people, my source for this being the terrific Futureheads song Robot; though today's computers are hard-pressed to outlive goldfish, a computer with the ability to repair itself might do better). But don't listen to me. Listen to these guys. They claim that all this talk about physical resources is "astonishingly irrelevant", and here I am getting caught up in what a singularity might look like and how it would solve these problems. Which probably makes me a fuddy-duddy. Let's just say I'm a little skeptical, given struggles of space programs, physical limits of transistor size, and what seems to me like very non-exponential progress in AI research. For balance I should point out that quantum computing has had some cool results lately. For balance of balance, I just want to take this opportunity to make fun of some singularity nuts for talking like exponential growth curves have singularities. They don't. Even if accelerating progress makes change flash before our eyes at a ridiculous rate and we colonize the galaxy in a year or so (the speed of light is "astonishingly irrelevant", just another glass ceiling to be smashed by the power of our intelligence) a singularity means the stoppage of time and infinite progress, and that it would not be, if you just blindly follow trends, which is already pretty optimistic to me.
Anyway, Hawken doesn't really talk about those things, I just think they're important. Hawken proposes a sort of middle way. We don't have to take the all-or-nothing risk of continuing to accelerate extraction and pollution rates in hope of reaching a singularity, which might then bite us in the ass and turn into Skynet or HAL 9000 anyway. And we don't have to suffer a die-off because we're so far above the natural carrying capacity of our planet. We can instead radically re-organize our economy so that it works more like a mature ecosystem. When one company produces waste materials, another finds ways to use them. By changing the entire taxation regime over time to target non-renewable resource extraction and unusable waste (especially toxic waste) very heavily (replacing taxes on pure income or consumption) we can make sustainable business the only profitable kind, instead of the very difficult path it is today. The idea is that today businesses are cutthroat competitors, fighting tooth and nail for profit, and that they're really efficient at it. Unfortunately that usually means they're really efficient at turning resources into waste, because the actions of extraction and pollution don't incur costs that reflect their true long-term cost to human civilization. If we can make restoration of the environment, which has long-term benefits, profitable, businesses will compete too-and-nail to make the world better.
And I might have believed it, too, if Hawken himself hadn't provided all the reasons it would fail. I live pretty close to an old coal plant that is a heavy polluter. Located in the middle of Chicago, it pollutes at rates higher than allowed by current laws. But it's been grandfathered in. No, this plant does not meet the standards of the Clean Air Act. But what come out of these smokestacks aren't noxious gases, my friend. They're nostalgic gases (concept of "nostalgic pollution" shamelessly stolen from Heather; not from her blog, from a conversation with our neighbors at a party, but the blog gives me something to link to). I think that says a lot. The government isn't independent of corporate influence and won't be; it will help craft laws for its own benefit (examples provided by Hawken). Corporations are very good at subverting laws that would attempt to constrain their behavior (many examples in Hawken's text), and through globalization have become more powerful than most governments already and are surpassing the rest (again, argument provided by Hawken). Worse, because corporations in the modern capitalist world have all the rights of people but none of the responsibilities (this is true legally, as they're rarely punished severely, but the big problem is that they can very easily liquidate and reform, change their identities in the public eye without changing leadership), they're able to use PR devices to convince people to support corporate interests instead of their own.
To me, that's the biggest part that's unconvincing. Hawken's thesis is that only corporations acting under capitalism can save the world, and that we have to be concerned with how to keep them intact while building a sustainable economy. Meanwhile he provides more support for the claim that they're fundamentally destructive and sick than that they actually could be the drivers of a sustainable economy. He proposes that private "utilities" be places in charge of local resources, and that because of their long-term interest to sustain that resource that they'd allow only the right level of usage. There are some similar entities today: OPEC tries to control its member states' oil exports, and even so some of those members are reaching peak production and turning into net importers. Even in the US today, any company that owns land and has drilling, mining, or dumping rights on it should have as its interest the preservation of those activities as far into the future as possible. Yet strip mining and toxic pollution rule the day. Even governments, spurred by vital public needs and budget constraints instead of shareholder pressure and general profit motive, routinely are accused (rightly) of selling out the future with short-term financing fixes. I fail to see why resource utilities, if operated anything like either current corporations or governments (and that seems to be Hawken's major idea), would do differently than any of the existing examples we have.
Another thing that bothers me is that he quietly acknowledges in a few places (if you look closely and infer some things) that his "restorative" economy would have to shrink, and that population might have to shrink. But he never mentions the pain involved in this. Actually this might be a good argument for his ideas: that a gradual shrinking, though still painful, would be much, much better than a crash, and that keeping the same institutions in charge gives a better chance of gradual shrinking than various left-anarchist revolutions (or a global Communist revolution). The counter-argument to me is that a lot of investment assumptions have to change if you take away the assumption that the economy will, in the long term, grow exponentially. I think this includes a bank's expectation that it can lend money and usually get it back with interest, without which fractional-reserve banking would have a much greater risk-reward ratio. As most of our money supply doesn't exist as currency, and is a creation of this banking practice, this concerns me (I'm not really an econ guru, so if my understanding of the issue is totally wrong let me know). Hawken talks all about population crashes but that he doesn't mention the implications of a shrinking economy worries me (I can't find many quotes from economists in general on the subject other than stuff like, "Hey, look at the Great Depression, that sure sucked, 'eh?"). Anyway, market valuations of things are based on speculation, and no matter how carefully a plan is made to transition gradually to no-growth, if the realization of it hits the market suddenly we're headed for a crash.
The other economic question I have is whether corporations really are very efficient when they can't rapidly extract non-renewable resources or otherwise externalize the costs of their operations onto society. For one thing, corporations as they are means marketing as it is, which preys on people's irrationalities resulting in overconsumption of all sorts. The type of efficiency I'm talking about here is in whether they can elevate the carrying capacity of Earth, or whether they'll lead us to sell out long-term needs like education and research for short-term nicities. If the economy overall won't be exponentially growing anymore I think those become real trade-offs (whereas today overconsumption fuels growth by requiring more labor and more resource extraction).
But I don't want to be totally negative about the whole deal. Even though I'm pretty pessimistic about a plan like his actually working, it might, if it worked, be a fairly livable version of capitalism with corporations. I like his points about preventing business from externalizing its costs onto others (read: the poor). I'm not sure whether he's being disingenuous or just doesn't realize it, but imposing taxes or creating utilities that fully foist onto business the costs of their damage to the commons (and reward their improvements of it) are tantamount to nationalizing the commons. A fine idea in my opinion (coincidentally, The Death and Life of Great American Cities also talks about the tragedy of commons with regard to cities), but good luck sneaking it past highly interested parties.
Damn this is a fucking mountain of text. Sorry y'all. I'll try to be snappier next time.