Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View stouset's full-sized avatar

Stephen Touset stouset

View GitHub Profile
@stouset
stouset / stephen@touset.org
Created December 17, 2012 21:11
Generate a rainbow table of all possible SSNs

seq -f “%09.0f” 000000000 999999999 | sed -e ‘s/^\(.\{3\}\)\(.\{2\}\)\(.\{4\}\)/\1-\2-\3/’ | parallel -j16 –pipe ‘ruby -r digest/md5 -n -e “\$_.chomp!; puts "%s %s" % [\$_, Digest::MD5.hexdigest(\$_)]”’ > ssns

@stouset
stouset / LICENSE
Last active May 27, 2022 16:46
Best-practices based API key authentication
Copyright © 2021 Stephen Touset <stephen@touset.org>
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:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SO

Keybase proof

I hereby claim:

  • I am stouset on github.
  • I am stouset (https://keybase.io/stouset) on keybase.
  • I have a public key ASCxRy-wugLMPCswprmewJ4K8TAe4GzpiAdWE5FjHsw0hwo

To claim this, I am signing this object:

$ cargo release
Running cargo publish
Updating registry `https://github.com/rust-lang/crates.io-index`
error: no matching package named `sudo_plugin-sys` found
location searched: file:///Users/stephen/Development/squareup.com/sudo_pair/sudo_plugin-sys
required by package `sudo_plugin v1.0.0 (file:///Users/stephen/Development/squareup.com/sudo_pair/sudo_plugin)`
# 1.8
# NOTHING WAS WRONG WITH THIS, ASSHOLES
{ nil => nil,
:a => :b,
'a' => 'b', }
# 1.9+
{ nil: nil, # lol jk this is actually :nil => nil,
a: :b, # this looks ugly as fuck now,
'a': 'b', } # lol jk this is actually still :a => 'b'
@stouset
stouset / controller.rb
Created October 19, 2011 14:31
Transloadit-Paperclip integration
def decode_transloadit_json
return unless params[:transloadit].present?
# wrap transloadit params in a HashWithIndifferentAccess
params[:transloadit] = ActiveSupport::HashWithIndifferentAccess.new(
ActiveSupport::JSON.decode params[:transloadit]
)
# decode parameters from transloadit
params[:transloadit][:uploads].first.tap do |history|
Pry.config.tap do |pry|
pry.prompt = [
->(*_) { '>> ' },
->(*_) { ' ' },
]
end
@stouset
stouset / gist:7219295
Last active December 26, 2015 21:58
@sdaubert's remaining contributions
6f97adbd ext/ffi_c/ArrayType.c:129 VALUE ffi_Type;
f8f9ba34 ext/ffi_c/ArrayType.c:131 ffi_Type = rbffi_TypeClass;
f8f9ba34 ext/ffi_c/ArrayType.c:138 rbffi_ArrayTypeClass = rb_define_class_under(moduleFFI, "ArrayType", ffi_Type);
f8f9ba34 ext/ffi_c/ArrayType.c:146 rb_define_const(ffi_Type, "Array", rbffi_ArrayTypeClass);
f8f9ba34 ext/ffi_c/Buffer.c:340 VALUE ffi_AbstractMemory = rbffi_AbstractMemoryClass;
f8f9ba34 ext/ffi_c/Buffer.c:347 BufferClass = rb_define_class_under(moduleFFI, "Buffer", ffi_AbstractMemory);
f8f9ba34 ext/ffi_c/FunctionInfo.c:263 VALUE ffi_Type;
f8f9ba34 ext/ffi_c/FunctionInfo.c:265 ffi_Type = rbffi_TypeClass;
f8f9ba34 ext/ffi_c/FunctionInfo.c:270 rbffi_FunctionTypeClass = rb_define_class_under(moduleFFI, "FunctionType",ffi_Type);
f8f9ba34 ext/ffi_c/FunctionInfo.c:283 rb_define_const(ffi_Type, "Function", rbffi_FunctionTypeClass);
class Name
CONSTANT_1 = :a
CONSTANT_2 = :b
include Module
attr_accessor :accessor1
attr_accessor :accessor2
def self.method(*args)
%;';;X= %q(x=1; z="%c"%
32;eval %w(w=N= Merry =128;r=
z*79+$/; ;p=open" / dev/dsp
","w"rescue$_;/ / ;eval"s
rand(%s)"%$*[ d=0];a=[];s=(r+z+% (%;';;X=#{z* 3}%q(#{X});e val(X))
+r*=23).l ines.map{|l|l.chop+ r};t=proc{|y|s [y][x-1,w].sca n(/\S
/){s[y+1][m=x -1+$` .size ,1]== z&&a< <[$&,m, y,s[y
][m]=$/]};y};t[ 23];f =(0.. 1071) .map{|i|c,x,y =a.shuffle!. pop;s
[y][x]=z ;[794-46 .03*i **0.4 +y/k= (3+ra nd*w= 3)/9,[t
[t[y]-1 ],x,c], (0..y /k).m ap{[y -=k,0.5+x+=k*r and*2-k,?*]}]} ;"|ii