A day in Springfield with Abundant Housing Illinois

Earlier this month I made the trip down to Springfield to volunteer with Abundant Housing Illinois, an advocacy organization pushing for more housing options across the state. It was our biggest group ever, with 39 people going from five Illinois municipalities, and most of us took Amtrak there and back.

The day was a mix of orientation, refining our housing stories and why we volunteer, and then walking the halls of the Capitol to speak with legislators and their staff. Our housing advocates talked to twenty Illinois General Assembly members about reforming local codes that prevent people from being able to afford housing all over the state. We spoke in support of the BUILD plan I wrote about earlier.

It’s important – although inefficient – to show up in person and make the case directly. The legislators we met with were highly or quite receptive, though you never quite know what interactions or talking points will actually move the needle. All of the six bills in the BUILD plan have not yet passed committee; but that doesn’t stop them from moving forward through other means.

If you care about housing in Illinois — whether that’s affordability, supply, or just the ability to build an ADU in your backyard — Abundant Housing Illinois is worth knowing about. Join us!

Comparing Illinois and Netherlands agriculture sectors

The Netherlands has about 5 million more people than Illinois, yet fits into a fraction of the land area. Both places take agriculture seriously. So how do they compare?

I started pulling numbers in August 2022 (which I posted in a Twitter thread) and the gap was striking. Illinois agriculture generates more than $19 billion annually in commodities. The Netherlands’ agricultural sector is worth roughly $106 billion — more than five times as much, from a country smaller than West Virginia.

Grazing pasture near Gouda
A grazing pasture near Gouda, Netherlands

Illinois is no slouch

To be fair to Illinois, the state punches well above its weight in food production and processing:

  • Illinois ranks third nationally in the export of agricultural commodities, shipping $8.2 billion worth of goods to other countries.
  • With 2,640 food manufacturing companies, Illinois ranks first in the nation in processed food sales — $180 billion worth.

That $180 billion processed food figure matters. Illinois doesn’t just grow crops; it turns them into products. That’s a different and more lucrative part of the supply chain.

The Dutch numbers need an asterisk

When I first posted that the Netherlands exports $106 billion in agriculture, I had to walk it back. The Dutch import and then re-export enormous quantities of goods — Rotterdam is one of the world’s largest ports, and the Netherlands functions partly as a distribution hub for Europe. Accounting for that, their domestic origin agricultural exports are closer to $77 billion. Still more than nine times Illinois’ export figure.

The Washington Post explained how: the Netherlands is the second largest food exporter in the world by value, behind only the United States — a country with 20 times the land area. The Dutch achieve this through intensive greenhouse agriculture, precision farming, and a relentless focus on yield per square meter. (And apparently, feeding discarded stroopwafels to pigs and chickens.)

Agricultural universities: world-class programs on both sides

The agricultural excellence of both regions is reflected in their universities. Wageningen University & Research in the Netherlands holds the top global ranking from QS, and has been named the world’s most sustainable campus for nine consecutive years (it’s 12-mile bike ride west of Arnhem). Its research focuses on food systems, climate resilience, and sustainable farming—precisely the disciplines that underpin the Netherlands’ intensive, high-yield agricultural model.

In Illinois, the University of Illinois Urbana-Champaign’s College of Agricultural, Consumer and Environmental Sciences (ACES) ranks among the nation’s top programs in crop sciences and agricultural engineering. UIUC is home to the Morrow Plots, established in 1876 as the oldest continuous agronomic research site in the United States, and its researchers drive advances in plant genetics and biotechnology that benefit Midwest grain production. That both regions produce top-ranked agricultural universities is no coincidence: world-class farming and world-class research reinforce each other.

The cost of intensity: a manure crisis

The Netherlands’ agricultural output is so intensive that waste manure now exceeds the country’s own environmental standards. The national government has been working out how to actively contract the agriculture industry to bring nitrogen emissions under control. The productivity that made Dutch farming famous is now colliding with environmental limits in a country that has almost no room to absorb the runoff.

That tension doesn’t resolve the admiration for what Dutch farmers have built, but it’s an important caveat to any “why can’t we farm like the Dutch” argument.

Dutch expertise travels

Despite the domestic pressures, Dutch agricultural knowledge is in demand globally. In January 2023, Dutch farming firms brought their expertise to Kentucky.

By May 2023, Rotterdam had opened a floating cattle farm — a multi-story farm built on a barge in the harbor, producing milk within the city. You can tour Floating Farm.

From farmland to transit: the same underlying lesson

By early 2024 the thread had drifted from agriculture to land use and transit. The same constraint that pushes Dutch farmers into vertical greenhouses and floating barns shapes how the Dutch build cities and move people.

