Skip to content

Instantly share code, notes, and snippets.

View kylemcdonald's full-sized avatar

Kyle McDonald kylemcdonald

View GitHub Profile
@kylemcdonald
kylemcdonald / daily-repeat.py
Created October 5, 2023 08:58
Daily.co app for repeating what someone has said when they say "repeat".
from google.cloud import speech
import argparse
import time
from daily import Daily, CallClient
SAMPLE_RATE = 44100
CHUNK_COUNT = 10
FRAME_COUNT = CHUNK_COUNT * SAMPLE_RATE // 100
@kylemcdonald
kylemcdonald / twilio-repeat.js
Created October 4, 2023 01:53
Twilio app for repeating everything someone has said once they say the word "repeat".
const WebSocket = require("ws");
const express = require("express");
const app = express();
const server = require("http").createServer(app);
const wss = new WebSocket.Server({ server });
const path = require("path");
const fs = require("fs");
require("dotenv").config();
@kylemcdonald
kylemcdonald / adsbx.py
Created August 26, 2023 08:09
Download historical data from ADS-B Exchange.
import requests
import os
import argparse
import datetime
import time
parser = argparse.ArgumentParser(
description='Download historical data from ADS-B Exchange.')
parser.add_argument('-i', '--icao', default='icao.txt', type=str,
help='Newline delimited text file of ICAO hex codes.')
@kylemcdonald
kylemcdonald / watch-page.sh
Created July 26, 2023 01:33
Watch a URL for updates and pop up a notification if it changes.
#!/bin/bash
URL=$1
LAST_PAGE="cache.html"
while true; do
curl -s "$URL" > "$LAST_PAGE"
echo -n "$(date) - $(stat -f "%z" "$LAST_PAGE") - "
openssl md5 "$LAST_PAGE" | cut -d' ' -f2
if ! diff -q "$LAST_PAGE" "$LAST_PAGE.old" > /dev/null; then
@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 / lease-answering.ipynb
Last active June 30, 2023 22:30
Notebook demonstrating the way that you ask GPT-3.5 a question changes the response. The function calling API performs the worst.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@kylemcdonald
kylemcdonald / function-calling.ipynb
Created June 14, 2023 01:10
Example of OpenAI function calling API to extract data from LAPD newsroom articles.
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 / download-cpra.py
Created January 17, 2023 08:51
Python script for downloading public CPRA documents.
import requests
import json
from itertools import count
import os
import sys
import urllib3
from multiprocessing.dummy import Pool
from tqdm import tqdm
from ratelimit import limits, sleep_and_retry