Riding Bikes in 2011
Submitted by ckdake on Sun, 2011-11-27 11:33Lots of time on 2 wheels, no broken bones, and lots of good times. 2011 has been a good year of riding, and after a crazy event this weekend, it seems like a good time to summarize a few things.
Velodrome
At the track, FM:Race held our own, even as people got injured, moved out of the country, and were just slacking. We were able to snag 2nd place team out of 28 teams, and our top A racer Brian Tester won Rider of the Year, getting more points than anyone else at the Dick Lane Velodrome in 2011. I finished in 19th place, and we had a few other people scattered through the top 30 placings.

This year, Jason Atwood and I raced in almost all of the "Madison" events and did pretty well. Winning one on April 20, and not getting lapped too many times in 7 others. Jason is out of state at grad school now, so we weren't able to do the last few.
Track racing has been a lot of fun, but it's also a huge time sink for the amount of 'saddle time' (4 hours every wednesday with 1 hour on the bike) and I got hurt due to actions of other people a bit too much for my taste. Mountain biking is what I enjoy doing the most, so track racing is going to take a back seat next year for other things.
Cyclocross
New for this year, I've done a handful of cyclocross races. Cyclocross bikes are basically road bikes with weird geometries, less effective brakes, and slightly knobbier tires used for riding around in grass and parking lots. Pretty ridiculous, but there was a great deal on a bike on the internet so I figured I would give it a shot. After a handful of races, I'm still not sure if it's fun, but I figure I should give something super crazy like Southern Cross a try before deciding if this bike is a keeper or not.

So far I'm 29th out of 170 for the season, and FM:Race is in 7th of 139 teams.
Roads
The vast majority of my road biking this year was the weekly FM:Race Training Ride, a terrible hill climbing ride that I try and add a few more hills to every year. This will continue in 2012 with a few small changes. I also did a few 100 mile rides, and I'll probably do a few more of those in 2012.
But then, sometime last week, Strava announced the Turkey Takeoff: Ride 250 miles in a 5-day period over Thanksgiving weekend. For some reason, I decided that this was a good idea to do and came up with a plan of attack. After my ~7 mile commute on Wednesday, I was running a little behind schedule. Thanksgiving morning, with perfect weather, I rode to Stone Mountain and did 2 laps. I've done this route more times than I can count and it get's pretty boring, but it was an easy way to grab 41 miles. Then it was off to Thanksgiving dinner.
Friday morning at 6:30am, full of turkey, I picked up Stafford and we headed to the start of the Silver Comet to head towards Anniston, AL. It was supposed to be 48F as the sun barely rose above the horizon, but ended up being 33F to start, and as we rolled westward we struggled to keep warm and stay positive. 2 hours in it finally passed 40F and we started to have a better time. We crossed the Georgia/Alabama border and started down the Chief Ladiga trail, and at Piedmont, AL we'd been riding for close to 5 hours. Based on some rough math, we figured that if we turned back, we could make it back to Smyrna, GA and the car by the time the sun went down.

Our original goal was to get all the way to Anniston, but that would have us riding for 2+ hours after sunset in the freezing cold which neither of us was really prepared for. I scarfed down a bag of Doritos from a gas station and we headed back. Once back in Georgia, the mile markers slowly ticked down, and we made it back as the sun was setting with 149 miles and 9 hours of riding time behind us. (more photos)
I was planning to take Saturday off and finish up the 250 miles on Sunday, but the forcast for Sunday called for rain so Jim, Bob, Federico, and I met up at 9:30 am on Saturday to squeeze in the last 50+ miles. I led the way, doing a combination of routes pretty familiar to me and making some random turns as well. It's touch to fit in 53 miles without a plan, but we pulled it of in one of the craziest intown routes that I've done.
250.9 miles in 4 days. Not bad! I was the 10th person to finish the Turkey Takeoff, and it looks like more people will be finishing throughout the day today.
Mountains
Per my plan, 2011 was full of mountain biking. I spent a week mountain biking in Colorado with Jason, and Jason and I did the entire Chainbuster Racing 6-hour 2-person race series. More details about that on the FM:Race blog: Chainbuster Series Finale.

