Archive for June 2010
More interesting this week was writing my first Rails3 app. An internal helper app, something that makes our lives just a touch easier. It’s the sort of app that 37Signals would turn into a revenue stream. There’s one more feature I’d like to see added but the core is there and working well.
This is exactly what my weekend needs.
acta-freakin’-absolutely what I need to heal up from this week. This week was… unpleasant.
I guy with a shopping cart walks up to me yesterday. “You were in the Marines, weren’t you?” (Nope. Sorry.) “You look a like military guy. Army?” (Nope. Sorry). “Any of the services? Navy?” (Nope. Sorry.) His wallet was out by now and a card that he’s using to represent that he’s a Vietnam vet is out. “Can you spare a few for a Vet?” (Nope. Sorry). “You sure are sorry, bitch…” as he runs his cart over my toes in anger. Part of me really wanted to kick his ass. I don’t like that about myself.
Another guy nearly crushed me into a bus while parking illegally using his commercial plates (a plumber maybe?) to park across from the Food Emporium and go buy some dinner. He decided to lecture me with yelling and gestures since I refused to be crushed. He nearly kills me and this is what I get? Part of me really wanted to kick his ass. I don’t like that about myself.
I rarely come home and think “I need a drink”. I did last night. (That is, I thought it. I didn’t have the drink… too much to do.)
Yes, there were some nice things about the week as well. But it was really filled with stuff like that. The heat maybe? Dunno. But I need the peace of the roads, the climbs and the outdoors.
See yah out there.
- MagLev with rvm. ( ‘rvm install maglev-23673’)
- If you’ve ever wished you could have push notifications sent to your iPhone when someone commits to your repository…
- Showcase of CoffeeScript – 2.5 mins for your next Dev Group meeting
- business_time gem
- A quick gist to get you up and running with Rails 3 Beta 4
I got up a little after 5 a.m. and splashed some water on my hands and face then checked my email. I took some dried fruit from the kitchen and munched for a minute while I read before going to the bathroom to put on my cycling clothes. I didn’t want to disturb Lisa and now Noah who was, as is his style, sleeping distributed all over the bed. The price for caring this morning was paid by absolutely nailing my left knee into the edge of the bathroom vanity. Our bathrooms are really too small for dressing. Other than the nearly stifled curse, I didn’t give it much thought although it did, I noticed later, leave quite a goose egg (and now a bruise). I came back into the kitchen and poured lots water in a glass that has a bike etched into its side, then sat quietly for a few minutes munching and drinking. I opened Noah’s father’s day present, a snake that had a clothes pin set into to the top “to hold all my papers” that had been hand painted and formed by The Kid. I pumped up the replacement rear wheel and all seemed good. I rolled down my hill right around 6:30 and pedaled through Wesley Hills then north toward the hills and Harriman.
I had skipped the outer layers and was chilly going down the hill, but it seemed prudent. It would be warm later and I didn’t want to carry all that stuff.
I told myself what a great morning it was and turned onto Camp Hill Road thinking about the wisdom of long sleeves, the sand and gravel on the road and where I wanted to ride. I thought about Noah and Lisa, the architecture of the houses beside me, and the rapidly fading morning sun, and friends, and people and places of a long time ago. The clouds looked ever more threatening but I was not to be intimidated.
My hands on the top of the bar, the sun no longer displayed my shadow on the road. I hit the first small climb, and felt my left knee complain. Look at that. “That hurts” I thought as I gently rubbed my hand past the spot where I had driven the vanity into my knee. I wondered how long my knee would hold up.
Some cyclists blew by on a down hill and after some brief morning banter I turned off to continue. I briefly thought about hanging with them as long as I could, but I wasn’t in the mood to work that hard just yet.
As I climbed the first real hill the woods exploded with bird song. Lots of species I didn’t recognize raucously cheering on my climbing. My own personal Alpe D’huez like cheering squad. A deer on the side of the road couldn’t even be bothered to step away from me though we could have brushed shoulders. So much for exuding power and ferociously attacking the climb.
33.26 miles and 2575 feet of climbing later my knee held up fine. But my bike once again was not. My rear tire was flat I realized climbing the last significant bit of hill as I neared home. “Meh”, I said to myself, “it must be a slow leak, and I only have a few miles left”. I took out a cartridge and poured CO2 into the tire. Nice and solid. Then I hear the hissing… Sad. I was hoping to avoid changing a rear tire this close to home, but I guess not. Tube? Check. Levers? Check. Someplace to sit while I do this that’s not in the middle of the road? Check. Second CO2 cartridge? uh, Second CO2 cartridge? Oh bother.
So for the second time in two weeks I called the “Team Car” to come and get me. Fortunately, Lisa and Noah were just about to go out, and I was just a few miles from home. So lickety split they were there. Some nice cyclist stopped to help, but I explained that there was no need and I’d be fine in just a few minutes. As a bonus since I rode from home, Lisa was able to take the car with the rack on it to make things even simpler all around.
For solo riding I’m now adding a mini-pump to the kit bag. And hopefully this will change my current ride karma and I can make it all the way home on the next ride.
Noah wanted to stay with me, so we watched parts of the most recent Star Trek movie (he likes the space parts, no exposition, please, and is very sensitive to the feelings of the heros, so we edit as we go). We then went ice skating at the local rink, met the lovely and helpful Jill, who was willing to watch and play with Noah both on and off the ice while I helped Lisa get her bearings, and then we came home made dinner, and “picnicked” in the family room watching the end of the Tour de Suisse.
All in all it was a great father’s day.
- Fastr – A Web Framework for Ruby
- This year, on August 19, celebrate Whyday. Set aside that day to remember Why’s contributions to our community and culture by hacking just for the fun and joy of it.
- Quick & Powerful Ruby Desktop Applications
- Everyday git interface for human beings.
- Luke asked: “vendored gems/plugins with git submodules let me quickly iterate on gem code in an app context. Can I achieve this workflow with bundler?” and got this response: “@lukemelia yea, just point your Gemfile at a git checkout gem ‘blah’, :path => ‘/path/to/blah’ “
- datamapper goes 1.0
- Surge – a new conference on scalability
On Thursday, Mark Z. and I took a moment to see the “bespoke” exhibit of hand made bicycles at MAD. It’s a nice display of some of the finest bikes made by hand today. The irony of the bike rental business on the corner, while just inside were wheelsets that cost more than several rentals was not lost on us. Another irony was the mud covered Richard Sachs ‘cross bike which the guard would shoo people away from if they even tried to touch it… something tells me Richard would just shake his head, atmo.
As I’ve said before I’ve yet to commit to a “bespoke” cycle… but one day.
However in the world of cycling ignominy is never far away—at least for me. Lloyd and John posted this nice ride they do up to Cold Spring and beyond. In need of nice long ride I planned to go despite having to wake up early on the one day when I don’t have to… 5am came early as it were.
Six of us started out from Rockland Lake heading north up the rollers of 9W, dropped into Haverstraw, and met up with three others. We climbed up toward Bear Mountain bridge and crossed over continuing up 9D. As I get nearly as far away from home as I’m going to get, I hear the loudest “bang” I’ve ever heard come from my bike. I thought I had flatted, so I slowed and stopped carefully, but it didn’t look like it, and once stopped, it was clearly not the problem, and yet the wheel was not really turning. And then I saw it.
There was a spoke unattached at the hub end. “That’s gonna be a hassle.” I thought. I knew that I didn’t have a spoke wrench on my multi tool. And while I opened the brake and tried to re-orient the wheel in the frame enough to limp home, it was a no go. The wheel was significantly out of true.
Just then Lloyd and (the other) John came riding by (I’m not sure why they were that far behind me) and the stopped to help. Lloyd broke off the dangling spoke, but without a spoke wrench we were kinda stuck. They didn’t have anything on their tools either. There’d be no limping home. All that was left was calling Lisa and asking to be picked up. Luckily she had a morning of chores planned, and was home and could quickly throw The Kid in the car and made her way to me… but still… I’m almost as far away from home as I planned to be that day. (Darn you Murphy!) Nor was I close to any of the bike shops in the area that would have come and picked me up (because they’re awesome around here.)
Phone call made, I sent Lloyd and (the other) John on their way and tried not to go stir crazy waiting… now of course, all of this could have been worse. It could have started raining for example. But even then, I happened to stop by Hudson Highlands State Park, so there was a little covered message board that I could have hidden under. And while it was cool, I did have rain jacket with me… and food and water. All in all… not the worst conditions in which to wait. I only called Lisa three times…
I’ve taken away some thoughts for the future.
- I put a spoke wrench in my seat bag. Already. As in I already got one of the right size and put it in the bag.
- I could have salvaged the ride home if I had a spare set of wheels pumped up and ready to go in every way sitting where Lisa would know she had the right wheels. This is a bit more complicated, but I took the steps I could today. I need to get a set of wheels with matching rims to really make this pain free… but in the meantime I’ve prepped a set and made a spot for them to live. When I check the pressure on the bike set, I check those too. I’d move them into Lisa’s car, but that’ll get in her way most of the time, so I’ll leave them in the newly created spot.
- Lastly, I need to put *all* the phone numbers I need into my cell phone. As long as I have a cell connection I can look up the phone numbers I need. But what if I don’t? I might be able to borrow a cup of phone, but internet access? Lots harder ’round the state parks. I can’t run up 411 access fees on someone’s phone either… it would make it harder for the next person who needs their help to get it (regardless of whether I pay for it or not. Just my feeling, but still.)
I’d take a few hours of riding on a wobbly wheel over dragging my wife (or anyone else) out on the road to help me while I wait. And a little preparation could’ve rescued the ride. She even could’ve grabbed another bike, but the rack isn’t on her car and putting a bike in the car is not easy (to say the least)… so wheels it would be.
I thought about bringing extra wheels to the Battenkill ride, but because I didn’t think of it until the last minute I was, again, unprepared. I’ll do better next time. Seems a shame to lose a day to something that a minute wheel change could save. Especially in that case where we really did have a “team” car.