Skip to content

Instantly share code, notes, and snippets.

View StevenMaude's full-sized avatar
🏠
Working from home

Steven Maude StevenMaude

🏠
Working from home
View GitHub Profile

Notes from reading Practical Go

Notes of the key points copied/summarised from Dave Cheney's Practical Go for more concise reading/reference.

It's worth reading the original document as there is more exposition there of the ideas presented.

These are terse notes only; I'm not providing my own commentary, opinion

@StevenMaude
StevenMaude / element_and_attribute_count.py
Last active May 15, 2023 12:48
Collect the tags from a HTML string into a Python Counter; count them once only (for summing over multiple pages to see how many docs have certain tags))
#!/usr/bin/env python
# encoding: utf-8
import csv
from collections import Counter
import lxml.html
def create_test_html():
""" Return a test HTML string. """
@StevenMaude
StevenMaude / convert_gpx.sh
Last active January 29, 2023 17:29
Use gpsbabel to convert Garmin .FIT to .gpx — requires a fairly recent version of gpsbabel (minimum 1.4.3); see https://www.stevenmaude.co.uk/posts/using-garmin-forerunner-watches-with-linux for more details on using Garmin watches with Linux
#!/bin/sh
# Usage: convert_gpx.sh <FIT filename>
# Should works whether you include the .FIT extension or not.
filename=$(basename "$1" .FIT)
gpsbabel -i garmin_fit -f "$filename".FIT -o gpx -F "$filename".gpx
@StevenMaude
StevenMaude / tfidf_features.py
Created July 21, 2014 13:35
Do TF-IDF with scikit-learn and print top features
#!/usr/bin/env python
# encoding: utf-8
import codecs
import os
import sys
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
@StevenMaude
StevenMaude / sha256frompubkey.py
Last active August 14, 2022 04:06
Generate SHA256 fingerprint from a public key
#!/usr/bin/python
# coding=utf-8
# sha256frompubkey.py: Displays SHA256 fingerprint of public key in Python 2/3.
# Modified by Steven Maude from
# https://github.com/joyent/python-manta/blob/4de7445277c0971c7ff43ef246018d055ef21d20/manta/auth.py
# MIT licence.
# Usage: obtain a public key using ssh-keyscan <host> > key.pub
@StevenMaude
StevenMaude / 10-mx-revolution.hwdb
Last active June 8, 2022 21:08
Remapping Logitech MX Revolution second mouse wheel under Wayland
# Function:
# This HWDB entry maps the second mouse wheel to volume controls.
#
# Usage:
# 1. cp 10-mx-revolution.hwdb /etc/udev/hwdb.d/10-mx-revolution.hwdb
# 2. sudo systemd-hwdb update
# 3. sudo udevadm trigger
#
# References:
# https://wiki.archlinux.org/title/Map_scancodes_to_keycodes
@StevenMaude
StevenMaude / Ubuntu-python-source-build.md
Created April 25, 2021 21:04
Compiling Python from source on Ubuntu

Basic guide

Pooled together from maybe several place(s) on the web that I can't remember:

sudo apt install libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev tk-dev libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev libffi-dev uuid-dev
./configure --prefix="$SOME_DIRECTORY" --enable-optimizations --with-ensurepip=install

Some additional notes

@StevenMaude
StevenMaude / how-to-speak.md
Created December 28, 2020 18:40
Notes on "How To Speak" by Prof. Patrick Winston

How To Speak by Prof. Patrick Winston

MIT 2018 talk

How to start

  • Suggests not starting with a joke.
    • Audience isn't necessarily attuned to your mode of speaking.
  • Start with an empowerment promise; what will the audience get from the talk.
@StevenMaude
StevenMaude / bluetooth_audio_shift.sh
Last active August 21, 2020 10:05
Adjust audio-video sync of videos slightly to compensate for audio delay problems in Ubuntu with Bluetooth audio
#!/bin/sh -eu
# Not sure if this is a headset issue or Ubuntu issue.
# Maybe your itsoffset differs: the value here works for me
# Usage: ./bluetooth_audio_shift.sh <video_filename>
ffmpeg -i "$1" -itsoffset 0.350 -i "$1" -vcodec copy -acodec copy -map 0:1 -map 1:0 -strict -2 "$1.audio-shift.mp4"
@StevenMaude
StevenMaude / mailin8.sh
Last active August 7, 2020 13:21
DEPRECATED: see https://github.com/StevenMaude/go-mailin8 — Retrieve most recent email from a mailinator.com temporary email box using curl and jq at the command line; useful if you just want some account activation link, but too lazy to visit the site directly. (It's actually mailinfewerthan8usefullines, rather than mailin8usefullines, but, hey…
#!/bin/bash -e
# mailin8.sh: Collect From, Subject, Body from most recent mail
# in a mailinator.com account.
# Usage: mailin8.sh <local_mailbox_name>
# <local_mailbox_name> is the bit before @mailinator.com
# Create temporary file for cookiejar
TEMP=$(mktemp)