It is almost, but not quite, completely unlike tea.

Monday, September 03, 2007

A mystery, solved!

I love a good book.  I tend to over-buy just a bit when it comes to books (as my shelves of not-yet-read volumes amply illustrates).  I usually stay out of the old books, though, not knowing that much about them.  One book that I've had for several years has always been a bit of an enigma for me, though.  It's a slim paperback volume titled "The Pocket Book of Verse."  Mine is a first printing from 1940, but it is in remarkably good condition for such an old paperback(!).  I have read many of the poems within it, and I always wondered if this copy had a story to tell.  Since it was produced in 1940, I imagined that it might have accompanied a young GI on his travels across the European continent.  Alas, the only written note to be found in the entire book is a single word on the title page: "Poetry."  Thanks, guys, really helpful.  Today I hit a jackpot though, while doing research on a bunch of books I'm trying to tell.  I googled for the exact title, and found a page dedicated to this very book.  What more could you ask for?  It turns out that the book was a white-hot seller from the moment it was released, selling through 23 print runs in 5 years.  It was also a hot commodity among GIs, especially those confined to POW camps during the war.  Mystery solved -- my guess about the book's past was probably correct.  A history book is a fine thing, but a book with a history is even more interesting.

Thursday, August 16, 2007

A little visitor

So I bought another bike last night. It's not mine (honestly!) though, it's for my dad. He has been looking for a dual sport with lower seat height, and I recently happened upon an older KLR 250 in the paper up here. Based on the color scheme, can you guess the year? I'll leave it a mystery for now. Wendy noted that it's not much smaller than my 650 (seen in the background). While it is a bit shorter, the radiator / fan assembly adds some bulk to counter the smaller engine size. Another clue for the age guessers: it's kick-start only. Now if it would just run... but that's for another blog post.

Sunday, July 29, 2007

Gear I Use: Aerostich Evap-o-Danna

When I'm doing research on the internets about stuff I want to buy, my favorite find is a personally written review of the product.  Therefore, I figured I ought to write one or two of these things myself to give a little back.  Enter the Evap-O-Danna from Aerostich.  This item seems odd to me, since it's sold by a Minnesota company but is much more suited to the climate of the Southern United States (where I happen to be).  It works like this: you soak the fabric in water (it holds a lot), wring it out, and attach it around your neck via velcro.  As you ride, the water evaporates and cools off your neck (home to some big blood vessels, and therefore a good place to keep cool).
I used to think one of those neck tube thingies would be neat, but they just look... girly.  This looks more like something a cowboy would wear.  My beloved wife bought me the competition model, which is double-layer and can hold ice between the layers.  If you ride where it's hot, this is a handy item to have in your tankbag.  Stay cool!

Monday, July 23, 2007

Bikes and Borders

You might have seen this in my old blog, but I got a new bike (maybe I'll remember to post about it here sometime). Sadly, that meant that the old bike had to go. I finally found a buyer last week, with just one quirk -- he was in Canada. He said he'd handle the shipping and import/export stuff, so I figured it was just like a local sale for me. Ha. Ha. Ha.
The fun started last Friday afternoon, I got a call from the import broker. "Hey, the truck is 100 miles away and it'll be there in 2 hours, eh." Luckily I was already out of the office, so I finished prepping the bike and rode it to my old office (which has a semi-height loading dock). I got to the dock around 3:45, and waited for the driver to arrive. At 5, I hadn't heard from anyone so I called the shipping company, who said they'd have the driver contact me. He finally did -- and that was when I knew this wasn't a local sale. I'm pretty sure he said his name was Gennady, but beyond that I wasn't sure about 2 out of 3 words I heard (and I'm pretty good at decoding poor English). I eventually discerned that his computer wasn't giving him good directions and he wanted to know how to reach me. I tried to figure out where he was at the time, but that just didn't work so he asked for my ZIP code. Satisfied with that, he said he'd call me back.
Call back he did -- about 45 minutes later, to tell me that he was at "Pilot." It's about a mile from the office, so I was happy to give him simple directions from there to here. Unfortunately, simple is a relative thing -- he couldn't understand that he would be going under the nearby interstate, rather than onto it. 10 minutes of saying, "No, don't get ON, go UNDER" still left me with an uneasy feeling, but I figured I wasn't helping by keeping him on the phone. We said goodbye, and you can probably guess what happened next. 20 minutes later, he called to say that he was on the interstate and several miles south of the office. I resisted the urge to throw my phone in his general directions, and instead gave him the even simpler updated directions to our office (literally, exit and make 2 right turns). Another 15 minutes passed with no sign of the truck, so I walked to the corner for a look. I could see what looked like a trailer parked about half a mile away, going in the other direction. He called to say that he had taken a left instead of a right and was having some trouble turning around on the narrow road. I didn't have a lot of advice for him except that he was on the right road and needed to go in the other direction. Another 10 minutes and I finally saw the truck headed down the road towards me. I was cheering like Mickey for Rocky by this point, until I noticed something: the truck wasn't getting any closer. Cars were driving around it. WHAT??? He called, and I started yelling like a crazy man to "keep going, you're almost here." So, to cut the story off abruptly and for no reason, he finally showed up and we got the bike loaded into the truck. I left the dock around 7:15 -- 3.5 hours after I got there. Whew!

