Skip to content

Instantly share code, notes, and snippets.

@kms70847
kms70847 / float_visualizer.py
Last active May 16, 2019 12:32
Interacitve visualization of the binary form of any floating point number
from tkinter import Tk, Entry, Frame, Label, StringVar
import struct
import traceback
def float_to_int(x):
s = struct.pack("d", x)
x = 0
for value in s[::-1]:
x = (x << 8) | value
return x
import struct
import math
import decimal
from fractions import Fraction
def float_to_bits(f):
bits = [(b>>i)%2 for b in struct.pack(">d", f) for i in range(7, -1, -1)]
return "".join(str(b) for b in bits)
def bits_to_float(bits):
@kms70847
kms70847 / geometry.py
Created July 12, 2019 14:23
random generation of points in an equilateral triangle without conditionals or discarding out-of-bounds points
import math
class Point(object):
def __init__(self, *args, **kargs):
self.num_dimensions = kargs.get("num_dimensions", len(args))
self.coords = [0 for i in range(self.num_dimensions)]
for i in range(len(args)):
self.coords[i] = args[i]
"""Gives the distance from this point to the origin."""
@kms70847
kms70847 / GifHider.bookmarklet
Last active July 26, 2019 18:59
Gif Hider - replaces gifs with a black rectangle until you hover over them
javascript:(function(){style = document.createElement("style"); style.stype = "text/css"; style.innerHTML = 'img[src$=".gif"]{filter: brightness(0%);} img[src$=".gif"]:hover{filter: brightness(100%);}'; document.getElementsByTagName("HEAD")[0].appendChild(style);})();
@kms70847
kms70847 / makegrid.py
Created September 19, 2019 12:35
makegrid.py - copy rectangular grids to the clipboard
from PIL import Image, ImageDraw
import sys
from io import BytesIO
from ctypes import memmove, windll, c_size_t as SIZE_T
from ctypes.wintypes import UINT, LPVOID, BOOL, HWND, HANDLE
HGLOBAL = HANDLE
GHND = 0x0042
GMEM_SHARE = 0x2000
@kms70847
kms70847 / EmoticonAdder.user.js
Last active September 25, 2019 20:29
Emoticon Adder Userscript
// ==UserScript==
// @name Emoticon Adder
// @version 1
// @include http://chat.stackoverflow.com/rooms/*
// @include https://chat.stackoverflow.com/rooms/*
// @grant none
// ==/UserScript==
//note: emoticons with slash characters, for example ¯\_(ツ)_/¯, must be quadruple-escaped. Once for javascript, and again for markdown.
var choices = ["---", "(◕‿◕)", "(╯°□°)╯︵ ┻━┻", "( ͡° ͜ʖ ͡°)", "ಠ_ಠ", " ¯\\\\_(ツ)_/¯", "👍", "🐍"];
@kms70847
kms70847 / UnicodeEmojiAdder.user.js
Last active September 26, 2019 19:53
Unicode Emoji Adder
// ==UserScript==
// @name UnicodeEmojiAdder
// @version 6
// @include http://chat.stackoverflow.com/rooms/*
// @include https://chat.stackoverflow.com/rooms/*
// @grant none
// ==/UserScript==
var style_template = `
.boxPositioner{
@kms70847
kms70847 / main.py
Last active October 22, 2019 18:15
Gold Badge Counter
import requests
import base64
import os
import pickle
import time
import re
import json
from bs4 import BeautifulSoup as BS
MIN_TIME_BETWEEN_REQUESTS = 10
@kms70847
kms70847 / char_count_adder.user.js
Last active November 19, 2019 16:37
In SO chat, adds a label indicating the character count of your message
// ==UserScript==
// @name char count adder (SO Chat)
// @namespace .
// @description Adds a label indicating the character count of your message
// @include http://chat.stackoverflow.com/rooms/*
// @include https://chat.stackoverflow.com/rooms/*
// @version 3
// @grant none
// ==/UserScript==
@kms70847
kms70847 / usernotes.user.js
Last active November 19, 2019 16:37
Adds persistent user notes to Stack Overflow chat
// ==UserScript==
// @name User Notes (SO Chat)
// @namespace .
// @include http://chat.stackoverflow.com/rooms/*
// @include https://chat.stackoverflow.com/rooms/*
// @version 2
// @grant GM_getValue
// @grant GM_setValue
// ==/UserScript==