Beerpad Hackathon: Hosting with Heroku
When I started planning out Beerpad, I wanted to focus on fun beer ideas. I'm perfectly capable of setting up an environment for a Rails application to run in, but I didn't want to waste a morning doing a bunch of chores and have nothing but a "Hello World" page to show for it. Once I had my designs, I wanted to prototype the juicy real features right away. Enter Heroku. Heroku is a service for hosting Ruby webapps. I've been interested in the service since I saw Adam Wiggins demo it at a SVC Ruby Meetup. Heroku is a one-stop serivce for starting a database-backed, Rack compatible, Ruby webapp. They use git to version control your code, Thin to serve your traffic, and Postgresql to store your data. They also have add-ons that webapps may find useful. I've been looking for an excuse to play with the service, and Beerpad fit the bill perfectly. Follow the jump for my experiences.
Read moreReaction to 37Signal's Getting Real
The gray and wet weather outside put me in an gloomy mood, so I didn't want to write any 'unhappy' code and regret it later. Instead, I headed to Cup of Joe on the corner of Dizengoff and Gordon to read 37Signal's book 'Getting Real' while enjoying a creamy cappuccino. Follow the jump for a short book review.
Read moreHackathon creation: Beerpad
To spice things up from
Outspokes and consulting, Arthur, Jeff and I
held our first informal hackathon at Mo Joe
Cafe on a sunny
Saturday morning. The three of us had no real goal other than to get
our geek on in good company. I had a great time brainstorming and
creating my deliciously refreshing beer review site named
Beerpad. Follow the jump for details on the project.
Page Caching Gotcha on Heroku
Andrew noticed that his beer reviews weren't showing up on beerpad after he published them. His reviews were saved in the database and showed up on redeploy. I smelled a caching bug. Digging a little deeper, I found out that caches_page and expire_page are overridden on Heroku to set http caching headers rather than write a file to the local filesystem. While I was fixing this bug, I picked up on a lot of useful details about Rails action caching and configuration. Details and my fix after the jump.
Read moreRails Dependency Management
Rails has two methods of adding external libraries to a project, rubygems and plugins. There are also different ways to manage these external libraries. Here are some conventions I've picked up over the years for managing dependencies in development and deployment as painless and maintainable as possible.
Read more