Skip to content

Instantly share code, notes, and snippets.

View presidentbeef's full-sized avatar

Justin Collins presidentbeef

View GitHub Profile
@presidentbeef
presidentbeef / rtx5070.md
Last active January 11, 2026 02:29
Using RTX 5070 on Framework 16 with Mageia
  • Do not try to configure the nvidia card, only the main AMD card
  • Install the Bumblebee package
  • Use -open nvidia driviers
  • Reboot
  • optirun glxspheres64 to test
  • If you get primus: fatal: failed to load PRIMUS_LOAD_GLOBAL - change /etc/bumblebee/bumblebee.conf to use Bridge=virtualgl (and restart with sudo systemctl restart bumblebeed)

Ollama:

  • Install nvidia-current-cuda-opencl package
@presidentbeef
presidentbeef / README.md
Last active September 1, 2020 16:29
Access Rails routes programmatically

RouteReader

@presidentbeef
presidentbeef / brakeman
Last active February 7, 2026 15:21
Brakeman binstub example to always run the latest
#!/usr/bin/env ruby
# This binstub ensures that you are running the latest version of Brakeman.
require "bundler/inline"
gemfile do
source "https://rubygems.org"
gem "brakeman", Gem.latest_version_for("brakeman")
end
@presidentbeef
presidentbeef / dropbox_password.rb
Last active February 8, 2025 12:36
Dropbox-style Password Storage
# 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.
@presidentbeef
presidentbeef / kmuddy_on_mageia_5.md
Created December 12, 2016 01:47
Kmuddy on Mageia 5
@presidentbeef
presidentbeef / README.md
Last active August 31, 2015 05:56
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
presidentbeef / intel_7260.md
Created August 5, 2015 17:45
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 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

Keybase proof

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:

@presidentbeef
presidentbeef / unsorted.rb
Created January 12, 2014 01:46
Count how unsorted an array is by number of swaps required to sort it.
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