Skip to content

Instantly share code, notes, and snippets.

@kms70847
kms70847 / get_SO_chat_stars.py
Created April 26, 2018 18:59
Scrapes the star list from Stack Overflow's Python chat room and displays a ranking of most starred users
import requests
from bs4 import BeautifulSoup as Soup
import json
import re
import time
import datetime
import dateparser
from collections import defaultdict
import os
@kms70847
kms70847 / SoChatSpoilerAdd.bookmarklet
Last active April 28, 2021 18:50
Adds a spoiler button to SO chat (sopython.com/spoiler variant)
javascript:(function(){function urlsafe_encode(s){return btoa(s).replace(/\+/g, "-").replace(/\//g, "_")};function encode_utf8(s) {return unescape(encodeURIComponent(s));};function add_spoiler(){try{var input = document.getElementById("input");var left = input.value.slice(0, input.selectionStart);var middle = input.value.slice(input.selectionStart, input.selectionEnd);var right = input.value.slice(input.selectionEnd);if (middle.length == 0){var response = window.prompt("Enter spoiler text.", "");if (response == null || response.length == 0){return;}else{middle = response;};};middle = encode_utf8(middle);middle = encodeURIComponent(urlsafe_encode(middle));middle = "[view spoiler](http://sopython.com/spoiler/" + middle + ")";input.value = left + middle + right;input.setSelectionRange(left.length + middle.length, left.length + middle.length);input.focus();}catch(e){console.log(e);};};function create_button(name, id, func){var buttonArea = document.getElementById("chat-buttons");var button = document.createElemen
// ==UserScript==
// @name Hacker News Post Sorter
// @namespace .
// @include https://news.ycombinator.com/
// @version 1
// @grant none
// ==/UserScript==
HTMLCollection.prototype.forEach = Array.prototype.forEach;
var Post = function(node){
this.node = node;
this.parent = undefined;
this.children = [];
this.isCollapsed = false;
}
Post.prototype.getIndentation = function(){
var ind = this.node.getElementsByClassName("ind")[0];
return ind.getElementsByTagName("IMG")[0].width / 40;
@kms70847
kms70847 / geometry.py
Last active January 20, 2016 21:24
Ray tracer
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 / 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==
@kms70847
kms70847 / fractal_visualizer.py
Last active June 19, 2018 18:13
Fractal Visualizer Tool
try:
from tkinter import *
except ImportError:
from Tkinter import *
try:
from queue import Queue
except ImportError:
from Queue import Queue
@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
// ==UserScript==
// @name Common Comments Box (Stack Overflow)
// @namespace about:blank
// @include http*://stackoverflow.com/questions/*
// @version 1
// @grant none
// ==/UserScript==
var question_comments = [
"Are you getting an error? If so, what is the error and stack trace? Is your code running, but producing unexpected output? If so, what output are you getting, and what output did you expect to get?",
@kms70847
kms70847 / animation.py
Last active August 29, 2015 14:24
KD Tree visualization
#animation.py
#prerequisites: ImageMagick (http://www.imagemagick.org/script/index.php)
import itertools
import os
import os.path
import subprocess
import shutil
import math
def generate_unused_folder_name():