Skip to content

Instantly share code, notes, and snippets.

View rm77's full-sized avatar
💭
(to be) or not (to be) = (to be)

Roy rm77

💭
(to be) or not (to be) = (to be)
View GitHub Profile
@rm77
rm77 / py-env-guide.rst
Created June 20, 2026 13:26 — forked from asfaltboy/py-env-guide.rst
Multiple python versions with PyEnv

Multiple python versions

Reasoning and use cases

There are often scenarios when we would need to install multiple versions of python.

On on our development machine, we might want to work on many projects, some using different python versions, or maybe we're working on a package that we want to support on multiple

@rm77
rm77 / make_ipxe_uefi_usb.md
Last active May 27, 2026 03:38 — forked from AdrianKoshka/make_ipxe_uefi_usb.md
Making a UEFI bootable iPXE USB drive

Making a UEFI bootable iPXE USB drive

Build the UEFI executable for iPXE

# First we'll clone iPXE
$ git clone git://git.ipxe.org/ipxe.git
# Go into the src directory of the cloned git repo
$ cd ipxe/src
# Compile the UEFI iPXE executable
@rm77
rm77 / docker-without-desktop-macos.md
Created April 22, 2026 05:11 — forked from malteos/docker-without-desktop-macos.md
Run Docker (without Docker Desktop) on MacOS with Apple Silicon (M1/M2/...)

Run Docker (without Docker Desktop) on MacOS with Apple Silicon (M1/M2/...)

Docker Desktop requires an expensive license for commercial use: https://www.docker.com/pricing/faq/

# Install minikube
brew install minikube

# Install Docker CLI
brew install docker
@rm77
rm77 / circular_buffer.py
Created March 7, 2026 04:59 — forked from edwintcloud/circular_buffer.py
Circular Buffer in Python Full Implementation
#!python
class CircularBuffer(object):
def __init__(self, max_size=10):
"""Initialize the CircularBuffer with a max_size if set, otherwise
max_size will elementsdefault to 10"""
self.buffer = [None] * max_size
self.head = 0
@rm77
rm77 / chromeos-win-qemu-guide.md
Created September 29, 2025 02:13 — forked from tejasraman/chromeos-win-qemu-guide.md
Install ChromeOS in QEMU (Windows)

Installing ChromeOS Flex (hardware accelerated) on QEMU for Windows

A word of warning. This will be slow and buggy. Do not attempt to use this as a daily driver.

Requirements:

  • Windows 10 or 11 (x64)

Download Files:

  • Download QEMU
  • Download ChromeOS Flex (remember to download the file; do NOT use Chromebook Recovery Utility)
@rm77
rm77 / optimal_mtu.md
Created September 12, 2025 05:23 — forked from nitred/optimal_mtu.md
Wireguard Optimal MTU

About

  • I faced bandwidth issues between a WG Peer and a WG server. Download bandwidth when downloading from WG Server to WG peer was reduced significantly and upload bandwidth was practically non existent.
  • I found a few reddit posts that said that we need to choose the right MTU. So I wrote a script to find an optimal MTU.
  • Ideally I would have liked to have run all possible MTU configurations for both WG Server and WG Peer but for simplicity I choose to fix the WG Server to the original 1420 MTU and tried all MTUs from 1280 to 1500 for the WG Peer.

Testing

  • On WG server, I started an iperf3 server
  • On WG peer, I wrote a script that does the following:
    • wg-quick down wg0
  • Edit MTU in the /etc/wireguard/wg0.conf file
@rm77
rm77 / Alpine_Linux_minirootfs_install.md
Created September 5, 2025 11:38 — forked from lidgnulinux/Alpine_Linux_minirootfs_install.md
Install Alpine Linux Via Minirootfs Archive.

Install Alpine Linux Via Minirootfs Archive.

Prerequisites.

  • Any live usb bootable.
  • Alpine Linux minirootfs archive, we can get it here. We can choose alpine-minirootfs-3.20.2-x86_64.tar.gz.
  • Some partitions, for root system (/), efi (if you have uefi machine) and swap (optional).
  • Basic commandline knowledge.

Steps.

@rm77
rm77 / firefox_snap.md
Created August 14, 2025 03:24 — forked from jfeilbach/firefox_snap.md
Ubuntu 24.04 remove Firefox snap and install .deb version

Ubuntu 24.04 Firefox snap replacement

I need a proper Firefox installation and not the snap version. The snap version does not work properly with Smart Cards. Although it seems to be possible to get it to work with smart cards it is extremely difficult and I don't care to try and make it work. This is not a tutorial on how to get your PIV or CAC to work. Also snaps suck. Canonical will heopfully abandon snaps in the future.

Remove Snap Firefox

sudo snap disable firefox
sudo snap remove --purge firefox
error: cannot perform the following tasks:
- Remove data for snap "firefox" (1943) (unlinkat /var/snap/firefox/common/host-hunspell/en_ZA.dic: read-only file system)
@rm77
rm77 / qemu-networking.md
Created August 13, 2025 17:08 — forked from extremecoders-re/qemu-networking.md
Setting up Qemu with a tap interface

Setting up Qemu with a tap interface

There are two parts to networking within QEMU:

  • The virtual network device that is provided to the guest (e.g. a PCI network card).
  • The network backend that interacts with the emulated NIC (e.g. puts packets onto the host's network).

Example: User mode network

@rm77
rm77 / paramiko_example.py
Created May 18, 2025 15:44 — forked from batok/paramiko_example.py
Paramiko example using private key
import paramiko
k = paramiko.RSAKey.from_private_key_file("/Users/whatever/Downloads/mykey.pem")
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print "connecting"
c.connect( hostname = "www.acme.com", username = "ubuntu", pkey = k )
print "connected"
commands = [ "/home/ubuntu/firstscript.sh", "/home/ubuntu/secondscript.sh" ]
for command in commands:
print "Executing {}".format( command )