Skip to content

Instantly share code, notes, and snippets.

@dsc
dsc / teenychat.user.js
Created Mar 20, 2021
Greasemonkey Script to regularly truncate the chat (and improve site perf)
View teenychat.user.js
// ==UserScript==
// @name Teenychat TinyChat Chat Teenifier
// @description Truncates chat regularly to eliminate slowdown.
// @author David Schoonover <dsc@less.ly>
// @namespace http://less.ly/tinychat/teenychat
// @version 0.1
// @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.js
// @require https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js
// @run-at document-end
// @grant none
@dsc
dsc / stack.py
Created Aug 11, 2020
A debugging tool for the lazy: pay a ridiculous performance penalty so you don't have to actually have to pay attention to what's calling what.
View stack.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
""" A debugging tool for the lazy: pay a ridiculous performance penalty so
you don't have to actually have to pay attention to what's calling what.
"""
# import logging
# log = logging.getLogger('lessly')
import inspect, weakref
@dsc
dsc / chunks.py
Last active Aug 11, 2020
Random Python tools (py2 bc lazy)
View chunks.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
""" Chunking utilities -- Functions to group an iterable into pieces or "chunks".
"""
### String Chunking Utils
def chunks(it, sep, fileAsBytes=True, asFile=None):
"Divides a stream into iterable groups based on either a size or a delimiter."
@dsc
dsc / shopkeeper.md
Last active Jan 24, 2020
StS: The Shopkeeper Boss Fight
View shopkeeper.md

The Shopkeeper (Boss Fight)

  • The first time you defeat the Shopkeeper, you gain the relic Comfy Rug (Reduce
  • Big Attack animation is his hand coming down from the top of the screen to smoosh you.
  • All his actions get his sfx and banter.
  • Innate Relic Buffs:
    • Starts combat with the buffs from every relic that was for sale in the shop you just entered. (Relics that do things with cards are mapped onto comparable effects for an enemy.)
    • Starts with the buffs from every shop relic you haven't already seen in a shop (or purchased).
      • Normal Effects: Clockwork Souvenir, Hand Drill, Sling of Courage, Lee's Waffle
      • Chem X -- Increase the Shopkeeper's gain of Toolbox stacks by +2 whenever any would be gained (both from the starting Toolbox and the Transmute action).
      • Toolbox -- Starts with 3 stacks of Toolbox, which triggers a random effect each turn when it ticks down:
@dsc
dsc / fb-spamvertiser-remover.js
Created Dec 28, 2018
Facebook Spam-vertiser Remover
View fb-spamvertiser-remover.js
/* Facebook Spam-vertiser Remover
It looks like fb advertisers can now upload a list of emails to spam with FB ads. I
wrote this script -- which blocks them from the ad preferences page -- mostly out of
spite and annoyance. It will not reduce the number of ads you see, or really make them
better, it will simply penalize the companies who uploaded a big-ass list of emails
they bought. For example, I see about 500 car dealerships in my list. I neither have
a car nor do I want one.
These steps require you to be comfortable with the browser's console. The steps below are for Chrome.
View uniqued.py
def uniqued(it, keyfunc=id):
keys = set()
for o in it:
k = keyfunc(o)
if k in keys: continue
keys.add(k)
yield o
View xanalytics.tsv
We can make this file beautiful and searchable if this error is corrected: It looks like row 2 should actually have 2 columns, instead of 3. in line 1.
cp1041.eqiad.wmnet %20Sync/SyncClient1.1%20Profile/MIDP-2.0%20Configuration/CLDC-1.1 1
cp1041.eqiad.wmnet zero=250-99 192929
cp1041.eqiad.wmnet zero=297-01 643
cp1041.eqiad.wmnet zero=410-01 6822
cp1041.eqiad.wmnet zero=420-01 3262
cp1041.eqiad.wmnet zero=470-01 4
cp1041.eqiad.wmnet zero=502-13 20
cp1041.eqiad.wmnet zero=502-16 1687
cp1041.eqiad.wmnet zero=510-11 23
cp1041.eqiad.wmnet zero=520-18 1140
View xcs.pig
SET default_parallel 2;
%default month 02
IMPORT 'hdfs:///libs/kraken/pig/include/load_webrequest.pig';
log_fields = LOAD_WEBREQUEST('hdfs:///wmf/raw/webrequest/webrequest-wikipedia-mobile/2013-02-*,hdfs:///wmf/raw/webrequest/webrequest-wikipedia-mobile/2013-03-*');
-- log_fields = LOAD_WEBREQUEST('hdfs:///wmf/raw/webrequest/webrequest-wikipedia-mobile/2013-$month-*');
xcs_cachehost = FOREACH log_fields GENERATE timestamp, hostname, x_cs PARALLEL 2;
View conf.csv
We can make this file beautiful and searchable if this error is corrected: No commas found in this CSV file in line 0.
dfs.ha.fencing.ssh.connect-timeout 30000 core-default.xml
file.blocksize 67108864 core-default.xml
file.bytes-per-checksum 512 core-default.xml
file.client-write-packet-size 65536 core-default.xml
file.replication 1 core-default.xml
file.stream-buffer-size 4096 core-default.xml
fs.AbstractFileSystem.
View else.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print "While:",
n = range(3)
while n:
print n.pop(),
else:
print "else!",
print