Skip to content

Instantly share code, notes, and snippets.

View mumbleskates's full-sized avatar
🤔

Kent Ross mumbleskates

🤔
View GitHub Profile
// It is possible to add golang interfaces together.
// But did you know that you can also subtract them?
// Here are two arbitrary interfaces. They can have any
// methods.
type A interface {
Foo() string // This is the conflicting method signature.
Bar() int
}
type B interface {
@mumbleskates
mumbleskates / mysql 5.7
Created November 28, 2023 00:58
mysql 8 prepared statement bug
mysql> create table t (
-> id integer primary key,
-> val json
-> );
Query OK, 0 rows affected (0.04 sec)
mysql> insert into t(id, val) values (1, '{"a": 1}'), (2, '{"a": "two"}');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
@mumbleskates
mumbleskates / hyperoperator.js
Created November 28, 2021 04:46
Hyperoperator with only tail recursion
// All arguments must be BigInts. Return value is a BigInt or a thrown RangeError
const bigH = (n, a, b) => {
let result = 0n
const stack = [{n, a, b}]
do {
const {n, a, b} = stack.pop()
if (n < 0n || a < 0n || b < 0n) {
throw Error('Can only hyperoperate on non-negative integers')
}
#include <stdio.h>
#define ALIGNED __attribute__((aligned(32)))
// There are three structs, Foo, Bar, and Baz, each with a 20 byte field.
// Bar and Baz are annotated with an 'aligned' attribute of 32 bytes, but
// in slightly different ways.
typedef struct {
char a[20];
from threading import Thread
import requests
from multithreading import Channel
def fetch_all_with_pool(iterable_of_urls, pool_size=20):
"""
Fetches URLs with a thread pool.
# coding=utf-8
"""Lazy hacks to enable easier usage of async functions, context managers, and iterators in the REPL."""
from asyncio import set_event_loop
try:
import uvloop as loop_maker
except ImportError:
import asyncio as loop_maker
loop = loop_maker.new_event_loop()
@mumbleskates
mumbleskates / multithreading.py
Created November 28, 2018 22:06
closeable channel and threadsafe iterator wrapper
# coding=utf-8
from collections import deque
from queue import Empty, Full
from threading import Condition, RLock, Thread
from time import monotonic as now
from weakref import finalize
class ChannelClosed(Exception):
"""Exception raised when a channel has been closed."""
# coding=utf-8
from collections import Mapping, Iterable
from operator import attrgetter
from struct import pack, unpack
__doc__ = """
Pure python tools for inspecting unknown protobuf data. Written for py3.6+.
Author: Kent Ross
# coding=utf-8
from mumblecode.multithreading import CloseableQueue
from threading import Thread
from concurrent.futures import Future
import requests
class RequestFuturePool(object):
def __init__(self, pool_size=20, queue_size=64, rate_limiter=lambda: None):
# coding=utf-8
from mumblecode.multithreading import CloseableQueue
from queue import Queue, Empty
from threading import Thread
import requests
_STOP = object()