Skip to content

Instantly share code, notes, and snippets.

View darrenterhune's full-sized avatar

Darren Terhune darrenterhune

  • Canada
View GitHub Profile
@darrenterhune
darrenterhune / kernel-commands.sh
Last active September 4, 2015 02:45
helpful unix kernel commands
# convert lines in text file
tr '[:lower:]' '[:upper:]' <oldfile> newfile
# download a gzip file from remote server
ssh server "gzip -c remote_file" > local_file.gz
# secure copy local file to remote server
scp localfile user@remote_server.com:remote_directory
# find all files that have been modified in the last 3 days
@darrenterhune
darrenterhune / move logic to model
Created February 24, 2010 09:23
csv import example in model
# controller
def proc_csv
import = Import.find(params[:id])
if import.load_csv
flash[:notice] = "woo"
redirect_to some_url
else
flash[:error] = "ohoh"
end
end
@darrenterhune
darrenterhune / Bitfields
Created October 29, 2010 08:12
Example bitfield calculations in ruby with thinking-sphinx
# For bitfield calculations...
#------------------------------------------------------------------------
# flag | sale | lease | charter | hide | vertical
#------------------------------------------------------------------------
# booleans | 1 | 1 | 1 | 1 | 1
#------------------------------------------------------------------------
# position | 1 | 2 | 3 | 4 | 5
#------------------------------------------------------------------------
# value | 1 | 2 | 4 | 8 | 16
#
require 'hmac-sha1'
require 'net/https'
require 'base64'
desc "Invalidate files from cloudfront distribution"
task :files, :filenames do |task, args|
CONFIG = YAML.load_file(File.join(RAILS_ROOT, 'config', 'amazon_s3.yml'))[RAILS_ENV]
s3_access = CONFIG['access_key_id']
@darrenterhune
darrenterhune / order_ranking_algorithm.rb
Created October 3, 2011 22:57
ranking algorithm in mysql
# I hate this... it's fugly:
order("CEIL((artworks.votes + POW(subscriptions.amount, 2)) / POW(((DATEDIFF(CURDATE(), artworks.created_at)) + 1), 1.5))")
# Would love to be able to do something similar to this (although I like typing *POW!*):
order(((artworks.votes + subscriptions.amount)**2) / (((Time.parse(DateTime.now.to_s) - Time.parse(created_at.to_s) + 1) / 86400).round + 1)^1.5)
# Code could have some boo boos init... this is just as an example fyi
@darrenterhune
darrenterhune / passwordless_ssh.zsh
Last active January 17, 2018 05:12
Dreamhost passwordless login
scp ~/.ssh/id_rsa.pub user@example.com:~/
ssh user@example.com
mkdir .ssh
cat id_rsa.pub >> .ssh/authorized_keys
rm id_rsa.pub
chmod go-w ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
@darrenterhune
darrenterhune / digitalocean.md
Last active April 14, 2016 00:43
Digital Ocean [Virtual Hosts, MySQL] Setup

Setup Virtual Hosts

Execute the following commands after ssh into vps:

sudo mkdir -p /var/www/example.com
sudo chown -R $USER:$USER /var/www/example.com
cd /var/www/
sudo chown www-data:www-data * -R 
sudo usermod -a -G www-data username-logged-in-as
cd
@darrenterhune
darrenterhune / nokogiri.sh
Last active August 29, 2015 13:55
Nokogiri Mac OS X Mavericks
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28
@darrenterhune
darrenterhune / finder.rb
Last active August 29, 2015 13:57
Find all users unless has_many matches a specific date
User
has_many :bookings
| id | name |
---------------
| 1 | amy |
| 2 | jack |
@darrenterhune
darrenterhune / heartbleed.sh
Created April 9, 2014 19:24
openssl heartbleed update
# Update the system and packages
sudo apt-get update
sudo apt-get dist-upgrade
# Restart server
sudo shutdown -r now
# Check openssl is upgraded against versions below
dpkg -l | grep "openssl"