# Based on https://blogs.dropbox.com/tech/2016/09/how-dropbox-securely-stores-your-passwords/ | |
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. |
Get source from https://github.com/KDE/kmuddy
Install:
- cmake
- gcc-c++
- kdelibs4-devel
For scripting plugin:
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.
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 https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi download the correct ucode file (iwlwifi-7260-ucode-25.228.9.0.tgz) which contains iwlwifi-7260-9.ucode
. Copy to /lib/firmare
, rest
I hereby claim:
- I am presidentbeef on github.
- I am presidentbeef (https://keybase.io/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:
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] |
#!/usr/bin/ruby -w | |
require 'set' | |
Entry = Struct.new :id, :instance do | |
def self.parse(line) | |
if /ID=\s*'([^']*)'\s+INSTANCE=\s*'([^']*)'/ =~ line | |
new $1, $2 | |
else | |
raise "Cannot parse: %p" % line | |
end |
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 | |
=> "<script>alert('hello')</script>" | |
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>" |
#activesupport/lib/active_support/core_ext/hash/conversions.rb | |
unless defined?(XML_PARSING) | |
XML_PARSING = { | |
- "symbol" => Proc.new { |symbol| symbol.to_sym }, | |
+ "symbol" => Proc.new { |symbol| symbol.to_s }, | |
"date" => Proc.new { |date| ::Date.parse(date) }, | |
"datetime" => Proc.new { |time| ::Time.parse(time).utc rescue ::DateTime.parse(time).utc }, | |
"integer" => Proc.new { |integer| integer.to_i }, | |
@@ -76,7 +76,7 @@ module ActiveSupport #:nodoc: | |
"decimal" => Proc.new { |number| BigDecimal(number) }, |