Much more important than racing is just mountain biking with friends, and this year was pretty successful. I took my college friend Dave up to Stanley Gap for his first ride in the North Georgia mountains; Bob and I continued to boldly go and explore new places like Rock Hawk and Tanasi; I got CBQ and Mike from Highgroove on mountain bikes, quickly moving up from Atlanta Beach to Blankets Creek to Mulberry Gap; And it's looking like I will have done over 30 tuesday night "Dirty Mustache" mountain bike rides this year with anywhere from 4 to 15 people.
Rails 3.1 Assets on S3 with HTTPS
Submitted by ckdake on Thu, 2011-11-03 13:54So your Rails app is deployed on Heroku which is pretty sweet and makes things easy. The Rails 3.1 asset pipeline is pretty awesome and packages your files up for you. You're using carrierwave to store Image attachments on Amazon S3, and everything is going great. Then, it's time to scale. Heroku isn't going to like serving all your assets all the time, CDNs are the right place to do that. Oh, and you need to be able to use SSL on the registration and login pages. Seems pretty easy, right?
There are plenty of very easily findable docs on each of those topics, but gluing them together took some figuring. First up, Make sure your Amazon S3 buckets are in the format 'media-example-com' and _NOT_ 'media.example.com'. Due to the way HTTPS works, if you try to access a https://media.example.com.s3.amazonaws.com/ URL you're going to get an invalid certificate warning. Doh! If you haven't done this, it's pretty annoying because there is no concept of 'move' or 'rename', so you'll have to copy files from the old bucket to the new one. Go ahead and start on this, it might take you a while.
Once that's done, it's pretty much just gems and configuration. Make sure you have these guys installed:
Then make a rake task that depends on 'assets:precompile' (which with asset_sync will take care of uploading your compiled assets to heroku):
That `assets:clean` part? That makes sure to wipe out your assets locally so that when you make changes to CSS/JS locally, they will show up in your browser as expected. That one took a few of us a while to figure out. ("WHY WONT MY CSS UPDATE!!!111!!!")
Then configure carrierwave, paying extra special attention to the fog_host URL, starting it with "//" which makes sure the resources will be loaded via http when the page is http, and https when the page is https:
Last up is configuring your asset_host for your production environment. All the docs suggest using a Proc here, but precompiling assets (needed for Rails 3.1 -> S3 on Heroku) doesn't have a 'request' to detect the hostname from so this completely blows up and you end up with no CSS or JS on your asset hosts. There are several related issues in the Rails issue tracker, but there's a super simple solution that works better than all of them:
And you're all set! `rake deploy` will compile your assets, upload them to your bucket on S3, and deploy your code to Heroku. When a visitor visits http://example.com/ they'll get all the assets (JS/CSS) and all your media (item images) from the HTTP version of your Amazon S3 buckets, and when they visit https://example.com/, they'll get the HTTPS version.
It should be super easy to plug in CloudFront if you need to scale up even further.
Mountain Biking in Colorado
Submitted by ckdake on Sun, 2011-08-07 20:22Last week I spent 6 days mountain biking in Colorado with Jason. We stayed in 4 different hotels, drove a rental Dodge Charger somewhere in the neighborhood of 850 miles, and had a blast riding some of the best mountain bike trails in the country. I rode a rental Yeti ASR 5 Carbon and Jason was on a Yeti Big Top.
- ~22 Hours of riding
- 164.71 Miles
- 29,154 ft of climbing
- 11,991 ft max elevation
- 55F low temperature, 104F high temperature
Monarch Crest, Salida
GPS Trace | Photos | Trail Info
Not a bad way to start the trip. We met up with Paul F and two of his friends to shuttle cars to the start and ride back to town. I had a few mechanical problems with my bike that we pretty quickly worked out, and we spent the day cruising at high altitude enjoying the scenery and getting aclimated. Paul and friends were pretty quick, but we didn't keep them waiting. Amica's Pizza afterwards in Salida was delicious.
Bear Creek + Methodist Mountain + Rainbow, Salida
GPS Trace | Photos | Trail Info
Day 2 was just Jason and I. We did a long fire road climb from Salida to 'Rainbow' which was pretty nice. We were feeling pretty good so instead of taking a right turn back to town where we planned to, we continued onward into the unknown, knowing that Rainbow connected up with our exit point from Monarch Crest. This turned into a 1.5 mile walk up a 1500ft hill which took quite some time and while the downhill on the other side was kindof nice, it definitely wasn't worth it. We both ran out of water, and once we got back down to the road the sky opened up on us and we took shelter under an awning on a random house on the side of the road to wait for the storm to pass. This was not a day either of us want to do again, but it was good to get the walking and dealing with the rain out of the way. Afterwards, we drove to Crested Butte and had a late dinner of wings and beer at Secret Stash which lived up to their reputation.
Trail 401, Crested Butte
GPS Trace | Photos | Trail Info
The 'superstar' trail as far as views go, 401 was goregous. We climbed up a gravel road to the start, passing by Emerald Lake and climbing over huge snowbanks. Once we crested the top of the mountain, we were treated to miles and miles of flowly downhill singletrack cut through fields of wildflowers. This was a 'short' 'easy' day so we didn't put in too many miles or work to hard, but words don't do the views justice so make sure to look at these photos. Massive numbers of flies at some points seemed particular attracted to getting stuck inside helmets, so there aren't quite as many photos as I would have liked because the only way to keep the flies off was to keep moving.
Edge Loop, Fruita
GPS Trace | Photos | Trail Info
Our IMBA Epic ride of the trip, Edge Loop is a long road climb tieing together fast flowly singletrack, super technical downhill jeep roads, a wash thats only dry and open 6 months out of the year, and great views. This was a hot one with a high of 104F, but due to super low humidity it felt a lot better than any summer mountain bike ride in the north Georgia mountains. We saw lots of rabbits and lizards, as well as gas wells and a pumping facility on the top of a mountain in the middle of nowhere. This isn't a ride that I'd do again 'just for fun' but it was definitely worth doing once.
18 Road, Fruita
GPS Trace | Photos | Trail Info
From the same trailhead as Edge Loop, the 18 Road network is a great set of super-fast XC runs. Some cut through desert plains, others down ridgelines with steep dropoffs on either side. We rode several loops, each time climbing slowly from the parking lot, picking a trail to decend, and loving the descent. A few of the trails had super steep downhill sections that gave me the same kind of exhilaration as the first drop on a roller coaster. Highly recommended, and what most people think of when mountain biking and Fruita are mentioned together.
Colorado Trail Kenosha to Breckenridge, Frisco
GPS Trace | Photos | Trail Info
To finish off the trip, we met up with Paul F again, this time in downtown Breckenridge, and shuttled cars to Kenosha Pass. This was never ending climbs followed by the most fun I've ever had going downhill on a mountain bike. Everything from smooth banked turns to super technical high-speed rock gardens interspersed between tight switchbacks. There's helmetcam video of this from Paul that should make it's way online sometime in the next week or two.
After 2009's Mountain Biking in Santa Fe, NM and 2010's Road Biking in Portland, OR, this was a pretty great 3rd annual bike trip. More time riding, more places, and minimal sunburn and flesh wounds. Next year will probably be another mountain bike trip, maybe British Columbia?
Velocity 2011
Submitted by ckdake on Wed, 2011-06-29 15:57Last year I attended Velocity 2010 from the Operations side of things as an Operations Engineer at SugarCRM, this year, I attended as a Software Developer at Highgroove Studios which influenced my choice of sessions and my perspective.
Outside of the sessions, there was almost too much going on to keep track of. A full job board, a full exhibit hall, and people from every company that is anybody in the internet space. I got face time with people from Facebook, Yahoo, Google, Youtube, Heroku, Opscode, Dyn, Amazon Web Services, eBay, AOL, Github, VMware, and plenty of others. Some were casual conversations about company culture between sessions or at a meal, others were detailed QA at their booths getting specific needs I had worked out. Specifically, I learned some things from developers at Amazon and Heroku that will help me write better applications, and I might be moving a bunch of things over to Dyn's services. Steaks with Facebook's AppOpps guys were delicious, they know I'm not ready to move out to the bay, and the guy sitting next to me was part of a team that held the Internet2 Land Speed Record for a period of time as a grad student in Spain.
The slides and videos are slowly being posted so head over there to see the full spread. This was going to be my recommendation for the things to watch/read, but it ended up being a short description of most of the sessions I went to, all of which are worth paying some attention to.
Portfolit: an exercise in rapid prototyping
Submitted by ckdake on Fri, 2011-01-14 10:19Last night around 6:30pm I decided to spend part of an evening building and deploying something neat. I've been employed full time as a software developer now for close to 6 months and have a lot more experience with Javascript, Ruby on Rails, and deploying applications, so it was time to try something out! San is re-doing her website and wanted something to display her Flickr images in a more professional looking portfolio idea, so that served as the inspiration for this project.
At 6:40pm, I purchased portfolit.com and added it to my DNS server which replicates to EveryDNS. Last year, I would have done this as a PHP app on one of my servers, but I instead decided to do this with Ruby on Rails. I don't personally own any Rails hosting infrastructure yet, so I chose to deploy on Heroku and in under 30 minutes, I had a rough design up and running on Heroku. Both the basic hosting and the use of a custom domain name on Heroku are free, which is pretty great!
I took several major steps:
- Basic Rails 3 app with jQuery
- Talking to the Flickr API using flickraw to get a list of recently uploaded photos
- Displaying thumbnails from Flickr in 5 columns
- Lightbox effect when clicking on photos
- Dynamically loading the photos with Javascript instead of on server-side
- Loading more photos when scrolling to the bottom of the page
- Allowing /username to pull a users photos instead
- Reverting to search when a string passed in that isn't a valid username
- Search box on front page
- Opacity fading in and out on mouse hover over photo thumbnails
And that's it! By 10pm I was showing friends the finished product.

Portfolit
Let me know what you think! Hopefully I'lll spend a few more days on this in the future, especially if there is interest and feedback.
Net cost: $8.57 for the domain name, ~3.5 hours to build and deploy the app. The internet has come a long way over the past 10+ years!
Limiting firearm magazine capacity is ridiculous
Submitted by ckdake on Mon, 2011-01-10 22:57This is an "opinion piece" that you may or may not wont to read. After the jump!

