Skip to content

Instantly share code, notes, and snippets.

View ndbroadbent's full-sized avatar

Nathan Broadbent ndbroadbent

View GitHub Profile
@ndbroadbent
ndbroadbent / gpt3-hangman.txt
Last active April 11, 2021 05:49
Some test GPT-3 training data for the hangman game
Hint: This person is an actor.
____ ____
=> e
There were no e's!
- Guesses: e
____ ____
=> t
There were 2 t's!
@ndbroadbent
ndbroadbent / create_combined_submission.deluge.js
Last active February 20, 2021 22:49
DocSpring + Zoho CRM - Examples for creating Submissions and Combined Submissions, and poll for status until they are processed
// Used for loop that waits for pending jobs to be processed.
LoopList={"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20",
"21", "22", "23", "24", "25", "26", "27", "28", "29", "30"};
templateID = "<TEMPLATE ID>";
apiTokenId = "<API TOKEN ID>";
apiTokenSecret = "<API TOKEN SECRET>";
base64EncodedLogin = zoho.encryption.base64Encode(apiTokenId + ":" + apiTokenSecret);
@ndbroadbent
ndbroadbent / run_failed_gitlab_pipeline_specs.sh
Last active October 3, 2020 10:59
Find all the failed RSpec examples in GitLab CI pipeline logs and run them all locally
#!/bin/bash
set -eo pipefail
CURRENT_DIR="$(realpath $(dirname "$0"))"
ROOT_DIR="$(realpath $CURRENT_DIR/..)"
# https://gitlab.com/docspring/docspring
PROJECT_ID="1908805"
GITLAB_TOKEN=$(cat $ROOT_DIR/.gitlab-api-token)
@ndbroadbent
ndbroadbent / freeze_for_2s.txt
Created June 6, 2020 11:16
Minimal examples that freeze VS Code with a regex search
# VS Code freezes for 1-2 seconds with regex search "([^]+\n)+"
# foo foo foo foo
foo(foo).foo foo 'foo'
foo(foo).foo foo 'foo'
foo(foo(
'foo.foo.foo-foo-foo .foo-foo-foo'
).foo).foo foo('foo foo')
foo(foo).foo foo 'foo foo'
@ndbroadbent
ndbroadbent / system.rake
Created June 1, 2020 12:04
Check for Debian updates
namespace :system do
desc 'Check for security updates for Debian packages'
task check_security_updates: :environment do
return unless Rails.env.production?
Cronitor.run(ENV['CRONITOR_ID_CHECK_SECURITY_UPDATES']) do
stdout, stderr, status = Open3.capture3('apt-get update')
unless status.success?
raise "'apt-get update' failed! stdout:\n#{stdout}\nstderr:\n#{stderr}"
#!/bin/bash
set -e
TEMPLATE_ID="tpl_q56GMFtgY6JEEfzASd"
API_TOKEN_ID="api_test_7tKsjEfES39ENnNThX"
API_TOKEN_SECRET="EvpFND320XPPffPHz2OSrGISg2x1Ms0zjoX8FPfPgng"
read -r -d '' SUBMISSION_DATA <<'JSON'
{
"data": {
@ndbroadbent
ndbroadbent / bookmarkbar
Created May 20, 2020 13:22
this image was in my bookmarks bar
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASgAAAFOCAYAAAA1qoBeAAAAAXNSR0IArs4c6QAADDJJREFUeAHt3c+PZEUdAPCqtw0bQWYPHICoyapHhZUTHJZkD5oYD3Lai1zFXaNXNST+A3I1MboJN057g5s/iG7ACKcFyeIJWKMkaMKBLB6Gme6y3mT6x0y/nul5093zfnxeUul69arqVX1q8p3unurpGBwECBDYgMDNq+ncB7c+3h3fKoY4/MV/Hx2Mz6sei6pCZQQIEGiCgADVhFUwBgIEKgUEqEoWhQQINEFAgGrCKhgDAQKVAgJUJYtCAgSaICBANWEVjIEAgUqBWFmqkAABAjUFXnzk49+OUvrGguaXZ8pTzv915vxAdlDcf+3IPQgHajshQIDAEgI56lzK1Z5eomr5BGk2YB1oMkw7W17iHSBxQoBAkwQEqCathrEQIHBAwEu8AxxOCBA4rUCR4rXhoNia6yeFIgyHt8blMRTDNIhXxudzjw/FO94kn1NRQIDAOgR8Fm8dqvokQODMBLwHdWb0bkyAwHECAtRxQq4TIHBmAgLUmdG7MQECxwkIUMcJuU6AwJkJ2GZwZvRuTKBfAldvhtGvHo0vjGedYhqN8x4JECBAgAABAgQIECBAgAABAgQIECBAgACBQwLHfhYv3Uzndj75/fS7rGIY3nf9u/76dwjSKQECqxewD2r1pnokQGBFAgLUiiB1Q4DA6gUEqNWb6pEAgRUJCFArgtQNAQKrFxCgVm+qRwIEViQgQK0IUjcECKxeYG+bQbrxh2/tjka/XtR9StOvhokxHP1dVmFwLV7/9nuL+lJOgACBZQX29jPlTU4XZoPQUY1zvTKoLfwuq51Bmv9n6Ud16BoBAgQWCNhwuQBG8WoEUkrfyT19P6ev7/f4fn58Ncb4x/1zDwQWCghQC2lcOI1ADkyP5Pa/y+nZin5+mq+/ksuv5UD1n4rrigjsCewFqMEDW7d3/3fvmUqTVBQp7dwaX8
@ndbroadbent
ndbroadbent / oj_spec.rb
Last active May 15, 2020 13:39
RSpec test to ensure that the Oj gem is working in a Rails application
# frozen_string_literal: true
require 'rails_helper'
# This test makes sure that Oj is used to parse and generate all JSON.
# Your application needs to call: Oj.optimize_rails
# See: https://github.com/ohler55/oj/blob/develop/pages/Rails.md#notes
RSpec.describe 'Oj gem' do
it 'uses OJ to parse and generate JSON' do
@ndbroadbent
ndbroadbent / void_invoices.rb
Created April 25, 2020 20:17
Void any forgiven Stripe invoices
class VoidForgivenInvoicesService
LIMIT = 100
class << self
def log(str)
puts str
end
def void_forgiven_invoices!
invoices = []
@ndbroadbent
ndbroadbent / parallel_db_setup.sh
Last active December 8, 2019 05:33
Much faster bash implementation for rake parallel:prepare (for parallel_tests gem)
#!/bin/bash
set -eo pipefail
DATABASE_NAME="$1"
if [ -z "$PARALLEL_TEST_PROCESSORS" ]; then
PARALLEL_TEST_PROCESSORS="$2"
fi
ACTION="$3"
if [ -z "$ACTION" ]; then
ACTION="create"