Skip to content

Instantly share code, notes, and snippets.

jeremyf / probability_swn_stabilize.rake
Last active Dec 28, 2020
Calculate the probability of stabilization with treatment
View probability_swn_stabilize.rake
desc "Calculate the probability of stabilization with treatment"
task :probability_swn_stabilize do
# This class encapsulates the probability calculations based on
# the given :distribution.
class Universe
def initialize(label:, distribution:)
@label = label
@distribution = distribution
@max = distribution.keys.max
@size = distribution.values.sum.to_f
jeremyf / embarkation_and_journey_scenarios_for_aime.rb
Last active Dec 19, 2018
A script for running scenarios against Adventures in Middle-earth Embarkation and Journey rules; See
View embarkation_and_journey_scenarios_for_aime.rb
#!/usr/bin/env ruby -wKU
ITERATIONS = 100_000
TERRAINS = %i(easy moderate hard severe daunting)
Guide =, :wisdom_modifier, :label) do
def to_s; label; end
GUIDES = [,-1, "naive level 1"),,2, "trained level 1"),
View random-table.rb
require 'forwardable'
gem 'dice_parser'
require 'dice'
# Responsible for registering random tables and exposing a means of rolling on those tables.
class TableRegistry
# @api public
# @example
# document = [{
# key: '1-a',
jeremyf /
Last active Jan 24, 2018
Rails runner friendly script to associate pids with a collection

The associated Ruby script is more of a proof of concept to demonstrate using pipes and parameters in conjunction with the Rails runner. I have not fully verified that it works.

echo '<work_pid>' | bundle exec rails runner associate_pids_with_collection.rb -c <collection_pid>
jeremyf / padwg.timeline.mermaid
Last active Dec 8, 2017
Permission Analysis and Design Working Group Timeline
View padwg.timeline.mermaid
# See documentation concerning Mermaid-based gantt charts
# The PNG was generated via Atom's mermaid plugin
# * Install atom (
# * Install atom-mermaid (
# * Open atom and paste this document into an empty buffer
# * Set Syntax to Mermaid
# * Type Command+Shift+P to search for the "Atom Mermaid: Toggle" to view the mermaid preview
# * In the preview pane, right click and select "Save As PNG"
dateFormat YYYY-MM-DD
jeremyf / cibuild
Created Nov 21, 2017
Cibuild proposal that includes indication on what is starting and stopping
View cibuild
#!/usr/bin/env bash
set -e # halt script on error
echo "=~=~=~=~=~= Starting jekyll build =~=~=~=~=~="
bundle exec jekyll build
echo "=~=~=~=~=~= Finished jekyll build =~=~=~=~=~="
echo "=~=~=~=~=~= Starting htmlproofer =~=~=~=~=~="
bundle exec htmlproofer ./_site
echo "=~=~=~=~=~= Finished htmlproofer =~=~=~=~=~="
jeremyf /
Created Nov 8, 2017
Assigning a person to review a submission based on properties of the work


Assigning a person to review a submission based on properties of the work. And you don't need multiple admin sets to do this.

Whirlwind Workflow

Two primary concepts of the workflow in Hyrax 2.0:

  1. Permissions are assigned at two levels:
  2. [Sipity::WorkflowResponsibility][sipity_workflow_responsibility] - A person has permissions to all things using this workflow
View build-probabilities-for-bitd.rb
# Prerequisites: You need Ruby 2.4.4 or greater. My recommendation is to install ruby via rbenv (
# To run on the command line:
# 1) Download this gist
# 2) Run the following command: ruby /path/to/this/file.rb
class Scenario
attr_reader :failure, :compromised_success, :success, :critical, :total, :pool_size
def initialize(pool_size:)
@pool_size = pool_size
@total = 0
@failure = 0
# Transform JSON (from a file, URL, or stdin) into discrete assignments to make it greppable
for file in new-*; do diff <(gron "`echo $file | sed  's/new-//'`") <(gron $file) >> diffs.txt; done
View catalog.jsonld
"@context": {
"xsd": "",
"deri": "",
"und": "http://localhost:3000/show/",
"dc": "",
"deri:first": {
"@type": "@id"
"deri:last": {