Skip to content

Instantly share code, notes, and snippets.

View sent-hil's full-sized avatar

Senthil Arivudainambi sent-hil

View GitHub Profile
@sent-hil
sent-hil / goliath.markdown
Created August 21, 2012 21:58
River (getriver.com): HaProxy rules that matches based on api versions, http verbs and paths.
frontend http
  bind *:8000

  # match http verbs
  acl is_post method POST

  # match api versions
  acl one hdr(Accept) -i application/v0.1
  acl two hdr(Accept) -i application/v0.2
@sent-hil
sent-hil / gist:3418572
Created August 21, 2012 19:32
River (getriver.com): Install Ruby, MongoDb on clean Ubuntu server.

Ideally this process should be automated via Puppet/Chef, I just haven't gotten around to it.

Upload local SSH keys to server for password less login

Create ssh dir on server

mkdir .ssh

Upload local key from laptop

local> cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'

# Problem: Divide api into version to provide a consistent experience to developers.
require 'goliath'
require 'active_support/all'
module V01
class Hello
def self.call(env)
[200, {}, {'response' => 'V01'}]
end
@sent-hil
sent-hil / webapp_folder_structure
Created March 21, 2012 12:18
Rearrangement of Rails folder structure based on 'Architecture the Lost Years'
# Rearrangement of Rails folder structure based on Robert Martins' Keynote: Architecture the Lost Years.
# This structure was meant to say 'I am a web app that does x and y and only incidentally uses Rails'.
# I'm interested in knowing if:
# 1. Is this viable in the long run?
# 2. Can you tell what the app does?
|── Gemfile
├── Gemfile.lock
├── Readme
module Iteration
def map
each[0]
end
def to_a
each.split("")
end
end
module BackwardIteration
def self.included(base)
if base.ancestors.include?(ForwardIteration)
instance_methods.each do |method|
base.class_eval do
alias_method "#{method}_reverse", method
define_method method do
unbound = ForwardIteration.instance_method(method)
unbound.bind(self).call
$LOAD_PATH.unshift(File.dirname(__FILE__))
require 'active_support/inflector'
module OpenAuth2
module Provider
class Base
attr_accessor :client_id
def initialize
We all have the drum major instinct. We all want to be important, to surpass others, to
achieve distinction, to lead the parade…. And the great issue of life is to harness the drum
major instinct. It is a good instinct if you don’t distort it and pervert it.
Don’t give it up. Keep feeling the need for being important. Keep feeling the need for
being first. But I want you to be the first in love. I want you to be the first in moral
excellence. I want you to be the first in generosity.