Skip to content

Instantly share code, notes, and snippets.

View hornc's full-sized avatar
👾
🎼

Charles Horn hornc

👾
🎼
  • Wellington, New Zealand
View GitHub Profile
#!/usr/bin/env python3
# Based on Google Drive v3 API Quickstart example
# https://developers.google.com/drive/api/v3/quickstart/python
import os.path
import io
import sys
from googleapiclient.discovery import build
from googleapiclient.http import MediaIoBaseDownload
@hornc
hornc / README.md
Last active September 22, 2020 03:51
Thue-Mirr esolang Interpreter

Thue-Mirr interpreter,

https://esolangs.org/wiki/Thue-Mirr

usage: thue-mirr.py [-h] [--debug] [--char] [--num NUM] file

Thue-Mirr https://esolangs.org/wiki/Thue-Mirr Interpreter v1.0 by Salpynx. 2019 CC0

positional arguments:
 file source file to process
@hornc
hornc / barcode-checks.py
Created July 2, 2020 03:10
testing some barcode check digit validations
# Library codabar (14 digit barcode) check digit validator
# (1 digit):material type + (4 digits):library code + (8 digits):item code + (1 digit): checksum
# source: http://www.makebarcode.com/specs/codabar.html
# - GOOD!
def vcodabar(n):
"""Validate the checkdigit of a 14 digit library barcode."""
check = int(n[-1])
data = n[:-1]
total = 0
for i, c in enumerate(data):
#!/bin/bash
# Openlibrary.org data dumps are generated at the end of each month, this downloads them.
# This will save the separate dump files with the redirected filename containing dates.
wget --trust-server-names https://openlibrary.org/data/ol_dump_authors_latest.txt.gz
wget --trust-server-names https://openlibrary.org/data/ol_dump_works_latest.txt.gz
wget --trust-server-names https://openlibrary.org/data/ol_dump_editions_latest.txt.gz
gunzip *.gz
@hornc
hornc / hello-world.sas
Last active May 27, 2019 23:38
Experimental notation interpreter for https://esolangs.org/wiki/Sticks_and_Stones
-1c
a72 1c 3c
a29 -1c -3c
a7 1c c-2 2c2 1c
a3 -1c 8c8
a-67 -8c-8 -3c
a-12 1c 3c
a55 -1c -3c
a24 1c 3c
a3 -1c -3c
@hornc
hornc / README.txt
Last active January 3, 2019 02:56
Retropie GPIO control script
# shutdown.py script to be at
/home/pi/scripts/shutdown.py
# Copy the unit file to
/lib/systemd/system/pi_shutdown.service
# ensure permissions are correct
sudo chmod 644 /lib/systemd/system/pi_shutdown.service
# To enable the service:
@hornc
hornc / bf8
Last active November 21, 2018 07:05
Brainfoctal Interpreter
#!/bin/bash
# Brainfoctal interpreter.
# REQUIREMENTS:
# python3 to convert
# bff4, http://mazonka.com/brainf/bff4.c to interpret,
# $BFI should point to the compiled interpreter
# USAGE:
# ./bf8 <bf8 Gödel number in dec|oct|hex|bin> <input data>
# EX.
# ./bf8 0o6565 Hi
@hornc
hornc / addbooktest.py
Last active June 7, 2018 04:49
OL add book testing
from olclient.openlibrary import OpenLibrary
ol = OpenLibrary()
import re
# These functions are to safely test, without adding any new items, how the OL add book endpoint behaves
# with different inputs.
# Scrapes the OL response page for the add book result:
# Probably not production worthy! ;)
@hornc
hornc / importauthormatch.py
Last active June 6, 2018 21:06
OL Author Matching
from olclient.openlibrary import OpenLibrary
import re
import web
import urllib
import json
ol = OpenLibrary()
# testing OL code to determine existing author matches
# taking old code form
# https://github.com/internetarchive/openlibrary/blob/f8092840a77c7479a352fd83fd068d340f97d3e3/openlibrary/catalog/add_book/load_book.py
@hornc
hornc / update-index.py
Last active April 9, 2018 22:27
Update removed authors appearing in search results from OL solr index.
#!/usr/bin/python
# coding: utf-8
from olclient.openlibrary import OpenLibrary
from datetime import datetime
import random
import time
# script to take an OL Author search and incrementally update the solr index
def author_search(ol, term, offset=0, limit=100):