Skip to content

Instantly share code, notes, and snippets.

Avatar

Robin Winslow nottrobin

View GitHub Profile
@nottrobin
nottrobin / update_topics.py
Created August 2, 2022 10:38
Add "web-and-design" topic to all our team's repos
View update_topics.py
import requests
import json
from github import Github
token = "REPLACE_ME"
g = Github(token)
org = g.get_organization("canonical")
teams = org.get_teams()
@nottrobin
nottrobin / find-changed-files.sh
Created June 9, 2022 21:13
Find latest commit, check for modified articles in it, check if it was added in this commit
View find-changed-files.sh
#! /usr/bin/env bash
commit_id=$(git log --format="%H" -n 1)
articles=( $(git diff --name-only HEAD HEAD^ | egrep '^_articles') )
for article in "${articles[@]}"
do
article_added_in=$(git log --pretty=format:"%H" --diff-filter=A -- $article)
@nottrobin
nottrobin / curl-ubuntu-boston.sh
Created August 24, 2020 22:21
Curl Ubuntu Boston
View curl-ubuntu-boston.sh
$ curl -I --resolve 91.189.91.44:443:ubuntu.com https://ubuntu.com
HTTP/2 200
server: nginx/1.14.0 (Ubuntu)
date: Mon, 24 Aug 2020 22:21:24 GMT
content-type: text/html; charset=utf-8
content-length: 68552
vary: Accept-Encoding
strict-transport-security: max-age=15724800
cache-control: max-age=61, stale-while-revalidate=90
x-view-name: canonicalwebteam.templatefinder.templatefinder.template_finder
@nottrobin
nottrobin / index.html
Created July 16, 2020 16:22
Simplest layout
View index.html
<!doctype html>
<!--
# Features:
- Keep CSS inline: It will be small enough not to add much weight to the page, which means it's better to avoid the extra HTTP call to request CSS
- Use system fonts: But it's hard to find a nice system font for both Linux, Windows and MacOS
-->
<html>
@nottrobin
nottrobin / set-up-dotrun-macos.sh
Created July 1, 2020 08:37
Set up dotrun on mac
View set-up-dotrun-macos.sh
multipass launch --name dotrun
DOTRUN_IP=$(multipass list | grep dotrun | egrep -o '\d+[.]\d+[.]\d+[.]\d+')
multipass exec dotrun -- mkdir shared
multipass exec dotrun -- chmod 777 shared
multipass exec dotrun -- sudo apt update
multipass exec dotrun -- sudo apt install --yes nfs-kernel-server
multipass exec dotrun -- bash -c 'echo "$HOME/shared 192.168.64.0/24(rw,fsid=0,insecure,no_subtree_check,all_squash,async,anonuid=1000,anongid=1000)" | sudo tee -a /etc/exports'
multipass exec dotrun -- sudo exportfs -a
multipass exec dotrun -- sudo service nfs-kernel-server restart
mkdir $HOME/shared
@nottrobin
nottrobin / get-discourse-topic.py
Last active April 22, 2020 20:26
Get discourse topic from discourse.ubuntu.com
View get-discourse-topic.py
#! /usr/bin/env python3
import json
import os
import sys
import time
import urllib.request
topic_id = sys.argv[1]
@nottrobin
nottrobin / post-cve.py
Last active April 9, 2020 14:18
A proof of concept script for authenticating with security API endpoints on ubuntu.com
View post-cve.py
#! /usr/bin/env python3
# Standard library
import os
from http.cookiejar import MozillaCookieJar
# Packages
from macaroonbakery import httpbakery
@nottrobin
nottrobin / settings.json
Created March 24, 2020 14:49
VSCode editor settings for black, flake8, html
View settings.json
{
"python.linting.pylintEnabled": false,
"python.linting.flake8Enabled": true,
"python.linting.enabled": true,
"python.formatting.provider": "black",
"python.formatting.blackArgs": [
"--line-length",
"79"
],
"editor.formatOnSave": true,
@nottrobin
nottrobin / sorting_and_search_algorithms.py
Last active February 26, 2020 16:33
Sorting and search algorithms in Python - quick sort, merge sort, linear search, binary search
View sorting_and_search_algorithms.py
def quick_sort(items):
"""
https://en.wikipedia.org/wiki/Quicksort
Worst-case complexity: O(n^2)
Best-case complexity: O(n log n)
Auxilliary space complexity: O(n), can be O(log n) if you're clever
"""
pivot_item = items[-1]
@nottrobin
nottrobin / create-pdf.sh
Last active November 22, 2019 10:05
Create PDF of server docs from https://ubuntu.com/server/docs
View create-pdf.sh
#! /usr/bin/env bash
# ===
# This will pull down the server documentation from https://discourse.ubuntu.com/c/server/guide
# ===
# http://redsymbol.net/articles/unofficial-bash-strict-mode/
set -euo pipefail
# Empty the documents directory, so we get fresh documents