41554 blogs · [ { "id": "01a0878f-6c68-7222-b7e9-a2270f00e7a5", "title": "Learn about open-source Protomaps in my updated map class", "url": "https://johnkeefe.net/learn-about-open-source-protomaps-in-my-updated-map-class", "published_at": "2025-04-19T20:12:10+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a2270f8916da", "title": "New online class: Mapmaking for journalists", "url": "https://johnkeefe.net/new-online-class-mapmaking-for-journalists", "published_at": "2022-07-07T00:31:53+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a227105b9e8a", "title": "Sharing NYC Police Precinct Data", "url": "https://johnkeefe.net/nyc-police-precinct-and-census-data", "published_at": "2022-02-07T04:30:00+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a22710f07995", "title": "Covid cases, animated", "url": "https://johnkeefe.net/covid-cases-animated", "published_at": "2022-01-15T04:42:03+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a22710f90381", "title": "Make Every Week returns", "url": "https://johnkeefe.net/make-every-week-returns", "published_at": "2022-01-02T21:00:36+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a22711d85853", "title": "Taking time to build a triangle-grid clock", "url": "https://johnkeefe.net/taking-time-to-build-a-triangle-gird-clock", "published_at": "2021-02-15T19:29:01+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a227124c55dc", "title": "Is it Monday? My Pi has the answer", "url": "https://johnkeefe.net/is-it-monday-my-pi-has-the-answer", "published_at": "2021-02-07T23:10:16+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a22712b0fcb6", "title": "Drawing arcs of circles", "url": "https://johnkeefe.net/drawing-arcs-of-circles", "published_at": "2021-01-24T22:00:44+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a227132fd205", "title": "Printing a pumpkin", "url": "https://johnkeefe.net/printing-a-pumpkin", "published_at": "2021-01-03T18:19:30+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a227135d4292", "title": "Modeling the 2020 vote with Observable", "url": "https://johnkeefe.net/modeling-2020-voting-by-turnout-with-observable", "published_at": "2020-06-24T21:11:21+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a22713bd04b4", "title": "Minneapolis race and ethnicity data by neighborhood, served with Datasette", "url": "https://johnkeefe.net/minneapolis-race-and-ethnicity-data-by-neighborhood-served-with-datasette", "published_at": "2020-06-20T23:17:00+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a22714ba66ba", "title": "Race and ethnicity data by Washington DC police zones", "url": "https://johnkeefe.net/race-and-ethnicity-data-by-washington-dc-police-zones", "published_at": "2020-06-08T03:02:30+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a227152755df", "title": "Chicago race and ethnicity data by police district", "url": "https://johnkeefe.net/chicago-race-and-ethnicity-data-by-police-district", "published_at": "2020-06-07T23:04:11+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a227153f2821", "title": "Lockdown loaves", "url": "https://johnkeefe.net/lockdown-loaves", "published_at": "2020-04-19T03:44:31+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a22715acd70a", "title": "Building a pulse oximeter", "url": "https://johnkeefe.net/building-a-pulse-oximeter", "published_at": "2020-04-11T18:56:31+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a227163d78e0", "title": "Work-from-home \"on air\" light", "url": "https://johnkeefe.net/work-from-home-on-air-light", "published_at": "2020-04-02T03:13:37+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a22716bd936c", "title": "DIY aquarium lights", "url": "https://johnkeefe.net/diy-aquarium-lights", "published_at": "2020-03-23T00:39:43+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a22717accf2f", "title": "Amazon Aurora MySQL + Python", "url": "https://johnkeefe.net/amazon-aurora-mysql-plus-python", "published_at": "2020-03-20T03:11:35+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a22718200c20", "title": "Machine learning in my pajamas", "url": "https://johnkeefe.net/machine-learning-in-my-pajamas", "published_at": "2019-11-21T22:36:32+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a227191237b3", "title": "AI classes for journalists", "url": "https://johnkeefe.net/ai-classes-for-journalists", "published_at": "2019-08-06T12:44:43+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a227192a24f8", "title": "Detecting feature importance in fast.ai neural networks", "url": "https://johnkeefe.net/detecting-feature-importance-in-fast-dot-ai-neural-networks", "published_at": "2019-06-24T01:56:54+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a227195b183b", "title": "Converting videos to images for machine learning", "url": "https://johnkeefe.net/converting-videos-to-images-for-machine-learning", "published_at": "2019-06-15T19:34:53+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a22719758f6a", "title": "Artisanal AI: Detecting objects in our office", "url": "https://johnkeefe.net/artisanal-ai-detecting-objects-in-our-office", "published_at": "2019-06-09T22:19:57+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a22719ed1446", "title": "Making music with my arms", "url": "https://johnkeefe.net/a-theremin-in-a-browser", "published_at": "2019-06-06T04:49:41+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a2271acf23db", "title": "My summer training program", "url": "https://johnkeefe.net/my-summer-training-program", "published_at": "2019-06-06T02:12:07+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a2271bc9acae", "title": "You can't make your NY Times subscription online-only online", "url": "https://johnkeefe.net/you-cant-make-your-ny-times-subscription-online-only-online", "published_at": "2019-03-21T18:03:08+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a2271cbf6041", "title": "Beginning as a practice: The movie", "url": "https://johnkeefe.net/beginning-as-a-practice-the-movie", "published_at": "2018-12-24T22:27:09+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a2271d5b421d", "title": "A bot now updates my Slack status", "url": "https://johnkeefe.net/a-bot-now-updates-my-slack-status", "published_at": "2018-11-10T20:37:33+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a2271dc80994", "title": "I Bought Civil Tokens Today. I think.", "url": "https://johnkeefe.net/i-bought-civil-tokens-today-i-think", "published_at": "2018-09-19T02:20:06+00:00" }, { "id": "01a0878f-6c68-7222-b7e9-a2271eabf9e0", "title": "New Kid on the Blockchain", "url": "https://johnkeefe.net/new-kid-on-the-blockchain", "published_at": "2018-09-14T16:38:10+00:00" } ] posts Claim your blog
Back to johnkeefe.net
Blog · corpus.blog/blogs/johnkeefe.net/posts

johnkeefe.net

johnkeefe.net

2025

2022

2021

2020

2019

2018