Let this be a lesson to you, kids: when all else fails, blame Canada.

Sunday, July 15, 2007

good ole mom

Earlier tonight, I was reminded of a time when the greatest trauma I knew was waiting to have a splinter removed  from my finger.  β got a splinter in her finger while playing at a friend's house earlier tonight, and it fell to me to get it out.  Remember that I ranked this as one of the greatest traumas of my young life, and this is one of my progeny.  I will say this: for a girl, she put up a pretty good fight.  In the end, though, sanity  (and my stronger hands) won out and the splinter was removed.  Oh, and she got rocky road ice cream as a reward.  I don't remember that part from when I was a kid!  I do, however, remember that Mom was pretty calm, and I usually ended up laughing because it tickled.  Thanks, Mom -- I never knew how tough that part was.

Thursday, July 12, 2007

How to Lose Friends and Abuse People

Steps are as follows:

  1. Unzip
  2. Let 'er rip
  3. Speak cheerfully about the current rainy weather
Party on, Wayne.

Party on, Garth.

Meet the new blog, same as the old blog

This is the new blog.  The old blog is done.

After taking a little heat for guest blogging on my wife's blog whilst my personal blog sat neglected, I decided to get my blog mojo in gear.  The old blog will be going away soon (and with it the service from whence it sprang), so I've got new digs.  Don't worry, you'll get the same mix of programmer nerd trivia, motorcycle stories, and general stupid humor you've grown accustomed to reading.  Huzzah!

Saturday, May 19, 2007

Marching Bands and Camera Hate

Talks for today:

  • Morning keynote by Tim Bray. Great talk about where "we" ought to be headed with Ruby and Rails. Tim is proof that age and treachery can still beat youth and enthusiasm -- that makes me feel a lot better.
  • Another talk about using helpers in Rails to clean up views, this time by Glenn Vanderburg. I guess I felt like the lesson didn't take the first time -- there wasn't too much overlap between this and the Thursday tutorial of nearly the same name, so no wasted time.
  • Joyent Slingshot -- a super-cool library that allows a Rails app to (with small modifications) run locally on a user's desktop, while still syncing with a remote data source. Wow. Writing a desktop app in Rails sounds like fun, I'll just have to think of a use for it.
  • Xen and the Art of Rails Deployment -- Ezra Z talked about the Xen virtualization framework, which allows you to turn one server into many "virtual servers." To my shame, I haven't played with this stuff at all, so I was glad for the summary. After seeing this and the Amazon EC2 presentation, I'm more convinced than ever that this is the way provisioning will happen in the very near future (<10 years for sure). I don't kill my own chicken for Sunday dinner anymore, why should I provision my own server?
  • Practical Design for Developers -- A bit more high level than I was hoping for, but still plenty useful. David Verba from AdaptivePath (the MeasureMap guys) talked briefly about information architecture, and how to design an application that people will actually use. Isn't that what we all want?

Before lunch, attendees were treated to a short performance from the Extra Action Marching Band. I'm from a somewhat funky town, but seeing a marching band complete with a platinum-wigged co-ed flag line reminded me that funky is a very relative term. On a sad note, I had nearly 10 minutes of video showcasing the marching band but managed to corrupt / delete / burninate it while trying to pull it off my camera. Oh well.


Pictures, Pictures

A few more pictures from yesterday are flying through the internets towards my photo stream as I type. Thrill to the sight of... a dangerous chain of power strips. I wasn't close enough to get a good shot of Ze Frank last night, but you can hit his site and get the general idea. His discourse on graphic design and airplane safety cards was priceless. I'll try to be more photophilic today (you know what I mean).

Friday, May 18, 2007

Rails After Dark

So it's almost 8:30PM on a Friday evening, and I am sitting in a darkened room waiting to see Ze Frank start his keynote. That's my nightlife, baby!

[minutes pass...]

Talk has started.

Ze Frank is better than Leno.

Why did this guy ever quit The Show?

Railsconf 2007, Day 2

