This adds the Strava Global Heatmap layer to Gaia GPS, so you can see common tracks on where other people have been outside. Like this:

- Log into https://www.gaiagps.com/map
- On the left sidebar, go to
Layers
This adds the Strava Global Heatmap layer to Gaia GPS, so you can see common tracks on where other people have been outside. Like this:
Layers
#!/bin/bash | |
# This script takes the FEC's PostgreSQL dump file and converts it to a directory | |
# of parquet files. | |
# See https://cg-519a459a-0ea3-42c2-b7bc-fa1143481f74.s3-us-gov-west-1.amazonaws.com/bulk-downloads/index.html?prefix=bulk-downloads/data-dump/schedules/ | |
# for the PostgreSQL dump file and more info. | |
# | |
# This requires you to | |
# 1. Have Docker installed and running | |
# 2. Have the `duckdb` command line tool installed |
/* | |
* Title: Sync Self-Links | |
* License: Public Domain | |
* Author: Nick Crews | |
* | |
* Description: | |
* You would want to self-link in certain recursive situations. | |
* For example, modeling a table of Employees: | |
* an employee should have both "manager" and "manages" fields, | |
* each of which link back to the same Employees table. |
from typing import Iterable, Callable, TypeVar | |
T = TypeVar("T") | |
R = TypeVar("R") | |
def make_none_safe(func: Callable[[Iterable[T]], Iterable[R]], *, batch_size: int | None = None) -> Callable[[Iterable[T | None]], Iterable[R]]: | |
"""Turn `iterable -> iterable` function into one that is safe for None values. | |
Consider if you have a function of the form `Iterable[T] -> Iterable[R]`, | |
and this function is delicate and will raise an error if it encounters |
[ | |
{ | |
"display_vote_date":"10\/09\/2025", | |
"vote_description":"To Adopt: ", | |
"vote_result":"Amendment Rejected", | |
"document_url":"https:\/\/www.congress.gov\/amendment\/119\/senate-amendment\/3535", | |
"document_description":"To require Presidential appointment and Senate confirmation of the Inspector General of the Board of Governors of the Federal Reserve System and the Bureau of Consumer Financial Protection.", | |
"parent_document_url":"https:\/\/www.congress.gov\/bill\/119\/senate-bill\/2296", | |
"document_type":"S.Amdt.", | |
"parent_document_type":"S.", |
I was uploading many csv's in parallel to MyCampaign, for a total of ~660k contacts across 17 uploads, each with 39,998 contacts per csv.
In one of the uploads, this is what the csv sheet_01.csv
looks like:
person__id,voterfile_vanid,occupation,employer,prefix,first,middle,last,suffix,nickname
...
3646c0f3-39ba-4756-bf2f-c33f2109eedb,228485,,,MWWIWFX,KEWNEQE,DIEMIWZ,AHCLCXE,BZYMPZI,JZISXJJ
...
[ | |
{ | |
"display_vote_date":"10\/09\/2025", | |
"vote_description":"To Pass: ", | |
"vote_result":"Bill Passed", | |
"document_url":"https:\/\/www.congress.gov\/bill\/119\/senate-bill\/2296", | |
"document_description":"An original bill to authorize appropriations for fiscal year 2026 for military activities of the Department of Defense, for military construction, and for defense activities of the Department of Energy, to prescribe military personnel strengths for such fiscal year, and for other purposes.", | |
"parent_document_url":"https:\/\/www.congress.gov\/bill\/119\/senate-bill\/2296", | |
"document_type":"S.", | |
"parent_document_type":"S.", |