Skip to content

Instantly share code, notes, and snippets.

View f-steff's full-sized avatar

Flemming Steffensen f-steff

View GitHub Profile
@f-steff
f-steff / GoogleSheetsEnableScandinavianKeyboardOnMac.user.js
Last active January 20, 2024 21:10
Tampermonkey userscript to enable missing keys in Scandinavian Keyboard mapping on Mac
// ==UserScript==
// @name Google Sheets Enable Scandinavian Keyboard On Mac
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Fix shift+option+number keys in Google Sheets on Mac while using a Scandinavian keyboard layout, by nterception of shift+option+number keys, and replace them with the correct char pasted in. Flaws: Does not enter edit mode when inserting into inactivated sheet cells.
// @author Flemming Steffensen
// @match https://docs.google.com/spreadsheets/*
// @grant none
// @homepageURL https://gist.github.com/f-steff/ace84434e1ee4e1107bcf0ba8d72ed2b
// @updateURL https://gist.githubusercontent.com/f-steff/ace84434e1ee4e1107bcf0ba8d72ed2b/raw/GoogleSheetsEnableScandinavianKeyboardOnMac.js
$connectedInterfaces = Get-NetAdapter | Where-Object { $_.Status -eq 'Up' }
$connectedInterfaces | ForEach-Object {
$interfaceAlias = $_.Name
$dnsServers = Get-DnsClientServerAddress -InterfaceIndex $_.InterfaceIndex -AddressFamily IPv4 | Select-Object -ExpandProperty ServerAddresses
$interfaceMetric = (Get-NetIPInterface -InterfaceIndex $_.InterfaceIndex).InterfaceMetric | Select-Object -First 1
for ($i = 0; $i -lt $dnsServers.Count; $i++) {
[PSCustomObject]@{
InterfaceAlias = $interfaceAlias
InterfaceMetric = [string]$interfaceMetric
@f-steff
f-steff / README.md
Last active August 6, 2023 19:13
var_dump for Python Jinja2 html template engine.

This code is a macro written in Jinja2, a powerful template engine for Python. This macro, named var_dump, works similarly to PHP's var_dump() function. It helps to print or display structured information about variables, especially useful for debugging.

The var_dump macro takes four parameters:

  • var: The variable you want to display.

  • var_name: The name of the variable (this is optional, and its default value is an empty string).

  • space: The indentation level (this is optional, and its default value is 0).

@f-steff
f-steff / install_packages.py
Created July 21, 2023 09:51
Install Python package at runtime
import pkg_resources
import subprocess
import sys
import importlib
import pprint
def install(package):
print(f'\n=======> Checking status of {package}:', flush=True)
try:
dist = pkg_resources.get_distribution(package)
@f-steff
f-steff / GoogleSheetsDisableF1.js
Created February 6, 2023 22:58
Userscript for Tampermonkey to intercept F1 on Google Sheets, so that the annoying Help popup can be suppressed.
// ==UserScript==
// @name F1 key interception on Google Sheets to suppress the Help
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Interception of F1 keypress on Google Sheets and replaces default behavior with nothing.
// @author Flemming Steffensen
// @match https://docs.google.com/spreadsheets/*
// @grant none
// ==/UserScript==
@f-steff
f-steff / PARTS
Created December 3, 2021 12:46
UrJTAG with IRMCK343 on Raspberry Pi
#
# $Id$
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@f-steff
f-steff / swap_bytes.py
Last active November 4, 2021 09:27
Python binary manipulation
def swap_bytes(byte_string):
"""
Swaps every second byte in an string. If string is uneven, the last byte is untouched.
1 2 3 4 becomes 2 1 4 3
1 2 3 4 5 becomes 2 1 4 3 5
"""
return b"".join([(byte_string[i:i + 2])[::-1] for i in range(0, len(byte_string), 2)])
@f-steff
f-steff / RFC5424_Syslog_test.py
Created April 19, 2021 14:14
Python logger to remote RFC 5424 syslog server - with structured data
#!/usr/bin/python
# -*- coding: utf-8 -*-
# https://github.com/jobec/rfc5424-logging-handler
# Documentation: https://rfc5424-logging-handler.readthedocs.io/en/latest/
import sys
import logging
from rfc5424logging import Rfc5424SysLogHandler, Rfc5424SysLogAdapter
logger = logging.getLogger('RFC5424_Syslog_test_ApplicationName')
@echo off
::With MSBuild 2017 and later installed, this command will always provide the correct path to msbuild.exe
FOR /F "tokens=* USEBACKQ" %%F IN (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -prerelease -products * -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe`) DO (
SET "msbuild.exe=%%F"
)
set msbuild.exe
@f-steff
f-steff / KeiluVisionBuilder.cmd
Last active November 7, 2023 22:06
Use the Keil µVision compiler from the windows command line.
@echo off
setlocal
:: KeiluVisionBuilder.cmd
:: Written by Flemming Steffensen, 2019.
:: Free for use and abuse by anyone.
:: ======================
:: Configuration
set WaitForLicenseTimeout=60
set BuildAttemptsMax=10