Notes On Capistrano to Windows 2008

install openssh via cygwin, include vim and git.

setup git in cygwin not windows

if git for windows is installed, do not include use the git unix commands (remove from PATH if you installed that way)

Change the .bashrc file to prepend /usr/local/bin:/usr/bin to path

export PATH=/usr/local/bin:/usr/bin:$PATH

If not running interactively, don’t do anything

[[ “$–” != i ]] && return

debug path issues

cap shell

cap> echo $PATH


Savon.rb client for .Net web service.

This is a quick post to help anyone looking for info on consuming a dotNet based webservice using the savon gem for ruby. The main issue is that .net expects a namespace on the action element in the soap body. This can be done easily in the call to client#request as shown in the following gist. Hope this saves someone, maybe future me, some time!

No, I can’t build Facebook for $500!

I’ve been freelancing full time for over a year now and have found that finding and bidding for new work takes a ton of time! The perception of what something should cost has moved far for reality. I’m wondering if other freelancers have run into this problem?

I have some ideas to help alleviate some of the problems related to freelancing, if you’re interested in any way, please contact me.

Hacks and Hackers Colorado – April 27

Have an entrepreneurial streak? Want to be involved in innovative new technologies?

Us too! Come checkout the inaugural Hacks and Hackers Colorado event April 27, at 6:30p!

AWS EC2 NodeJS, Forever, HAProxy Setup

Sign up for EC2

Create an instance, I used one from here, Alestic, paste in the ami-xxxxxx value to find the one you want.

Create an security group with at least SSH and HTTP.

Save your private key and connect like:

ssh -i your_key.pem

Update and install the needed packages:

sudo apt-get update
sudo apt-get install git-core g++ make curl libssl-dev

Install node, get latest url at

curl -O
tar -xvzf node-v0.2.6.tar.gz
cd node-v0.2.6
sudo make install

Node Package Manager

Install Node Package Manager.

sudo chown -R $USER /usr/local/{share/man,bin,lib/node}
curl | sh


This will be used to keep your node process running, forever. Restarting as needed.

keep NodeJS running with Forever

npm install forever

HA Proxy

HA Proxy

HA Proxy Logging

Quickly setup a load balanced high availability cluster

ACL Proxy Config for HAProxy


    log   local0
    log   local1 notice
    #log loghost    local0 info
    maxconn 4096
    #chroot /usr/share/haproxy
    user haproxy
    group haproxy


    log global
    mode    http
    option  httplog
    option  dontlognull
    retries 3
    option redispatch
    maxconn 2000
    contimeout  5000
    clitimeout  50000
    srvtimeout  50000

frontend http-in

    bind *:80
    acl is_domain_com hdr_end(host) -i

    use_backend domain_com if is_domain_com
    default_backend hello

backend domain_com

    option httpchk HEAD /check.txt HTTP/1.0
    option httpclose
    option forwardfor

backend hello

    option httpchk HEAD /check.txt HTTP/1.0
    option httpclose
    option forwardfor

change /etc/default/haproxy

# Set ENABLED to 1 if you want the init script to start haproxy.
# Add extra flags here.
#EXTRAOPTS="-de -m 16"


sudo /etc/init.d/haproxy start

sudo forever start path-to-app.js


NOTE: don’t forget to create and EBS AMI Image so your stuff is saved.


NodeJs for server newbs


EC2 Getting Started

Alestic AMI’s

NodeJS on your own AMI

Node as a service

HA Proxy Setup

NodeJS Web Applicaiton Links

Node API Docs and Resources

More links from my recent NodeJS hacking.

Node JS API 0.2.6

Express JS

Expresso JS

Node JS Modules

Node Twilio

Node Twilio Docs

JS Reference from Mozilla

Jade, Hmal like view engine

Nodester Hosting

Node JS Notes

Getting Node Setup

Node JS

How To Node

Download the latest package from Node JS

tar -vxzf node-v0.2.6.tar.gz

cd node-v0.2.6

make install

Package Manager

How To Node NPM




npm install express
npm install connect
npm install jade

Get the express samples to see how things work

git clone

If you follow the hello world example, you might see the following error

    throw e;
Error: session requires the "secret" option string for security
    at Object.sessionSetup (/usr/local/lib/node/.npm/connect/0.5.5/package/lib/connect/middleware/session.js:45:13)
    at Server.<anonymous> (/Users/dustycandland/projects/smsbet/app/app.js:18:19)
    at Server.configure (/usr/local/lib/node/.npm/express/1.0.3/package/lib/express/server.js:332:8)
    at Object.<anonymous> (/Users/dustycandland/projects/smsbet/app/app.js:12:5)
    at Module._compile (node.js:462:23)
    at Module._loadScriptSync (node.js:469:10)
    at Module.loadSync (node.js:338:12)
    at Object.runMain (node.js:522:24)
    at Array.<anonymous> (node.js:756:12)
    at EventEmitter._tickCallback (node.js:55:22)

FIX: add the { secret: 'some random text' } to the app.js configure section

app.use(express.session({ secret: 'some random text' }));

Hearding Code Podcast

How To Node NPM

Mongo DB OSX Install

Mongo DB with Express

Express JS

Brutalist Framework