This is your work, valued

Brooklyn, NY

Jonathan Soma

Elite
@jsoma

baby data journo wrangler @ledeprogram + @littlecolumns, cat wrangler @cat-republic

tabletop. Tabletop.js gives spreadsheets legs

3.8k

mapsheet. Easily create interactive maps from data in Google Spreadsheets. Supports Google Maps, Leaflet, Mapbox, MapQuest, etc.

233

natural-pdf. A friendly library for working with PDFs

108

selenium-github-actions. Python

104

persine. Persine is an automated tool to study and reverse-engineer algorithmic recommendation systems.

91

flatware. S3 caching of Google Spreadsheets for Tabletop.js

91

fuzzy_pandas. Fuzzy matches and merging of datasets in pandas using csvmatch

77

kull. A tool to interactively select text regions of PDFs and images. Mostly for use with PDFQuery or tesseract (UZN/OCR zone files)

53

gs-spreadsheet-manager. A slightly more object-oriented, ORM-y, and altogether pleasant way of dealing with Google Spreadsheets when using Google Apps Script.

50

spotify-langchain-gpt. Building Spotify playlists based on vibes using LangChain and GPT

50

nicar25-ai-images-video. Jupyter Notebook

23

designingviz. A step-by-step design guide for data visualizations

22

raphael-radar. Raphael Radar is a JavaScript library to draw a controlable radar chart using Raphael.js, a JavaScript library to draw SVG

19

py-reform. A Python library for dewarping/straightening/reformatting document images and PDFs

19

action-electron-forge. :electron: GitHub Action for building and releasing Electron apps

19

tesseract-uzn. Simplify using uzn files with tesseract for OCR

19

hexagon-grids-for-adobe-illustrator. A simple script to automatically build hexagon grids in Illustrator, for things like D3 hex cartogram visualizations

18

simplified-scrollama-scrollytelling. Non-d3, barebones version of scrollama.js scrollytelling examples

18

python-disease-modeling. A walkthrough of how SIR infectious disease modeling works, along with a do-it-yourself Python COVID model that you can use to simulate a lockdown.

18

ai2html-walkthroughs. Code samples for ai2html walkthroughs

17

storytelling-2015. HTML

15

NICAR20-geocoding-apis. Geocoding APIs repo for NICAR20 session

15

clipped-and-georeferenced-images-from-google-earth-in-qgis-3. Georeference images from Google Earth in QGIS 3, then clip them so they aren't shaped all weird.

14

nicar23-huggingface. Jupyter Notebook

14

data-studio-projects.

13

autoscraper-changes. Tiny template that uses GitHub Actions and Python to automatically scrape the BBC's homepage every four hours.

12

ire24-scraping. Tutorials for IRE 2024 about using Playwright to scrape state-level license and violations data

12

nicar25-ai-newsroom. Jupyter Notebook

12

nicar25-passive-scraping. Passive scraping for social media (HAR and WACZ to the rescue)

11

d3-topojson-data-guide. How to wrangle your data into a useable TopoJSON format for making D3 visualizations

10

chatgpt-for-educators. Slides for a talk about the use and abuse of ChatGPT in the classroom

9

page-templates. HTML

8

NICAR20-intro-d3. Base for an introductory walkthrough of D3's features for NICAR 2020

8

mediaparty-folktales. Notes and code for learning Hungarian folktales through semantic search and GPT: Media Party 2023 lightning talk

8

abraji24-ai-audio-video. HTML

8

hardboiled. A node.js detective kit for investigating how web sites are built.

8

interactives-class-content.

8

nicar23-building-ai-editors. Conceptual framework for building AI editors to help with journalism workflows

8

nicar24-beyond-chatgpt. Jupyter Notebook

7

playfair-projects. Common repository of projects for Playfair

6

2023-abraji-ai-workshop. Journalism in AI workshop for Abraji 2023

6

abraji25-pdfs. Jupyter Notebook

6

quarto-tutorial. Quarto framework tutorial for C+J/European Data Journalism Conf 2023

6

data-studio-projects-2022. Projects for Columbia J School's Data Studio 2022

6

lede-notes. Notes from Summer 2015's Lede Python class

6

dataharvest25-ai-images-video. Jupyter Notebook

6

NICAR20-apis. Jupyter Notebook

5

nb2jekyll. Use nbconvert to convert IPython/Jupyter Notebooks into Jekyll-compatible Markdown + Front Matter

5

final_final_v2_truefinal. JavaScript

4

lede-projects-2023. Projects for Lede Program 2023

4

excel-tutorials.

3

bad-air-cities. An auto-updating website of major cities' air quality index

3

2023-ona-before-beyond-chatgpt. Slides and links for AI Tools from Before (and Beyond!) ChatGPT (ONA 2023)

3

data-studio-projects-2024. Python

3

lede-projects-2022. Projects for Lede Program 2022

3

data-studio-projects-2023. Projects for Columbia Journalism School's Data Studio course, Spring 2023

3