Skip to content

Instantly share code, notes, and snippets.

May be slow to respond on OSS projects

Justin Collins presidentbeef

May be slow to respond on OSS projects
View GitHub Profile
presidentbeef /
Last active Sep 1, 2020
Access Rails routes programmatically


presidentbeef / dropbox_password.rb
Last active Aug 30, 2020
Dropbox-style Password Storage
View dropbox_password.rb
# Based on
require 'bcrypt' # bcrypt gem
require 'digest/sha2'
require 'openssl'
# Generate an encrypted hash from a plaintext password,
# given an AES key and AES IV.
def store(password, key, iv)
# Hash password to get good 512 bits
# because bcrypt only uses the first 72 bytes.
presidentbeef /
Last active Aug 31, 2015
Convert Brakeman ignore config file for 3.1

To run, download the raw file. Then run:

ruby convert_ignore.rb your_new_report.json old_brakeman.ignore > new_brakeman.ignore

Then test by pointing Brakeman at the new file and checking the number of ignored warnings matches expected:

brakeman -i new_brakeman.ignore

Assuming all is well, copy the new ignore file to the old location.

presidentbeef /
Created Aug 5, 2015
Intel Corporation Wireless 7260 on Mageia 5 (but with kernel-tmb-laptop)

After updating from Mageia 4 to 5, the builtin wireless on my Lenovo T440s stopped working. When attempting to configure the card via the network center or drakconnect, I would get the message "Unable to find network interface for selected device (using iwlwifi driver)". Removing and re-adding the iwlwifi module via modprobe did nothing. The wireless card was definitely available according to lspci. I had the iwlwifi-agn-ucode package installed. ls /lib/firmare listed several ucode files for iwlwifi-7260.

Some investigation found Mageia 5 does not provide a kernel-tmb-laptop package, which means I was still running on 3.14.43-tmb-laptop-1.mga4. Changing the kernel just to go from 3.14 to 3.19 but perhaps lose laptop features didn't seem worth it.

To get the wireless working again, I just needed to go to download the correct ucode file (iwlwifi-7260-ucode- which contains iwlwifi-7260-9.ucode. Copy to /lib/firmare, rest


Keybase proof

I hereby claim:

  • I am presidentbeef on github.
  • I am presidentbeef ( on keybase.
  • I have a public key whose fingerprint is 56C5 4454 50FF 9138 7CC6 6C0D A6A5 CB66 1402 CC6A

To claim this, I am signing this object:

presidentbeef / unsorted.rb
Created Jan 12, 2014
Count how unsorted an array is by number of swaps required to sort it.
View unsorted.rb
def count_swaps list, &sort_block
swaps = 0
# Get a sorted list for comparison
sorted = list.sort &sort_block
# Check each elements against where they should be,
# swapping them if necessary and counting the swaps.
list.each_with_index do |element, index|
next if element == sorted[index]
View find-duplicate-id-instance.rb
#!/usr/bin/ruby -w
require 'set'
Entry = :id, :instance do
def self.parse(line)
if /ID=\s*'([^']*)'\s+INSTANCE=\s*'([^']*)'/ =~ line
new $1, $2
raise "Cannot parse: %p" % line
presidentbeef / String#html_safe
Last active Dec 14, 2015
String#html_safe does not make a string HTML safe.
View String#html_safe
Loading development environment (Rails 3.2.11)
1.9.3p374 :001 > s = "<script>alert('hello')</script>"
=> "<script>alert('hello')</script>"
1.9.3p374 :002 > ERB::Util.html_escape s
=> "&lt;script&gt;alert(&#x27;hello&#x27;)&lt;/script&gt;"
1.9.3p374 :003 > safe = s.html_safe
=> "<script>alert('hello')</script>"
1.9.3p374 :004 > ERB::Util.html_escape safe
=> "<script>alert('hello')</script>"
presidentbeef / conversions.rb
Created Jan 10, 2013
Simple way to disable XML parsing of symbol/YAML types
View conversions.rb
unless defined?(XML_PARSING)
- "symbol" => { |symbol| symbol.to_sym },
+ "symbol" => { |symbol| symbol.to_s },
"date" => { |date| ::Date.parse(date) },
"datetime" => { |time| ::Time.parse(time).utc rescue ::DateTime.parse(time).utc },
"integer" => { |integer| integer.to_i },
@@ -76,7 +76,7 @@ module ActiveSupport #:nodoc:
"decimal" => { |number| BigDecimal(number) },