Skip to content

Instantly share code, notes, and snippets.

View kylemcdonald's full-sized avatar

Kyle McDonald kylemcdonald

View GitHub Profile
@kylemcdonald
kylemcdonald / scrape-latimes-killings.py
Last active June 21, 2023 21:33
Scrape LA Times officer-involved homicides.
import pandas as pd
from tqdm import tqdm
from bs4 import BeautifulSoup
import json
import requests
from itertools import count
from joblib import Parallel, delayed
metadata = []
@kylemcdonald
kylemcdonald / download-urls.py
Last active June 6, 2023 23:47
Download a range of URLs in parallel.
from multiprocessing.dummy import Pool
from tqdm import tqdm
from urllib.parse import urlsplit
import urllib3
import itertools, functools, operator
import os
import sys
import re
import errno
import argparse
@kylemcdonald
kylemcdonald / ffmpeg_load_audio.py
Last active June 6, 2023 03:06
Load audio from ffmpeg into Python using numpy.
import numpy as np
import subprocess as sp
import os
DEVNULL = open(os.devnull, 'w')
# load_audio can not detect the input type
def ffmpeg_load_audio(filename, sr=44100, mono=False, normalize=True, in_type=np.int16, out_type=np.float32):
channels = 1 if mono else 2
format_strings = {
np.float64: 'f64le',
@kylemcdonald
kylemcdonald / long_run_gray_codes.frag
Last active June 4, 2023 11:16
Long Run Gray Codes for 2-bits through 13-bits.
// Generated using code from https://stackoverflow.com/a/66555635/940196
// More info on LRGC http://emis.impa.br/EMIS/journals/EJC/Volume_10/PDF/v10i1r27.pdf
const int lrgc_2[4] = int[](0,1,3,2);
const int lrgc_3[8] = int[](0,1,3,2,6,7,5,4);
const int lrgc_4[16] = int[](0,1,3,7,15,11,9,8,12,13,5,4,6,14,10,2);
const int lrgc_5[32] = int[](0,1,3,7,15,31,29,25,17,16,18,2,10,14,12,28,20,21,23,19,27,11,9,13,5,4,6,22,30,26,24,8);
const int lrgc_6[64] = int[](0,1,3,7,15,31,63,62,58,42,40,32,36,37,5,21,17,25,27,11,10,14,46,38,54,50,48,49,33,41,9,13,29,28,30,26,18,2,34,35,39,55,53,61,57,56,24,8,12,4,6,22,23,19,51,59,43,47,45,44,60,52,20,16);
const int lrgc_7[128] = int[](0,32,33,35,39,103,111,127,125,93,89,81,80,16,18,2,10,42,46,44,60,124,116,117,119,87,83,91,75,11,9,13,5,37,36,38,54,118,126,122,120,88,72,64,65,1,3,7,15,47,63,61,57,121,113,112,114,82,66,74,78,14,12,28,20,52,53,55,51,115,123,107,105,73,77,69,68,4,6,22,30,62,58,56,40,104,96,97,99,67,71,79,95,31,29,25,17,49,48,50,34,98,106,110,108,76,92,84,85,21,23,19,2
@kylemcdonald
kylemcdonald / convert.py
Last active May 26, 2023 03:59
Scrape ShaderToy. Instead of running this, consider downloading the files from here: https://goo.gl/MWGvkL Or if you want to do more work with ShaderToy data, consider using their API https://www.shadertoy.com/api
# !/usr/bin/env python
import os, re, argparse, json
parser = argparse.ArgumentParser(
description='Extract code from ShaderToy json.')
parser.add_argument('input')
parser.add_argument('output')
args = parser.parse_args()
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@kylemcdonald
kylemcdonald / accumulate-lapd.py
Created May 9, 2023 04:57
Accumulate LAPD roster totals by division, rank, etc.
import pandas as pd
from utils.list_files import list_files
mapping = {
'name': 'name',
'employeename': 'name',
'first name': 'first name',
'firstname': 'first name',
'last name': 'last name',
'lastname': 'last name',
We can make this file beautiful and searchable if this error is corrected: It looks like row 5 should actually have 8 columns, instead of 5. in line 4.
video name,name,duration,link,thumbnail,created_time,modified_time,release_time
Edwin Romero - LAPD Graduation,Edwin Romero,9,https://vimeo.com/820913028,https://i.vimeocdn.com/video/1662337989-c465c556a26a1239bf66df570c0d588a27ffe49fd4dfb27398e8ad08520bc973-d_1920x1080?r=pad,2023-04-25T14:34:12+00:00,2023-05-07T21:22:00+00:00,2023-04-25T14:34:12+00:00
Luciana Stearns - LAPD Graduation,Luciana Stearns,114,https://vimeo.com/786321915,https://i.vimeocdn.com/video/1580691589-bbcd7bee9c1b59476b2f6a9f1ee370ba47e2d583c7a38c8f8ad72ce771b4c02e-d_1920x1080?r=pad,2023-01-04T16:54:41+00:00,2023-05-07T21:41:04+00:00,2023-01-04T16:54:41+00:00
Ramiro Zuniga - LAPD Graduation,Ramiro Zuniga,117,https://vimeo.com/786322420,https://i.vimeocdn.com/video/1580691813-b922d241efc3c18712ed8a6134faf506e64e739003dfd2e24929411ad805c7c9-d_1920x1080?r=pad,2023-01-04T16:56:17+00:00,2023-05-07T21:40:57+00:00,2023-01-04T16:56:17+00:00
Herrera Ortega Lucio- LAPD Graduation,Herrera Ortega Lucio,167,https://vimeo.com/820913708,https://i.vimeoc
@kylemcdonald
kylemcdonald / vq-vae.ipynb
Last active May 7, 2023 22:53
Based on vq-vae-exps by @ritheshkumar95
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@kylemcdonald
kylemcdonald / CameraImage.cpp
Created November 23, 2015 15:30
openFrameworks app for sending images to disk for processing, and reading text back from disk. Used for "NeuralTalk and Walk".
#include "ofMain.h"
#include "ofxTiming.h"
class ofApp : public ofBaseApp {
public:
ofVideoGrabber grabber;
DelayTimer delay;
ofTrueTypeFont font;
string description;