Skip to content

Instantly share code, notes, and snippets.

Jonathan Barber jbarber

Block or report user

Report or block jbarber

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
@jbarber
jbarber / pagerduty_incidents.rb
Created Sep 24, 2019
Extract all the PagerDuty incidents for analysis
View pagerduty_incidents.rb
require 'httparty'
require 'uri'
require 'csv'
def get_incidents
limit = 100
url = "https://api.pagerduty.com/incidents?statuses%5B%5D=resolved&time_zone=UTC&limit=#{limit}&offset="
incidents = []
offset = 0
@jbarber
jbarber / calendar_events.rb
Last active Sep 24, 2019
List events in google calendar
View calendar_events.rb
# gem install google-api-client
require "google/apis/calendar_v3"
require "googleauth"
require "googleauth/stores/file_token_store"
require "date"
require "fileutils"
OOB_URI = "urn:ietf:wg:oauth:2.0:oob".freeze
APPLICATION_NAME = "Google Calendar API Ruby Quickstart".freeze
View find_pii_objects.rb
def log_object(job_id, step_id, bucket, key)
puts ['found', job_id, step_id, bucket, key].join(',')
end
def log_missing(job_id, object_id, msg)
puts ['missing', job_id, object_id, msg].join(',')
end
# Finding the offending RfTests
rf_test_ids = RfTest.where(client_id: 5627)
@jbarber
jbarber / get_repos.rb
Last active Jul 5, 2018
Github GraphQL query for repos, their topics, and Gemfile
View get_repos.rb
require 'httparty'
require 'json'
require 'byebug'
def get_data
query = File.open('repos.graphql', 'r').read
token = 'https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/'
cursor = nil
repos = []
org = 'evil_mega_corp'
@jbarber
jbarber / example.sh
Last active Mar 27, 2018
Prototypical Ruby event machine based webserver for serving context over unix domain sockets
View example.sh
$ echo '{"foo": "bar"}' | curl --unix-socket /tmp/foo.bar http://www.google.com/echo -d @-
{"message":"{\"foo\": \"bar\"}"}
$ curl --unix-socket /tmp/foo.bar http://www.google.com/popper
{"message":"🎉"}
@jbarber
jbarber / server.rb
Created Mar 27, 2018
Prototypical Ruby event machine based webserver for serving context over unix domain sockets
View server.rb
$ echo '{"foo": "bar"}' | curl --unix-socket /tmp/foo.bar http://www.google.com/echo -d @-
{"message":"{\"foo\": \"bar\"}"}
$ curl --unix-socket /tmp/foo.bar http://www.google.com/popper
{"message":"🎉"}
@jbarber
jbarber / sign.sh
Last active Apr 24, 2017
Creating a CSR and sign it with OpenSSL
View sign.sh
export HOST=foo.example.com
# Create a new CSR + key
# If you want a more complicated subject, '/' seperate the fields
openssl req -nodes -keyout "$HOST.key" -out "$HOST.csr" -new -subj "/CN=$HOST"
# Create a new CSR + key with SAN
echo -e "[SAN]\nsubjectAltName=DNS:$HOST,DNS:${HOST/foo/bar}\n" | \
cat /etc/ssl/openssl.cnf - | \
openssl req -nodes -keyout "$HOST.key" -out "$HOST.csr" -new -subj "/CN=$HOST" -reqexts SAN -config /dev/stdin
@jbarber
jbarber / chrome.js
Created Nov 26, 2016
PhantomJS 2.1.1 snippet for getting versions of $LATEST chrome installers
View chrome.js
var page = require('webpage').create();
page.open('https://enterprise.google.com/chrome/chrome-browser/', function(status) {
console.log("Status: " + status);
if(status === "success") {
var winVer = page.evaluate(function() {
return document.querySelector("#download span[ng-bind='win64Version']").innerHTML;
});
var macVer = page.evaluate(function() {
return document.querySelector("#download span[ng-bind='macVersion']").innerHTML;
});
@jbarber
jbarber / selenium.rb
Created Nov 22, 2016
Selenium ruby example
View selenium.rb
require "selenium-webdriver"
profile = Selenium::WebDriver::Firefox::Profile.new
#profile['devtools.errorconsole.enabled'] = false
profile['devtools.chrome.enabled'] = false
profile['devtools.errorconsole.enabled'] = false
%w[css csserror csslog cssparser error exception info jslog jswarn log netwarn network networkinfo netxhr secerror secwarn serviceworkers sharedworkers warn windowlessworkers].each do |m|
profile["devtools.browserconsole.filter.#{m}"] = false
end
View gist:1bad455bc40e3779da9d4ce53adf0150
# Sets
ℕ = set of positive integers
ℤ = set of all integers
ℂ = set of all complex numbers
ℝ = set of all real numbers
ℚ = set of all rational numbers
∅ = {}
H = { x | ℕ > 1 } == H is the set of all postive integers greater than 1 (| == 'such that')
x ∈ ℕ == x belongs to ℕ
You can’t perform that action at this time.