Skip to content

Instantly share code, notes, and snippets.

@coderanger
coderanger / example.rb
Created June 15, 2016 22:31
Example of subclassing the Unicorn resource
module MyUnicorn
# Subclass the resource.
class Resource < PoiseApplicationRuby::Resources::Unicorn::Resource
# Give it a new name so we can find it.
provides(:my_unicorn)
# Add a new property. Could do more here.
property(:listen)
end
# Subclass the provider.
@coderanger
coderanger / file.rb
Created May 18, 2016 00:20
File transport API sketch.
# Remote file or directory proxy object.
#
# @since 1.0.0
class File
# Create a proxy object. All data is lazy-loaded so this does very little.
#
# @param connection [Airlift::Connection] Connection object to use for
# operations.
# @param path [String] File or directory path.
# @param follow_symlink [Boolean] Follow symlinks when getting file info.

Keybase proof

I hereby claim:

  • I am coderanger on github.
  • I am coderanger (https://keybase.io/coderanger) on keybase.
  • I have a public key whose fingerprint is AF25 8FBF 2D56 96D9 5764 0543 445B 6255 C512 B26E

To claim this, I am signing this object:

@coderanger
coderanger / readme.md
Created February 25, 2016 03:23
ChefConf 2016 Proposal Ideas

Anyone Can Cook: Writing Good Cookbooks as a Beginner

Abstract

Learning to write high-quality Chef cookbooks can be a daunting prospect. There are few resources and little documentation. Let's dive in to the best practices to build usable, maintainable, and delightful Chef cookbooks. We'll cover the structure of great cookbooks for new and experienced Chefs alike.

Outline

@coderanger
coderanger / talk.md
Last active December 28, 2015 02:58
PyCon 2016 Submission

Behind Closed Doors: Managing Passwords in a Dangerous World

Description

A modern application has a lot of passwords and keys floating around. Encryptions keys, database passwords, and API credentials; often typed in to text files and forgotten. Fortunately a new wave of tools are emerging to help manage, update, and audit these secrets. Come learn how to avoid being the next TechCrunch headline.

Abstract

Secrets come in many forms, passwords, keys, tokens. All crucial for the operation of an application, but each dangerous in its own way. In the past, many of us have pasted those secrets in to a text file and moved on, but in a world of config automation and ephemeral microservices these patterns are leaving our data at greater risk than ever before.

@coderanger
coderanger / django.rb
Created August 7, 2015 21:12
Rails vs. Django deployment
application '/srv/myapp' do
git 'https://github.com/example/myapp.git'
virtualenv
pip_requirements
django do
database 'sqlite:///test_django.db'
secret_key 'd78fe08df56c9'
migrate true
end
gunicorn do
@coderanger
coderanger / editor.rb
Last active October 14, 2015 20:20 — forked from Sauraus/editor.rb
Unity cookbook
require 'chef/resource'
require 'chef/provider'
module Unity
module Resources
module UnityEditor
# A 'unity_editor' resource to install and uninstall Unity Editor.
class Resource < Chef::Resource::LWRPBase
self.resource_name = :unity_editor
@coderanger
coderanger / next.rb
Last active August 29, 2015 14:23
What properties could look like.
#
# Copyright 2015, Noah Kantrowitz
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
@coderanger
coderanger / glim_farming.py
Created June 6, 2015 04:40
Monte carlo simulation for Glim Farming in with Lyme.
import math
import random
import statistics
def run_Take_on_a_Clay_Pupil(state):
state['cp'] = 1
def run_Reading_and_writing(state):
"""Requires Pygmalion 1."""
state['glim'] += 105
@coderanger
coderanger / gmos.md
Created April 23, 2015 04:27
GMOs: Not That Dangerous

Okay, so lets rewind a bit. Roundup is a brand name used by Monsanto for a type of herbicide called "glyphosphate" While it was under patent protection for 20 years, those patents all expired back in 2000 so now many companies market similar herbicides. These products are used by farmers to kill off smaller plants like grasses and bacteria that spread in the wild and would use nutrients in the soil that the farmer would rather be absorbed by their crops. It does this by blocking the creation of a few key proteins needed by all cells. This doesn't affect insects for the most part as animals don't make these proteins ourselves, we have to eat them ("essential amino acids"). But in plants, it kills them by denying them these required proteins.

Enter "Roundup Ready Soybeans" (and others, soybeans were the first though). They took genes from a few sources (a specific bacterium, a virus that infects cauliflowers, and a petunia flower) and combined to create a new method to synthesize those essential proteins, spec