How much has ModRails made in donations?
So, after totally falling in love with ModRails (Phusion Passenger) a few months back, I was looking at their “Enterprise Edition” and began wondering how much they had made so far with their free software…
Luckily, I had Ruby and Hpricot handy. I opened up IRB and ran the following code:
require 'hpricot'
require 'open-uri'
doc = Hpricot(open('http://www.modrails.com/enterprise.html'))
(doc/"tr/td").collect { |td| td.inner_html.scan('USD').empty? ? nil : td.inner_html.sub('USD ','').to_i }.compact.inject { |s,n| s + n }
To date, they have made $20,700 in donations! Not bad for two guys and some “free” software.
Setting up a remote server to access my git repository
I host all of my Git repositories on a box that has a different port than normal SSH connections use, which causes git checkouts to be a bit of a pain in the butt.
So, in order to deal with this, any computer I plan on continually using for Git access, I add to the git user’s authorized_keys list. Here is the step by step I use to make it easy.
All of these commands are performed on the computer I want to grant permission to.
First, make sure I have a public ssh key.
cat .ssh/id_rsa.pub
Now, lets copy that public key to the Git server.
scp -P 8888 .ssh/id_rsa.pub git@YOUR_SERVER_ADDRESS:~
Using a remote SSH command, lets append our id_rsa.pub file to the authorized keys list, and then delete the file since we won’t be using it anymore.
ssh -p 8888 git@YOUR_SERVER_ADDRESS "cat id_rsa.pub >> .ssh/authorized_keys; rm id_rsa.pub"
Test the connection to make sure we can connect without a password. Just ssh and then exit immediately if it worked.
ssh git@YOUR_SERVER_ADDRESS -p 8888
Alright, so once that works, you have permission… but it still doesn’t deal with the port problem. To do that, we will create a .ssh host in the config file.
vi .ssh/config
You want to add something that looks like this:
host myserver
hostname YOUR_SERVER_ADDRESS
user git
port 8888
Once you’ve done that, save the file and exit.
Now, you should be able to clone your git repo without any problems. No more passwords, no more long git urls. Just beautiful simplicity.
git clone myserver:commentize.git
The language of the land
Just hangin around
Alex Rubin makes his mark on mobile
Why I enjoy cooking.
I made dinner for some of my friends in Mexico CIty last night and while I was plating everything one of them asked me why I started cooking. My standard response was that it’s a great way to get my head off of writing code and that it’s so much different than what I do every day.
Later that night, while cleaning up, I thought about it some more and it really isn’t that much different. The thing that I think I like about it is that it’s a finished product every time. Other than that, it’s actually quite similar to what I do for work.
1) Project Planning
* What will I be cooking? (Overall Concept)
* Who am I cooking for? (Intended audience)
* Does anyone have allergies I should know of? (Accessibility concerns)
* What time is everyone arriving? (Scheduling)
* What if something doesn’t turn out right? (Contingencies)
2) Actual Cooking
When you’re actually cooking, you can find better ways to make something just like when you’re coding. You can re-use dishes and combine ingredients to make a custom result. You really have a lot of flexibility within a semi-constrained set of guidelines (flavor).
On top of that, you have things to consider:
* What order do things need to be cooked in? (Planning)
* Do I have all the tools I need? (Resource Allocation)
* Do I know how to cook everything? (Skills Requirements)
3) Plating and Setup
Inevitably, if you’re cooking a big meal, the kitchen is in a bit of chaos at this stage. Now comes the decoration. This is what your guests are actually going to see. You plan out your presentation, set the plates up and lay everything out so that it is well accepted by your guests.
No matter how messy the process was, if the plating looks good and the food tastes great you’ve done well. Just like with any project though, you can have ugly presentation for great food or great presentation on crappy food. Finding the best of both worlds is tricky, but very rewarding.
3) Cleanup
This is where you take away all the mess caused by the cooking process. Get rid of the excess, wash the pots to give them a break and get them ready for the next time you need them, and get your working space back in order.
The end result is that you have an entire project from concept to completion done in one day. I think that it’s important for people to feel a sense of accomplishment and completion. In my industry, projects range from a few week to a few months, and others seem like they never end. Cooking provides that feeling for me.


