Skip to content

Instantly share code, notes, and snippets.

@vyznev
vyznev / etcsl_charenc_fix.user.js
Last active March 31, 2021 22:08
The ETCSL website sometimes loses track of the selected encoding. This script fixes it and makes switching between Unicode and ASCII easy.
// ==UserScript==
// @name ETCSL charenc fix
// @namespace https://github.com/vyznev/
// @description The ETCSL website sometimes loses track of the selected encoding. This script fixes it and makes switching between Unicode and ASCII easy.
// @author Ilmari Karonen
// @version 1.1
// @match *://etcsl.orinst.ox.ac.uk/*
// @homepageURL https://gist.github.com/vyznev/b078af6b3574f80879f93675f59d8c86
// @downloadURL https://gist.github.com/vyznev/b078af6b3574f80879f93675f59d8c86/raw/etcsl_charenc_fix.user.js
// @run-at document-start
@vyznev
vyznev / throttle_steering.ks
Created September 2, 2020 12:40
kOS script for differential throttle augmented steering
// This script sets up a background trigger that automatically adjusts engine throttle according to the yaw / pitch / roll
// commands of the kOS built-in steering manager. This can allow a vessel to be controlled even without any reaction wheels,
// gimbals or control surfaces, and can also provide additional control authority and stability on top of normal steering
// especially for vessels with asymmetric thrust.
//
// The operation of the trigger is controlled by a number of global variables:
//
// * Setting dt_flag to false will terminate the trigger loop.
// * The loop will adjust throttle on any engines listed in dt_engines (by default, all engines on the vessel).
// * The baseline thrust limit on all controlled engines, in the absence of steering input, is set to dt_base percent.
@vyznev
vyznev / hex2map.py
Last active July 28, 2020 12:01
Convert non-totalistic hexagonal CA rules to MAP rules
#!/usr/bin/python
"""
This script converts hexagonal isotropic (possibly non-totalistic) CA rules[1]
into the equivalent MAP rules[2]. It runs under both Python 2 and Python 3, and
can be used either as a stand-along script (with the rules given as command line
arguments) or as a Golly plug-in.
[1]: http://www.conwaylife.com/wiki/Isotropic_non-totalistic_Life-like_cellular_automaton#Hexagonal_neighbourhood
[2]: http://golly.sourceforge.net/Help/Algorithms/QuickLife.html
"""
@vyznev
vyznev / make_lls_grid.py
Last active August 9, 2019 08:39
Generate Logic Life Search (LLS) input grid for finding spaceships and oscillators, with additional features not yet supported natively by LSS (like strobing background and gradually moving search area).
#!/usr/bin/python
import re
import sys
import argparse
def fail(msg):
sys.stderr.write(sys.argv[0] + ": " + msg + "\n")
sys.exit(1)
@vyznev
vyznev / apgdecode.py
Last active February 4, 2019 01:04
Golly script for loading apgcodes as patterns
#! /usr/bin/python
# apgdecode.py v0.2
# A script for loading apgcodes (http://conwaylife.com/wiki/Apgcode) as Golly (http://golly.sourceforge.net/) patterns.
# Supports extended and multistate apgcodes. (Multistate handling may still have bugs. Let me know if you find any.)
# Copyright 2019 Ilmari Karonen. Released under the WTFPL (http://www.wtfpl.net/).
import golly as g
import re
@vyznev
vyznev / incremental-markdown-preview.user.js
Last active July 10, 2018 10:10
Incremental Markdown preview for Stack Exchange
// ==UserScript==
// @name Incremental Markdown Preview for Stack Exchange
// @namespace https://github.com/vyznev/
// @description Speeds up the live Markdown preview on Stack Exchange sites by only updating changed DOM nodes
// @author Ilmari Karonen
// @version 0.1.0
// @copyright 2017-2018, Ilmari Karonen
// @license ISC; https://opensource.org/licenses/ISC
// @match *://*.stackexchange.com/*
// @match *://*.stackoverflow.com/*
@vyznev
vyznev / se_timeline_link.user.js
Last active May 23, 2018 07:40
Stack Exchange timeline link user script
@vyznev
vyznev / neumann2moore_partial.py
Created February 3, 2018 08:40
Convert pairs of isotropic CA rule strings on the 4-cell von Neumann neighborhood into a Logic Life Search partial rule dictionary.
#!/usr/bin/python
import re
import sys
import argparse
parser = argparse.ArgumentParser(description='Generate LLS rule dict to search multiple isotropic CA rules on the 4-cell von Neumann neighborhood.')
parser.add_argument('minrule', help='minimum rule string (e.g. B0/S)')
parser.add_argument('maxrule', nargs='?', help='maximum rule string (e.g. B0234/S01)')
parser.add_argument('-t', '--totalistic', action='store_true', help='consider only (outer) totalistic rules, i.e. treat 2e and 2i as equivalent')
@vyznev
vyznev / neumann2moore.py
Last active February 3, 2018 02:41
Convert isotropic CA rule strings from the 4-cell von Neumann neighborhood to the 8-cell Moore neighborhood
#!/usr/bin/python
neumann2moore = {
"0": {0: "", 1: "c", 2: "cn", 3: "c", 4: "c"},
"1": {1: "e", 2: "ka", 3: "inyq", 4: "ny", 5: "e"},
"2e": {2: "e", 3: "kaj", 4: "kaqw", 5: "kaj", 6: "e"},
"2i": {2: "i", 3: "r", 4: "itz", 5: "r", 6: "i"},
"3": {3: "e", 4: "jr", 5: "inyq", 6: "ka", 7: "e"},
"4": {4: "e", 5: "c", 6: "cn", 7: "c", 8: ""}
}
@vyznev
vyznev / se_beta_everywhere.user.js
Last active May 25, 2016 18:04
This user script makes all Stack Exchange Q&A sites use the generic beta site theme
// ==UserScript==
// @name Stack Exchange beta theme everywhere
// @namespace http://vyznev.net/
// @description Makes all Stack Exchange sites use the generic beta site theme
// @author Ilmari Karonen
// @version 0.5.2
// @license Public domain
// @homepageURL http://meta.stackexchange.com/a/275804
// @match *://*.stackexchange.com/*
// @match *://*.stackoverflow.com/*