Skip to content

Instantly share code, notes, and snippets.

Brian Hempel brianhempel

  • University of Chicago
Block or report user

Report or block brianhempel

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
View keybase.md

Keybase proof

I hereby claim:

  • I am brianhempel on github.
  • I am brianhempel (https://keybase.io/brianhempel) on keybase.
  • I have a public key whose fingerprint is 599A 31A4 A090 2699 AA81 9770 110B F56B 2900 4272

To claim this, I am signing this object:

@brianhempel
brianhempel / test_if_sneakynote.com_has_compromised_javascript.sh
Created Jun 27, 2015
Compare the SneakyNote.com live Javascript with Github to insure it's not going to send your secret unencrypted or something fishy like that.
View test_if_sneakynote.com_has_compromised_javascript.sh
# Probably want to spoof all your headers to be just like a normal web browser
# so an attacker can't guess that you're trying to rat them out, but here's a
# start.
USER_AGENT="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36"
curl -A "$USER_AGENT" -sS https://sneakynote.com/send > send_live
curl -A "$USER_AGENT" -sS https://sneakynote.com/get > get_live
curl -A "$USER_AGENT" -sS https://raw.githubusercontent.com/brianhempel/sneakynote.com/master/public/send > send_github
curl -A "$USER_AGENT" -sS https://raw.githubusercontent.com/brianhempel/sneakynote.com/master/public/get > get_github
@brianhempel
brianhempel / bench_rails_memory_usage.rb
Last active Mar 26, 2019
A script to test the memory usage of your Rails application over time. It will run 30 requests against the specified action and report the final RSS. Choose the URL to hit on line 45 and then run with `ruby bench_rails_memory_usage.rb`.
View bench_rails_memory_usage.rb
require "net/http"
def start_server
# Remove the X to enable the parameters for tuning.
# These are the default values as of Ruby 2.2.0.
@child = spawn(<<-EOC.split.join(" "))
XRUBY_GC_HEAP_FREE_SLOTS=4096
XRUBY_GC_HEAP_INIT_SLOTS=10000
XRUBY_GC_HEAP_GROWTH_FACTOR=1.8
XRUBY_GC_HEAP_GROWTH_MAX_SLOTS=0
@brianhempel
brianhempel / enumerator_to_json.rb
Created Feb 17, 2015
Lazily convert an Enumerator or Enumerator::Lazy to a JSON array. Save as config/initializers/enumerator_to_json.rb
View enumerator_to_json.rb
# Natively, Enumerators get JSONized like "#<Enumerator::Lazy:0x007f8714807080>", or they explode, either of which is a problem.
# We want them to make an array, and do it lazily so we don't have to keep the items in memory!
class Enumerator
def to_json(state)
state.depth += 1
string = "[\n"
first_item = true
self.each do |item|
@brianhempel
brianhempel / files_using_shorthand.txt
Created Dec 1, 2014
Usage of Ruby constructs in the ruby/ruby repo; as parsed by Ripper.sexp
View files_using_shorthand.txt
benchmark/bm_app_pentomino.rb
bootstraptest/runner.rb
enc/make_encmake.rb
enc/unicode/case-folding.rb
ext/extmk.rb
ext/socket/extconf.rb
ext/tk/sample/tkbiff.rb
lib/mkmf.rb
lib/rdoc/constant.rb
lib/rdoc/markup/pre_process.rb
@brianhempel
brianhempel / ruby_construct_frequencies.txt
Created Nov 30, 2014
Usage of Ruby constructs in the top 1000 Ruby repos on Github (by stars); as parsed by Ripper.sexp
View ruby_construct_frequencies.txt
15621016 :@ident
6122824 :var_ref
5547844 :args_add_block
4507766 :@tstring_content
4490030 :"."
4125221 :string_content
4125221 :string_literal
3757094 :call
2890433 :method_add_arg
2696463 :arg_paren
@brianhempel
brianhempel / delete_matching_snitches.rb
Created Nov 10, 2014
How to delete all snitches matching a regular expression.
View delete_matching_snitches.rb
require "json"
api_key = "your api key here"
regexp = /Project X/
snitches = JSON.parse(`curl -u #{api_key}: https://api.deadmanssnitch.com/v1/snitches`)
snitches.each do |snitch|
if snitch["name"] =~ regexp
puts "Deleting #{snitch["token"]} #{snitch["name"]}..."
@brianhempel
brianhempel / has_secure_password_password_validation_bug_test.rb
Created May 16, 2014
Has_secure_password `validate :password, if: :present?` not working on an existing record
View has_secure_password_password_validation_bug_test.rb
# Activate the gem you are reporting the issue against.
gem 'activerecord', '4.1.1'
require 'sqlite3'
require 'active_record'
require 'minitest/autorun'
require 'logger'
# Ensure backward compatibility with Minitest 4
Minitest::Test = MiniTest::Unit::TestCase unless defined?(Minitest::Test)
@brianhempel
brianhempel / DEFLATE_BREACH.md
Last active Apr 5, 2019
A working proposal for a BREACH-safe DEFLATE compressor.
View DEFLATE_BREACH.md
@brianhempel
brianhempel / production.rb
Created Jun 22, 2012
Production deploy checks
View production.rb
# config/deploy/production.rb
# okay, this is to make sure I don't miss another deploy.
def abort_deploy
puts "Deploy aborted."
exit 1
end
unless `git show-ref heads/stable`.split[0] == `git show-ref heads/master`.split[0]
You can’t perform that action at this time.