most of these require logout/restart to take effect
# Enable character repeat on keydown
defaults write -g ApplePressAndHoldEnabled -bool false
# Set a shorter Delay until key repeat| echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list | |
| wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - | |
| sudo apt-get update | |
| sudo apt-get install postgresql-9.3 postgresql-server-dev-9.3 postgresql-contrib-9.3 -y | |
| sudo su - postgres -c "psql template1 -p 5433 -c 'CREATE EXTENSION IF NOT EXISTS hstore;'" | |
| sudo su - postgres -c "psql template1 -p 5433 -c 'CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";'" | |
| sudo su - postgres -c "service postgresql stop" | |
| sudo su - postgres -c '/usr/lib/postgresql/9.3/bin/pg_upgrade -b /usr/lib/postgresql/9.1/bin -B /usr/lib/postgresql/9.3/bin -d /var/lib/postgresql/9.1/main/ -D /var/lib/postgresql/9.3/main/ -O "-c config_file=/etc/postgresql/9.3/main/postgresql.conf" -o "-c config_file=/etc/postgresql/9.1/main/postgresql.conf"' | |
| - name: Group by Distribution | |
| hosts: all | |
| tasks: | |
| - group_by: key=${ansible_distribution} | |
| - name: Set Time Zone | |
| hosts: Ubuntu | |
| gather_facts: False | |
| tasks: | |
| - name: Set timezone variables |
| # Hack to change the Rails cookie serializer from Marshal to JSON and therefore allow the session | |
| # to be shared between different languages but also avoid that someone knowing the | |
| # cookie secret key could execute arbitrary code on the server by unmarshalling | |
| # modified Ruby code added to the session/permanent cookie. | |
| # | |
| # Note that all users will beed to login again since both the remember me cookie and the session cookies | |
| # won't be valid. Note also that the remember me cookie is tested multiple times per request even when it fails. | |
| # for performance reasons you might want to delete it if these extra cycles are too costly for you. | |
| # | |
| # Rails 4 (not tested on Rails 3). |
| preload_app! | |
| min_threads = Integer(ENV['MIN_THREADS'] || 0) | |
| max_threads = Integer(ENV['MAX_THREADS'] || 5) | |
| threads min_threads, max_threads | |
| workers Integer(ENV['WORKER_COUNT'] || 3 ) | |
| on_worker_boot do | |
| ActiveSupport.on_load(:active_record) do |
| #!/bin/bash | |
| set -exo pipefail | |
| BUILD_ENV=$1 | |
| if [ `uname` == 'Darwin' ]; then | |
| OSX=1 | |
| JSCOMPRESSOR="yuicompressor --type js" | |
| else | |
| OSX= |
One of the best ways to reduce complexity (read: stress) in web development is to minimize the differences between your development and production environments. After being frustrated by attempts to unify the approach to SSL on my local machine and in production, I searched for a workflow that would make the protocol invisible to me between all environments.
Most workflows make the following compromises:
Use HTTPS in production but HTTP locally. This is annoying because it makes the environments inconsistent, and the protocol choices leak up into the stack. For example, your web application needs to understand the underlying protocol when using the secure flag for cookies. If you don't get this right, your HTTP development server won't be able to read the cookies it writes, or worse, your HTTPS production server could pass sensitive cookies over an insecure connection.
Use production SSL certificates locally. This is annoying
| #!/usr/bin/bash | |
| # Author: Stephen Coley @coleydotco | |
| # | |
| # This script automates a Github deploy. | |
| # I use it with Alfred to deploy http://coley.co. | |
| # | |
| # Change the stuff surrounded in [..] | |
| # | |
| # You must run git pull in the terminal and | |
| # copy the line that asks you for your password. |
| #!/bin/bash | |
| HOST=$(hostname) | |
| function install_postfix() { | |
| echo | sudo debconf-set-selections <<__EOF | |
| postfix postfix/root_address string | |
| postfix postfix/rfc1035_violation boolean false | |
| postfix postfix/mydomain_warning boolean | |
| postfix postfix/mynetworks string 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 |
| # config/initializers/devise_patch.rb | |
| require 'devise/version' | |
| if !defined?(Devise::VERSION) || (Devise::VERSION < "1.4.0" && %w[1.2 1.3].all? {|v| !Devise::VERSION.start_with?(v)}) | |
| raise "I don't know how to patch your devise version. See http://blog.plataformatec.com.br/2013/01/security-announcement-devise-v2-2-3-v2-1-3-v2-0-5-and-v1-5-3-released/" | |
| end | |
| if Devise::VERSION < "1.5.0" | |
| warn "Patching devise #{Devise::VERSION} with < 1.5.0 patch" | |
| Devise::Models::Authenticatable::ClassMethods.class_eval do | |
| def auth_param_requires_string_conversion?(value); true; end |