Skip to content

Instantly share code, notes, and snippets.

View sdball's full-sized avatar

Stephen Ball sdball

View GitHub Profile
@sdball
sdball / deploy.rb
Created January 23, 2013 21:35
Example capistrano task to confirm deployment
# drop this task in the environment(s) you want to confirm deployment for
before :deploy, "deploy:confirm"
namespace :deploy do
desc "Should we really deploy?"
task :confirm do
if Capistrano::CLI.ui.ask("Are you sure?") == "yes"
puts "You got it buddy. Imma deploy now."
else
@sdball
sdball / hardcoded_swap.rb
Created January 25, 2013 15:02
Ruby fun: a one time method override.
require 'minitest/spec'
require 'minitest/autorun'
class String
def one_time_override(method, &override)
self.instance_eval do
def to_s
self.instance_eval do
def to_s
'foo'
@sdball
sdball / javascript_learning_sources.md
Last active December 13, 2015 18:08
Want to learn JavaScript?
@sdball
sdball / index.php
Created March 1, 2013 17:18
Snippets from an old PHP IP Database I wrote. My hand rolled framework code was kind of nice.
<?php
// page setup
require('/www/includes/ipdatabase/ipdb_page.php');
$javascript = '<script type="text/javascript" src="/ipdatabase/js/index.js"></script>';
$page = new IPDB_Page();
$page->title('Main');
$page->javascript($javascript);
@sdball
sdball / ezproxy_redirect.php
Created March 1, 2013 17:16
Some old PHP code I wrote to have PHP force EZProxy into being more secure.
<?php
/**
* ezproxy_redirect
*
* EZProxy requires that the username and password be passed via GET.
* This is just about as insecure as possible.
*
* So, we trick ezproxy into security by opening a socket connection
* to the server; acting as a browser to initiate the connection; then
* writing out its response to the actual browser.
original = [
{ a: { foo: 1 } },
{ b: { foo: 2 } },
{ c: { foo: 3 } },
{ d: { foo: 4 } },
{ e: { foo: 5 } },
{ f: { foo: 6 } },
{ g: { foo: 7 } },
]
@sdball
sdball / elixir_data_bytes.exs
Created July 19, 2016 13:37
Looking at types of Elixir byte data
is_binary <<255::size(8)>> # => true
is_bitstring <<255::size(8)>> # => true
is_binary <<255::size(4)>> # => false
is_bitstring <<255::size(4)>> # => true
# So a binary is a bitstring but a bitstring isn't necessarily a binary.
# We can see that effect in pattern matching as well:
<<255::size(4)>> # => <<15::size(4)>>
<<x>> = <<255::size(4)>> # => MatchError!
@sdball
sdball / ssl_cert_extraction_example.ex
Last active March 31, 2017 13:59
functions to extract SSL certs for Erlang SSL from ENV variables
def ssl_config do
ssl_config(client_cert, client_cert_key)
end
def ssl_config(_client_cert=nil, _client_cert_key=nil) do
[]
end
def ssl_config(client_cert, client_cert_key) do
[
'use strict';
// none of this is good
class Greet {
required(arg) {
throw new Error(`${arg} is required`);
}
requireArgs(given, required) {
check_letter() {
echo "$1: `type $1 >/dev/null && type $1 | sed -e \"s/^$1: //\" | tr '\n' ' '`";
}
letters() {
for letter in {a..z}; do
check_letter $letter
check_letter `echo $letter | tr a-z A-Z`
done
}