In May 2022, CTA and Metra together provided 315,481 rail rides per day. The Dutch national railway (“NS”) carried over 1,000,000 per day. The raw gap is about 3.2x, but the Netherlands has 2.1x more people than the seven-county Chicago metro region, so on a per-capita basis NS carries about 1.5x more rides per resident per day than CTA and Metra combined — and that’s before counting Amsterdam, Rotterdam, and The Hague’s separate tram and metro systems.

In February 2024, NS announced its 2025 timetable. One change stood out: they were going to increase service to every 10 minutes between The Hague, Rotterdam, and Dordrecht. To put that in Chicago terms, it would be like Metra running through-trains from Hyde Park to Highland Park every 10 minutes because it takes about two hours today, with frequencies every 1-2 hours (We should #BuildTheTunnel.)

The travel time comparison makes it even starker. The Hague to Dordrecht via Rotterdam takes a fraction of the time it takes to travel a comparable corridor in the Chicago region — not because the trains are faster, but because the network is integrated, the frequency is high, and stations are where people actually want to go.

What connects all of this

The Netherlands has spent decades — centuries, really — solving the problem of doing more with less space. In agriculture, that means precision, intensity, and now painful reckoning with environmental limits. In cities and transit, it means integrated networks, high frequency, and land use patterns that make transit work.

Reflection on volunteering for Drake Warren’s campaign

Updated March 20: Drake won the race on Tuesday and is now the Democratic nominee in November, where he does not currently face a challenger. He gave the following statement to the Chicago Tribune:

“This campaign was shaped by the hands of hundreds of people who made our victory possible,” Warren said in an emailed statement. “I will strive to honor their work and to be a public servant worthy of those I have the privilege to serve.”

As of today I’ve volunteered for Drake Warren’s campaign for Cook County Commissioner of District 10 for twenty hours. That’s six shifts, and six wildly different weather patterns that changed day-to-day and hour-to-hour.

In such a short time I’ve talked to so many Chicagoans. Chicagoans who are voting for Drake, might vote for Drake, and people who can’t or won’t vote. It’s been fun, eye opening, and challenging to try and find ways to connect with so many different people as they walk to or from the grocery store or gym. I did poll greeting at Truman College several times and it’s pretty easy to pick up on people’s habits and figure out which people are headed to cosmetology, to Aldi, or to vote. (I live in a different neighborhood where my neighbors have another set of destinations and patterns.)

I’m supporting Drake because he wants to do the job full time, depends on transit and understands the link between the Board of Commissioners and the CTA, rents his home and, like most renters, has experienced the painful rent increases driven by our housing shortage firsthand. Plus he has clear policy priorities and plans for the future of the office and the Board. I also support his candidacy because his vision for housing affordability is authentic and realistic. He and I are, after all, members of Abundant Housing Illinois alongside whom we’ve spent a lot of time demanding that electeds allow for more housing options to lessen the devastating impacts of a housing shortage — displacement, homelessness, and low quality home environments. 

I haven’t encountered someone who was going to vote for the incumbent, Bridget Gainer, and I wish I could say my sample size is a reliable indicator of what the results will be on Tuesday. But I’m not taking any chances. After I publish this, I’m planning to get back out there for eight more hours on March 17, Election Day. 

People have noticed Drake’s dedication. They’ve seen him at Broadway Armory daily as they commute past him. They’ve appreciated hearing his policy to stop vacant land tax breaks as he stands in the January cold outside their door. And remarked how well he communicates his proposals about the issues Cook County is required to tackle and how it can do better – in person and in various interviews. The juxtaposition between Drake’s and the incumbent’s campaigns has been conspicuous to many folks. This was the case before the news came out showing Gainer had the second worst attendance record for board and committee meetings. Based on some of my conversations during greeting I think that has caused some voters to seek an alternative. 

I’ve asked many of my friends to join me at the early voting locations (a few have heeded the call), or watch and repost one of his videos, or simply read the engaging interview with him in Windy City Times. It was amusing to get a couple of texts from people saying, “I saw your friend when I dropped off my ballot at Broadway Armory.” Drake has been greeting people at that early voting location for two weeks.

First week of Ward Early Voting was a tremendous success thanks to our volunteers and supporters. There is just over *ONE WEEK* left until the March 17th Democratic Primary. Make your plan to vote!

Drake Warren for Cook County Commissioner (@drakefor10.bsky.social) 2026-03-09T14:37:43.374Z

A community of advocates for more housing, clean energy, and safe transportation has sprung up to support Drake. I feel invigorated being part of this local movement to elect someone who can meet the moment and better represent my friends and other district residents (including my sister and mother).

I’ll be out there tomorrow, on Election Day.

Please vote or drop off your ballot at a secure drop box!

Chicago crash data updated to show monetary damages based on a person’s situation in the crash

The Chicago Crashes page that is hosted on Chicago Cityscape shows weekly and year-to-date crash statistics along with estimated costs of those crashes, broken down by person type. Today I published a major change to present the stats better, in a way that matches the costs of the crash that are said to be different based on the person’s situation – whether they were a pedestrian, bicyclists, or motor vehicle occupant – in the crash. Prior to this change, every person in the crash was assigned the same monetary cost as “driver” even if they were a pedestrian or bicyclist.

Improved cost tables

The “Costs of these crashes” tables have two improvements.

  • Each injury-severity column now shows a count alongside the dollar figure, so you can see exactly how many people of each type were killed, had incapacitating injuries, or had non-incapacitating injuries for the selected time period. This makes it easier to verify the numbers and understand the scale behind the cost estimates.
  • The tables previously listed three person-type rows: Driver/Passenger, Pedestrian, and Bicycle. The CPD dataset actually includes six person types. The two remaining types — non-motor vehicle occupants and non-contact vehicle occupants — were being silently folded into the Driver/Passenger row. They now appear in their own “Other” row.

What’s interesting is the differences in value. Pedestrian is “worth” less than bicyclist. Cost estimates use values from the CDC’s WISQARS Cost of Injury study and vary by injury severity and person type.

  • A pedestrian who is killed is said to result in $14,169 in medical costs and $10,500,000 in non-medical costs, totaling $10,514,169
  • A bicyclist who is killed is said to result in $19,750 in medical costs and $10,800,000 in non-medical costs, totaling $10,819,750
  • A motor vehicle occupant who is killed is said to result in $11,556 in medical costs and $10,600,000 in non-medical costs, totaling $10,611,556

I haven’t figured out why the pedestrian has a lower non-medical cost.

A note on count differences

You may notice that the injury counts in the “Costs of these crashes” table differ slightly from the totals in the “killed or injured” summary above it. This is expected and I will try to reconcile them 1:1 soon. The two figures come from two Chicago Police Department datasets and may be modified at certain times in ways that my import system does not catch. They differ by a small number of records at any given time.

Crash data is sourced from the Traffic Crashes — Crashes and Traffic Crashes — People datasets on the Chicago Data Portal.

A Claude Code skill to find relevant parts of someone’s speech in a video

Political speeches, candidate interviews, and public hearings contain dozens of quotable moments — but finding them means scrubbing through hours of video. I created a Claude Code skill that helps me speed up the process of finding the right section of a speech.

The skill, called speech-clip-extractor, takes a video file and a set of topics you care about, then returns a table of timestamps, quotes, and reasons each moment is worth clipping. From there, it extracts the clips using ffmpeg.

Transcription with mlx-whisper

The first step is generating a subtitle file. I used mlx-whisper, Apple’s port of OpenAI Whisper optimized for Apple Silicon. Running on the Neural Engine instead of the CPU, it transcribes a 60-minute video in a few minutes rather than the better part of an hour. One gotcha: mlx-whisper only installs on arm64 Python. If you’re running Anaconda, which ships as x86_64 under Rosetta, the install will silently fail. The fix is to use Homebrew’s Python instead.

Finding the highlights

Once Claude Code has the VTT transcript, it reads the full text and looks for moments that match the topics I specified. For a recent recorded interview with a Cook County Commissioner candidate, I asked it to find moments about property taxes, vacant land, housing, and the Cook County Land Bank. Claude returned a table of eight clips with timestamps, direct quotes, and a one-line note on why each moment was notable — things like “specific stat, strong soundbite” or “names names, calls out a specific corrupt dynamic.”

I also used this skill to locate specific timestamps in Governor Pritzker’s speech from his budget address last week, to locate the parts about housing that I had heard live as he was speaking. It allowed me to quickly pull out clips to show the part when he said “everything is just too damned expensive” and when he talked about parking reform.

Cutting the clips

The skill uses ffmpeg to extract each clip and optionally concatenate them into a single video. Even if you don’t use the step of extracting each clip having the timestamps can be immensely helpful to guide you to the right spot in a long video file.

For vertical social media cuts, it applies a 9:16 center crop. When there are two speakers in the frame, it switches the crop to follow whoever is talking — cutting to the left side of the frame when the interviewer speaks and the right when the candidate answers. However, in my experience so far the crop is poorly done so I created my own crop. (I use Final Cut Pro for iPad.)

The whole workflow — transcription, analysis, extraction — takes about ten minutes for a one-hour video. What used to require scrubbing through footage manually is now a matter of describing what you’re looking for and letting the model find it.