Skip to content

Instantly share code, notes, and snippets.

View bjjb's full-sized avatar

JJ Buckley bjjb

View GitHub Profile
@bjjb
bjjb / feedme
Created November 21, 2013 19:11
A Ruby-script to react to RSS feeds
#!/usr/bin/env ruby -ws
require 'open-uri'
require 'nokogiri'
require 'yaml'
require 'pathname'
require 'ostruct'
require 'pp'
require 'forwardable'
require 'minitest/unit'
@bjjb
bjjb / provision
Created November 21, 2013 05:00
A bash script for quickly setting up NginX, PostreSQL, ruby, thin, and an app user on a Debian-like system
#!/bin/bash
# Provisioning script for an Ubuntu server to run a PostgreSQL server, NginX,
# and a Rack application behind a thin server, which can be deployed with
# Capistrano.
#
# This script needs to be run as root
#
# When it's run, you will still need to add your deploy users to the group, so
# that they can actually act on behalf of the named application user. And,
# obviously, they will need an account into which they can SSH, so you'll need
@bjjb
bjjb / blogeen.rake
Created October 21, 2013 02:57
A simple static website generator
# A very simple Rakefile for generating static sites. It's essentially Hobix,
# but probably simpler. Every page of the site is a YAML file. The YAML file
# gets compiled into a HTML file with the same basename. The content can be
# wrapped in a layout.
require 'rake/clean'
require 'open-uri'
require 'yaml'
require 'erb'
YML = FileList['**/*.yml'].exclude(/^[_.]/)
@bjjb
bjjb / dummy.rb
Last active December 17, 2015 02:09
A dummy ActiveRecord "application"
# A dummy ActiveRecord application, useful for playing around with ActiveRecord,
# or for writing tests. Makes a Sqlite3 database in memory.
#
# Creates the following tables:
#
# - products
# - users
# - taggings
# - tags
# - categories
@bjjb
bjjb / powmaker.sh
Last active December 15, 2015 09:08
Shell command to generate a [.pow](http://pow.cx) link for every file in a project directory (provided they have a config.ru)
cd ~/.pow
for f in ~/Projects/*; do [[ -e $f/config.ru ]] && ln -s $f `basename $f`; done
@bjjb
bjjb / monty.rb
Last active December 11, 2015 12:19
A demonstration of the Monty Hall Problem (http://en.wikipedia.org/wiki/Monty_Hall_problem).
#!/usr/bin/env ruby
# encoding: utf-8
#
# A silly script to demonstrate the Monty Hall Problem.
# http://en.wikipedia.org/wiki/Monty_Hall_problem
#
# Usage
# ruby [-v] monty.rb <n>
# where n is the number of times each of the 3 players plays the game.
#
@bjjb
bjjb / linode_ddns.rb
Created January 2, 2013 20:43
A simple Ruby script for creating or updating a Linode DNS A record for the current host (i.e. - Dynamic DNS)
#!/usr/bin/env ruby
require 'linode'
require 'open-uri'
$api_key = "MY LINODE API KEY"
$subdomain = "my.subdomain.example.com"
# Updates a Linode DNS record. Can be used to create a dynamic DNS within a
# domain of your own. Just set the subdomain to whatever.
@bjjb
bjjb / three.rb
Created January 2, 2013 19:00
A simple Ruby program for sending webtexts from three.ie.
#!/usr/bin/env ruby
$username = "08312345676" # Replace with your phone number
$password = "000000" # Replace with your webtext PIN
require 'mechanize'
# A simple three.ie webtext CLI.
# Requires Ruby 1.9 and Mechanize (gem install mechanize)
# Logs in, fills in the webtext form, submits it, and prints out the result.
@bjjb
bjjb / gem_file.rb
Created December 5, 2012 22:54
How to get the path to an arbitrary file from a Rubygem
# Includes a file from a gem. Useful for reusing test helper files from the gems
# you're writing functionality for.
def gem_file(gem, file, *gem_requirements)
File.join(Gem::Dependency.new(gem, *gem_requirements).to_spec.gem_dir, file)
end
@bjjb
bjjb / sample_app.rb
Created October 18, 2012 10:59
A sample ActiveRecord database setup, for inclusion in a test helper, or something
require 'active_record'
# A sample application, consisting of products, users, comments, categories, and whatnot.
module SampleApp
class Product < ActiveRecord::Base
belongs_to :user
has_many :comments, :as => :commentable
has_many :transactions
has_and_belongs_to_many :categories