Skip to content

Instantly share code, notes, and snippets.

View jbarber's full-sized avatar

Jonathan Barber jbarber

View GitHub Profile
@jbarber
jbarber / pagerduty_incidents.rb
Created September 24, 2019 15:41
Extract all the PagerDuty incidents for analysis
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 September 24, 2019 15:39
List events in google calendar
# 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
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 December 2, 2020 16:30
Github GraphQL query for repos, their topics, and Gemfile
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 March 27, 2018 20:51
Prototypical Ruby event machine based webserver for serving context over unix domain sockets
$ 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 March 27, 2018 20:51
Prototypical Ruby event machine based webserver for serving context over unix domain sockets
$ 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 April 24, 2017 09:00
Creating a CSR and sign it with OpenSSL
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 November 26, 2016 17:10
PhantomJS 2.1.1 snippet for getting versions of $LATEST chrome installers
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 November 22, 2016 23:12
Selenium ruby example
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
# 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 ℕ