Skip to content

Instantly share code, notes, and snippets.

@aodin
aodin / synesthesia.py
Last active March 5, 2024 23:02
Generate background colors for strings that will be displayed with white text
import colorsys
FNV_OFFSET = 0x811C9DC5 # 2166136261, FNV-1 32-bit offset basis
FNV_PRIME = 0x01000193 # FNV-1a 32-bit prime
def fnv1a_32(value: str) -> int:
"""
Compute the FNV-1a (32-bit) hash of a given data string.
https://en.wikipedia.org/wiki/FowlerNollVo_hash_function
@aodin
aodin / states_fips.csv
Created September 29, 2023 20:24
State Abbreviations and FIPS Codes
State Postal FIPS
Alabama AL 1
Alaska AK 2
Arizona AZ 4
Arkansas AR 5
California CA 6
Colorado CO 8
Connecticut CT 9
Delaware DE 10
District of Columbia DC 11
@aodin
aodin / us_metro_with_state_fips.csv
Created September 28, 2023 23:06
US Metro Areas with CBSA and State FIPS codes
CBSA Metro State Postal State FIPS
10180 Abilene, TX Texas TX 48
10380 Aguadilla, PR Puerto Rico PR 72
10420 Akron, OH Ohio OH 39
10500 Albany, GA Georgia GA 13
10540 Albany, OR Oregon OR 41
10580 Albany-Schenectady-Troy, NY New York NY 36
10740 Albuquerque, NM New Mexico NM 35
10780 Alexandria, LA Louisiana LA 22
10900 Allentown-Bethlehem-Easton, PA-NJ Pennsylvania PA 42
@aodin
aodin / income_inequality_top1_murder_rate.csv
Created May 21, 2023 00:14
Income inequality (1% share of income) and murder rate per 100k persons for 152 countries, with inequality rate from the year matching murder rate data
country year murder_rate top1
Afghanistan 2018 6.6555611518 0.1508
Albania 2018 2.2894924438 0.0929
Algeria 2015 1.3642763974 0.0991
Angola 2012 4.8470751765 0.1958
Argentina 2018 5.3244787387 0.145
Armenia 2018 1.693915557 0.1746
Australia 2018 0.89163240342 0.0967
Austria 2018 0.96722860774 0.0982
Azerbaijan 2018 2.2011074485 0.1399
@aodin
aodin / income_inequality_v_murder_rate.csv
Last active May 20, 2023 10:30
Income inequality (1% share of income) and murder rate per 100k persons for 152 countries
Country Top 1% Share of Income Murder Rate (per 100k)
AE 0.1531 0.4637824877
AF 0.1508 6.6555611518
AL 0.0924 2.2894924438
AM 0.15 1.693915557
AO 0.2598 4.8470751765
AR 0.1514 5.3244787387
AT 0.1074 0.96722860774
AU 0.0992 0.89163240342
AZ 0.1399 2.2011074485
@aodin
aodin / document.json
Created April 9, 2023 18:32
Django fixtures for example JSON Document model
[
{
"model": "json_search.document",
"pk": 1,
"fields": {
"content": {
"title": "No Man Is An Island",
"author": "John Donne",
"body": "No man is an island,\nEntire of itself,\nEvery man is a piece of the continent,\nA part of the main.\nIf a clod be washed away by the sea,\nEurope is the less.\nAs well as if a promontory were.\nAs well as if a manor of thy friend\u2019s\nOr of thine own were:\nAny man\u2019s death diminishes me,\nBecause I am involved in mankind,\nAnd therefore never send to know for whom the bell tolls;\nIt tolls for thee.\n"
}
@aodin
aodin / parse_nginx_access_log.py
Last active October 8, 2022 23:02
Parse an Nginx access.log file into a Pandas DataFrame
"""
Parse an Nginx access.log file into a Pandas DataFrame. Also works with gzipped files.
"""
import argparse
import pathlib
import pandas as pd
parser = argparse.ArgumentParser()
@aodin
aodin / nginx.py
Created May 31, 2022 20:17
Parse nginx access.log and access.log.gz files into namedtuples
import csv
from collections import namedtuple
import gzip
from os import listdir
from os.path import join
Entry = namedtuple("Entry", "ip, blank, user, time, offset, request, status, sent, referer, agent")
@aodin
aodin / backticks.md
Last active February 10, 2022 21:16
Back ticks

Oh like this

  • Bullet point

      Some code
      More code
    
  • I am good at markdown

@aodin
aodin / formula.py
Last active September 30, 2021 22:52
Write both formula and value in openpyxl
from zipfile import ZipFile, ZIP_DEFLATED
from openpyxl import LXML, Workbook, load_workbook
from openpyxl.cell._writer import _set_attributes
from openpyxl.comments.comment_sheet import CommentRecord
from openpyxl.compat import safe_string
from openpyxl.drawing.spreadsheet_drawing import SpreadsheetDrawing
from openpyxl.worksheet._writer import WorksheetWriter
from openpyxl.writer.excel import ExcelWriter
from openpyxl.xml.functions import Element, SubElement, whitespace, XML_NS, REL_NS