Skip to content

Instantly share code, notes, and snippets.

Avatar

Nathan Broadbent ndbroadbent

View GitHub Profile
@ndbroadbent
ndbroadbent / create_combined_submission.deluge.js
Last active Feb 20, 2021
DocSpring + Zoho CRM - Examples for creating Submissions and Combined Submissions, and poll for status until they are processed
View create_combined_submission.deluge.js
// 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 Oct 3, 2020
Find all the failed RSpec examples in GitLab CI pipeline logs and run them all locally
View run_failed_gitlab_pipeline_specs.sh
#!/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 Jun 6, 2020
Minimal examples that freeze VS Code with a regex search
View freeze_for_2s.txt
# 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 Jun 1, 2020
Check for Debian updates
View system.rake
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}"
View docspring_demo_script.sh
#!/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
this image was in my bookmarks bar
View bookmarkbar
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
RSpec test to ensure that the Oj gem is working in a Rails application
View oj_spec.rb
# 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 Apr 25, 2020
Void any forgiven Stripe invoices
View void_invoices.rb
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 Dec 8, 2019
Much faster bash implementation for rake parallel:prepare (for parallel_tests gem)
View parallel_db_setup.sh
#!/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"
@ndbroadbent
ndbroadbent / getTotps - show image in console.js
Last active Feb 2, 2021 — forked from nmurthy/getTotps.js
export authy totp codes, show QR codes in the console
View getTotps - show image in console.js
/* base32 */
/*
Copyright (c) 2011, Chris Umbel
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions: