Skip to content

Instantly share code, notes, and snippets.

View brianhempel's full-sized avatar

Brian Hempel brianhempel

View GitHub Profile
@brianhempel
brianhempel / has_secure_password_password_validation_bug_test.rb
Created May 16, 2014 17:07
Has_secure_password `validate :password, if: :present?` not working on an existing record
# 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 / delete_matching_snitches.rb
Created November 10, 2014 15:32
How to delete all snitches matching a regular expression.
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 / ruby_construct_frequencies.txt
Created November 30, 2014 20:01
Usage of Ruby constructs in the top 1000 Ruby repos on Github (by stars); as parsed by Ripper.sexp
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 / files_using_shorthand.txt
Created December 1, 2014 14:08
Usage of Ruby constructs in the ruby/ruby repo; as parsed by Ripper.sexp
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 / test_if_sneakynote.com_has_compromised_javascript.sh
Created June 27, 2015 23:46
Compare the SneakyNote.com live Javascript with Github to insure it's not going to send your secret unencrypted or something fishy like that.
# 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

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:

criteria.merge!( :_keywords => { :$in => words } )
search_result = collection.map_reduce(search_map(words), search_reduce, {:query => criteria, :finalize => search_finalize})
def search_reduce
"function( key , values ){return { model: values[0]};}"
end
def search_finalize
"function( key , values ){return values.model;}"
criteria.merge!( :_keywords => { :$in => words } )
search_result = collection.map_reduce(search_map(words), search_reduce, :query => criteria)
def search_reduce
"function( key , values ){return values[0];}"
end
def search_map(words)
#convert words into Regex OR
class Person
include MongoMapper::Document
end
class Registree < Person
key :in_wels, Boolean
key :in_vienna, Boolean
end
class Visitor
# single collection inheritance
# all will be stored in the Person collection in the db
class Person
include MongoMapper::Document
end
class Registree < Person
key :visitor, Boolean
scope :vistors, :visitor => true