Monday, November 14, 2016

A "Hypothetical" Question

I have a hypothetical question for you...

Let's say you're on the board of your local preschool to which you send your kids for both daycare and preschool. Bob, the manager of the preschool is retiring after eight years of service. Most people think he did a pretty good job. The preschool lost less money than before he took over, and the kids are happier and fewer parents complained or send their kids elsewhere. More parents brought their kids to the preschool from elsewhere too. And your kids are happy there.

But Bob never got along with the executive board (who oversee the day-to-day operation of the preschool--the rest of the board just votes at annual meetings). Most of the executive board recommended someone else eight years ago, and for various reasons never accepted Bob.

The board has two candidates for the position. One, Hannah, used to work with Bob. Bob recommends her. She's clearly qualified. But a lot of people in town don't trust her, and don't like her husband Will who cheated on her years ago while he ran the preschool! (It came out that he actually did so with a teacher in the preschool building--but it's agreed that Will never let it affect the preschool and was a great manager and teacher.) Hannah has spent the last few years volunteering at the Boys and Girls Club, and kids love her.

The other candidate is Dan, who runs a local construction company. Dan has no experience working with kids or running a preschool. But Dan likes to brag around town that he's built a very successful business (he lives with his third wife in a huge house he built himself) and says he has big plans to make the preschool into an elite academy, without raising fees. There are rumors around town that Dan has built his company by bribing the city council to grant him projects, and he has a poor rating with the Better Business Bureau. Worse, some people say they overheard him bragging that he can get kids (especially girls) to do whatever he wants, because he is rich and powerful. But others say that was just talk, as Dan is prone to do.

The board seems to be split. Most members agree that Hannah is better with kids, but about half are excited about Dan's plans for the preschool. Several say they don't like him, but they do like what he intends to do with the preschool. (Most of the executive board supports Dan.)

So here's my question: who do you trust with your kids, Dan, or Hannah?

Tuesday, August 26, 2014

Baseball Trip of a (Half-Century) Lifetime

If you're a friend on Facebook, you may have seen photos and updates during the trip I just completed with my sons. About a year ago, my wife suggested I take a trip to visit multiple ballparks to celebrate my 50th birthday (this September). I certainly didn't forget her idea, and from August 2 through 17 I made the idea a reality.

We flew to Detroit, and from there drove to Cleveland, then Cincinnati and finally Pittsburgh, where we returned the rental car. We took the train from Pittsburgh to Philadelphia, and from there to Washington, DC, where we rented another car (and picked up my dad at the airport). We saw a game in every city, including Baltimore (which we drove to from DC). (We actually saw two games in DC.)

I'll spare you the suspense. Here is my overall ranking of ballparks, most favorite first:

  1. Oriole Park at Camden Yards, Baltimore
  2. Great American Ballpark, Cincinnati
  3. PNC Park, Pittsburgh
  4. Progressive Field, Cleveland
  5. Nationals Park, Washington
  6. Comerica Park, Detroit
  7. Citizens Bank Park, Philadelphia

I would absolutely go back to every single one of these seven. I had a good time at every one, and no bad memories of any of them. It was a little tricky to rank them too, especially 5, 6 and 7, which were pretty close in my mind.