No midday update today, as I just didn't find the time to sit down in a quiet place. Bits and pieces:

  • If you're going to put your company's website name on the back of a truck where it will be glanced at by passerby, it should be something easy to read -- i.e. something other than Let's just say I had to read it twice to get it right.
  • When you're the King of Web Frameworks, you can wear whatever the hell you want to. I spotted DHH this afternoon after his keynote, and he was sporting testarossa red shoes.
  • Talk 1 this morning was on "Full-stack Web App Testing with Selenium and Rails." Geek out! This is a testing program that actually drives your web browser automatically, which makes it much better than forcing your kids to test your web app out (it doesn't cry or demand toys as payment).
  • Talk 2 was more of a product pitch, about using Amazon's EC2 service. While it is an incredibly cool service, the "testimonial" did mention a few kinks yet to be worked out. This is probably how we'll do all datacenter stuff in 10 years, and we'll wonder why we ever provisioned our own physical servers.
  • Talk 3 was from Rabble (I have to call him that because I heard another speaker address him that way in casual conversation) about going back and adding tests to your "legacy" Rails apps. Legacy Rails apps. I feel old already! Basically he talked about how to reform your wayward programming practices and move toward proactive testing.
  • Talk 4 was probably my favorite, "Standing on the Shoulders of Giants" by Adam Keys. Adam spoke about the value of reading source code written by others, especially code written by the "cool kids" of the Rails community. This is an area I've meant to look into for awhile, but never got around to. No more procrastination! It looked like too much fun to miss.
  • The last time slot of the day didn't have anything of interest, so I took the MAX into downtown and headed for Mecca, aka Powell's City of Books. I should have set an alarm on my phone or something, but I didn't and so I spent a little over an hour and a half happily browsing the stacks. I almost bought the Bach and Beethoven action figures but couldn't figure out who would want them.

Now tomorrow, you may be in for a real treat: I have been invited to a bout of the local Roller Derby league, the Rose City Rollers. Wait, what? The story of how I got to this point is too long to type, so just hold your breath and wait to see if I actually make it to the derby.

Where are the pictures? Well, I left my USB cable in the hotel room. I'll have to post pix in the morning. You'll just have to let my words paint a picture in your head for now.


Thursday, May 17, 2007

I'm a winner!

If your mom ever tells you you won't accomplish anything sitting on your rear end, tell her you know better.  Tanga (think woot with a less rigid schedule and, generally, more interesting products) offered up a challenge on their blog this afternoon: find TangaJoe and get $25 in credit.  This evening while I was lounging at the OCC, who should sit down across from me but the wanted man himself.  I don't normally go around asking people if they are TangaJoe, so I used the comments section of his blog to see if I had him.  Score!  Thanks to TangaJoe (and Tanga the company) for being such a good sport.  Now I can finally get that Microsoft wireless keyboard and fingerprint reader wait, what?  Oh well, maybe tomorrow they'll have something better.

Railsconf 2007, Day 1: so far

Quick thoughts while I munch:

  • Apparently those symbols on restroom doors aren't as universal as I thought (saw an Asian-looking fellow hurriedly leaving a women's restroom).
  • I have been surprised by the percentage of females here -- it's gotta be above 10%, and I can't remember another tech conference with anywhere near those numbers.
  • Oh yeah, the tutorial: Thomas Fuchs admitted that the documentation for scriptaculous "sucks."  That was worth the price of admission for me.
  • I'm currently eating a "Oregon Chicken Breast Sandwich."  At the risk of getting in trouble back home... I've never seen a breast like this before.
  • Someone is recording a podcast... in the main hall.  During lunch.  They deserve all the background noise they get (and if you hear someone blowing their nose really loudly in the background... yeah, that was me).
  • I had several good lunch conversations, including one with a fellow whose badge said he was with Real Girls Media Networks.  I expected... something else.
  • The weather in the Pacific Northwest is not at all like the weather in Northwest Arkansas.  I probably should have taken this into account when packing.

If you've ever wondered what a sea of nerds might look like... gaze upon the very thing:


Friday, April 27, 2007

Rumors and Heresay

Some nasty rumors have appeared on a certain blog regarding my behavior during a recent card game. I won't stoop to comment on what may or may not have happened during the game, but I think the outcome speaks for itself.

Thursday, February 22, 2007

create vs. create! vs. new in Rails

I've been spending a little time lately on updating The Secret App to remove cruft (Login / User Engine being the two main sources of said cruft).  Now that I'm no longer locked into an old revision of edge, I have noticed that Rails's ActiveRecord behavior seems to have changed a bit.  Before, I could get away with saying
@widget = current_user.widgets.create!(params[:widget])
Now, that gets me a big fat nil in @widget.user_id.  Unfortunately,
@widget =[:widget])
gives me the same darned thing.  The only way I could get the user_id to  fill properly was with
@widget = current_user.widgets.create(params[:widget])
Maybe it's something I am doing wrong, but I haven't found it yet.  I wouldn't put much effort into it, but I really like the clean syntax I get from #create! and so it has gotten under my skin.  Any ideas?  Anyone?  Bueller?