Skip to content

Instantly share code, notes, and snippets.

from typing import Dict, Any, Type, TypeVar, Optional, Sequence, Union
from contextlib import contextmanager
T = TypeVar
class NamedConstantMeta(type):
def __init__(cls, *args, **kwargs):
super().__init__(*args, **kwargs)
#: This class attribute will be the dict mapping constant names to their constants.
@TerrorBite
TerrorBite / bashttpd.sh
Last active February 5, 2021 11:37
A webserver… written as a shell script. This is a terrible idea. MIT license
#!/bin/bash
# Let's write a webserver in Bash because haha why not
# Copyright (c) 2017-2020 TerrorBite <terrorbite@lethargiclion.net>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
@TerrorBite
TerrorBite / asciicast.json
Created June 16, 2017 11:15
Test asciicast, recording TerrorBite/textgame in action.
{
"command": "ssh -p 8822 admin@localhost",
"stdout": [
[
0.055014,
"admin@localhost's password: "
],
[
2.633539,
"\r\n"
@TerrorBite
TerrorBite / asciiplayer.py
Last active June 16, 2017 10:40
Asciinema record-to-disk and playback-from-disk Python programs. Useful with asciinema v0.9.8 that doesn't have these functions natively.
#!/usr/bin/env python3
from sys import stdout, argv
import pickle
from time import sleep
with open(argv[1], 'rb') as f:
asciicast = pickle.load(f)
pos = 0
timing = asciicast.stdout.timing.split(b'\n')
java_opts="$java_opts -XX:MaxGCPauseMillis=50"
# Disable explicit GC. Some plugins may think it's a good idea to manually run the garbage collector.
# This is never a good idea with our setup, as it introduces a pause that is usually completely avoidable.
java_opts="$java_opts -XX:+DisableExplicitGC"
### OPTIMIZATION SETTINGS ###
# Bukkit and Spigot synchronize things for thread safety. Some of these synchronizations are never contested under ideal conditions.
// ==UserScript==
// @name Place Save Button
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Adds a save button to /r/place.
// @supportURL https://www.reddit.com/message/compose/?to=TerrorBite
// @author /u/TerrorBite
// @match https://*.reddit.com/place
// @match https://*.reddit.com/place?*
// @match https://*.reddit.com/r/place/
@TerrorBite
TerrorBite / gw2.py
Created December 15, 2016 09:07
This file was a work in progress
import struct
import crc32c
import errno
import gw2util
# Headers
gw2_header1 = struct.Struct("<B3sIII")
gw2_header2 = struct.Struct("<IIQII")
# GW1 header
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: chat.proto
import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
Start End Event Name Waypoint Link
07:00 07:15 Tequatl the Sunless [&BNABAAA=]
11:30 11:45 Tequatl the Sunless [&BNABAAA=]
16:00 16:15 Tequatl the Sunless [&BNABAAA=]
19:00 19:15 Tequatl the Sunless [&BNABAAA=]
00:00 00:15 Tequatl the Sunless [&BNABAAA=]
03:00 03:15 Tequatl the Sunless [&BNABAAA=]
08:00 08:15 Evolv. Jungle Wurm [&BKoBAAA=]
12:30 12:45 Evolv. Jungle Wurm [&BKoBAAA=]
17:00 17:15 Evolv. Jungle Wurm [&BKoBAAA=]
@TerrorBite
TerrorBite / build.sh
Created February 26, 2016 00:02
Framebuffer rendering thing
#!/bin/sh
gcc -std=gnu99 -o fbtoy main.c framebuffer.c draw.c -lm -g