Skip to content

Instantly share code, notes, and snippets.

@Jonty
Jonty / split_svg_paths.py
Last active September 16, 2020 14:15
An extremely hacky bit of code to split an SVG of joined line paths into individual lines, and merge straight lines made of smaller lines into single lines
# An extremely hacky bit of code that takes SVG files output by Blender
# and splits all the multi-node line paths into single line paths to make
# editing easier. Example: A right-angle path is now two lines that meet.
#
# Blender has a habit of outputting really _weird_ paths that are annoying
# to edit on geometric shapes, and also outputs straight lines that are
# made up of many smaller straight line nodes. This code also merges those
# mini-line lines into single lines to stop you throwing your computer out
# of the window when you try and work with the SVG.
#
@Jonty
Jonty / pipecleaner.py
Created August 12, 2020 20:09
Pipecleaner is a tool for validating concourse pipelines
#!/usr/bin/env python3
"""Pipecleaner is a tool for validating concourse pipelines.
Someone rewrote this in go because "it's not python 3 compatible",
so now they have a version 5x longer and less comprehensible. This
is a "port" to python3, via the 2to3 tool. It took 600ms to do.
It can check for the following issues:
* Resources being used in a job that have not been defined in the
@Jonty
Jonty / uk_gov_websites_archive.md
Last active July 28, 2020 20:02
The earliest Archive.org snapshot of every UK Government domain

Recently @alexparsons asked Democracy Club what the earliest local authority website was. Nobody knew, but we had fun looking at pages from 1996.

I pulled up my old IPv4 reverse DNS scan of .gov.uk domains, and the official list of .gov.uk domains, then queried the internet archive for each one.

The list below is every UK Government website sorted by the first time the Internet Archive saved a copy.

The links go to the archived version of the site at that time. Expect to get nostalgic. - @jonty

Archive date Domain
@Jonty
Jonty / gist:6705090
Last active October 29, 2018 15:06
Unicode printable character filter
def strip_string(self, string):
"""Cleans a string based on a whitelist of printable unicode categories
You can find a full list of categories here:
http://www.fileformat.info/info/unicode/category/index.htm
"""
letters = ('LC', 'Ll', 'Lm', 'Lo', 'Lt', 'Lu')
numbers = ('Nd', 'Nl', 'No')
marks = ('Mc', 'Me', 'Mn')
punctuation = ('Pc', 'Pd', 'Pe', 'Pf', 'Pi', 'Po', 'Ps')
@Jonty
Jonty / readtag.c
Created October 18, 2010 14:40
Read a single tag UID using libnfc.
#include <nfc/nfc.h>
#include <nfc/nfc-messages.h>
int main ()
{
nfc_device_t *nfcDev;
nfcDev = nfc_connect(NULL);
if (nfcDev == NULL) {
printf("Cannot connect to the RFID reader.\n");
@Jonty
Jonty / bercow.tsv
Created January 31, 2017 16:26
Everything John Bercow has ever said in Parliament. A TSV with a link to where/when it was said.
We can't make this file beautiful and searchable because it's too large.
For the record, that was passed unanimously. https://www.theyworkforyou.com/debates/?id=2017-01-30a.705.0&amp;s=speaker%3A10040#g751.0
I call the Front Bench speakers to wind up. If each could take no more than 10 minutes, or thereabouts, that would be excellent. https://www.theyworkforyou.com/debates/?id=2017-01-30a.705.0&amp;s=speaker%3A10040#g742.1
That was a splendid example, to be followed. It is not for me to comment on the content of the hon. Lady’s speech, but the length was admirable. https://www.theyworkforyou.com/debates/?id=2017-01-30a.705.0&amp;s=speaker%3A10040#g733.0
Order. There are—four, five, six—nine Members wishing to speak. Let me explain to the House that each of the Front-Bench speakers should have an opportunity to speak for 10 minutes or thereabouts, and the Minister should conclude by 8.59 pm, because the right hon. Member for Doncaster North (Edward Miliband) has the right to reply at that point. We must work on that basis. If everyone speaks for three or four minutes, we shall be f
{
"data": {
"attributes": {
"action": "Allow the Red Arrows to Fly at the 2012 Olympics.",
"background": "The Department of Culture, Media and Sport have deemed the RAF Red Arrows as Unsuitable for the 2012 Olympics because they are too British.\n\nThis is a ridiculous decision and should be overturned in the name of common sense.",
"closed_at": "2008-09-17T00:00:00Z",
"creator_name": "Mark Standley",
"government_response_at": "2008-09-18T00:00:00Z",
"government_responses": [
{
@Jonty
Jonty / .gitconfig
Last active January 11, 2018 11:55
A git alias to rebase all commits added on the current branch
[alias]
rebase-branch = !git rebase -i --autosquash $(git merge-base --fork-point origin/master HEAD)
import asyncio
from pyppeteer.launcher import launch
async def to_pdf(browser, url):
page = await browser.newPage()
await page.goto(url)
pdf = await page.pdf()
with open('emfcamp.pdf', 'wb') as f:
f.write(pdf)
@Jonty
Jonty / mogg_words.txt
Created July 5, 2017 10:35
Frequency count of words used by rees-mogg
9157 is
8795 and
8794 a
7280 it
7214 in
6394 i
4848 be
4642 not
4414 we
4382 for