Skip to content

Instantly share code, notes, and snippets.

Jeremy Friesen jeremyf

Block or report user

Report or block jeremyf

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
jeremyf / latin1-to-utf8.rb
Last active Aug 19, 2019
A ruby script to help automate getting a Rails application out of MySQL's character encoding hell.
View latin1-to-utf8.rb
# The below script attempts to automate the character encoding challenges
# encountered with mysql, latin1 and UTF8
# ==============================================================================
# Copyright © 2013 University of Notre Dame
# Additional copyright may be held by others, as reflected in the commit history.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
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
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 Feb 7, 2018
Tools for Troubleshooting Ruby
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 /
Last active Dec 19, 2017
Script to run the internal app of Hyrax (and thus ease testing a bit)
  1. Open Terminal 1
  2. cd /path/to/hyrax
  3. rake engine_cart:regenerate -- Rebuild the internal app; May not be necessary
  4. Terminal 1: rake engine_cart:server -- Analogue to cd .internal_test_app; rails s
  5. Open Terminal 2
  6. cd cd /path/to/hyrax
  7. fcrepo_wrapper -v -p 8984 --no-jms
  8. Open Terminal 3
  9. cd cd /path/to/hyrax
  10. solr_wrapper -v -d solr/config/ -n hydra-development -p 8983
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
You can’t perform that action at this time.