From what I heard before the trip, I would have predicted that PNC Park would be my favorite. And it was beautiful. We watched the moon rise over the skyscrapers and the Roberto Clemente Bridge over center field, and fireworks above them after the game. And the fans had plenty of energy. But the bandbox field in Cincinnati was fun, and their scoreboard was gorgeous. Maybe it's not a fair comparison, but we were a little closer to the field in Cincinnati and the view of the whole field felt perfect. Plus there was a great sense of history, with banners and statues all around the park, and a fantastic hall of fame museum. But Camden Yards left the best overall impression. Eutaw Street won me over. I've heard many new parks built since Camden Yards copied its modern take on an old-fashioned style ballpark. But none of them (that I'm aware of) copied the idea of actually including a street (with shops inside the B&O Warehouse on the opposite side) inside the ballpark complex. That and the fan energy won me over. Plus the Orioles are a fun team to watch--especially Adam Jones.

My top four ballparks were all right in the center of their cities, which I enjoy. It was easy to find a hotel within an easy walk of each of them (even easy for a 10 and 8 year old). And it's fun to walk among the crowd of fans to and from the field.

If Camden Yards isn't right downtown, it's certainly feels like it. We ate in a restaurant right across the street, walked past several crowded pubs and souvenir stands, and walked two blocks to the Babe Ruth birthplace museum. Yet we parked one block away (for only $16!) and were on the freeway back to DC 5 minutes after leaving the parking structure.

Great American Ballpark is on the Ohio River, right next to downtown. We took a shuttle bus across the river to Newport, Kentucky before the game and saw the impressive aquarium, and ate lunch looking back across at the ballpark. The shuttle took us back to the park in plenty of time for the game. After the game we walked with a friendly crowd that barely thinned out before we got to our hotel.

We walked to PNC Park from the Carnegie Science Museum (very highly recommended) along the river. I enjoyed watching the "tailgaters" in their boats moored along the river walkway. After the game we walked with the rest of the crowd across the Roberto Clemente bridge (which is closed to vehicular traffic before and after the game).

I don't remember anything in particular on the walk before and after the game in Cleveland, but it was certainly pleasant, and family friendly. Not that I didn't enjoy staying in a hotel downtown within walking distance of the ballpark (and the Rock & Roll Hall of Fame). I enjoyed seeing several beautifully restored skyscrapers, especially from the inside. One contained Sammy's Grille where Sammy still cooks after 45 years later. The kids loved the friendly service and delicious breakfast. Cleveland's downtown has a feel of a city that is painstakingly restoring many buildings worth saving.

Detroit's downtown, in contrast, is a wasteland. We walked about 4 blocks from our hotel to the ballpark, past boarded up buildings (many with broken windows on the high floors) and decaying signs over shops and restaurants permanently closed for business. We did not walk among many fans. Even though there were over 30,000 fans at the game, after we walked one block after the game we were almost by ourselves. Another block and we were by ourselves. I expect almost all fans drove in from the suburbs.

Nationals Park is in a "neighborhood" of DC called Navy Yard. It reminds me of China Basin in San Francisco right after Pacific Bell Park opened. I'll bet in 5 years it reminds me of China Basin now. New condo towers are going up all over the area. And restaurants are starting to make an appearance. The walk to the park in daylight was pleasant enough--there were plenty of families and many Nats fans walking from parking lots and the subway station a block from our hotel. But after the (second) game, we walked by a big lot gated by shipping cargo containers that was setup by Miller Beer (I think) as a party (drinking) area. The spillover resulted in an uncomfortable walk back to our hotel listening to foul-mouthed 20-somethings talking trash.

The ballpark in Philadelphia was easy to get to via subway from our hotel, but it's surrounded by large parking lots for it and other sports venues across the street, making for a surprisingly long, rather boring walk from the station.

To avoid making this unbearably boring (if it's not too late) I'll now abandon the prose for lists of my favorites and trivia in different categories...

Best scoreboard video screen: Cincinnati (better picture than my 1080p set at home)

Best scoreboard stats and info: Baltimore showed the lineup for both teams and (IIRC) detailed stats for all batters, every at bat

Best scoreboard pitch information: Philadelphia (showed pitch type and speed) and Pittsburgh (showed horizontal and vertical break of pitches and speed)

Best sense of history: Cincinnati (banners and statues in and around the ballpark, plus a fantastic hall of fame museum); Cleveland had a nice hall of fame plaque area in center field

Worst sense of history: Washington (the worst was hanging a banner of Jordan Zimmerman amongst classic Washington baseball greats like Walter Johnson; the only acknowledgements of their past as the Expos were the names Carter and Dawson with players from the Grays and Senators--but no numbers--and a timeline in a history of baseball in Washington series of posters)

Best post-game fireworks: Pittsburgh (possibly the best fireworks I've ever seen); the only other fireworks were in Washington--they were pretty good

Best beer selection: Washington and Philadelphia had kiosks above nearly every section; though I couldn't really go looking for craft beer at any of the ballparks with kids in tow

Best food: My favorite was the the Pitts-burger from Primanti Brothers in Pittsburgh, which had fries and coleslaw in the sandwich; I also liked the cheesesteak at Tony Luke's in Citizens Bank Park, though it wasn't as good as the cheesesteak at Steve's Prince of Steaks (also in Philadelphia)

Friendliest ballpark employee (that we encountered, at least): an "ambassador" came to talk to us before the game in Cleveland and game us each "first game in Cleveland" certificates

Ballparks where the players didn't sign autographs for kids: Detroit, Cleveland, Cincinnati, Philadelphia, Baltimore

Surprised to find the home team dugout on the 1st base side: Cincinnati, Philadelphia, Baltimore

Cities with the most to do during the day before a night game: Washington, Pittsburgh, Cincinnati, Cleveland

Cities I could see myself living in: Pittsburgh, maybe Cleveland

Rainouts: none!

Star players we didn't see because they were on the DL or not playing due to injuries: Troy Tulowitzki (the Rockies played the Tigers), Joey Votto, Andrew McCutchen, Chase Utley (except for one--albeit exciting--pinch-hit at-bat), Manny Machado, Jason Werth

Fans most into the game: Baltimore, Pittsburgh, Cincinnati, Cleveland, Detroit

Fans more interested in the wave than the game: Washington, Philadelphia

More intense, energetic, loud fans than Oakland: none

Monday, April 29, 2013

Best Little League Day Yet


I had fun taking the kids to Little League Day at the Oakland A's game yesterday. Here are all the photos I took: https://www.everpix.com/public.html?id=mZ4VSgYs3q0YRmW9.

We got there early (10:30 for a 1:00 game) for the parade. I'm glad we did. After waiting in line, we went through a tunnel under the bleachers out into center field. While going through the tunnel we saw a scene right out of the movie Moneyball. Several Orioles players were taking batting practice in a makeshift cage right next to the ramp we were walking down. 6'3" Adam Jones and 6'5" Matt Wieters were easy to spot among them. They wrapped up just as we walked by, and one Orioles player (who I could not identify) gave a bat and gloves to a little leaguer right next to us!

Once on the warning track at center field, we walked around past first base, behind home plate and had a good look at the A's dugout. We walked right by the bullpen mound where Ryan Cook was throwing. In left field before we left, 6'8" Nate Freiman was shaking hands. (I have to reach up and his hand was still below his shoulders!) I wish I got a photo.

The parade of little leaguers was long enough that the front of the line was coming back out as we were going in, and was still going in as we came out. We took our time getting to our seats, and the parade was still going as we sat down! I'm convinced that Little League Day at the Coliseum, or at least this Little League Day, attracted many more kids than I've seen at the four Little League Day parades I've been to at AT&T Park.

Our seats were just infield from the right field foul pole, right next to the rail. The view was great from there. I usually try to get as close to the A's dugout as I can, but I certainly wouldn't mind sitting in these seats again.

The game itself was yet another lesson from the A's in never giving up. I'd say it was the second most exciting live baseball game I've ever seen. (And I've seen some good ones.)

And we capped it off by running the bases after the game. What a fun day.

[I wrote this while watching the A's tie tonight's game at 7 in the bottom of the 9th, coming back from being down 7-2. Two lessons in two days!]

[I posted the above while the game was tied in the 10th. The Angels scored a run in the 15th, and the A's matched it. Then Brandon Moss finally hit a 2-run walkoff home-run in the 19th. It was the longest game (by time) in Oakland A's history. Now that's a lesson in never giving up!]




Monday, March 26, 2012

Sadly, a typical hotel

The Hyatt Regency Reston blacks out HBO when it's showing movies, asks $5 for a medium-size bottle of water, and an extra $5 for non-lousy WiFi, but puts "You're more than welcome" on my card key. I don't remember saying thank you.

Tuesday, January 11, 2011

Call me crazy...

...but I’m leaving Netflix.

I wasn’t even remotely considering looking elsewhere, but I was referred to a hiring manager by a former co-worker that I have a huge amount of respect for, so I agreed to meet. It turns out the manager was looking to fill an exciting, impactful position with plenty of room for innovation, for which my skills and experience are a close match. I eventually decided it was an opportunity I couldn’t pass up.

Even so, making the decision to leave Netflix was one of the most difficult I’ve ever had to make. I even initially turned down the offer, before realizing just how excited I was by the work I’d be doing.

There is absolutely nothing that any of my co-workers or Netflix as a whole did or didn’t do that led to this decision. On the contrary, I enjoy my work at Netflix and may never again work in such a supportive environment and culture. And I doubt I’ll ever again work with such a talented group of people (unless I someday return to Netflix). I’ve learned a great deal there over the last 15 months, and had more than one person’s share of fun. I’ll miss that job.

Saturday, December 11, 2010

A Family Holiday Tradition

My daughter had a school assignment to write a story about a family holiday tradition, and to collect stories from everyone else in her family. This is what I wrote for her:

When I was a kid, our family would always go for a drive on Christmas Eve to look at Christmas lights. My sister and I sat in the back, my mother in the front, and my father would drive. Unless my grandparents were visiting, then my sister would sit in the front between my parents (on the bench seat—no car seats in those days) and I would sit in the back between my grandparents.

We'd drive around looking for houses where the owner put up a lot of lights. One house in particular became famous for having lights all over the house and all kinds of sculptures covered with lights in the yard: snowmen, Santa and his reindeer, giant snowflakes, and even animals that would move their heads and tails. As the years went on so many people would drive by that house to look at the lights that the traffic jams became unmanageable. The owner ended up donating all his lights and sculptures to the city so they could put them in a park to avoid the traffic jams. As far as I know the lights are still put on display in that park every Christmas.

Sometimes we'd drive a long distance to go to where there were show-homes for new neighborhoods being built. The developers would cover every inch of the walls and roofs of the houses with lights in solid colors, which made the houses look like they were made of lights. Often it would be snowing, which made the lights look magical as the snow collected in the small gaps between the lights on the roofs.

I don't recall ever having a Christmas without snow. So it was a shock for me when I came to California and saw people put up lights with no snow. I just always assumed the two go together.

One year, when I was about 7, I told my parents I didn't believe in Santa anymore. That year we went for our Christmas Eve drive unusually late, so we were out past midnight. When we got back, there were presents from Santa under the tree! I had memorized every present under the tree before we left, so I knew they weren't there before. And there was a note from Santa thanking us for the milk and cookies my mother left out. The entire family went for the drive, and the house was locked. So it must have been Santa. I decided I did believe.

Thursday, March 18, 2010

Goodbye old car, you've seen me through a lot

Lately the VW Cabrio I've had for 11½ years has been showing its age. The strip on the driver-side door (which I glued on about 7 years ago) peeled off (leaving a glue residue that would make it quite difficult to re-attach). The paint has been peeling off the hood. A friend accidentally backed into it behind the passenger door, leaving an ugly dent. And the rear bumper started sticking out from where it wraps around to the sides.

Mechanically it's been a great car. I believe I've only had to pay for three repairs, and if I recall correctly they were all under $50.

But it's old enough that it didn't make sense to put money into cosmetic repairs, and a two-door is just not practical with kids. So I decided it's time for a new car. And since I buy new cars pretty rarely, I was picky. That's a separate story, but I ended up placing an order for a Mercury Milan Hybrid, which I expect in about three weeks.

I decided to donate the Cabrio to KQED. I didn't like the idea of selling it in it's condition, and I doubt I would get much for it as a trade-in. I thought I'd show my appreciation to KQED and PBS for all the great programming I (and especially the kids) have enjoyed for years.

So it was not unexpected, but a little inconvenient when the Cabrio's clutch broke Tuesday. The repair would have cost just about $400, which I didn't want to pay to keep driving it for just a few weeks. Thankfully a friend offered to loan me her second car.

So I called KQED, and just handed the keys to a tow-truck driver for an auction company assigned by them pick it up. They make it very easy.

I felt fine seeing it go, though I did feel a little melancholy on Tuesday when I cleaned out all my stuff. I'm not sentimental about it, and it's been a while since I've enjoyed driving it or felt proud of it. But I have had it a long time.

Thinking back, I realized I had it for over ¼ of my life, and well more than ⅓ of my driving years. I bought it at the start of a new chapter of my life. I had just moved back to the Bay Area from New York City to work for a start-up. In the 11½ years since then I:
  • found an apartment in San Francisco
  • commuted from there to San Mateo
  • helped create two electronic toys
  • met Claire (who became my wife), and moved to San Jose
  • worked for LEGO (in San Mateo, with several trips to Denmark)
  • married, and honeymooned in Greece and Turkey
  • worked for Palm (in Santa Clara)
  • bought a house in Campbell
  • saw the birth of my daughter, now 7
  • worked for Altera (in Santa Cruz)
  • bought our current house in Scotts Valley
  • saw the birth of two sons, now 6 and 4
  • worked for VMware
  • worked for Netflix
In other words, I've seen more excitement and change in my life since I bought this car than in any other time of my life.

May my new car last long enough to be associated with half as many happy memories.

Friday, December 4, 2009

Barry Lyndon: yet another Kubrick masterpiece

After several recent mentions of Barry Lyndon on Daring Fireball, I thought I should re-watch this Kubrick film I recall the least. It's available for "Watch Instantly" on Netflix, so I put it at the top of my queue, and watched it over the last couple nights.

The cinematography in Barry Lyndon is beautifully painterly. Several scenes reminded me of the Rembrandt and other paintings I've seen at the Metropolitan Museum of Art.

Of course I cried during the one emotional scene. It's much more effective for some reason because you know it's coming. (And much more effective on me now that I have children.)

Are there any other filmmakers who have made so many masterpieces as Stanley Kubrick?

A little bit of trivia that stood out on Kubrick's excellent Wikipedia page: "…the only Academy Award Kubrick ever received was for supervising the special effects of 2001: A Space Odyssey."

A couple months ago, a Daring Fireball post led me to Jeremy Bernstein's 1966 interview with Kubrick. The video has been removed from blip.tv, but I don't recall it being difficult to find. I believe I downloaded a ZIP of MP3s, which I listened to instead of podcasts for a couple days. It truly is "75 minutes of audio gold".

Update: A friend on Facebook (thanks Aaron) pointed out that Barry Lyndon (as Wikipedia puts it) 'saw a considerable number of sequences shot "without recourse to electric light."' That make this masterpiece an even more impressive achievement.


Friday, September 11, 2009

Today

(I posted this on Facebook, but all the line-endings were removed. So I thought I'd copy it here where I have a little more control over the formatting.)

Some things I'm going to try not to think about today:

  • I'm now closer to 50 than 40
  • When my father was my age, I was 21
  • When my grandmother was my age, I was born
  • When Henry (our youngest) is a senior in high school, I'll be 59

Instead, I'm going to concentrate on the feeling that my best is still ahead of me.


Friday, July 10, 2009

Two pitchers won this week without throwing a pitch

Two MLB pitchers won games this week without throwing a single pitch.

Alan Embree won Wednesday for the Rockies when he came into the game in the top of the eighth inning with two out and a man on base. He picked off the runner for the third out, without throwing a pitch. The Rockies scored a single run in the bottom of the eighth (giving Embree the win) and Huston Street came in for the Rockies in the ninth and got a save.

Pirates right-hander Joel Hanrahan won without even being at the game. In fact, he won without even playing for the winning team. He was the pitcher of record on May 5 when the game between the Nationals (who Hanrahan played for back then) and Astros at Nationals Park was halted because of rain in the bottom of the 11th inning. Hanrahan was traded to the Pirates on June 30th. The game finally resumed Thursday with Washington winning, 11-10, in 11 innings.

I love this kind of baseball trivia. (Though that's not why I love baseball.)

(Note the Hanrahan article doesn't say if a pitcher has ever won a resumed game without being there before. But the Embree article says the last time a pitcher earned a win was surprisingly as recent as 2003. But that's the only other time this feat has been recorded.)


Friday, July 3, 2009

Children of the Mind

The feature in iPhone 3.0 that resulted in the biggest change in my life is the little "1X" button when playing podcasts (and audiobooks) that switches to "2X" when pressed, enabling the audio to play back at "double speed". (The pitch is adjusted so there is no "Alvin and the Chipmunks" effect.)

I've found I enjoy listening to most of the long list of podcasts I download in iTunes just as much at 2X. (I've heard Leo Laporte say that some study has shown that retention is higher when listening to audiobooks in this fast mode. Perhaps he was referring to this.) That has resulted in quite a bit more time to listen to audiobooks. So the conclusion of this long-winded introduction is that after only getting through about a quarter of Children of the Mind in five weeks, I got through the rest of it in less than a single week.

I blogged about finishing Xenocide and starting Children of the Mind in "Xenocide". I wrote then that my expectations for Children of the Mind were raised after enjoying Xenocide more than I expected. Unfortunately Children of the Mind continued the streak of Orson Scott Card novels "proving" my thesis in "The tyranny of high expectations".

Unlike Xenocide, there wasn't much interesting science in Children of the Mind (and that's probably what I look for the most in an SF novel). Again, there wasn't much action. [SPOILER WARNING] I was more interested than I might have predicted in the fate of Peter and Wang-Mu (and Jane and Ender), but I found the characters agonizing over each other's fate tiring. And the mystery of the nature of the creators of the Descolada virus is never revealed.

In an afterward to the audiobook written and narrated by Orson Scott Card himself—I believe each of the audiobooks in the Ender's Game series have such an afterward—states that he intends to someday write one more book in this series. Children of the Mind was not so disappointing that I won't want to read that when it comes out. But if the future me reads this blog post first, I advise me not to re-read Children of the Mind before that.

Friday, June 12, 2009

Recommended Canadian Content of the Week: Barenaked Ladies

I remember first becoming aware of Barenaked Ladies when CBC Radio began playing If I Had $1,000,000 and Be My Yoko Ono and interviewing the band before the album Gordon was released. I was struck by their humour (Canadian spelling intentional) and their musical skill was evident.

I bought Gordon as soon as it was available, and it's still one of my favorite albums (by any group or artist). It was very popular in Canada, especially with my circle of friends. I've seen them live twice, and enjoyed their improvisation and sense of humor—they seemed to really enjoy performing, playing music and each other's company.

The Wikipedia article on them is very interesting reading. Don't miss the first two paragraphs under "Indie Origins". I searched YouTube and found this short excerpt of their Speaker's Corner performance of Be My Yoko Ono. (See the last paragraph under "Indie Origins".)

I admire the group for the unabashed Canadian references in their music, even after their success in the U.S. They seem proud of their origins, but are not humorlessly patriotic. Growing up in Canada I was always aware of Canadian artists, and it irked me when (it seemed to me) they forced American references into their music as if they were ashamed of where they were from. (I should collect examples of this. I don't think it would be hard to find several.) Now, of course, I realize this wasn't out of shame but was probably a desperate attempt to increase their chances of commercial success south of the 49th.

My father mentioned during my parents' recent visit that the band had broken up. Actually (at least according to Wikipedia), Steven Page has left the group. I'm sorry to hear that—the band of course won't be the same without him—but I wish him and the remaining BNL members good luck in their continued careers. I'll follow them all with anticipation of more good music.

A couple more of my favorite songs of theirs:

I also recommend their childrens' album Snack Time. I'm always happy to listen to that with the kids. The song The Canadian Snacktime Trilogy i) Snacktime is a lovely tribute to Gordon Lightfoot. And Crazy ABC's is hilarious.


Tuesday, June 2, 2009

Recommended Canadian Content of the Week: Leonard Cohen

The choice for my second RCCotW blog post was easy. Leonard Cohen is one of my favorite singer/songwriters, Canadian or not.

I was introduced to Leonard Cohen fairly early, but I guess I wasn't ready for him. A grade 7 a teacher whose name I can't recall (and who I didn't appreciate at the time) split us into groups and had us do a presentation comparing two artists. I wasn't assertive enough at the time to choose two artists I liked (and at 12, if I was aware of the creators of the music, books, movies and TV I enjoyed, I'm sure I didn't think of them as artists), so my partner (who I also don't recall) and I asked (or more likely whined) that we couldn't think of anyone. The teacher suggested two artists that I would enjoy comparing now, but back then I had never heard of: Leonard Cohen and Margaret Atwood. I'm sure our analysis didn't go very deep—we may not have done much more than describe their biographies and that in addition to them both being Canadian, that they are both poets. I think I recall showing an 8 mm movie about each (that the teacher found).

Unfortunately I missed that opportunity to discover the music of Leonard Cohen. I'm sure I heard it occasionally on CBC Radio, but neither of my parents listened to him so I didn't hear his music around the house.

I finally didn't come to enjoy his music until I heard an interview on CBC with Jennifer Warnes, who was promoting her album Famous Blue Raincoat, which is "a tribute to Leonard Cohen, with whom Warnes had toured as a backup singer in the 1970s." (That must have been late 1986 or early 1987.) I bought the CD (one of the first I bought as I began to replace my vinyl collection) and it became one of my favorites. As so often happens, I over-listened to it until I was tired of it, and I haven't listened to it much since then. (It would be interesting to come back to it and see if I enjoy it.)

I remember raving about it online, and someone else responded that I should really listen to Leonard Cohen himself. Later I remember enjoying the song "Everybody Knows" in the movie Pump Up the Volume (in 1990). But it wasn't until 1993 (or maybe late 1992) that I bought my first Leonard Cohen album The Future. Wikipedia tells me it is one of his most popular, so I guess that makes sense.

Not long after that I bought The Best of Leonard Cohen (and noticed how much his voice has changed since he was young) and later More Best of Leonard Cohen. A couple years ago I bought the soundtrack to the Leonard Cohen: I'm Your Man movie, which I haven't seen.

I recommend all of these albums, but I recommend you start with The Best of Leonard Cohen or maybe The Essential Leonard Cohen.

The songs I've marked 5 stars in iTunes are:
Famous Blue Raincoat
Take This Waltz
Hallelujah

And these two tributes from Leonard Cohen: I'm Your Man:
Antony's If It Be Your Will
Rufus Wainwright's Chelsea Hotel No. 2

What did I leave out?

Update: I remembered a very good interview of Leonard Cohen with Terry Gross on Fresh Air.

Friday, May 29, 2009

Geeky things to do on a first-time visit to the Bay Area

A friend of mine is making plans to visit the Bay Area for the first time, and asked me to recommend some things to do here. I explained that now that I have (young) kids, all I could recommend are toddler-friendly places not too far from home in Scotts Valley. (My memory of life pre-kids in San Francisco and San Jose is pretty cloudy.) But I had what turned out to be the good idea to ask for suggestions on the "fun-list" mailing list at work.

I don't think my friend would mind if I described him as a geek. (I'm one too, and I believe we both wear the label with honor.) And he doesn't have a driver's license. Not having a car limits one's choices in the Bay Area. But my co-workers (many of them also geeks, and not into cars) responded with many good ideas:

First a list of places to go or things to see...

In San Francisco:

Recommended San Francisco walks:

  • Hippie Hill (or DeYoung Museum) <-> Haight/Ashbury
    • hippies! druggies!
    • Giant Robot
    • Kid Robot
    • Amoeba Records
    • Thrift stores
    • If he wants a *long* walk, go all the way to Lower Haight for the urban / hip hop scene and Indian Oven
  • Castro <-> Dolores Park
    • gays! lesbians!
    • upper class shopping
    • The Castro Theater, as seen in Milk
    • dogs & sunshine in the park
  • Valencia St
    • hipsters! indie kids! moustaches!
    • The Pirate Supply Store (826 Valencia) (this is a must)
    • Four Barrel Coffee
    • Ritual Roasters
    • Spork, Dosa, Herbivore are good dinner places
    • Burrito joints

Napa Valley:

On the Peninsula:

In San Jose:

Web sites with ideas:

Some recommended books:

Did I leave anything out?

Update: added The Cartoon Art Museum

Update #2: added Segway Napa


Monday, May 25, 2009

Recommended Canadian Content of the Week: Blue Rodeo

Several weeks ago I took Gabe to San Francisco to participate with his t-ball team in a "Little League Day" at AT&T Park. Claire had the great idea of Gabe and I driving up Saturday and staying at a hotel so we could get to AT&T Park early Sunday morning for the Q&A with Giants coaches and players. (And then return in the early afternoon to sit in the bleachers with his team for the game.) It was a weekend of firsts for Gabe: riding in a "subway" (the Muni Metro), riding on a cable car, going to the top of a skyscaper, walking through Chinatown, going across the Golden Gate Bridge. Hopefully some of it made some lasting memories.

Driving home after the game Sunday, Gabe fell asleep (and slept all the way home—he was exhausted after a couple long, busy days). I didn't want to listen to my usual podcasts and risk waking him up (as I did on the way up Saturday), so I set my 5-star music playlist to shuffle. I enjoyed listening to a subset of my favorite music, something I don't make time to do very often.

I was struck by how much of it is Canadian. So I came up with an idea for a series of blog posts, each describing a favorite Canadian band or artist. My idea was to do this weekly, but since it has taken me weeks to finish writing up this first post, don't expect them that often. I'll do what I can.

Several of the tracks that played during my drive were by Blue Rodeo, and I've since noticed that there are more songs by them in my 5-star music playlist (13) than any other group or artist. (Runners-up are The Beatles and Louis Armstrong with 9, and R.E.M. with 8.)

I remember first noticing Blue Rodeo when Much Music took a liking to them after they released their first album Outskirts over 20 years ago. Their album with the most songs I've rated 5-stars (5) is Five Days in July, but I've over-listened to that album and need to leave it alone for a few years before I can enjoy it again.

If you buy only one song of theirs, I (currently) recommend Bulletproof from Palace of Gold. But I also recommend...

From Tremolo:
From The Days In Between:
(I'm a sucker for ballads.)

Sunday, May 24, 2009

Xenocide

Last week I finished listening to Xenocide, over 6 weeks after I started. I blogged about "reading" (listening to) Ender's Game and Ender in Exile in "Pleasures of a poor memory" and about reading Speaker for the Dead in "The tyranny of high expectations". To continue the expectations theme, I'll remind you that I went into this with low expectations. And again, the book exceeded them.

I found this book had the most interesting science of any of the series (so far). And while there wasn't a lot of action, I found certain sections moving, especially [SPOILER WARNING] the description of the riot that burns down the Pequeninos' forest. I found the "creation" and reintroduction of a new Valentine and Peter Wiggin contrived, but towards the end Peter at least began to get interesting.

Now I'm on to the last (audio)book in the series, Children of the Mind. (But a fairly large list of podcasts continue to take priority.) I guess my expectations are higher now. We'll see if they're exceeded.

Friday, April 3, 2009

The tyranny of high expectations

Have you ever suspected that expectations can shape your opinion?

I think I remember first running across this idea while reading a book on skiing about 20 years ago. (I thought it was something like “The Chi of Skiing”—I remember noting that it did not use the more common eastern religion words like “Tao” or “Zen”. But I can’t find it online. Maybe it’s long out of print.) The book talked about avoiding expectations, and instead trying to anticipate. I’ve learned in the 20 years since first encountering that idea that like so many prescriptions for living, this is much easier said than done.

It’s impossible to definitively test the influence of expectations on experience, of course, since we can’t rewind time and re-experience something with different expectations. But it could be statistically measured. It would be interesting to expose one group of people to negative reviews of a movie, for example, and another to positive reviews (and have a control group that knows nothing about the movie) and then analyze their ratings afterward. I suspect that (if most people are like me), negative expectations can often lead to my enjoying something more. (Provided it’s not completely horrid or absolutely great. I think this effect is strongest on shaping one’s opinion of a mediocre experience.)

But enough philosophizing. The reason I bring this up is that I’ve noticed this expectation effect twice lately. Last Thursday, while I was in Chicago for PyCon, I took the afternoon off and walked around the city. As it got late (and as I tired from all the walking) I decided I was in the mood for a movie. (I hadn’t seen one in a couple months.) I chose Watchmen. I enjoyed the graphic novel, which I read last year after I read a glowing recommendation of a friend. (He wrote something like “best graphic novel ever”, or maybe even “best novel ever”.) My expectations were high, especially after I saw that it is the only graphic novel to appear on Time’s “All-TIME 100 Greatest Novels” list. I enjoyed it, but I didn’t love it. (I suspect I would have enjoyed it more without such high expectations.) But I went into the movie with low expectations. I had seen some middling reviews, and heard some of a very negative review on the Slate Culture Gabfest (no. 29) before I skipped it to avoid spoilers. I enjoyed the movie immensely. It wasn’t great. But I had a very good time, and didn’t notice that it was long. I suspect I may not have enjoyed it as much if I had high expectations.

Yesterday I finished listening to Speaker for the Dead. I wrote about listening to the audiobooks Ender’s Game and Ender in Exile a little over a month ago in my Pleasures of a poor memory post. I had completely forgotten it. It was like reading (or hearing) it for the first time. But I had high expectations. I remember noting it as perhaps my favorite SF novel. Sadly, I wouldn’t rank it so highly anymore. Perhaps Orson Scott Card’s observations of human nature aren’t as impressive to me after I’ve acquired 25 more years of experience (and perhaps a tiny bit of wisdom). But I suspect the damping effect of my high expectations had a lot to do with it.

I guess my lesson is that to maximize my enjoyment, I should always expect the worst.

Speaker for the Dead did finish well though. Well enough that I just downloaded Xenocide (the next in the Ender series). I’m going to try not to expect much. (My expectations are lower actually, since I recall the series goes downhill after Speaker for the Dead.)

Friday, March 6, 2009

A tr.im TextExpander snippet that works for me

At the end of A TextExpander snippet to paste quoted text I gave myself a to-do to create (or find) a TextExpander snippet to create a tr.im shortened URL. tr.im is currently my favorite URL shortening service. Not only is the domain short and easy to remember, but (if you sign up for an account) they provide stats for each “tr.immed” URL.

A Google search found this post on the SmileOnMyMac Blog (from the makers of TextExpander), where you can download a snippet that works. But it’s unnecessarily complicated. After reading the tr.im API documentation I simplified it to this shell script:
#! /bin/bash
curl -u yacitus:xxxxx http://api.tr.im/api/trim_simple?url=`pbpaste`
Note that Blogger refuses to make this column any wider or use a scrollbar to show all of this code. But the text is there; just copy it and paste into your favorite text editor. (You'll need to use the same trick to see all of the code for the other bash one-liner and the Python code below.)

(You’ll of course want to replace “yacitus” with your tr.im username and replace “xxxxx” with your password.)

The problem with this is that it doesn’t work for me at work, where I use the Authoxy proxy server. I can make it work with:
#! /bin/bash
curl -u yacitus:xxxxx -x localhost:8080 http://api.tr.im/api/trim_simple?url=`pbpaste`
…but then it doesn’t work when I’m at home (and not using Authoxy). curl, unfortunately, doesn’t auto-detect proxy settings.

Once again, Python comes to the rescue. I read in “Fuzzyman’s” urllib2 - The Missing Manual that the Python urllib2 module will auto-detect proxy settings, so I wrote this script:
#!/usr/bin/env python
"""
This script writes to stdout a tr.im version of the indicated URL.

"""

import urllib2
import sys


TRIM_API_URL = 'http://api.tr.im/api'
USERNAME = 'yacitus'
PASSWORD = 'xxxxx'


def main():
"""The entry function."""
url_to_trim = sys.argv[1]
if not url_to_trim:
print "ERROR: one (and only one) argument accepted--the URL to GET"
return -1

response = urllib2.urlopen('%s/trim_simple?url=%s&username=%s&password=%s'
% (TRIM_API_URL,
url_to_trim,
USERNAME,
PASSWORD))
print response.read().strip()

print response.code

return 0



if __name__ == '__main__':
sys.exit(main())
Like in A TextExpander snippet to paste quoted text, I put this in a file called trim_url, did a chmod +x on it, created a symbolic link to it in /usr/local/bin/, and created my TextExpander snippet:










I could have saved myself a lot of time if I had stopped there. But I read on http://tr.im/api that basic HTTP authentication is preferred over the query string parameters I used above. So I figured it would be a learning opportunity to implement basic HTTP authentication in Python. The problem is, I’m not done learning yet! I have yet to get it to work. I posted my question on the BayPIGgies mailing list where I got some good advice on how to debug it (but no one saw the problem), and I also posted a question on stackoverflow.com where I got one answer that may be an improvement on the query string parameters, but again no one saw the problem. I guess I’ll have to take jj’s suggestion and look at what is being sent over the wire. When I figure it out I’ll post the answer on my PyPap blog (and of course on the BayPIGgies mailing list and stackoverflow.com).

Tuesday, March 3, 2009

A TextExpander snippet to paste quoted text

I prefer the inline replying posting style. So a frequent workflow for me is copying text, pasting it into BBEdit, applying "Increase Quote Level", "Rewrap quoted text...", "Select All", "Copy" and then pasting the text into (typically) Mailplane, where I finish composing my email. (Or if I'm running Outlook in Fusion, I may compose the email entirely in BBEdit and paste it as a whole back into Outlook.) Each time I do this, I get that "there's got to be a better way" itch. (But then I get back to what I'm working on and forget about it until next time.)

Yesterday I was reading Dan Frakes' "Plain Clip revisited" MacGem post, which explains how to use the free (donations excepted) Plain Clip utility with TextExpander to automatically paste whatever is in the clipboard with any formatting information removed when you type "ptp" (which is the abbreviation he chose to assign to this "snippet" in TextExpander). I need to do that occasionally (and again, I've been doing it by pasting into BBEdit and then copying back to the clipboard), so I downloaded Plain Clip and a free trial of TextExpander and began setting it up. Dan Frakes uses an AppleScript to run Plain Clip through the command-line. But I noticed I can define a shell script in TextExpander so I don't need to bother with an AppleScript "do shell script" wrapper. But I couldn't get it to work. I quickly found a link in the comments to Gordon Meyer's "A tip for using Plain Clip with TextExpander" blog post, which solved the problem for me.

And that's when a light bulb finally went off in (over?) my head. If I created a simple command-line utility to do word wrapping, I could create a TextExpander snippet to paste quoted text. And about 30 minutes later that's just what I had.

When I need to create a command-line utility, I almost always turn to Python. And as is so often the case with Python's "batteries included" nature, I found a textwrap module that provided almost everything I needed.
#!/usr/bin/env python
"""
This script wraps the textwrap module with a command-line interface.

"""

import optparse
import sys
from textwrap import TextWrapper


DEFAULT_WIDTH = 70
DEFAULT_QUOTE_STRING = '> '


def main():
"""The entry function."""
parser = optparse.OptionParser(description='Text wrapper', prog='wwrap')
parser.add_option('-w', '--width',
action='store',
metavar='NUM',
default='%d' % DEFAULT_WIDTH,
help='maximum length of wrapped lines; defaults to 70')
parser.add_option('-q', '--quote',
action='store_true',
default=False,
help="add '%s' to start of each wrapped line"
% DEFAULT_QUOTE_STRING)
parser.add_option('-r', '--remove',
action='store',
metavar='TXT',
help='remove TXT from start of each line prior to'
' wrapping')
parser.add_option('--removequotes',
action='store_true',
default=False,
help="remove '%s' from the start of each line prior"
" to wrapping" % DEFAULT_QUOTE_STRING)

options, arguments = parser.parse_args()

if not options.width:
print "I don't know how the width wasn't specified, since it's"
print "supposed to default to %d. Aborting." % DEFAULT_WIDTH
return -1

try:
width = int(options.width)
except ValueError:
print "ERROR: the width specified ('%s') is not a number" % (
options.width)
return -1

if options.remove and options.removequotes:
print "ERROR: cannot use both --remove and --removequotes options"
return -1

if options.removequotes:
options.remove = DEFAULT_QUOTE_STRING

wrapper = TextWrapper()
if options.quote:
wrapper.initial_indent = DEFAULT_QUOTE_STRING
wrapper.subsequent_indent = DEFAULT_QUOTE_STRING
wrapper.width = width

lines = sys.stdin.read().split('\n')
if options.remove:
for i, line in enumerate(lines):
if line.startswith(options.remove):
lines[i] = line[len(options.remove):]

print wrapper.fill('\n'.join(lines))

return 0




if __name__ == '__main__':
sys.exit(main())
Note that even though you can't see the code at the end of long lines, it's there. Just copy it all and paste it into your favorite text editor to read it all.

This code should be quite self-explanatory. As is (also) so often the case with Python, the "meat" of these 81 lines are the 7 lines starting with line 67 where I read in the text to be wrapped from stdin. All the preceeding lines are for handling the command-line options.

I put this in a file called "wwrap" and did a `chmod +x` on it. I then created a symbolic link to it in /usr/local/bin/, and I was ready to create my TextExpander snippet.

















Now I can just type 'qtp' and the quoted, wrapped form of whatever text is in the clipboard is pasted in.

I'm inspired to look for more workflows I can simplify with TextExpander and possibly Python. (I'm going to start by trying to figure out how to re-create the "Create tr.im shortened URL" in Dan Frakes' TextExpander screenshot.)

Wednesday, February 25, 2009

Pleasures of a poor memory

One of the benefits of having a good memory is getting to enjoy good novels all over again, years (sometimes not so many) after reading them.

I believe I first read Ender's Game soon after it was first published in paperback, sometime in 1985 or `86. (Almost 25 years ago!) I remember enjoying it, enough to then seek out other books by Orson Scott Card. (I enjoy "binging" on a writer after I discover a good novel. Maybe someday I'll re-enjoy many of my favorite Kurt Vonnegut novels.) I don't remember much of Speaker for the Dead, but I do remember telling my sister that it was great, perhaps my "favorite", and that Card's understanding of human nature and psychology rivals the great Russian novelists. (Not that I had read any of them. And I still haven't.)

Now that I have a longer commute to work (40 minutes going in early, often over an hour coming home), I have time to enjoy my favorite podcasts and listen to audiobooks. I started getting audiobooks from the library, including Ender's Game. Which I enjoyed again. I look forward to when my kids are old enough to enjoy it--it's a "juvenile" novel after all--but I think they should be at least 12 or so.

I wanted to move on to Speaker for the Dead, but I did a little research on the Ender series [spoiler warning] first, and decided this time to "read" Ender in Exile first. I was published only late last year, but takes place chronologically between Ender's Game and Speaker for the Dead. But the library didn't have it.

So I signed up for an Audible.com membership--I chose the "twit749" deal I'd been hearing about on TWiT and MacBreak Weekly--and downloaded it. I just finished it. I'm not going to turn this into a review. But I recommend it. (One line was worth quoting: "Pacifism only works with an enemy that can't bear to do murder against the innocent. How many times are you lucky enough to get an enemy like that?")

I just downloaded Speaker for the Dead. I'm looking forward to it. (Though I'll listen to my favorite podcasts first.)