I was in downtown Santa Rosa today at lunchtime. Returning home from a meeting, I decided on a whim to stop at a music store in the area. (I have all the music gear I could possibly need, but need is not a prerequisite for gear-shopping.)
As I crossed the parking lot, I heard a muffled thump followed by the sound of a slow-motion waterfall. I looked toward the source and listened closely because it sounded like a pipe had burst… or something. I couldn’t make sense of it. Then a woman shouted, “What are you doing there!”, not really a question so much as an accusation. And then I saw a tallish, somewhat skinny guy with a shaved head running across the parking lot, clutching a black duffel bag to his chest.
The sound then made sense: safety glass breaking. I’d just witnessed a smash-and-grab.
So I did something I can’t really explain: I chased the guy. I was wearing a bulky leather coat, and I had my laptop in a nylon briefcase in my right hand. I was not equipped for high-speed pursuit.
Fortunately, the “alleged” criminal wasn’t running very fast. I believe he didn’t realize I was following him. We crossed the parking lot and rounded a building. I was pacing him, thinking I’d follow as far as I could. I think I had the idea that I’d get a license number if he had a vehicle waiting. And I remember hoping we’d happen to cross the path of a cop. In any event I was along for the ride, even if I was unsure of the destination, following maybe 20 feet behind.
He turned at that point and saw me lumbering along behind with my briefcase in my hand. I guess I didn’t look very threatening, for he didn’t do what I thought I deserved, which would be to yell in fear and sprint ahead, certain he was seconds from being tackled and brought forcefully to justice. No, instead he dropped the stolen bag and jogged nonchalantly away. He looked back to make sure I stopped, which I did, figuring he was a cheap hoodlum not worth the risk of physical confrontation. I was disappointed the guy wasn’t more afraid of me, but on balance pleased by his tacit agreement with my judgement of his worth.
But then I didn’t know what to do. The bag lay on the ground, amid some bits of the passenger-side window from the owner’s truck. Also a bonus: the crook had dropped the screwdriver he’d used to bash in the window.
Every Hollywood detective story came to mind. Could I touch the evidence? What about fingerprints? As if the local cops had nothing better to do than trace prints for a simple break-in.
I awkwardly picked up the screwdriver without actually touching it. I felt dumb. I’d seen the crook wearing thick black gloves, so I was pretty sure there wouldn’t be any prints on the screwdriver, but I realized I sure didn’t want to put my prints on there. In the stress of the moment — believe me, just seeing a crime is stressful — maybe someone would think I was the guy who broke the window.
Waiting a minute to think and look around, I decided the sensible thing would be to return the bag to the truck, and maybe leave a note for the owner. I carried the bag back in that direction. A few people had gathered; one woman was across the street on the phone with the police. She waved me over and gave me the phone.
I reported my side of the story, embarrassed at the little detail about the thief’s appearance I could provide. Once I’d seen the shaved head, a little box of stereotypes in my brain opened up and said “skinhead.” I perceived nothing more. Sure, I saw tattoos and piercings, but I couldn’t be sure those details hadn’t been provided by my imagination. The only things I was sure of: Caucasian, trim build, buzzcut, short-sleeve shirt, black gloves. Not much to go on. Could I pick the guy out of a lineup of skinheads? Erm, no.
We stood around to wait for the police to arrive. Finally the woman invited me inside for a free lunch — we were standing in front of her husband’s restaurant. It’s fair to say I was feeling some civic pride at this point. The food was great.
The truck’s owner turned up after a while. He was grateful, but a bit shaken (understandably), and bitter that he’d be out a few hundred dollars to replace the broken window. Insurance isn’t what it used to be. We traded contact info because it seemed like the right thing to do. I consider it serendipitous that he is the local sales rep for the company that made my drum kit.
The cops finally arrived and confirmed that they wouldn’t be able to find fingerprints on a plastic-handled screwdriver. Keep that in mind if you decide for a career change and start breaking into parked cars. He was surprised to learn that I’d already recovered the stolen bag; apparently he’d been driving around for 25 minutes looking for a skinhead with a black duffle. Nice.
The LA Times has a review of Per Se, Thomas Keller’s new $150-per-person restaurant in New York’s Time Warner Center.
Rumors that the French Laundry would move to New York were untrue. The French Laundry will re-open once Per Se is running smoothly, likely in May 2004.
I spent last night reading about all the candidates: US Senators, state Senators, US Representatives, state assembly members… I scanned position papers… I read endorsements… I flipped an occasional coin… And I marked up my sample ballot with all of these choices so I wouldn’t be fumbling for names in the voting booth.
Today I found out that California’s primary elections don’t work the way I expected. I thought we had open primaries, meaning citizens can vote across party lines. I didn’t register with any political party; I don’t like any of them well enough to claim affiliation. But that means I don’t get to vote for any of their candidates!
My ballot consisted of one lonely little card with four state propositions on it. There were no candidates at all.
So I’m working on my first song. I’ve never composed anything before, except for a few really bad drum solos, but now I’m thinking verse, chorus, bridge and falling asleep with chord progressions bouncing around my brain. It’s good.
The unexpected thing is that I listen to music differently now. I’ll be idly listening to something I’ve heard 30 times, subconsciously playing along with the music in my head, and I’ll think, Hmm, there’s not even a melody there; the band is just bashing out a rhythm together. I didn’t realize that was OK. And then I wonder if I can work the same trick into my song. I’m deducing the art of songwriting.
But I guess if I want to be a good songwriter, I should be listening to Beatles tracks instead of this obscure progressive stuff that only sold 1000 copies…
Nah!
It may be true that smart quotes are a detail appreciated only by design geeks and typography nerds. But it’s equally true that I am both a design geek and a typography nerd. Call me nuts, but I like my quotes curly.
Last December’s version of the code that powers this website included my second attempt at a “quote educator.” It, too, suffered a fatal flaw: about 30% of the time, quotes curled the wrong way.
It’s a lot more complicated than you might think. “Realize,” for example, “that you’ll want ‘nested quotes.’” You’ll want to answer in straight quotes when someone asks your height (6'1") but in curly quotes when someone asks what year your old Camaro was (“69”). And although you can’t see the problem from your side of the browser, the presence of HTML markup makes the task even more difficult.
Enter John Gruber, who like me had worked through at least one less-than-ideal solution. Unlike me, he had attacked the problem again and came up with an excellent solution, which he released as open-source software: SmartyPants — which by the time I found it had been public for a year, and improved through user feedback during that time.
Using SmartyPants in my Monaural Jerk code seemed infinitely more sane than spending time on a 3rd attempt of my own. There was only one problem: SmartyPants was written in PERL, which although wonderful in many ways, would not coexist very effectively with Monaural Jerk, which is written in PHP.
So I ported it. It took all weekend. I thought I knew about regular expressions, but I can honestly say, now I know about regular expressions.
Anyway, the result is here: SmartyPants-PHP
SmartyPants-PHP is, in one sentence, an HTML-savvy quote-conversion library. In another sentence, it is a derivative product of John Gruber’s original code, and he deserves all the credit for the invention. I only translated it, and tried not to break it too badly in the process.