Somewhere in my travels I thought I saw a project that uses Sinatra and some very RESTful URLs to do blogging via email. Now I can’t find it.
If you’ve seen this as well – leave a message in the comments.
If I can’t find it in a couple of days, I think I know what my next project is.
Update 13 Dec 2010
Anil Dash asked for something like this almost 8(!!!!) years ago.
I was getting 403 errors after deploying my newest Sinatra app with Passenger.
Turns out Passenger assumes and requires a /public folder.
This app is so tiny and new, it didn’t have one yet – so I was pointing Passenger at the app’s root. Resulting in the 403 errors.
Solution: Create an empty /public folder and restart Apache. Ta Da. Like magic.
If you’re still having issues – confirm your LoadModule passenger_module path is correct, mine looks like this:
After updating the Passenger gem to 2.2.7, my LoadModule path was way off, not helping the deployment troubleshooting efforts.
On Saturday, November 14, 2009, I’ll be giving a talk on the Sinatra web framework at the Chippewa Valley Code Camp – held in UW-Stout’s Millennium Hall.
It should be fun, especially since Justin Grammens and Sam Schroeder are also on the schedule talking iPhone Development.
This weekend I made some significant head way on one of my key 2009 projects: Kernest.com.
Right now, Kernest is also the most likely candidate for my 5 minute Ignite Mpls presentation.
According to a recent post by FuelInteractive.com, a link in Twitter is clicked for 5 minutes, then completely ignored.
That got me thinking about all the wasted short urls out there. So many tinyurl, culld.us, is.gd, et al, links just collecting dust after all that initial clicking.
Seems so wasteful considering “the current economic climate”. Maybe, we don’t need all those URLs. Maybe we should tighten our belts and limit ourselves to 1 short url – and continually reuse it.
With that in mind, I built HTTP://RE07.US. It’s 1 short url that we can all share.
All long URLs get shortened to the same link: RE07.US. And, it will be shortened to that – until someone else shortens their long URL to RE07.US. And so on and so on.
REDUCE. REDIRECT. RECYCLE.
On Thursday afternoon, I had an idea for just about the smallest web app I could think of (since then, I’ve even cut out a couple features). It didn’t make sense to use all of Ruby on Rails for this considering how tiny it was.
Seemed like a great opportunity to try out Sinatra1
- Write the app
- Vendor Sinatra and Rack (that’s just good practice)
- Submit a ticket requesting a port
- Add a config.ru file to your app’s directory (for Rack) containing the following
# PATH TO VENDOR-ED RACK AND SINATRA
:run => false,
:environment => :production
- Add a config.yml file to your app’s directory for Thin containing the following
Follow the Setting up and Configuring Lighttpd instructions on the Joyent Wiki (See update below)
- Add another Bootup Action for Thin
thin -s 1 -C /path/to/config.yml -R /path/to/config.ru start
thin -s 1 -C /path/to/config.yml -R /path/to/config.ru stop
- Follow the Proxying to a Port instructions on the Joyent Wiki
1. If the time I spent building this app was a cocktail, it’d be 1 part programming, 2 parts design, 3 parts deployment. That’s a huge part of why I wrote this post.
UPDATE: March 8, 2009
My gut says Lighttpd + Thin is redundant, so I’ve turned Lighttpd off.