<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>YY Ahn</title>
  <subtitle>YY Ahn - Recent updates</subtitle>
  <link href="https://yyahn.com/feed.xml" rel="self" type="application/atom+xml"/>
  <link href="https://yyahn.com/" rel="alternate" type="text/html"/>
  <id>https://yyahn.com/</id>
  <updated>2026-08-09T00:00:00Z</updated>
  
  <author>
    <name>Yong-Yeol (YY) Ahn</name>
  </author>
  
  <generator uri="https://github.com/yyahn/foliate" version="0.11.0">foliate</generator>

  
  <entry>
    <title>AI agent interface</title>
    <link href="https://yyahn.com/wiki/AI-agent-interface/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/AI-agent-interface/</id>
    <published>2026-08-08T00:00:00Z</published>
    <updated>2026-08-08T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p>The layer between you and your coding agents—how you launch, monitor, and talk to <a class="wikilink" href="/wiki/Claude-Code/">Claude Code</a>, <a class="wikilink" href="/wiki/Software/OpenAI-Codex/">OpenAI Codex</a>, and others. The options range from each harness&rsquo;s own TUI to terminal multiplexers to dedicated multi-agent apps. This page compares the ones I&rsquo;ve tried; my current setup lives in an ever-evolving page <a class="wikilink" href="/wiki/AI-Agents/How-I-Use-Them/">How I Use Them</a>.</p>
<h2 id="harness-native-interfaces">Harness-native interfaces<a class="header-anchor" href="#harness-native-interfaces" title="Link to this section">#</a></h2>
<p>The default is whatever the harness ships. <a class="wikilink" href="/wiki/Claude-Code/">Claude Code</a> is a terminal TUI, also available as a desktop app, a web app, and IDE extensions. <a class="wikilink" href="/wiki/Software/OpenAI-Codex/">OpenAI Codex</a> has the <code>codex</code> TUI and a polished app.</p>
<p>To me, Claude Code is much more pleasant to use as a TUI and the app doesn&rsquo;t quite work well enough to use. On the Codex side, both TUI and native app are pretty good, but native app has many convenient features so I generally stick to the native app. </p>
<p>In comparing Claude Code and Codex, the keyword that makes Codex pleasant to use is &ldquo;seamless&rdquo;. Codex&rsquo;s interface makes it easy to forget about the remaining context, compaction, and other details. But Claude Code interface nudges you more about these details. </p>
<p>The Codex app makes it very easy to create scheduled tasks (regularly run prompts like <code>/loop</code> in Claude Code). It also has a very good integration with mobile app (although it&rsquo;s annoying to navigate to the Codex thread from the default ChatGPT interface). Claude Code has remote control, but it is not as seamless as Codex. </p>
<p>One small feature that actually annoys me quite a lot: control over when a follow-up prompt is injected. The Codex app lets you choose—send it now, or queue it for the agent&rsquo;s next turn. In the Claude Code TUI you can&rsquo;t predict when a typed prompt will land.</p>
<h2 id="the-terminal-itself">The terminal itself<a class="header-anchor" href="#the-terminal-itself" title="Link to this section">#</a></h2>
<p>If the interface is a TUI, the terminal emulator underneath matters more than it seems. I use <a class="wikilink" href="/wiki/Software/Ghostty/">Ghostty</a>—<a class="wikilink" href="/wiki/Person/Mitchell-Hashimoto/">Mitchell Hashimoto</a>&rsquo;s GPU-accelerated terminal, written in <a class="wikilink" href="/wiki/Zig/">Zig</a> with platform-native UI—almost entirely because of its speed. Speed is exactly why I gave up on <a class="wikilink" href="/wiki/Software/Warp/">Warp</a>, which has grown into a full &ldquo;agentic development environment&rdquo; bundling a terminal with agent orchestration; it does a lot, but it felt slow. Before all this I was a long-time <a class="wikilink" href="/wiki/Software/iTerm2/">iTerm2</a> user.</p>
<h2 id="terminal-multiplexers">Terminal multiplexers<a class="header-anchor" href="#terminal-multiplexers" title="Link to this section">#</a></h2>
<p>If you live in the terminal, the classic answer is <a class="wikilink" href="/wiki/Software/tmux/">tmux</a> or your terminal&rsquo;s native splits (<a class="wikilink" href="/wiki/Software/Ghostty/">Ghostty</a>&rsquo;s <code>⌘+D</code>/<code>⌘+⇧+D</code>). The property that makes tmux and its descendants so valuable for agent work is detach and reattach: close the window—or lose the connection—and the session lives; the agents keep working, and you reattach whenever you want. Agent-specific tools add state awareness on top:</p>
<ul>
<li><a class="wikilink" href="/wiki/Software/Herdr/">Herdr</a>: a terminal multiplexer built for agents: real PTY panes, persistent sessions that survive disconnects, and semantic state (blocked, working, done, idle) across the whole &ldquo;herd&rdquo; of agents. Runs local or over SSH, with a CLI and socket API.</li>
<li><a class="wikilink" href="/wiki/Software/cmux/">cmux</a>: a native macOS terminal on libghostty with a vertical tab sidebar (one tab per project), agent notifications, and an embedded scriptable browser. Lightweight and similar in spirit to Ghostty + Herdr; I hit memory-leak issues with it. It is not as elegant as Herdr. </li>
</ul>
<h2 id="multi-agent-apps">Multi-agent apps<a class="header-anchor" href="#multi-agent-apps" title="Link to this section">#</a></h2>
<ul>
<li><a class="wikilink" href="/wiki/Software/Paseo/">Paseo</a>: self-hosted and open source. A local daemon spawns the agent processes on your machine and streams them to desktop, web, mobile, or CLI clients; essentially a Codex-app-style interface that works across providers (Claude Code, Codex, OpenCode, Cursor, Pi, &hellip;). It has the explicit prompt-queueing control described above.</li>
<li><a class="wikilink" href="/wiki/Software/Orca/">Orca</a>: an open-source (MIT) agentic IDE for running agents in parallel, each in an isolated <a class="wikilink" href="/wiki/Git/">Git</a> worktree (&ldquo;prompt to merged PR&rdquo;). Powerful and well made, but the whole model is built around worktrees, which, to me, adds too much complexity that everyday tasks don&rsquo;t need. </li>
</ul>
<h2 id="what-i-use">What I use<a class="header-anchor" href="#what-i-use" title="Link to this section">#</a></h2>
<p>My trajectory so far: <a class="wikilink" href="/wiki/Software/iTerm2/">iTerm2</a> + <a class="wikilink" href="/wiki/Software/tmux/">tmux</a> → bare <a class="wikilink" href="/wiki/Software/Ghostty/">Ghostty</a> splits → <a class="wikilink" href="/wiki/Software/cmux/">cmux</a> → <a class="wikilink" href="/wiki/Software/Orca/">Orca</a> → Ghostty + <a class="wikilink" href="/wiki/Software/Herdr/">Herdr</a> → <a class="wikilink" href="/wiki/Software/Paseo/">Paseo</a> (as of August 2026). Alongside these, I also use the <a class="wikilink" href="/wiki/Software/OpenAI-Codex/">OpenAI Codex</a> app a lot, in combination with its iOS app. </p>
<p>The features that ended up mattering to me: prompt-injection control, notifications and per-agent state, sessions that survive closing the window (tmux-style detach/reattach, whether via <a class="wikilink" href="/wiki/Software/Herdr/">Herdr</a>&rsquo;s persistent sessions or <a class="wikilink" href="/wiki/Software/Paseo/">Paseo</a>&rsquo;s daemon), and staying lightweight—in-place sessions rather than worktree complexity.</p>]]></content>
    
  </entry>
  
  <entry>
    <title>Paseo</title>
    <link href="https://yyahn.com/wiki/Software/Paseo/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/Software/Paseo/</id>
    <published>2026-08-08T00:00:00Z</published>
    <updated>2026-08-08T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p>A self-hosted, open-source app for running coding agents—<a class="wikilink" href="/wiki/Claude-Code/">Claude Code</a>, <a class="wikilink" href="/wiki/Software/OpenAI-Codex/">OpenAI Codex</a>, OpenCode, Cursor, Pi, and others—from desktop, web, mobile, or CLI. A local daemon spawns the agent processes on your machine and streams their output to whichever client you use. Essentially a Codex-app-style interface that works across providers. In the same space as <a class="wikilink" href="/wiki/Software/Herdr/">Herdr</a>, <a class="wikilink" href="/wiki/Software/cmux/">cmux</a>, and <a class="wikilink" href="/wiki/Software/Orca/">Orca</a>.</p>
<ul>
<li><a href="https://paseo.sh">paseo.sh</a> · <a href="https://github.com/getpaseo/paseo">getpaseo/paseo</a></li>
</ul>
<p>As of August 2026 I&rsquo;m trying it as my interface for agent sessions—see <a class="wikilink" href="/wiki/AI-Agents/How-I-Use-Them/">How I Use Them</a>. A small but very useful feature: explicit control over when a follow-up prompt is injected—send it now, or queue it for the agent&rsquo;s next turn. The <a class="wikilink" href="/wiki/Software/OpenAI-Codex/">OpenAI Codex</a> app offers this, but the <a class="wikilink" href="/wiki/Claude-Code/">Claude Code</a> TUI doesn&rsquo;t; there you can&rsquo;t predict when a typed prompt will be injected.</p>]]></content>
    
  </entry>
  
  <entry>
    <title>BPAC comments on 5th Street and West Main</title>
    <link href="https://yyahn.com/wiki/articles/20260808_bpac_comments/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/articles/20260808_bpac_comments/</id>
    <published>2026-08-08T00:00:00Z</published>
    <updated>2026-08-09T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p>These are follow-up comments from the <a href="https://www.charlottesville.gov/Calendar.aspx?EID=3451">August 6, 2026 BPAC meeting</a>. The quotations are my notes from the discussion, not an official transcript.</p>
<h2 id="west-main-is-a-once-in-a-generation-opportunity">West Main is a once-in-a-generation opportunity<a class="header-anchor" href="#west-main-is-a-once-in-a-generation-opportunity" title="Link to this section">#</a></h2>
<p>West Main connects UVA and Downtown, two of Charlottesville&rsquo;s main activity centers. The city calls the West Main/Ridge intersection a <a href="https://connect.charlottesville.gov/STARSWmain">primary gateway between UVA and the Downtown Mall</a>. The Free Trolley already links the two destinations and is <a href="https://parking.virginia.edu/LocalTransit">CAT&rsquo;s most popular route among UVA students</a>. This is exactly the kind of short urban corridor where safe biking and frequent, reliable transit can replace car trips.</p>
<p>The timing makes this a rare opportunity. The city has begun a <a href="https://connect.charlottesville.gov/westmainutilitiesproject">multi-year replacement of gas and water mains</a> along University Avenue, West Main, and side streets. We should decide what transportation system we want before utility reconstruction and piecemeal projects lock the old street back into place.</p>
<p>The construction will disrupt existing travel habits regardless. That nuisance is also an opportunity: when routines are already changing, the rebuilt street will shape which choices become convenient afterward. Coordinating the utility work with safe biking and transit priority could establish new habits; restoring the old geometry would reinforce the old ones.</p>
<p>A transit- and bike-oriented West Main could move many times more people within the same width. <a href="https://nacto.org/publication/transit-street-design-guide/introduction/why/designing-move-people/">NACTO&rsquo;s peak-capacity comparison</a> estimates 600–1,600 people per hour for a motor-vehicle lane, 7,500 for a two-way bikeway, and 10,000–25,000 for a transitway. For an equal-width, two-lane illustration, those figures yield a theoretical 17,500–32,500 people per hour for a bikeway plus transitway, compared with 1,200–3,200 for two motor-vehicle lanes: roughly <strong>5–27 times as many people</strong>. These are capacity estimates, not ridership forecasts. West Main would approach them only with a connected, protected bikeway and transit that is frequent, reliable, and not stuck behind private vehicles.</p>
<p>The city should not assume that every current car trip must remain on West Main. It should ask which trips need a West Main destination, which can shift to biking or transit, and which through-trips can use US 250 or another route. Across dozens of road-space reallocation projects, some traffic has repeatedly <a class="wikilink" href="/wiki/Traffic-evaporation/">evaporated</a>: people change route, departure time, destination, or mode rather than all the displaced cars reappearing on nearby streets. The exact shift should be modeled, not promised, but it should not be ruled out by assumption.</p>
<p>This is also an economic-development choice. <a class="wikilink" href="/wiki/articles/20251012_translating_bigcity_lessons_to_small_towns/">The research I previously summarized for West Main</a> generally finds positive or neutral effects of bike and pedestrian improvements on nearby retail and food-service businesses. A safer, higher-capacity corridor can improve access to businesses without requiring more street width.</p>
<p>The city is also using traffic modeling to study West Main. Before those results steer the corridor&rsquo;s future, staff should disclose which traveler responses the model allows, what bike, pedestrian, and transit data calibrate it, and which alternatives it compares. The same questions apply to the 5th Street projection.</p>
<h2 id="the-5th-street-traffic-projection">The 5th Street traffic projection<a class="header-anchor" href="#the-5th-street-traffic-projection" title="Link to this section">#</a></h2>
<h3 id="how-does-the-model-treat-demand">How does the model treat demand?<a class="header-anchor" href="#how-does-the-model-treat-demand" title="Link to this section">#</a></h3>
<p>Any <a class="wikilink" href="/wiki/Traffic-projection/">traffic analysis</a> should disclose which traveler responses it allows. <a href="https://ops.fhwa.dot.gov/trafficanalysistools/tat_vol2/sect2.htm">FHWA identifies five common responses to changed road conditions</a>: people can change route, departure time, destination, mode, or whether they make the trip at all. A model that holds motor-vehicle demand fixed cannot show those responses; it can only move the assumed cars around the network.</p>
<p>I do not know whether the 5th Street model holds demand fixed. That is why staff should disclose how demand is treated. If the model treats future car growth as unavoidable and uses that growth to justify preserving motor-vehicle capacity, the forecast can become self-fulfilling: easier driving induces more driving. The city should compare that scenario with one in which a connected, protected bikeway shifts some trips out of cars and increases total person-throughput.</p>
<h3 id="compare-forecasts-with-observed-outcomes">Compare forecasts with observed outcomes<a class="header-anchor" href="#compare-forecasts-with-observed-outcomes" title="Link to this section">#</a></h3>
<p>Past projections show why this distinction matters:</p>
<figure style="text-align: center;">
<img src="https://yyiki.s3.amazonaws.com/public/imgs/traffic-projections-678.png" alt="Chart showing nearly flat or declining observed weekday traffic on SR-520 from 1996 through 2010 alongside three WSDOT forecasts projecting substantial growth" width="500">
<figcaption>Observed SR-520 traffic and WSDOT forecasts as compared in 2011. Graphic by Sightline Institute, from Clark Williams-Derry's <a href="https://www.sightline.org/2011/07/13/wsdot-vs-reality/">WSDOT vs. Reality</a>, reproduced unchanged under Sightline's <a href="https://www.sightline.org/free-use-policy-pop-up/">free-use policy</a>.</figcaption>
</figure>

<p>Forecasts of gridlock after road-space reallocation have often been too pessimistic. A <a href="https://nacto.org/wp-content/uploads/disappearing_traffic_cairns.pdf">review of more than 70 cases in 11 countries</a> found an average 21.9% reduction in traffic on the treated road or within the study area; the median reduction was 10.6%. Some traffic diverted, but not all of it reappeared nearby: people also changed when, where, how, or whether they traveled. This is <a class="wikilink" href="/wiki/Traffic-evaporation/">Traffic evaporation</a>.</p>
<p>Seoul&rsquo;s Cheonggyecheon restoration is a useful example. The city removed a 5.8-kilometer elevated highway and four of eight surface lanes. <a href="https://www.oecd.org/content/dam/oecd/en/publications/reports/2007/05/managing-urban-traffic-congestion_g1gh7edf/9789282101506-en.pdf#page=83">Post-project monitoring reported by the OECD</a> found that most of the former corridor traffic did not reappear on nearby streets or elsewhere in the urban area. Travelers shifted departure times, Metro use increased, and road trips declined.</p>
<p>These cases do not prove that the 5th Street projection is wrong. They establish why staff should disclose whether the model allows comparable behavior changes and how the method has performed when validated against completed road-space reallocations.</p>
<h3 id="what-data-calibrate-the-model">What data calibrate the model?<a class="header-anchor" href="#what-data-calibrate-the-model" title="Link to this section">#</a></h3>
<p>A good back-test would not by itself validate the model for this decision. If the 5th Street model is calibrated mainly on historical US travel data, that record reflects decades of car-oriented development, including <a class="wikilink" href="/wiki/Induced-demand/">Induced demand</a> and suburbanization. It may reproduce a future that repeats the past while saying little about the scenario this project is supposed to evaluate: a street whose design and mode options change. Staff should disclose the calibration period, input data, validation tests, and sensitivity analyses.</p>
<p>Mode-shift projections are only as good as the mode data behind them. Most US jurisdictions count motor vehicles routinely but collect much less comparable data on biking and walking. A model without those data has little local evidence with which to calibrate or validate mode choice. <a class="wikilink" href="/wiki/Person/Joe-Cortright/">Joe Cortright</a> calls this the <a href="https://cityobservatory.org/the-limits-of-data-driven-approaches-to-planning/">&ldquo;drunk under the streetlamp&rdquo; problem</a>: abundant car data make car projections look rigorous while changes in other modes remain poorly measured. If you don&rsquo;t count it, it doesn&rsquo;t count.</p>
<p>This matters directly for 5th Street because the case for a protected bikeway rests partly on mode shift. If the city has bike and pedestrian counts for the corridor, it should publish them alongside the car counts. If it does not, staff should say so and explain how the mode-choice component was calibrated.</p>
<h2 id="the-5th-street-design">The 5th Street design<a class="header-anchor" href="#the-5th-street-design" title="Link to this section">#</a></h2>
<h3 id="what-kind-of-street-is-5th-street-supposed-to-be">What kind of street is 5th Street supposed to be?<a class="header-anchor" href="#what-kind-of-street-is-5th-street-supposed-to-be" title="Link to this section">#</a></h3>
<p>The city should first clarify whether 5th Street will remain a high-speed motor-vehicle corridor or become a safe urban street. The bikeway design should follow from that decision.</p>
<p>If 5th Street will remain high-speed, people biking need mode separation: either a completely different corridor or continuous physical separation from motor traffic, including at intersections. A bike lane painted along the side of a fast road does not create a <a class="wikilink" href="/wiki/Traffic-stress/">low-stress route</a>, even with flexi-posts. If 5th Street will become a safe street, its physical geometry and perceptual cues should make low speeds feel natural through narrow lanes, tight corners, compact crossings, and <a class="wikilink" href="/wiki/Protected-intersection/">protected intersections</a>. Signs and hoped-for congestion are not substitutes for a self-enforcing design.</p>
<p>The current approach risks an incoherent hybrid: a street that does little to slow motor vehicles, with a nominal bike lane attached to its edge. That would give people biking neither meaningful separation nor a genuinely slow street.</p>
<p>I do not think adding a bike lane is automatically an improvement. A facility that people do not feel safe using will attract few riders, especially among the &ldquo;interested but concerned&rdquo; group that a useful network must serve. A <a href="https://doi.org/10.3141/2587-11">national survey of 3,000 adults in the 50 largest US metropolitan areas</a> placed about half of adults in this group. Low use of an uncomfortable facility can then become a political argument against future projects: &ldquo;No one uses the bike lanes.&rdquo; The evaluation ends up measuring a design failure and calling it weak demand. Counting an unusable lane as completed infrastructure makes that mistake more likely. See <a class="wikilink" href="/wiki/Anti-bike-lanes/">Anti bike lanes</a>.</p>
<h3 id="measure-people-not-only-vehicle-delay">Measure people, not only vehicle delay<a class="header-anchor" href="#measure-people-not-only-vehicle-delay" title="Link to this section">#</a></h3>
<p>Motor-vehicle level of service and person-throughput answer different questions. Level of service grades vehicle delay; it does not tell us how many people a street moves or whether they can travel safely. <a href="https://www.pps.org/article/levels-of-service-and-travel-projections-the-wrong-tools-for-planning-our-streets">Gary Toth argues that level of service and travel projections are highway-era tools often misapplied to city streets</a>. The city should report person-throughput and safety outcomes alongside vehicle delay.</p>
<p><a href="https://nacto.org/publication/transit-street-design-guide/introduction/why/designing-move-people/">NACTO&rsquo;s peak-capacity comparison</a> estimates 7,500 people per hour for a two-way bikeway, compared with 600–1,600 for a motor-vehicle lane. Even against the high end of the motor-vehicle estimate, the bikeway has nearly five times the theoretical person-capacity.</p>
<p>That capacity is not a ridership forecast. It matters only if the bikeway is connected, useful, and comfortable enough to attract riders. A bad bike lane is the worst of both worlds: it reallocates street space without giving enough people a practical alternative to driving. A connected, protected bikeway can move far more people in the same space and reduce the number of cars competing for the remaining lanes.</p>
<h3 id="there-will-be-enough-traffic-so-the-speed-will-be-low">&ldquo;There will be enough traffic, so the speed will be low&rdquo;<a class="header-anchor" href="#there-will-be-enough-traffic-so-the-speed-will-be-low" title="Link to this section">#</a></h3>
<p>Congestion is <em>not</em> <a class="wikilink" href="/wiki/Traffic-calming/">Traffic calming</a>. It is not sensible to assume that a road will be congested 24/7. Congestion slows drivers only while a queue exists. The intersection must remain safe at midday, at night, and whenever the queue disappears. <a href="https://nacto.org/publication/urban-street-design-guide/design-controls/design-hour/">NACTO says street design must account for every hour of the day</a>, not depend on peak traffic to regulate speed. If the street is safe only when another driver blocks the way, the geometry still permits the dangerous speed.</p>
<h3 id="a-bike-lane-between-motor-vehicle-lanes-creates-a-mandatory-conflict">A bike lane between motor-vehicle lanes creates a mandatory conflict<a class="header-anchor" href="#a-bike-lane-between-motor-vehicle-lanes-creates-a-mandatory-conflict" title="Link to this section">#</a></h3>
<p>Safe street design starts by eliminating conflict points, especially between vulnerable road users and motor vehicles. A through bike lane between a through lane and a right-turn lane creates a <em>mandatory</em> weaving conflict. Every right-turning driver must cross the bike lane, while cyclists travel between moving or queued vehicles. <a href="https://nacto.org/publication/urban-bikeway-design-guide/designing-safe-intersections/dont-give-up-at-the-intersection/">NACTO advises against placing bike traffic between motor-vehicle lanes</a> because the merge raises crash risk and can put cyclists in drivers&rsquo; blind spots.</p>
<p>This is the geometry of a <strong>right-hook crash</strong>: a driver begins to the cyclist&rsquo;s left, moves right across the cyclist&rsquo;s path, and may not see the cyclist in the passenger-side blind spot. <a href="https://highways.dot.gov/sites/fhwa.dot.gov/files/2022-08/fhwasa12018.pdf">FHWA&rsquo;s Bicycle Road Safety Audit Guidelines</a> found that motorists turning or merging into a cyclist&rsquo;s path were the most frequent group of parallel-path crashes in the studies it reviewed. The guidelines specifically warn that right-turning drivers may not see cyclists approaching in their blind spot. The proposed geometry deliberately places riders in that known conflict pattern.</p>
<p>The problem is captured, darkly, by this meme:
<img alt="" src="https://yyiki.s3.us-east-2.amazonaws.com/public/imgs/bikelane_goahead_die.png" /></p>
<p>Charlottesville&rsquo;s <a href="https://charlottesville.gov/1889/5th-Street-SW-Road-Diet-Bikeway">project page</a> reports that the Cleveland Avenue turn lane serves 16 vehicles in the morning peak hour and 37 in the afternoon peak. Even at the busier peak, that is less than one turn every two minutes. Removing the dedicated lane would keep the bikeway curbside and require drivers to slow in the through lane before turning. If the turn lane remains, the crossing should be separated by protected geometry or a distinct signal phase.</p>
<h3 id="fire-engine-and-school-bus-turning-radius">Fire-engine and school-bus turning radius<a class="header-anchor" href="#fire-engine-and-school-bus-turning-radius" title="Link to this section">#</a></h3>
<p>The right question is whether an actual school bus and Charlottesville&rsquo;s current fire engine can complete a slow turn safely, not whether the largest legacy vehicle can remain entirely within one lane at passenger-car speed.</p>
<p>This is a tradeoff. Requiring a school bus or occasional fire engine to turn more slowly may cost a few seconds. A wide corner lets every driver turn faster every day and lengthens the crossing for people walking. The city should compare those costs explicitly rather than give large-vehicle speed absolute priority.</p>
<p>Charlottesville&rsquo;s <a href="https://www.charlottesville.gov/DocumentCenter/View/10298/Standards-and-Design-Manual-PDF#page=66">own design manual, p. 47</a> warns that designing for the largest possible vehicle can encourage faster turns and longer pedestrian crossings. It recommends 15–20-foot physical corner radii with a 28-foot effective path supplied by mountable truck aprons, and it permits a school bus to encroach minimally into the opposing lane. What physical and effective radii does the 5th Street design propose? Which vehicles and turning assumptions produced them?</p>
<p>Charlottesville has already chosen <a href="https://www.29news.com/2026/04/07/how-charlottesville-fire-department-is-working-modernize-its-fleet/">newer, smaller fire engines</a> in part because they are easier to maneuver on city streets. The intersection should be designed for the current fleet and the direction the city has chosen, not locked into wide geometry around the largest legacy vehicle.</p>
<p>The safety effect is measurable. An <a href="https://www.fhwa.dot.gov/publications/research/safety/21105/21105.pdf">FHWA study</a> estimated 30% more pedestrian crashes at a 30-foot <a class="wikilink" href="/wiki/Corner-radius/">Corner radius</a> than at 10 feet, holding other modeled factors constant, and 59% more at 70 feet. These are general estimates rather than a prediction for this intersection; staff should provide the proposed radii so we can calculate the relevant comparison.</p>
<h3 id="daylighting-is-not-about-signs">Daylighting is not about signs<a class="header-anchor" href="#daylighting-is-not-about-signs" title="Link to this section">#</a></h3>
<p><a class="wikilink" href="/wiki/Daylighting/">Daylighting</a> means physically clearing the sightline near a crossing. A parking sign may announce the restriction, but it cannot substitute for the cleared space. The design should keep vehicles out of the sight triangle with a curb extension, delineators, or another self-enforcing treatment. <a href="https://nacto.org/publication/urban-street-design-guide/intersection-design-elements/visibility-sight-distance/">NACTO recommends removing parking within 20–25 feet of an intersection</a>.</p>
<p>Daylighting is also one of the cheapest and simplest intersection-safety treatments (<a class="wikilink" href="/wiki/Traffic-calming-is-cheap/">cost evidence</a>). What prevents the city from amending its engineering standard now to require physical daylighting at every eligible intersection whenever repaving, utility work, or other road work occurs?</p>
<h2 id="priority-questions-for-staff">Priority questions for staff<a class="header-anchor" href="#priority-questions-for-staff" title="Link to this section">#</a></h2>
<ul>
<li>Is 5th Street intended to remain a high-speed motor corridor or become a safe, low-speed city street? What target speed and physical design follow from that choice, and what protects people biking when congestion is absent?</li>
<li>How does the traffic model treat demand? Does it allow changes in route, departure time, destination, mode, and whether people make a trip? Forecasts of road-space reallocation have often overpredicted traffic problems because not all displaced traffic reappears. Will staff publish the model, assumptions, calibration and validation, scenarios, sensitivity analyses, and outputs in enough detail for BPAC to evaluate its conclusions?</li>
<li>Why does the proposed design place the bikeway between through and right-turning motor vehicles, a configuration NACTO advises against? What physical and effective corner radii are proposed, which design vehicles and turning assumptions produced them, and does the swept-path analysis use Charlottesville&rsquo;s current front-line fire engine? How were the pedestrian-safety effects of larger corner radii considered?</li>
<li>How is the West Main utility replacement being coordinated with the corridor&rsquo;s long-term transportation design?</li>
<li>What specifically prevents the city from revising its engineering standard now to require physical daylighting at every eligible intersection when repaving, utility work, or other road work occurs?</li>
</ul>]]></content>
    
  </entry>
  
  <entry>
    <title>YY&#39;s bike shed: Traffic evaporation, and the models that can&#39;t see it</title>
    <link href="https://yyahn.com/wiki/yy-bikeshed/2026-08-08-traffic-evaporation/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/yy-bikeshed/2026-08-08-traffic-evaporation/</id>
    <published>2026-08-08T00:00:00Z</published>
    <updated>2026-08-08T21:47:01Z</updated>
    
    <content type="html"><![CDATA[<p><strong>When road space shrinks, some traffic simply disappears</strong></p>
<p>I updated the wiki page on <a href="https://yyahn.com/wiki/Traffic-evaporation/">traffic evaporation</a>: the well-documented phenomenon where closing a road or reallocating its space makes some car trips <em>vanish</em> rather than divert, although models predict the opposite. A <a href="https://nacto.org/wp-content/uploads/disappearing_traffic_cairns.pdf">review of more than 70 cases across 11 countries</a> found that on average 21.9% of the vehicles previously using the treated road (median 10.6%) could not be found anywhere in the surrounding area afterward, and that pre-project congestion predictions tend to be &ldquo;<em>excessively pessimistic</em>&rdquo;. Some striking cases:</p>
<ul>
<li><strong>Seoul</strong> removed a 5.8-kilometer elevated highway and half the surface lanes to restore the Cheonggyecheon stream. Most of the former traffic did not reappear on nearby streets; people shifted departure times and switched to the Metro.</li>
<li><strong>Pontevedra</strong>, Spain saw a ~90% drop in car traffic after pedestrianizing its historic center.</li>
<li><strong>Barcelona</strong>&rsquo;s tactical-urbanism streets lost 14.8% of their traffic relative to the rest of the city, while immediately adjacent parallel streets gained only 0.7%.</li>
</ul>
<p><strong>Traffic demand is not weather</strong></p>
<p>A rain forecast does not make it rain, but a traffic projection that dictates a road&rsquo;s design can create the traffic it predicts. I updated the <a href="https://yyahn.com/wiki/Traffic-projection/">traffic projection</a> page on why these models deserve far more skepticism than they get:</p>
<ul>
<li>A model that holds car demand fixed can only move the assumed cars around the network. It cannot show people changing route, departure time, destination, mode, or skipping the trip, which is exactly what the evaporation cases above document.</li>
<li>The forecasts can be self-fulfilling: the model projects more driving, the city widens the road, easier driving induces more driving, and the resulting traffic is cited as proof the forecast was right.</li>
<li>WSDOT&rsquo;s successive forecasts for Seattle&rsquo;s SR-520 bridge (1996, 2002, 2011) each projected substantial growth while observed traffic stayed flat or declined for more than a decade.</li>
<li>US models are calibrated on decades of car-centric development and almost no bike or walking data, so their mode-shift predictions are a shot in the dark. If you don&rsquo;t count it, it doesn&rsquo;t count.</li>
<li>The better question is person-throughput: NACTO estimates a motor-vehicle lane moves 600–1,600 people per hour, a two-way bikeway 7,500, and a transitway 10,000–25,000.</li>
</ul>
<p><strong>My comments on Charlottesville&rsquo;s 5th Street design and West Main</strong></p>
<p>Following the August 6 meeting of the city&rsquo;s Bicycle and Pedestrian Advisory Committee, I wrote up <a href="https://yyahn.com/wiki/articles/20260808_bpac_comments/">comments on the 5th Street SW Road Diet design and the West Main study</a>, applying the two pages above. Some highlights:</p>
<ul>
<li>West Main&rsquo;s multi-year utility replacement is a once-in-a-generation opportunity: construction breaks everyone&rsquo;s travel habits, and whatever the rebuilt street makes easiest is what new habits form around. We should decide what street we want before reconstruction locks the old one back in.</li>
<li>The proposed 5th Street design sandwiches a bike lane between a through lane and a right-turn lane, creating a mandatory weaving conflict and the classic right-hook crash pattern that NACTO explicitly advises against.</li>
<li>Congestion is not traffic calming. A street must be safe at midday and at night, when there is no queue to slow drivers down.</li>
<li>Daylighting means physically clearing the sightline near a crossing. A parking sign is not daylighting.</li>
</ul>
<p>If you live in Charlottesville, feel free to borrow any of it, and let me know if you spot problems.</p>
<p>yy</p>]]></content>
    
  </entry>
  
  <entry>
    <title>YY&#39;s Random Walks: Context engineering, how to ask, and AI agent interfaces</title>
    <link href="https://yyahn.com/wiki/yy-randomwalks/2026-08-context-engineering-asking-agent-interfaces/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/yy-randomwalks/2026-08-context-engineering-asking-agent-interfaces/</id>
    <published>2026-08-08T00:00:00Z</published>
    <updated>2026-08-08T21:47:01Z</updated>
    
    <content type="html"><![CDATA[<p>This newsletter contains: how to organize instructions for LLM agents (and why less is more), two classic communication anti-patterns, and a personal comparison of the apps for running coding agents.</p>
<h2 id="context-engineering">Context engineering<a class="header-anchor" href="#context-engineering" title="Link to this section">#</a></h2>
<p><a href="https://yyahn.com/wiki/Context-engineering/" rel="nofollow">https://yyahn.com/wiki/Context-engineering/</a></p>
<p>I wrote up how I organize instructions and context for LLM agents—<code>CLAUDE.md</code>, <code>AGENTS.md</code>, and skill files. </p>
<p>I believe that the most common mistake is over-engineering: trying to instruct too much and constrain too much. This actually feels productive—every rule you write down seems like accumulated wisdom—but it easily backfires, for the following three reasons:</p>
<ol>
<li>Rules <em>confine</em>: what you prescribe may not be the best way, and a prescription written for weaker models becomes a ceiling for new ones. </li>
<li>Rules <em>distract</em>: instruction files are injected into every session, and it can be distracting. Indeed, <a href="https://arxiv.org/abs/2602.11988">Gloaguen et al. (2026)</a> found that repository context files tend to <em>reduce</em> coding-agent success rates while increasing inference cost by over 20%. </li>
<li>Rules <em>rot</em>: models and workflows change, so every rule added is something you now have to maintain.</li>
</ol>
<p>A good principle is <strong>progressive disclosure</strong>: thin pointers at the top (&ldquo;where things are&rdquo; and &ldquo;when to look for this&rdquo;), detail discovered on demand. Prune aggressively at every model upgrade. Boris Cherny, the creator of Claude Code, even <a href="https://www.youtube.com/watch?v=Egd65CLmb6w">advises deleting your <code>CLAUDE.md</code> every six months</a> and starting fresh. One caveat: this applies to <em>knowledge</em>, not <em>guardrails</em>. Non-negotiables (e.g., &ldquo;never <code>rm</code>&rdquo;) belong in deterministic permission rules and hooks, not in files the model may or may not read.</p>
<h2 id="dont-ask-to-ask-and-ask-about-x-not-y">Don&rsquo;t ask to ask, and ask about X, not Y<a class="header-anchor" href="#dont-ask-to-ask-and-ask-about-x-not-y" title="Link to this section">#</a></h2>
<p><a href="https://yyahn.com/wiki/XY-problem/" rel="nofollow">https://yyahn.com/wiki/XY-problem/</a> and <a href="https://yyahn.com/wiki/Don%27t-ask-to-ask,-just-ask/">https://yyahn.com/wiki/Don&rsquo;t-ask-to-ask,-just-ask/</a></p>
<p>Two short notes on old internet-chat wisdom about asking questions well. <a href="https://dontasktoask.com/">&ldquo;Don&rsquo;t ask to ask&rdquo;</a>: in an asynchronous chat, ask the actual question instead of first asking whether anyone is around who knows about X—you save a back-and-forth and don&rsquo;t exclude people who could help through adjacent experience. </p>
<p>The <a href="https://xyproblem.info/">XY problem</a>: you have problem X, you guess Y might solve it, and you ask about Y instead of X—so everyone wastes time on the wrong question. The fix for both is the same: state the underlying problem and its context up front.</p>
<p>I keep coming back to these because this happens all the time in the lab, in the classroom, and when working with AI agents. A prompt that describes the real problem with context is better than a prompt about your guessed solution, for the same reason it works on humans.</p>
<h2 id="ai-agent-interfaces">AI agent interfaces<a class="header-anchor" href="#ai-agent-interfaces" title="Link to this section">#</a></h2>
<p><a href="https://yyahn.com/wiki/AI-agent-interface/" rel="nofollow">https://yyahn.com/wiki/AI-agent-interface/</a></p>
<p>There&rsquo;s a fast-growing zoo of apps for running and monitoring many coding agents, and I&rsquo;ve been churning through them: starting with simple iTerm2 + tmux → bare <a href="https://ghostty.org/">Ghostty</a> splits → <a href="https://cmux.com">cmux</a> → <a class="wikilink" href="/wiki/Software/Orca/">Orca</a> → Ghostty + <a href="https://herdr.dev">Herdr</a> → <a href="https://paseo.sh">Paseo</a>, my current pick. Alongside these, I also use the Codex app a lot, in combination with its iOS app. I put together a comparison page covering the harness-native interfaces (Claude Code TUI/desktop, the Codex app), agent-aware terminal multiplexers (Herdr, cmux), and multi-agent apps (Paseo, Orca).</p>
<p>One property I refuse to lose anywhere in this chain is tmux&rsquo;s old trick: detach and reattach. Close the window—or lose the connection—and the session lives; the agents keep working, and you reattach whenever you want. Herdr&rsquo;s persistent sessions and Paseo&rsquo;s local daemon both keep this property.</p>
<p>Underneath all of this sits the terminal app itself, and it matters more than it seems. I&rsquo;ve settled on <a href="https://ghostty.org/">Ghostty</a>, Mitchell Hashimoto&rsquo;s GPU-accelerated, platform-native terminal, almost entirely because of its speed—it stays snappy no matter what the agents are doing. Speed is exactly why I gave up on <a href="https://www.warp.dev">Warp</a>, which has grown into a full &ldquo;agentic development environment&rdquo; with agent orchestration built in: it does a lot, but it felt slow. After starting on iTerm2, snappiness turned out to be the one feature I can&rsquo;t give up.</p>
<p>To me, Paseo is more or less a codex clone that can work well with other agents. It allows you to use many channels—desktop, web, mobile, or CLI clients. Other than simply working well, it addresses a pet-peeve in Claude Code app: it allows explicit control over when a follow-up prompt is injected—send it now, or queue it for the agent&rsquo;s next turn. The Codex app has this; the Claude Code TUI doesn&rsquo;t, and you can&rsquo;t predict when a typed prompt will land.</p>
<p>That&rsquo;s it for now!</p>
<p>yy</p>]]></content>
    
  </entry>
  
  <entry>
    <title>Sriram et al., &#34;The interplay of sex and genotype in disease associations: a comprehensive network analysis in the UK Biobank&#34; (2025)</title>
    <link href="https://yyahn.com/wiki/Paper/Sriram2025interplay/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/Paper/Sriram2025interplay/</id>
    <published>2026-08-01T00:00:00Z</published>
    <updated>2026-08-01T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p><a class="wikilink" href="/wiki/Person/Vivek-Sriram/">Vivek Sriram</a>, <a class="wikilink" href="/wiki/Person/Jakob-Woerner/">Jakob Woerner</a>, <a class="wikilink" href="/wiki/Person/Yong-Yeol-Ahn/">Yong-Yeol Ahn</a>, and <a class="wikilink" href="/wiki/Person/Dokyoon-Kim/">Dokyoon Kim</a>, <em>Human Genomics</em> <strong>19</strong>(1), 4 (2025)<br>
<a href="https://doi.org/10.1186/s40246-024-00710-9">DOI</a> | <a href="https://yongyeol.com/papers/sriram2025interplay.pdf">PDF</a> | <a href="https://datashare.ed.ac.uk/handle/10283/3908">Data</a> | <a href="https://github.com/vsriram24/sexSpecificNetworkComparison">Code</a> | Viz (<a href="https://hdpm.biomedinfolab.com/ddn/ukbb-female">Female</a>, <a href="https://hdpm.biomedinfolab.com/ddn/ukbb-male">Male</a>)</p>
<div class="highlight"><pre><span></span><code>@article{sriram2025interplay,
    author = {Vivek Sriram and Jakob Woerner and Yong-Yeol Ahn and Dokyoon Kim},
    title = {The interplay of sex and genotype in disease associations: a comprehensive network analysis in the UK Biobank},
    journal = {Human Genomics},
    volume = {19},
    number = {1},
    pages = {4},
    doi = {10.1186/s40246-024-00710-9},
    year = {2025},
}
</code></pre></div>

<hr />
<p><a class="wikilink" href="/wiki/Precision-medicine/">Precision medicine</a></p>
<p>Using sex-stratified UK Biobank association results, the paper builds male- and female-specific disease-disease networks for 103 diseases. The networks share broad topology but differ in how diseases connect and cluster, supporting closer attention to genotype-by-sex interactions in cross-phenotype associations and <a class="wikilink" href="/wiki/Precision-medicine/">Precision medicine</a>.</p>]]></content>
    
  </entry>
  
  <entry>
    <title>Zhao et al., &#34;Discovering Collective Narratives Shifts in Online Discussions&#34; (2024)</title>
    <link href="https://yyahn.com/wiki/Paper/Zhao2024discovering/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/Paper/Zhao2024discovering/</id>
    <published>2026-08-01T00:00:00Z</published>
    <updated>2026-08-01T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p><a class="wikilink" href="/wiki/Person/Wanying-Zhao/">Wanying Zhao</a>, <a class="wikilink" href="/wiki/Person/Siyi-Guo/">Siyi Guo</a>, <a class="wikilink" href="/wiki/Person/Kristina-Lerman/">Kristina Lerman</a>, and <a class="wikilink" href="/wiki/Person/Yong-Yeol-Ahn/">Yong-Yeol Ahn</a>, <em>Proceedings of the International AAAI Conference on Web and Social Media</em> <strong>18</strong>, 1804–1817 (2024)<br>
<a href="https://doi.org/10.1609/icwsm.v18i1.31427">DOI</a> | <a href="https://arxiv.org/abs/2307.08541">arXiv</a> | <a href="https://yongyeol.com/papers/zhao2024discovering.pdf">PDF</a></p>
<div class="highlight"><pre><span></span><code>@inproceedings{zhao2024discovering,
    author = {Wanying Zhao and Siyi Guo and Kristina Lerman and Yong-Yeol Ahn},
    title = {Discovering Collective Narratives Shifts in Online Discussions},
    booktitle = {{Proceedings of the 18th International AAAI Conference on Web and Social Media (ICWSM)}},
    volume = {18},
    pages = {1804--1817},
    month = {5},
    year = {2024},
    archivePrefix = {arXiv},
    eprint = {2307.08541},
    primaryClass = {cs.CL},
    doi = {10.1609/icwsm.v18i1.31427},
}
</code></pre></div>

<hr />
<p><a class="wikilink" href="/wiki/Narrative/">Narrative</a>, <a class="wikilink" href="/wiki/Semantic-role-labeling/">Semantic role labeling</a></p>
<p>The paper combines change-point detection with semantic role labeling to extract actor-action-patient fragments, then aggregates them into narrative networks. On Twitter corpora about COVID-19 and the 2017 French election, the method recovers collective narrative shifts that correspond to major events.</p>]]></content>
    
  </entry>
  
  <entry>
    <title>AI Agents: How I Use Them</title>
    <link href="https://yyahn.com/wiki/AI-Agents/How-I-Use-Them/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/AI-Agents/How-I-Use-Them/</id>
    <published>2026-07-31T00:00:00Z</published>
    <updated>2026-08-08T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p>Harness-agnostic setup and principles live here; tool-specific tips live on each tool&rsquo;s own pages. This is a living document that evolves with my workflow.</p>
<h2 id="harnesses">Harnesses<a class="header-anchor" href="#harnesses" title="Link to this section">#</a></h2>
<ul>
<li><a class="wikilink" href="/wiki/Claude-Code/">Claude Code</a>: <a class="wikilink" href="/wiki/Claude-Code/How-I-Use-It/">how I use it</a>, <a class="wikilink" href="/wiki/Claude-Code/Tips/">tips</a>, <a class="wikilink" href="/wiki/Claude-Code/Skills/">skills</a></li>
<li><a class="wikilink" href="/wiki/Software/OpenAI-Codex/">OpenAI Codex</a>: terminal TUI and app. </li>
<li>Other harnesses and multiplexers: see the <a class="wikilink" href="/wiki/Claude-Code/#Alternatives">alternatives list</a></li>
</ul>
<h2 id="environment">Environment<a class="header-anchor" href="#environment" title="Link to this section">#</a></h2>
<ul>
<li><a class="wikilink" href="/wiki/AI-agent-interface/">Agent interface</a> (comparison of the options): <ul>
<li><a class="wikilink" href="/wiki/Software/Paseo/">Paseo</a> (self-hosted, multi-agent app)</li>
<li><a class="wikilink" href="/wiki/Software/OpenAI-Codex/">OpenAI Codex</a> app</li>
<li><a class="wikilink" href="/wiki/Software/Ghostty/">Ghostty</a> + <a class="wikilink" href="/wiki/Software/Herdr/">Herdr</a></li>
</ul>
</li>
<li>Dictation: <a class="wikilink" href="/wiki/Superwhisper/">Superwhisper</a> (running a local, on-device Parakeet model) for voice input. My global instruction file has a note about interpreting phonetic typos.</li>
<li>Config managed via <a class="wikilink" href="/wiki/dotfiles/">dotfiles</a> repo (<code>~/.claude/</code> symlinked into <code>~/git/dotfiles/claude/</code>)</li>
</ul>
<p>I currently run agent sessions in <a class="wikilink" href="/wiki/Software/Paseo/">Paseo</a> that lets me use a Codex-app-style interface on <a class="wikilink" href="/wiki/Claude-Code/">Claude Code</a> and other agents. A small but very useful feature: explicit control over when a follow-up prompt is injected—send it now, or queue it for the agent&rsquo;s next turn. This is what Codex offers but not by Claude Code. In Claude Code tui, you can&rsquo;t predict when a typed prompt will be injected. </p>
<p>I may try both <a class="wikilink" href="/wiki/Software/Herdr/">Herdr</a> (an agent multiplexer) inside <a class="wikilink" href="/wiki/Software/Ghostty/">Ghostty</a> and Paseo for a while. Earlier I tried <a class="wikilink" href="/wiki/Software/Orca/">Orca</a>, which is powerful but a bit too complex for my taste (its whole model is built around <a class="wikilink" href="/wiki/Git/">Git</a> worktrees), and <a class="wikilink" href="/wiki/Software/cmux/">cmux</a>, which is lightweight and similar in spirit to the Ghostty + Herdr combo but had memory-leak issues. Earlier still: bare Ghostty splits (<code>⌘+D</code> / <code>⌘+⇧+D</code>), and before that <a class="wikilink" href="/wiki/Software/tmux/">tmux</a> (see <a class="wikilink" href="/wiki/Claude-Code/Tips/#Running multiple sessions">running multiple sessions</a>).</p>
<p>When I work in the terminal, my default layout is two panes side by side—the agent on the left, <a class="wikilink" href="/wiki/Neovim/">Neovim</a> on the right. I split further as needed but try to return to this two-pane setup. Neovim is great here for the same reason as Ghostty: snappy and versatile. You can quickly move around, explore files, and make edits while the agent works in the other pane, without the need of a separate, heavy editor app. I sometimes run watch scripts (e.g., auto-compile, file sync) in a tiny extra pane.</p>
<p>Usually I have several tabs open (one for each project) with each tab having 2+ panes.</p>
<h2 id="principles-for-context-engineering">Principles for <a class="wikilink" href="/wiki/Context-engineering/">Context engineering</a><a class="header-anchor" href="#principles-for-context-engineering" title="Link to this section">#</a></h2>
<p>Organize instructions with <a class="wikilink" href="/wiki/Progressive-disclosure/">progressive disclosure</a>—see <a class="wikilink" href="/wiki/Context-engineering/">Context engineering</a>. Don&rsquo;t over-engineer the setup, and invest in verification; both are discussed on the <a class="wikilink" href="/wiki/Claude-Code/">Claude Code</a> page but apply to any harness.</p>]]></content>
    
  </entry>
  
  <entry>
    <title>Context engineering</title>
    <link href="https://yyahn.com/wiki/Context-engineering/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/Context-engineering/</id>
    <published>2026-07-30T00:00:00Z</published>
    <updated>2026-07-31T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p>How to organize instructions and context for LLM agents—<code>CLAUDE.md</code>, <code>AGENTS.md</code>, and skill files in harnesses like <a class="wikilink" href="/wiki/Claude-Code/">Claude Code</a>. My core principle is <a class="wikilink" href="/wiki/Progressive-disclosure/">Progressive disclosure</a>: thin pointers at the top, detail discovered on demand. Much of this will be obvious to anyone steeped in software engineering. </p>
<h2 id="the-most-common-mistake-over-engineering-and-over-prescribing">The most common mistake: over-engineering and over-prescribing<a class="header-anchor" href="#the-most-common-mistake-over-engineering-and-over-prescribing" title="Link to this section">#</a></h2>
<p>As I noted in the <a class="wikilink" href="/wiki/Claude-Code/">Claude Code page</a>, the most common mistake when working with LLM agents is over-engineering: trying to build too much, instruct too much, constrain too much. It does feel productive—every rule you write down seems like accumulated wisdom—but it backfires, and it backfires harder as the models get smarter.</p>
<p><em>First</em>, <strong>rules confine</strong>. What you prescribe may not be the best way to do the task; the model may know better—the <a class="wikilink" href="/wiki/Bitter-Lesson/">Bitter Lesson</a> applied to context engineering. Detailed rules lock the model into your—quite possibly inferior—way, so it cannot do better than what the rules say. A prescription written for much weaker models becomes a ceiling for new models. This is probably the most critical issue.</p>
<p><em>Second</em>, <strong>rules distract</strong>. <code>CLAUDE.md</code> and <code>AGENTS.md</code> files are injected into every session, so the model is reminded of every minute detail—do this here, never do that there—in every single conversation, even when they are totally irrelevant. That not only exhausts valuable context but also reduces performance; <a class="wikilink" href="/wiki/Paper/Gloaguen2026agents/">Gloaguen et al. (2026)</a> found that repository context files tend to <em>reduce</em> coding-agent success rates while increasing inference cost by over 20%.</p>
<p><em>Third</em>, <strong>rules rot</strong>. They rot because the world changes. New models are different; your workflows evolve constantly. As rules become stale, they may mislead the agents. The more rules you have, the more of them have the risk of becoming outdated. Every instruction and rule you add becomes more maintenance you have to do. </p>
<h2 id="the-better-way-progressive-disclosure-through-thin-pointers">The better way: progressive disclosure through thin pointers<a class="header-anchor" href="#the-better-way-progressive-disclosure-through-thin-pointers" title="Link to this section">#</a></h2>
<p>Instead, apply <a class="wikilink" href="/wiki/Progressive-disclosure/">progressive disclosure</a>. At the top level, provide mostly thin pointers: tell the model <em>where things are</em> at a high level, not everything about them. This drastically reduces what the model has to pay attention to. The information is still there; the model simply reads the relevant file when it needs to know more.</p>
<p><svg xmlns="http://www.w3.org/2000/svg" width="640" height="296" viewBox="0 0 800 370" font-family="Helvetica, Arial, sans-serif" style="max-width:100%">
  <defs>
    <marker id="arrg" markerWidth="8" markerHeight="8" refX="6" refY="4" orient="auto"><path d="M0,0 L7,4 L0,8 z" fill="#888"/></marker>
    <marker id="arrb" markerWidth="8" markerHeight="8" refX="6" refY="4" orient="auto"><path d="M0,0 L7,4 L0,8 z" fill="#4a7dbd"/></marker>
  </defs>
  <rect width="800" height="370" fill="#ffffff"/>
  <text x="200" y="34" text-anchor="middle" font-size="15" font-weight="bold" fill="#333">Everything up front</text>
  <rect x="90" y="52" width="220" height="222" rx="8" fill="#fafafa" stroke="#aaaaaa"/>
  <text x="200" y="72" text-anchor="middle" font-size="11" font-family="Menlo, monospace" fill="#555">CLAUDE.md</text>
  <g fill="#c4c4c4">
    <rect x="110" y="84"  width="178" height="6" rx="3"/>
    <rect x="110" y="101" width="150" height="6" rx="3"/>
    <rect x="110" y="118" width="170" height="6" rx="3"/>
    <rect x="110" y="135" width="158" height="6" rx="3"/>
    <rect x="110" y="152" width="180" height="6" rx="3"/>
    <rect x="110" y="169" width="144" height="6" rx="3"/>
    <rect x="110" y="186" width="172" height="6" rx="3"/>
    <rect x="110" y="203" width="162" height="6" rx="3"/>
    <rect x="110" y="220" width="176" height="6" rx="3"/>
    <rect x="110" y="237" width="140" height="6" rx="3"/>
    <rect x="110" y="254" width="168" height="6" rx="3"/>
  </g>
  <line x1="200" y1="280" x2="200" y2="312" stroke="#888" stroke-width="1.5" marker-end="url(#arrg)"/>
  <text x="212" y="300" font-size="11" fill="#888">all of it, every session</text>
  <rect x="90" y="322" width="220" height="24" rx="6" fill="none" stroke="#aaaaaa"/>
  <rect x="92" y="324" width="164" height="20" rx="4" fill="#bf6a5f"/>
  <text x="600" y="34" text-anchor="middle" font-size="15" font-weight="bold" fill="#333">Thin pointers</text>
  <rect x="540" y="52" width="120" height="76" rx="6" fill="#ffffff" stroke="#aaaaaa"/>
  <text x="600" y="70" text-anchor="middle" font-size="11" font-family="Menlo, monospace" fill="#555">CLAUDE.md</text>
  <g fill="#8fadd1">
    <rect x="552" y="82"  width="82" height="5" rx="2.5"/>
    <rect x="552" y="95"  width="64" height="5" rx="2.5"/>
    <rect x="552" y="108" width="74" height="5" rx="2.5"/>
  </g>
  <line x1="560" y1="128" x2="492" y2="176" stroke="#bbbbbb" stroke-width="1.5"/>
  <line x1="600" y1="128" x2="600" y2="172" stroke="#4a7dbd" stroke-width="2" stroke-dasharray="5 4" marker-end="url(#arrb)"/>
  <line x1="640" y1="128" x2="708" y2="176" stroke="#bbbbbb" stroke-width="1.5"/>
  <text x="612" y="156" font-size="11" fill="#4a7dbd" stroke="#ffffff" stroke-width="3" paint-order="stroke">read when needed</text>
  <g opacity="0.45">
    <rect x="440" y="178" width="100" height="62" rx="6" fill="#ffffff" stroke="#aaaaaa"/>
    <text x="490" y="196" text-anchor="middle" font-size="10" font-family="Menlo, monospace" fill="#555">tool docs</text>
    <g fill="#c4c4c4">
      <rect x="455" y="206" width="70" height="5" rx="2.5"/>
      <rect x="455" y="217" width="56" height="5" rx="2.5"/>
      <rect x="455" y="228" width="64" height="5" rx="2.5"/>
    </g>
  </g>
  <rect x="550" y="178" width="100" height="62" rx="6" fill="#ffffff" stroke="#4a7dbd" stroke-width="1.5"/>
  <text x="600" y="196" text-anchor="middle" font-size="10" font-family="Menlo, monospace" fill="#4a7dbd">wiki CLAUDE.md</text>
  <g fill="#8fadd1">
    <rect x="565" y="206" width="70" height="5" rx="2.5"/>
    <rect x="565" y="217" width="56" height="5" rx="2.5"/>
    <rect x="565" y="228" width="64" height="5" rx="2.5"/>
  </g>
  <g opacity="0.45">
    <rect x="660" y="178" width="100" height="62" rx="6" fill="#ffffff" stroke="#aaaaaa"/>
    <text x="710" y="196" text-anchor="middle" font-size="10" font-family="Menlo, monospace" fill="#555">styles/latex.md</text>
    <g fill="#c4c4c4">
      <rect x="675" y="206" width="70" height="5" rx="2.5"/>
      <rect x="675" y="217" width="56" height="5" rx="2.5"/>
      <rect x="675" y="228" width="64" height="5" rx="2.5"/>
    </g>
  </g>
  <line x1="600" y1="248" x2="600" y2="312" stroke="#888" stroke-width="1.5" marker-end="url(#arrg)"/>
  <text x="612" y="284" font-size="11" fill="#888">pointers + one file</text>
  <rect x="540" y="322" width="220" height="24" rx="6" fill="none" stroke="#aaaaaa"/>
  <rect x="542" y="324" width="64" height="20" rx="4" fill="#5b8fc9"/>
</svg></p>
<p>How to use a tool? Point to the tool&rsquo;s documentation. Working in your wiki? Point to the wiki&rsquo;s own agent instruction file. </p>
<p>The pointers can be organized <em>hierarchically</em>: the global file points to a certain directory that contains all your research projects; the agent file in that directory provides basic rules and &ldquo;know-wheres&rdquo;. Then each repo&rsquo;s instruction file explains the project in details and points to other documents in the repo, and so on.</p>
<h3 id="dry-principle">DRY principle<a class="header-anchor" href="#dry-principle" title="Link to this section">#</a></h3>
<p>Organized this way, the most fine-grained rules live in exactly one place and can be referenced from several—a <a class="wikilink" href="/wiki/Single-source-of-truth/">single source of truth</a>, the <a class="wikilink" href="/wiki/DRY-principle/">DRY principle</a> (&ldquo;don&rsquo;t repeat yourself&rdquo;) applied to instructions. My LaTeX style rules, for instance, sit in a single style file that the wiki, paper repos, and skills all point to—maintained once, discovered on demand.</p>
<h2 id="simplify-simplify">Simplify, simplify<a class="header-anchor" href="#simplify-simplify" title="Link to this section">#</a></h2>
<p>Treat instructions as liabilities and prune them often, especially when a new model comes out. Many rules exist to patch the weaknesses of the model you wrote them for; a newer model may already handle those cases well, and the leftover rule becomes pure cost—or a straitjacket. Revisit the top-level files at each model upgrade and delete what the model now gets right on its own. This has been repeatedly observed. Many people reported that simply deleting the agent file and starting from scratch worked way better for Anthropic&rsquo;s Opus 5 model. Even <a class="wikilink" href="/wiki/Person/Boris-Cherny/">Boris Cherny</a>, the creator of Claude Code, <a href="https://www.youtube.com/watch?v=Egd65CLmb6w">advises deleting your <code>CLAUDE.md</code> every six months</a> and starting fresh.</p>
<h2 id="caveats">Caveats<a class="header-anchor" href="#caveats" title="Link to this section">#</a></h2>
<h3 id="guardrails-vs-knowledge">Guardrails vs. knowledge<a class="header-anchor" href="#guardrails-vs-knowledge" title="Link to this section">#</a></h3>
<p>Progressive disclosure is for <em>knowledge</em>, not <em>guardrails</em>. If you have few non-negotiables rules like &ldquo;never <code>rm</code>&rdquo; or &ldquo;never push without asking&rdquo;, it should not depend on the model reading the right file at the right time. Enforce them deterministically with permission rules and hooks, or keep them in the always-loaded file. </p>
<h3 id="when-cue">&ldquo;When&rdquo; cue<a class="header-anchor" href="#when-cue" title="Link to this section">#</a></h3>
<p>Also, a pointer only works if the model knows <em>when</em> to follow it. Like a skill&rsquo;s one-line description, each pointer needs a trigger. So the instruction should make it very clear <em>when</em> the model needs to read further. </p>
<h2 id="just-a-good-engineering-principle">Just a good engineering principle<a class="header-anchor" href="#just-a-good-engineering-principle" title="Link to this section">#</a></h2>
<p>This is not new at all; it is basic software engineering (modularity, layered documentation, &hellip;) applied to agent context. It is also how <a class="wikilink" href="/wiki/Company/Anthropic/">Anthropic</a> designed <a class="wikilink" href="/wiki/Claude-Code/Skills/">Agent Skills</a>; they call progressive disclosure &ldquo;the core design principle.&rdquo; At startup only each skill&rsquo;s name and one-line description enter the context; the full <code>SKILL.md</code> is read once the skill looks relevant; bundled reference files load only when a specific scenario needs them. Their analogy is a well-organized manual: table of contents, then a chapter, then the appendix. </p>
<p>Good information design works the same whether the reader is a human or a model: show a little first, and let the reader pull the rest.</p>]]></content>
    
  </entry>
  
  <entry>
    <title>Progressive disclosure</title>
    <link href="https://yyahn.com/wiki/Progressive-disclosure/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/Progressive-disclosure/</id>
    <published>2026-07-30T00:00:00Z</published>
    <updated>2026-07-30T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p>Progressive disclosure is an interaction design principle popularized by <a class="wikilink" href="/wiki/Person/Jakob-Nielsen/">Jakob Nielsen</a>: show only the most important options first, and offer the larger set of specialized options upon request. It resolves the tension between power (a full set of features) and simplicity (easy to learn and use); the common case stays simple while everything remains reachable.</p>
<p>The principle generalizes beyond user interfaces to anything with limited attention. <a class="wikilink" href="/wiki/Company/Anthropic/">Anthropic</a> calls progressive disclosure &ldquo;the core design principle&rdquo; behind <a class="wikilink" href="/wiki/Claude-Code/Skills/">Agent Skills</a>, and I think it is a great way to organize instructions and context for AI agents in general; see <a class="wikilink" href="/wiki/Context-engineering/">Context engineering</a>.</p>]]></content>
    
  </entry>
  
  <entry>
    <title>Orca</title>
    <link href="https://yyahn.com/wiki/Software/Orca/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/Software/Orca/</id>
    <published>2026-07-30T00:00:00Z</published>
    <updated>2026-07-31T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p>An open-source (MIT) agentic IDE by Stably AI for running multiple coding agents in parallel, each in an isolated <a class="wikilink" href="/wiki/Git/">Git</a> worktree—&ldquo;prompt to merged PR.&rdquo; Supports <a class="wikilink" href="/wiki/Claude-Code/">Claude Code</a>, <a class="wikilink" href="/wiki/Software/OpenAI-Codex/">Codex</a>, Gemini, and Cursor CLI; macOS, Windows, and Linux. In the same space as <a class="wikilink" href="/wiki/Software/Herdr/">Herdr</a> and <a class="wikilink" href="/wiki/Software/cmux/">cmux</a>.</p>
<ul>
<li><a href="https://onorca.dev">onorca.dev</a></li>
</ul>
<p>Powerful and well made, but its whole model is built around worktrees, and I don&rsquo;t like using worktrees for most cases—the isolated checkouts add complexity that everyday tasks don&rsquo;t need. I prefer the simpler <a class="wikilink" href="/wiki/Software/Herdr/">Herdr</a>.</p>]]></content>
    
  </entry>
  
  <entry>
    <title>Don&#39;t ask to ask, just ask</title>
    <link href="https://yyahn.com/wiki/Don't-ask-to-ask,-just-ask/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/Don't-ask-to-ask,-just-ask/</id>
    <published>2026-07-28T00:00:00Z</published>
    <updated>2026-08-08T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<ul>
<li><a href="https://dontasktoask.com/" rel="nofollow">https://dontasktoask.com/</a></li>
</ul>
<p>In an asynchronous chat, ask the actual question instead of first asking whether anyone is available or knowledgeable enough to answer it. Giving the problem and relevant context immediately lets people decide whether they can help, avoids an unnecessary round trip, and does not exclude someone who knows the answer through adjacent experience.</p>
<p>Related: <a class="wikilink" href="/wiki/XY-problem/">XY problem</a>, where someone asks about an attempted solution rather than explaining the underlying problem.</p>]]></content>
    
  </entry>
  
  <entry>
    <title>Jiang et al., &#34;Social inequality and cultural factors impact the awareness and reaction during the cryptic transmission period of pandemic&#34; (2025)</title>
    <link href="https://yyahn.com/wiki/Paper/Jiang2025social/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/Paper/Jiang2025social/</id>
    <published>2026-07-27T00:00:00Z</published>
    <updated>2026-07-27T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p><a class="wikilink" href="/wiki/Person/Zhuoren-Jiang/">Zhuoren Jiang</a>, <a class="wikilink" href="/wiki/Person/Xiaozhong-Liu/">Xiaozhong Liu</a>, <a class="wikilink" href="/wiki/Person/Yangyang-Kang/">Yangyang Kang</a>, <a class="wikilink" href="/wiki/Person/Changlong-Sun/">Changlong Sun</a>, <a class="wikilink" href="/wiki/Person/Yong-Yeol-Ahn/">Yong-Yeol Ahn</a>, and <a class="wikilink" href="/wiki/Person/Johan-Bollen/">Johan Bollen</a>, <em>PNAS Nexus</em> <strong>4</strong>(2), pgaf043 (2025)<br>
<a href="https://doi.org/10.1093/pnasnexus/pgaf043">DOI</a> | <a href="https://yongyeol.com/papers/jiang2025social.pdf">PDF</a> | <a href="https://academic.oup.com/pnasnexus/article/4/2/pgaf043/8011530#508455178">Data and Code</a></p>
<div class="highlight"><pre><span></span><code>@article{jiang2025social,
    author = {Zhuoren Jiang and Xiaozhong Liu and Yangyang Kang and Changlong Sun and Yong-Yeol Ahn and Johan Bollen},
    title = {Social inequality and cultural factors impact the awareness and reaction during the cryptic transmission period of pandemic},
    journal = {PNAS Nexus},
    volume = {4},
    number = {2},
    pages = {pgaf043},
    doi = {10.1093/pnasnexus/pgaf043},
    year = {2025},
}
</code></pre></div>

<hr />
<p><a class="wikilink" href="/wiki/COVID-19-pandemic/">COVID 19 pandemic</a>, <a class="wikilink" href="/wiki/Inequality/">Inequality</a></p>
<p>Using 150 billion e-commerce queries and purchase records from 94 million people in China, the paper traces early awareness of <a class="wikilink" href="/wiki/COVID-19-pandemic/">COVID-19</a> through searches and purchases for personal protective equipment. It documents differences in awareness and response across education, geography, demographic groups, and inferred family, school, and workplace ties during the cryptic transmission period, while treating these patterns as associations rather than causal effects.</p>]]></content>
    
  </entry>
  
  <entry>
    <title>A letter to the city: make traffic calming the default</title>
    <link href="https://yyahn.com/wiki/articles/20260719_letter_to_city_on_traffic_calming/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/articles/20260719_letter_to_city_on_traffic_calming/</id>
    <published>2026-07-19T00:00:00Z</published>
    <updated>2026-07-20T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p>Dear Mayor, City Council Members, City Manager, and Transportation staff members,</p>
<p>I am writing as a Charlottesville resident, pedestrian, cyclist, and driver—and as a parent of three who does not want to see my kids killed while walking and biking to school—to ask the city to make traffic calming a standing, funded, default program.</p>
<p>In 2024, our city recorded 625 crashes, 2 deaths, and 416 injuries (Virginia DMV, 2024). That&rsquo;s way too many. Priced with NHTSA&rsquo;s standard unit costs, one year of crashes in this one small city costs roughly <code>$23</code>–<code>$30 million</code> in economic terms—emergency response, medical care, courts, lost productivity—and on the order of <code>$130</code>–<code>$180 million</code> in total societal harm paid by every resident. <strong>But we do have a choice to substantially reduce this cost</strong>.</p>
<p><strong>Traffic calming</strong> is the effective solution that is also startlingly cheap. From FHWA&rsquo;s national compilation of contractor bid prices: a speed hump costs about <code>$3,000</code> <em>installed</em> in today&rsquo;s dollars. Imagine we are repaving a mile of a local residential street, a job on the order of <code>$1.5</code>–<code>2 million</code> by FHWA&rsquo;s national cost figures; adding dense speed humps every few hundred feet along that entire mile would add only about <code>$40,000</code>—<strong>roughly only 2–3% of the repaving</strong> contract. The plastic posts Hoboken used to daylight its intersections are cheaper still: about <code>$40</code> apiece in hardware, and even priced generously for installation, a daylighted intersection costs about as much as one speed hump.</p>
<p>The evidence that these tools work is clear. Studies from London, Toronto, Montreal, New York, Oakland, and Ghana all point in the same direction: physically calmed streets mean substantially fewer crashes, injuries, and deaths. The effect is especially large for crashes and injuries involving children—measured <strong>reductions in children&rsquo;s pedestrian injuries cluster around 40–50%.</strong> And Hoboken, an American city of 60,000, has now gone nine consecutive years without a traffic death—a streak built on <code>$40</code> posts, paint, and curb extensions, applied citywide. Even the most conservative pooled estimate in the literature (an 11% reduction in injury crashes) would <strong>repay the cost of putting speed humps on fifty miles of Charlottesville streets in under a year</strong>, counting only avoided economic losses without other positive externalities like health and climate benefits.</p>
<p>On travel time: the measured penalty to driving is on the order of seconds per trip, because urban journey times are dominated by intersections, not cruising speed—a trade I am sure most residents would happily make for cutting children&rsquo;s injuries roughly in half. Moreover, ironically, due to the fact that journey times depend on intersections and amount of traffic (which traffic calming can reduce), it has been documented that traffic calming can speed up some journeys as well. <strong>This is not an engineering question, it is a value judgement</strong> that the city needs to make clearly. <strong>Is a minute of driving time—itself uncertain—worth nearly twice the deaths/injuries to children?</strong></p>
<p>On emergency response: FHWA reports that speed cushions, designed with gaps matched to fire-truck wheel tracks, &ldquo;reduce general vehicle speeds <strong>while providing little to no delay to fire vehicles</strong>,&rdquo; and are being adopted in many jurisdictions precisely because of their positive reception from fire departments. A calming plan can keep full-width vertical devices off designated response routes entirely.</p>
<p>There is also a climate dividend. Transportation is about 30% of our city&rsquo;s emissions and rising, while our budgeted climate programs buy small reductions at stiff cost. The mode shift that follows calmer streets removes carbon as a <strong>free byproduct</strong>—by my estimate, plausibly way more tons per year than the programs the city actually budgets as climate action. <strong>A city that calms its streets gets a free climate program</strong>—and one that removes more carbon than the programs it actually budgets.</p>
<p>For scale: this region is currently advancing roughly <code>$24.5 million</code> in Smart Scale applications to extend two highway ramps at the US 29/250 interchange—money that would buy some 8,000 installed speed humps, enough to calm 600 miles of street. And the scale is not unique to state projects: the city&rsquo;s own Belmont Bridge replacement came in over <code>$31 million</code>, and the West Main streetscape plan had grown to about <code>$50 million</code> before it was canceled. A fraction of any one such project would fund traffic calming for essentially <strong>every residential street</strong> in Charlottesville.</p>
<p>I ask the city to:</p>
<ol>
<li><strong>Stand up a citywide daylighting program now.</strong> This is the rare safety measure that does not need a lot of planning, engineering, and other processes—just cheap plastic posts and a work crew. At a couple hundred dollars per intersection in materials, daylighting residential street intersections will be a rounding error in the infrastructure budget, will save lives, and it can start right now. Hoboken started exactly this way to achieve its Vision Zero goal.</li>
<li><strong>Pass a Safe Streets Ordinance that requires traffic calming as the bare-minimum standard for residential streets</strong>, in the spirit of Cambridge&rsquo;s Cycling Safety Ordinance and Somerville&rsquo;s Safe Streets Ordinance: every residential street the city repaves or rebuilds should come back calmed. Given the massive positive effect and marginal cost of traffic calming, the burden of justification should flip—an uncalmed street should be the hard exception that engineering staff must justify.</li>
<li><strong>Create a standing traffic-calming program</strong>. A standing program also builds in-house expertise, and expertise compounds: devices bought and mechanically installed twenty at a time through standard process cost far less than one-off retrofits with their own planning process, so every year of the program makes the next year cheaper.</li>
</ol>
<p>Residents should not have to beg for safety of their children right outside their own front doors, and I believe that the city should not leave one of its cheapest (which will likely save more money than invested), highest-return public-safety investments unfunded. I have compiled the full evidence base, with primary sources, here:</p>
<ul>
<li><a href="https://yyahn.com/wiki/Traffic-calming-works/" rel="nofollow">https://yyahn.com/wiki/Traffic-calming-works/</a> — the evidence that calming reduces deaths and injuries</li>
<li><a href="https://yyahn.com/wiki/Traffic-calming-is-cheap/" rel="nofollow">https://yyahn.com/wiki/Traffic-calming-is-cheap/</a> — the cost-benefit accounting summarized above</li>
</ul>
<p>Thank you for your consideration.</p>
<p>Sincerely,
YY Ahn</p>]]></content>
    
  </entry>
  
  <entry>
    <title>YY&#39;s bike shed: Traffic calming works, and it&#39;s cheap</title>
    <link href="https://yyahn.com/wiki/yy-bikeshed/2026-07-20-traffic-calming/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/yy-bikeshed/2026-07-20-traffic-calming/</id>
    <published>2026-07-16T00:00:00Z</published>
    <updated>2026-07-20T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p><strong>I wrote a letter to the city asking to make traffic calming the default</strong></p>
<p>I went down a rabbit hole on traffic calming and wrote two pages: <a href="https://yyahn.com/wiki/Traffic-calming-works/">Traffic calming works</a> and <a href="https://yyahn.com/wiki/Traffic-calming-is-cheap/">Traffic calming is cheap</a>. Based on these, I also wrote <a href="https://yyahn.com/wiki/articles/20260719_letter_to_city_on_traffic_calming/">a letter to Charlottesville&rsquo;s mayor, council, and transportation staff</a> with three main requests: a citywide daylighting program, a Safe Streets Ordinance that makes calming the minimum standard for residential streets, and a standing traffic-calming program. If you live in Charlottesville too, feel free to borrow any of it. Also please let me know if you find any issues.</p>
<p>Some key points:</p>
<ul>
<li>Changing the number on a <strong>sign does almost nothing</strong>: England&rsquo;s signed-only 20 mph limits changed speeds by 0.38 mph. Physical calming in British 20 mph zones cut them by 9.3 mph.</li>
<li>In London&rsquo;s calmed zones, casualties fell about 42%, and <strong>deaths and serious injuries to children fell roughly by half</strong>. Across London, Toronto, New York, and Oakland, measured cuts to children&rsquo;s pedestrian injuries cluster around 40–50%.</li>
<li><strong>Hoboken</strong>, NJ—a real American city of 60,000—<strong>has not lost a single person to traffic in nine years</strong>. Its signature tools: plastic posts, paint, and curb extensions.</li>
<li>The prices are so cheap compared to other road-related cost: a daylighting post costs <code>$40</code> in hardware, a speed hump about <code>$3,000</code> installed. Speed humps along an entire mile cost about <code>$40,000</code>—roughly 2–3% of what repaving that same mile costs.</li>
<li>NHTSA prices one traffic death at <code>$11.3 million</code>—five thousand speed humps. <strong>If five thousand humps prevent a single death over their lifetime, the whole program has paid for itself</strong>.</li>
<li>One year of crashes in Charlottesville (pop. 45,000) costs <code>$23</code>–<code>$30 million</code> in economic terms alone; the measured crash reductions from calming would repay humps on fifty miles of streets in under a year.</li>
<li>The carbon cut from the mode shift comes along for free—<strong>plausibly more tons per year than the climate programs cities actually budget</strong>.</li>
</ul>
<p><strong>VDOT has an active transportation newsletter</strong></p>
<p>You can <a href="https://virginiadot.us15.list-manage.com/subscribe?u=04dea32144c0aac75dfcd5152&amp;id=17d761520d">sign up</a> to receive periodic updates on the activities of VDOT&rsquo;s <a href="https://www.vdot.virginia.gov/about/programs/bike-ped/">Bicycle and Pedestrian Program</a>. HT Tommy Safranek.</p>
<p>yy</p>]]></content>
    
  </entry>
  
  <entry>
    <title>YY&#39;s Random Walks: Preparedness paradox, research advice, and coding agents with open source models</title>
    <link href="https://yyahn.com/wiki/yy-randomwalks/2026-07-preparedness-research-advice-uva-genai/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/yy-randomwalks/2026-07-preparedness-research-advice-uva-genai/</id>
    <published>2026-07-16T00:00:00Z</published>
    <updated>2026-07-16T20:23:44Z</updated>
    
    <content type="html"><![CDATA[<p>Three things this time: why good prevention ends up looking wasteful, a compilation of research advice, and a recipe for running a coding agent on UVA&rsquo;s hosted LLM, which may be useful for those who want to set up open source AI agents.</p>
<h2 id="preparedness-paradox">Preparedness paradox<a class="header-anchor" href="#preparedness-paradox" title="Link to this section">#</a></h2>
<p><a href="https://yyahn.com/wiki/Preparedness-paradox/" rel="nofollow">https://yyahn.com/wiki/Preparedness-paradox/</a></p>
<p>In July 2025, following budget cuts, the CDC made <a href="https://www.cdc.gov/foodnet/about/">FoodNet</a> reporting optional for Cyclospora and five other pathogens; a year later, the 2026 cyclosporiasis outbreak is unfolding. This is a familiar pattern: a <a href="https://www.ncbi.nlm.nih.gov/books/NBK544065/">&ldquo;cycle of panic and neglect&rdquo;</a>. I put together a quick note on the &ldquo;preparedness paradox&rdquo;: effective prevention makes a danger look less serious, because we never experience the crisis that prevention averted. In other words, the better prevention works, the more wasteful it may look.</p>
<p><img src="https://yyiki.s3.amazonaws.com/public/imgs/preparedness-paradox-cdc-data-recording-1964.jpg" alt="CDC laboratory technician recording AutoAnalyzer data, 1964" width="400"></p>
<p>This happened again and again. A crisis makes the value of preparedness obvious, so governments build teams and fund surveillance. Once the crisis fades, successful prevention leaves little visible evidence that the investment worked, preparedness starts to look wasteful, and capacity erodes until the next crisis restarts the cycle.</p>
<h2 id="research-advice">Research advice<a class="header-anchor" href="#research-advice" title="Link to this section">#</a></h2>
<p><a href="https://yyahn.com/wiki/Research-advice/" rel="nofollow">https://yyahn.com/wiki/Research-advice/</a></p>
<p>I&rsquo;ve been maintaining a <a href="https://yyahn.com/wiki/Research-advice/">compilation of research advice</a>—&ldquo;looks-useful-to-me&rdquo; pieces I encountered over time, organized by topic and career stage, from applying to grad school all the way to tenure. It has classics like Hamming&rsquo;s <a href="http://www.cs.virginia.edu/~robins/YouAndYourResearch.html">You and Your Research</a> along with collections, books, and job-market resources. You may find something useful in there (there also may be some dead links and outdated advice).</p>
<h2 id="coding-agents-with-hosted-open-source-llms">Coding agents with hosted open source LLMs<a class="header-anchor" href="#coding-agents-with-hosted-open-source-llms" title="Link to this section">#</a></h2>
<p><a href="https://yyahn.com/wiki/Coding-agents-with-UVA-RC-GenAI/" rel="nofollow">https://yyahn.com/wiki/Coding-agents-with-UVA-RC-GenAI/</a></p>
<p>UVA Research Computing runs <a href="https://rc.virginia.edu/services/uva-rc-genai">RC GenAI</a>, a university-hosted LLM service with an OpenAI-compatible API (currently serving Kimi K2.5). I think many universities are setting up similar services and you may be setting up your own locally as well, due to privacy concerns or other issues with big AI companies. If that&rsquo;s the case, I thought that this tutorial may be useful.</p>
<p>The API is gated to HPC-internal traffic, so you can&rsquo;t reach it directly even on the VPN. Here&rsquo;s a <a href="https://yyahn.com/wiki/Coding-agents-with-UVA-RC-GenAI/">recipe</a> for using it with a coding agent from your laptop: tunnel through an HPC login node with <a href="https://github.com/sshuttle/sshuttle">sshuttle</a>, then point <a href="https://github.com/badlogic/pi-mono">Pi</a> at the endpoint. Pi is one of the simplest and most customizable agent harnesses, and a single shell function (<code>pi-uva</code>) brings up the tunnel and launches the agent.</p>
<p>Coding-agent CLIs differ in <em>which</em> API they speak, and that matters more than it used to. RC GenAI exposes only OpenAI Chat Completions—not the newer OpenAI Responses API (which Codex CLI now requires) and not Anthropic&rsquo;s Messages API (which Claude Code speaks). So the choice of agent CLI is constrained by the endpoint, not just by preference. There are ways to have a proxy that translates different APIs but that may be too much.</p>
<p>The recipe is UVA-specific, but the ingredients probably translate to other settings: a hosted OpenAI-compatible endpoint, a network gate you can tunnel through with sshuttle, and an agent CLI that matches the API the endpoint exposes.</p>
<p>That&rsquo;s it for now!</p>
<p>yy</p>]]></content>
    
  </entry>
  
  <entry>
    <title>Preparedness paradox</title>
    <link href="https://yyahn.com/wiki/Preparedness-paradox/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/Preparedness-paradox/</id>
    <published>2026-07-15T00:00:00Z</published>
    <updated>2026-07-15T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p>The <a href="https://en.wikipedia.org/wiki/Preparedness_paradox">preparedness paradox</a> is the tendency for effective prevention to make a danger look less serious because we never experience the crisis that prevention averted.</p>
<p>The investment may look <em>excessive</em>, precisely because it worked. In other words,</p>
<blockquote>
<p>The better prevention works, the more wasteful it looks.</p>
</blockquote>
<p><img src="https://yyiki.s3.amazonaws.com/public/imgs/preparedness-paradox-cdc-data-recording-1964.jpg" alt="Black-and-white photo of CDC laboratory technician Dorothy Roland recording AutoAnalyzer data at a lab bench" width="400"></p>
<p><em>CDC laboratory technician Dorothy Roland records data from an AutoAnalyzer, 1964. <a href="https://wwwn.cdc.gov/phil/Details.aspx?pid=12014">CDC Public Health Image Library</a>; public domain.</em></p>
<p>Public health researchers call the resulting pattern the <a href="https://www.ncbi.nlm.nih.gov/books/NBK544065/">cycle of panic and neglect</a> (National Academies, <a href="https://www.ncbi.nlm.nih.gov/books/NBK544065/"><em>Exploring Lessons Learned from a Century of Outbreaks</em></a>, 2019). A crisis makes the value of preparedness obvious, so governments build teams and fund surveillance. Once the crisis fades, successful prevention leaves little visible evidence that the investment worked, and preparedness begins to look wasteful. The next crisis restarts the cycle. Julie Gerberding, quoted in that report, describes it as</p>
<blockquote>
<p>&ldquo;a period of intense focus and attention, investment, planning, collaboration, and coordination that eventually relaxes into a phase of inattention and dispersion.&rdquo;</p>
</blockquote>
<figure>
<svg id="pn-cycle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 560" role="img" aria-labelledby="pn-title pn-desc" style="width:100%;max-width:400px;height:auto;display:block;margin:0 auto">
<title id="pn-title">The cycle of panic and neglect</title>
<desc id="pn-desc">A circular diagram of the cycle of panic and neglect: a crisis triggers panic and preparedness funding; successful prevention makes preparedness look wasteful; neglect erodes capacity; and the cycle returns to crisis.</desc>
<style>
#pn-cycle text { fill: #20242a; font-family: var(--font-family-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif); }
#pn-cycle .cycle { fill: none; stroke: #78879a; stroke-width: 3; stroke-linecap: round; marker-end: url(#pn-arrowhead); }
#pn-cycle .arrowhead, #pn-cycle .node { fill: #78879a; }
#pn-cycle .stage { font-size: 25px; font-weight: 500; }
#pn-cycle .phase { font-size: 22px; font-weight: 500; text-anchor: middle; }
#pn-cycle .panic { fill: #9c3030; }
#pn-cycle .neglect { fill: #687384; }
</style>
<defs>
<marker id="pn-arrowhead" markerWidth="10" markerHeight="10" refX="8" refY="5" orient="auto" markerUnits="strokeWidth">
<path class="arrowhead" d="M0,0 L9,5 L0,10 Z"/>
</marker>
</defs>
<path class="cycle" d="M378 82 C450 92 510 126 541 182"/>
<path class="cycle" d="M550 218 C565 297 535 374 490 417"/>
<path class="cycle" d="M458 440 C397 463 323 463 262 440"/>
<path class="cycle" d="M230 417 C181 374 153 297 170 218"/>
<path class="cycle" d="M179 182 C210 126 270 92 342 82"/>
<circle class="node" cx="360" cy="80" r="7"/>
<circle class="node" cx="550" cy="200" r="7"/>
<circle class="node" cx="475" cy="435" r="7"/>
<circle class="node" cx="245" cy="435" r="7"/>
<circle class="node" cx="170" cy="200" r="7"/>
<text class="stage" x="360" y="42" text-anchor="middle">Crisis</text>
<text class="stage" x="625" y="190" text-anchor="middle"><tspan x="625" dy="0">Preparedness</tspan><tspan x="625" dy="29">funded</tspan></text>
<text class="stage" x="500" y="480" text-anchor="middle"><tspan x="500" dy="0">Prevention</tspan><tspan x="500" dy="29">works</tspan></text>
<text class="stage" x="220" y="480" text-anchor="middle"><tspan x="220" dy="0">Preparedness</tspan><tspan x="220" dy="29">looks wasteful</tspan></text>
<text class="stage" x="95" y="190" text-anchor="middle"><tspan x="95" dy="0">Capacity</tspan><tspan x="95" dy="29">erodes</tspan></text>
<text class="phase panic" x="470" y="92">panic</text>
<text class="phase neglect" x="118" y="325">neglect</text>
</svg>
</figure>

<p>The problem is that the payoff hinges on a <em>counterfactual</em>, and counterfactuals are not &ldquo;real&rdquo;. A disaster that did not happen is just an ordinary day; it is hard to distinguish &ldquo;<em>we prevented it</em>&rdquo; from &ldquo;<em>there was nothing to prevent</em>&rdquo;.</p>
<p><a class="wikilink" href="/wiki/Cognitive-bias/">Cognitive biases</a> make this worse. <a href="https://en.wikipedia.org/wiki/Preparedness_paradox">Wikipedia</a> lists several: normalcy bias, memory decay between rare events, and the tendency to weigh certain short-term costs against uncertain long-term benefits.</p>
<h2 id="cyclospora-outbreak">Cyclospora outbreak<a class="header-anchor" href="#cyclospora-outbreak" title="Link to this section">#</a></h2>
<p>As the <a class="wikilink" href="/wiki/2026-United-States-cyclosporiasis-outbreak/">2026 United States cyclosporiasis outbreak</a> unfolds, the <a href="https://apnews.com/article/cdc-foodnet-surveillance-a6a8270540de89797e3b50b3eb2a4f11">CDC&rsquo;s July 2025 decision</a> to make <a href="https://www.cdc.gov/foodnet/about/">FoodNet</a> reporting optional for Cyclospora and five other pathogens has taken on new significance. The decision followed budget cuts, but the timing does not establish that it caused the outbreak or delayed the investigation. The <a href="https://www.cdc.gov/foodnet/about/">CDC says</a> that FoodNet was not designed to detect outbreaks and that other outbreak systems remained unchanged. Still, FoodNet provided <a href="https://en.wikipedia.org/wiki/Swiss_cheese_model">another layer of safety</a>: staff actively contacted laboratories, audited reports, and tracked trends. When reporting became optional, <a href="https://apnews.com/article/cdc-foodnet-surveillance-a6a8270540de89797e3b50b3eb2a4f11">food safety officials warned</a> that relying on passive reports could miss cases, slow outbreak detection, and obscure the full picture.</p>
<p>A clean causal chain from one cut to one outbreak is rare. Preparedness erodes by increments. Each cut looks small on its own; together, they leave the system brittle enough that one more cut can become the last straw.</p>
<h2 id="covid-19">COVID-19<a class="header-anchor" href="#covid-19" title="Link to this section">#</a></h2>
<p>In May 2018, before the <a class="wikilink" href="/wiki/COVID-19-pandemic/">COVID 19 pandemic</a>, the Trump administration <a href="https://jamanetwork.com/journals/jama/fullarticle/2769997">disbanded the National Security Council&rsquo;s Directorate for Global Health Security and Biodefense and folded some of its staff into other units</a>. Disbanding the unit did not cause the virus, and we cannot know whether keeping it would have changed the response. We also cannot observe the outbreaks that such an office might have helped contain.</p>
<p>The JAMA article notes that several previous administrations also dismantled similar offices and later recreated them. The crisis that arrives feels inevitable, while any crisis the office helped prevent never becomes visible enough to justify keeping it.</p>]]></content>
    
  </entry>
  
  <entry>
    <title>Traffic calming is cheap</title>
    <link href="https://yyahn.com/wiki/Traffic-calming-is-cheap/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/Traffic-calming-is-cheap/</id>
    <published>2026-07-12T00:00:00Z</published>
    <updated>2026-07-24T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p><img src="https://yyiki.s3.amazonaws.com/public/imgs/hoboken-quick-build-traffic-calming-upscaled.jpg" alt="" width="700"></p>
<p><em>Quick-build traffic calming at Second and Bloomfield Streets in Hoboken: paint, flexible posts, daylighting, and an all-way stop. AI-assisted upscale of a <a href="https://hobokennj.gov/news/city-of-hoboken-continues-vision-zero-safety-upgrades">City of Hoboken photograph</a>.</em></p>
<p>A plastic post that daylights a street corner costs <code>$40</code> in hardware; a speed hump, about <code>$2,100</code> installed. A traffic death has no price—no number makes a family whole—but it generates bills anyway: the ambulance and the emergency room, the police and the fire crew, the courtroom, the insurance paperwork, the traffic jammed around the wreck, the lifetime of work that ends. <a href="https://crashstats.nhtsa.dot.gov/Api/Public/ViewPublication/813403.pdf">NHTSA&rsquo;s accounting</a> puts those economic losses at <code>$1.6 million</code> per death; when it then attempts the unpriceable part, valuing the lost life itself, the total reaches <code>$11.3 million</code>—<strong>five thousand speed humps for one death</strong>. Read that ratio the other way: a city could install five thousand humps—or daylight nearly six thousand intersections, even at generously estimated installed prices—and if they prevent <em>a single death</em> over their whole service life, the entire program has paid for itself.</p>
<p><a class="wikilink" href="/wiki/Traffic-calming-works/">Traffic calming works</a>. This page adds up the other half of the argument: what calming costs next to the road spending cities treat as normal, what crashes cost, and the side effects, which for most spending sit on the cost side of the ledger but are here benefits—health, local business, climate.</p>
<h2 id="the-devices-cost-thousands-roads-cost-millions">The devices cost thousands; roads cost millions<a class="header-anchor" href="#the-devices-cost-thousands-roads-cost-millions" title="Link to this section">#</a></h2>
<p>How much does traffic calming actually cost to build? The most comprehensive US answer comes from <a href="https://www.pedbikeinfo.org/downloads/Countermeasure%20Costs_Report_Nov2013.pdf">an FHWA-funded compilation of 1,747 cost records, mostly state bid-letting sheets</a> (Bushell et al., 2013): a speed hump costs about <code>$2,100</code> installed (median; averages around <code>$2,600</code>), a raised crosswalk about <code>$7,100</code>, a chicane about <code>$8,000</code>, a curb extension about <code>$10,000</code>, and a roundabout or traffic circle around <code>$27,000</code>. These are &ldquo;in the ground&rdquo; prices, covering labor, materials, mobilization, and contractor profit, in 2012 dollars; CPI-adjusted, the median hump may be about <code>$3,000</code> today. A one-off retrofit with its own planning process costs more than a device bought twenty at a time—one more argument for a standing program, whose batches and accumulated in-house expertise make each year cheaper than the last—but the order of magnitude is the point: <strong>the hardware is thousands, not millions</strong>.</p>
<p>The floor of the price list is lower still. The flexible plastic posts Hoboken uses to daylight corners—keeping parked cars back so drivers and pedestrians can see each other—cost <a href="https://www.pedbikeinfo.org/resources/resources_details.cfm?id=4801">about <code>$40</code> apiece</a>, and Hoboken&rsquo;s program averages about three of them per treated intersection (<a href="https://www.hobokennj.gov/news/city-of-hoboken-reaches-new-vision-zero-milestone-seven-consecutive-years-without-a-traffic-death">418 delineators daylighting 31% of its intersections</a>, which a <a href="https://catalog.results4america.org/case-studies/improving-traffic-safety-hoboken-nj">Results for America case study</a> counts as over 130). Call it <code>$130</code> per intersection—the price of a pair of running shoes, for the device behind <a class="wikilink" href="/wiki/Traffic-calming-works/">a nine-year streak without a traffic death</a>. That is a hardware price, not an in-the-ground price. The bid-sheet compilation has no separate line for flexible posts; its closest category—bollards of every kind, from flexible plastic posts to fixed and decorative bollards—runs about <code>$650</code> each installed at the median, with observed bids as low as <code>$62</code>. Even taking that as the ceiling, three posts put a daylighted intersection near <code>$2,000</code>—almost exactly the bid-sheet price of one speed hump, in the same 2012 dollars.</p>
<p>A whole calmed street stays cheap. Devices go in every few hundred feet—<a href="https://safedesign.uky.edu/speed-hump/">ITE&rsquo;s speed hump guidance is 260 to 500 feet apart</a>, close enough that speeds can&rsquo;t rebound in between—so call it 13 per mile. With humps, that mile costs roughly <code>$40,000</code> in 2025 dollars. Suppose we use more expensive devices—chicanes, a pricier device that <a href="https://dot.ca.gov/-/media/dot-media/programs/safety-programs/documents/traffic-calming/final-traffic-calming-guide_v2-a11y.pdf">slows cars by bending the roadway rather than bumping over it</a>: a mile of calming still costs only about <code>$150,000</code>. And daylighting at Hoboken&rsquo;s three-posts-per-intersection average prices a whole mile of intersections—one every 400 feet or so—at about <code>$1,700</code> in post hardware, <strong>less than the cost of one installed speed hump</strong>; even at the bollard-ceiling installed price, the daylighted mile comes in around what the mile of humps costs.</p>
<p>Still sounds expensive? Any actual road work makes those numbers look like rounding errors. FHWA&rsquo;s own investment-analysis figures put an ordinary new urban street—a minor arterial or collector on a new alignment in a large urban area, at normal cost—at about <a href="https://www.vtpi.org/tca/tca0506.pdf"><code>$5.2 million</code> per lane-mile in 2014 dollars</a>, and <a href="https://data.transportation.gov/Research-and-Statistics/NHCCI/r94d-n4f9">FHWA&rsquo;s highway construction cost index</a> has nearly doubled since then (1.68 to 3.23, with 2003 = 1), so a new two-lane mile runs around <code>$20 million</code> today. Nor does a city need to build new roads for the comparison to bite: the same FHWA table puts resurfacing an existing two-lane mile around <code>$1.9 million</code> in 2025 dollars for a large urban area (about <code>$1.5 million</code> in a small urbanized one), and full reconstruction around <code>$7.7 million</code>. Seen from inside a repaving contract, calming is a rounding line: repave the mile and add humps along all of it, and the bill grows by roughly 2–3%—the arithmetic behind folding calming into the repaving schedule by default. A single mile&rsquo;s repaving contract would fund a dozen miles of chicanes, speed humps along 45 miles of streets, or daylighting post hardware for more than 14,000 intersections—<strong>every intersection in Hoboken, more than thirty times over</strong>. To be fair, safe-street projects can be expensive too—<a href="https://catalog.results4america.org/case-studies/improving-traffic-safety-hoboken-nj">Hoboken&rsquo;s full rebuild of Washington Street, its main commercial spine, cost <code>$19.5 million</code></a>—but that is reconstruction money doing reconstruction; the calming layer behind the safety record is the cheap part.</p>
<p><img src="https://yyiki.s3.amazonaws.com/public/imgs/quarto/Traffic%20calming%20is%20cheap/fig-cost-per-mile-output-1.png" alt="" width="600"></p>
<p><em>Figure 1: Cost of one mile: traffic calming versus road work.</em></p>
<p>The longest bar in that chart is not hypothetical for my town: the FY2026 <a href="https://communityengagement.substack.com/p/april-21-2026-charlottesville-reps">Smart Scale</a> applications to extend two ramps at Charlottesville&rsquo;s US 29/250 interchange total about <code>$24.5 million</code>—more than building a brand-new two-lane street a mile long, to lengthen two ramps that VDOT&rsquo;s own congestion data does not flag as congested. Nor is the scale unique to state money: the city&rsquo;s own <a href="https://www.cvillepedia.org/Belmont_Bridge">Belmont Bridge replacement</a> came in over <code>$31 million</code>, and the <a href="https://www.cvillepedia.org/West_Main_Streetscape">West Main streetscape plan</a> grew from about <code>$30 million</code> to over <code>$50 million</code> before the council canceled it in 2022. That is the going rate of routine road work, floated in the same region where the initially proposed annual bike-infrastructure budget line was around <code>$100,000</code>. In other words, <strong>if we can forego a single unnecessary highway project, we can completely transform the whole city</strong>, making it way safer for everyone.</p>
<p>Freeways are another order of magnitude still: <a href="https://www.vtpi.org/tca/tca0506.pdf"><code>$15.4 million</code> per lane-mile of major-urban freeway at normal cost in 2014 dollars, rising past <code>$64 million</code> in high-cost cases</a>—call it <code>$30 million</code> in 2025 dollars—and single mega-projects exceed entire calming programs: Houston&rsquo;s I-45 rebuild is a <a href="https://www.txdot.gov/about/newsroom/local/houston/i45-construction-begins-in-houston.html"><code>$13 billion</code> effort</a>. One freeway lane-mile buys nearly 10,000 speed humps; at three per street, that calms some three thousand residential streets. The comparison scales all the way up to countries: Wales&rsquo;s one-day switch of <a href="https://en.wikipedia.org/wiki/Restricted_Roads_%2820_mph_Speed_Limit%29_%28Wales%29_Order_2022">about a third of its road length to a 20 mph default</a> was budgeted at £32.5 million over five years—less than two of those freeway lane-miles for an entire nation.</p>
<p>These are also one-time prices, which sets calming apart from the slowing tools cities rent. <a href="https://www.whro.org/local-government/2025-03-05/virginia-beach-gives-green-light-to-speed-cameras-in-school-zones">Virginia Beach&rsquo;s new school-zone speed cameras cost up to <code>$3,900</code> per camera per month</a>—one camera&rsquo;s yearly lease, about <code>$47,000</code>, is roughly what it costs to hump an entire mile of street, and unfortunately the camera can watch a single spot. Police enforcement is rented by the hour, and <a class="wikilink" href="/wiki/Traffic-calming-works/">its effect on speeds decays within a few kilometres and a few days of the checkpoint</a>. <strong>Concrete and posts enforce around the clock, unstaffed, for as long as the pavement lasts.</strong></p>
<h2 id="crashes-are-expensive">Crashes are expensive<a class="header-anchor" href="#crashes-are-expensive" title="Link to this section">#</a></h2>
<p>Doing nothing has a price too, and it is enormous. <a href="https://crashstats.nhtsa.dot.gov/Api/Public/ViewPublication/813403.pdf">NHTSA puts the economic cost of US motor-vehicle crashes at <code>$340 billion</code> in 2019</a>—<code>$1,035</code> per American per year, 1.6% of GDP—counting lost productivity, medical, legal and court costs, emergency services, insurance administration, congestion, property damage, and workplace losses. With quality-of-life losses included, the total societal harm was nearly <code>$1.4 trillion</code>. Each death carries an average discounted lifetime cost of <code>$1.6 million</code> in economic terms, and <code>$11.3 million</code> with quality of life.</p>
<p>The bill also lands on everyone, not just the people crashing. Public revenues cover about 9% of crash costs—<code>$30 billion</code> in 2019, or <code>$230</code> per US household in taxes—and roughly <strong>three-quarters of all crash costs are paid by people not directly involved</strong>, mostly through insurance premiums. Every crash a <code>$2,000</code> hump prevents is money not spent on emergency response, medical care, courts, and congestion.</p>
<p>At small-city scale the numbers stay large. Take Charlottesville, Virginia (population about 45,000), where I live: in 2024 the city recorded <a href="https://www.dmv.virginia.gov/sites/default/files/documents/VA-traffic-crash-2024.pdf">625 crashes, 2 deaths, and 416 injuries</a> (Virginia DMV). Priced with NHTSA&rsquo;s per-person unit costs—<code>$1.6 million</code> per death, <code>$143,000</code> per police-reported serious (&ldquo;A&rdquo;) injury, <code>$23,000</code>–<code>$37,000</code> per lesser (&ldquo;B&rdquo; and &ldquo;C&rdquo;) injury—and using Virginia&rsquo;s statewide share of serious injuries (11%) to split the mix, one year of crashes in this one small city costs roughly <code>$23</code>–<code>$30 million</code> in economic terms, and on the order of <code>$130</code>–<code>$180 million</code> in comprehensive societal harm (2025 dollars). This errs low, since it ignores property-damage-only and unreported crashes entirely. For scale, the city&rsquo;s initially proposed annual bike-infrastructure budget line was about <code>$100,000</code> (<a class="wikilink" href="/wiki/articles/20251209_letter_to_city_council_on_bike_infra/">my letter to city council</a>).</p>
<p>Let&rsquo;s estimate how much traffic calming can save, using published numbers—from the pooled 11% cut in injury crashes across area-wide schemes to the 42% London recorded (<a class="wikilink" href="/wiki/Traffic-calming-works/">the evidence</a>). Even the conservative end is <code>$2.5</code>–<code>$3.3 million</code> a year of avoided economic losses, which would repay speed humps along fifty miles of streets (<code>$2 million</code> at the per-mile prices above) <strong>in under a year</strong>—and daylighting posts along all fifty miles (about <code>$85,000</code>) <strong>within two weeks</strong>. And the measured average is not the ceiling. Hoboken, an American city of about 60,000 packed into 1.25 square miles, has gone <a href="https://usa.streetsblog.org/2026/06/12/in-new-jersey-mayors-show-how-quickly-we-can-slow-down-drivers">nine consecutive years without a traffic death</a> on a diet of <a href="https://www.hobokennj.gov/news/city-of-hoboken-reaches-new-vision-zero-milestone-seven-consecutive-years-without-a-traffic-death">daylighted corners, curb extensions, multi-way stops, and school-zone speed limits</a>: the calming toolbox, applied everywhere. The origin of that program is the cheapest data point in this whole ledger: Hoboken&rsquo;s daylighting began with <a href="https://www.pedbikeinfo.org/resources/resources_details.cfm?id=4801">the <code>$40</code> delineators above</a>, and from 2009 to 2011, with these and other pedestrian-safety measures in place, the city recorded a 30% decrease in pedestrian injuries caused by vehicles. National statistics make the same point: the US loses <a href="https://en.wikipedia.org/wiki/List_of_countries_by_traffic-related_death_rate">14.2 people per 100,000 to traffic, against 2.1 in Norway and Sweden</a> (2021 and 2022 figures)—a nearly sevenfold gap. Americans are not subject to different laws of physics; <strong>they walk, bike, and drive on poorly engineered streets</strong>.</p>
<p>Formal cost-benefit analysis makes the same case with a deliberately narrow ledger. For London&rsquo;s 20 mph zones, <a href="https://pubmed.ncbi.nlm.nih.gov/22936701/">Steinbach et al.</a> weighed construction costs against just one benefit—the value of the casualties avoided—ignoring health, travel time, and the local economy. Even on that ledger, the zones pay for themselves within ten years in any area with at least 0.7 casualties per kilometre of road. A quiet cul-de-sac doesn&rsquo;t clear that bar, but the streets cities actually target for calming do. In other words, <strong>avoided injuries alone repay the construction</strong>; every other benefit on this page comes on top.</p>
<h2 id="the-delay-is-marginal">The delay is marginal<a class="header-anchor" href="#the-delay-is-marginal" title="Link to this section">#</a></h2>
<p>The standard objection is travel time: slow every car and every errand gets longer, multiplied over every trip in the city. The measured impacts are surprisingly small, because urban door-to-door time is governed mostly by intersections and queueing, not cruising speed—in Transport for London&rsquo;s summary of the research, &ldquo;<a href="https://haveyoursay.tfl.gov.uk/lowering-speed-limits/widgets/31529/faqs">journey times are largely dictated by junction delays and not vehicle speeds</a>&rdquo;.</p>
<p>England&rsquo;s 20 mph evaluation put the journey-time increase at about 3% in residential areas: <em>less than half a minute</em> on a two-mile trip, a change most drivers are unlikely to notice. Wales, the largest natural experiment so far, measured it directly: after the national default dropped, journey times on 44 of the 57 monitored routes rose by no more than two minutes, and on all 57 by less than four, while <a href="https://tfw.wales/national-monitoring-report-july-2025">casualties on the affected roads fell 26% in the first year</a>. <strong>Seconds per trip bought a quarter fewer people hurt.</strong> At bottom, this is not an engineering question but a value judgement: is a minute of driving time—itself uncertain—worth nearly twice the injuries to children? Some redesigns even give time back: <a href="https://wsdot.wa.gov/travel/traffic-safety-methods/roundabouts">Washington State DOT cites</a> an 89% reduction in intersection delays after roundabout conversion in an IIHS study.</p>
<p><a href="https://bsky.app/profile/warrenjwells.bsky.social/post/3mq3ns3ljxk2o">Warren Wells</a> makes the category error especially clear. In Halifax, staff reportedly called protected signal phasing &ldquo;not feasible&rdquo; because of the delay it would impose on road users. But a treatment that adds delay is not technically impossible; the agency has decided that avoiding delay outweighs the safety benefit. Cost and travel-time estimates inform that choice. They do not make it for us.</p>
<p>The sharper version of the objection is emergency response, and it deserves a straight answer: full-width vertical calming really does slow fire trucks and ambulances. <a href="https://nacto.org/wp-content/uploads/Offset-Speed-Tables_Batson.pdf">Portland&rsquo;s field tests</a> measured up to about 9 seconds of delay per hump or table for fire apparatus, and <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC9922345/">an ambulance field study</a> found 8 to 10 seconds per hump at speed—more when the ambulance is stuck behind other vehicles slowing for the hump. The fix is device choice, not abandoning calming. Speed cushions were invented for exactly this problem—their gaps are placed to match a fire truck&rsquo;s wide wheel track—and <a href="https://highways.dot.gov/safety/speed-management/traffic-calming-eprimer/module-5-effects-traffic-calming-measures-non">FHWA&rsquo;s ePrimer</a> is unambiguous about the result: &ldquo;Field tests have shown speed cushions to <strong>reduce general vehicle speeds while providing little to no delay to fire vehicles</strong>,&rdquo; and they &ldquo;are being used in place of speed humps in many jurisdictions due to their <strong>positive reception from fire departments</strong>.&rdquo; Portland&rsquo;s offset speed tables, the other purpose-built design, brought fire-vehicle delay down to about 2 seconds each, and a calming plan can keep full-width vertical deflection off designated response routes entirely. As for the older claim that humps damage fire trucks, FHWA notes the early studies &ldquo;found no data to substantiate the claims&rdquo;.</p>
<h2 id="the-side-effects-are-a-bonus-not-a-bill">The side effects are a bonus, not a bill<a class="header-anchor" href="#the-side-effects-are-a-bonus-not-a-bill" title="Link to this section">#</a></h2>
<p>Calmer streets nudge people to walk or bike (<a class="wikilink" href="/wiki/Traffic-calming-works/">the evidence</a>), and each shifted trip flips the sign of its externalities. In <a href="https://ideas.repec.org/a/eee/ecolec/v158y2019icp65-74.html">Gössling et al.&rsquo;s accounting for the European Union</a>, each kilometre driven by car imposes an external cost of about €0.11 on society, while each kilometre cycled or walked generates an external <em>benefit</em> of about €0.18 and €0.37, largely through health effects.</p>
<h3 id="health">Health<a class="header-anchor" href="#health" title="Link to this section">#</a></h3>
<p>The health mechanism behind those numbers is well measured: in a <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC4262114/">meta-analysis of cohort studies</a> (Kelly et al., 2014), a standardized weekly dose of walking or cycling was associated with an 11% and 10% reduction in all-cause mortality, respectively.</p>
<p>To see the scale in one city, take Charlottesville again. Suppose its roughly 45,000 residents matched what <a href="https://www.lshtm.ac.uk/newsevents/news/2019/transport-londons-mini-holland-programme-associated-more-walking-and-cycling">residents living near London&rsquo;s &ldquo;mini-Holland&rdquo; schemes reported</a>—41 more minutes of walking and cycling per person per week, most of it walking. At ordinary walking and cycling speeds (5 and 15 km/h), that is 3.4 to 10 km per person-week, worth about €3 to €4.5 million per year at Gössling et al.&rsquo;s health-externality values—before adding the €0.11 saved for every kilometre of driving those trips replace. This is a back-of-envelope with generous assumptions (the whole city matching the treated areas&rsquo; gain), but the sign and scale are the point: the side effects alone—even without the direct benefits of prevented crashes—are plausibly worth millions a year even in a small city, comparable to what full calming coverage would cost once.</p>
<h3 id="climate">Climate<a class="header-anchor" href="#climate" title="Link to this section">#</a></h3>
<p>Transportation is <a href="https://www.epa.gov/ghgemissions/sources-greenhouse-gas-emissions">the largest source of direct US greenhouse gas emissions</a> (EPA), and a <a href="https://www.epa.gov/greenvehicles/greenhouse-gas-emissions-typical-passenger-vehicle">typical passenger vehicle emits about 400 grams of CO₂ per mile</a>—about 4.6 metric tons a year. If the shifted trips above replaced driving mile for mile, Charlottesville would avoid on the order of 2,000 to 6,000 metric tons of CO₂ a year, worth <code>$0.4</code> to <code>$1.1 million</code> at <a href="https://www.epa.gov/system/files/documents/2023-12/epa_scghg_2023_report_final.pdf">EPA&rsquo;s central social cost of carbon of <code>$190</code> per metric ton</a>. Carbon is the smaller prize here—several times smaller than the health benefit above—because the climate case for calming runs through mode shift rather than the devices themselves.</p>
<p>The comparison that matters is with what cities actually fund as climate policy, because typical actions cost real money per ton. In <a href="https://scholar.harvard.edu/files/stock/files/gillingham_stock_cost_of_reducing_greenhouse_gas_emissions_jep_2018.pdf">Gillingham and Stock&rsquo;s review of static abatement costs</a>, weatherization programs run about <code>$350</code> per ton of CO₂, dedicated electric-vehicle subsidies <code>$350</code>–<code>$640</code>, and solar subsidies <code>$140</code>–<code>$2,100</code> (2017 dollars). Calming inverts the sign: because the safety, time, and health ledgers above already more than pay for the intervention, whatever carbon the mode shift removes comes at an effective abatement cost of zero or less. Even under the least charitable accounting—charge the full <code>$2 million</code> of speed humps along fifty miles to climate alone, count nothing else, and spread it over twenty years of the modest shift above—it lands around <code>$17</code>–<code>$50</code> per ton: alongside a gasoline tax, far below solar, weatherization, or electric-vehicle subsidies. Run the same arithmetic on <code>$85,000</code> of daylighting posts and the cost per ton barely registers.</p>
<p><img src="https://yyiki.s3.amazonaws.com/public/imgs/quarto/Traffic%20calming%20is%20cheap/fig-abatement-cost-output-1.png" alt="" width="650"></p>
<p><em>Figure 2: Abatement cost ranges for traffic calming and selected climate policies.</em></p>
<p><em>Cost ranges reflect the spread of estimates across studies compiled by Gillingham and Stock (2018), not confidence intervals; dots are single point estimates. The calming band spans its two accountings: at or below zero once safety, time, and health benefits are counted, <code>$17</code>–<code>$50</code> per ton if the full cost of speed humps is charged to climate alone.</em></p>
<p>This is also the IPCC&rsquo;s conclusion at global scale. In the AR6 Synthesis Report&rsquo;s summary of mitigation options (<a href="https://www.ipcc.ch/report/ar6/syr/figures/figure-spm-7">Figure SPM.7</a>, below), blue marks the options whose net lifetime costs are <em>lower than the reference</em>—mitigation that saves money—and &ldquo;public transport and bicycling&rdquo; is solidly blue, alongside fuel-efficient vehicles and demand reduction. The bottom panel puts the demand-side reduction potential of land transport at 67% by 2050, the largest among the end-use sectors shown. Shifting trips out of cars is not a costly sacrifice a city makes for the climate; it is one of the few climate actions that <em>pays for itself</em>.</p>
<p><img src="https://yyiki.s3.amazonaws.com/public/imgs/ipcc-ar6-syr-spm7.png" alt="" width="600"></p>
<p><em>Figure SPM.7 from the <a href="https://www.ipcc.ch/report/ar6/syr/figures/figure-spm-7">IPCC AR6 Synthesis Report</a> (© IPCC): blue bars are mitigation options whose lifetime costs are below the reference case.</em></p>
<p>A real city&rsquo;s climate portfolio sharpens the contrast. Charlottesville has <a href="https://www.epa.gov/system/files/documents/2023-12/charlottesville-climate-action-plan-2023.pdf">adopted targets of a 45% emissions cut by 2030 and carbon neutrality by 2050</a>, and its <a href="https://charlottesville.gov/DocumentCenter/View/16373">current climate portfolio</a> is the standard menu: municipal building retrofits under an energy performance contract (<a href="https://web.archive.org/web/2025/https://www.charlottesville.gov/CivicAlerts.aspx?AID=2309">saving about 75 tons of CO₂e a year</a>), rooftop solar, a <code>$600,000</code> LED streetlight conversion, two electric transit buses on order and two electric school buses funded through an EPA rebate, and home-energy grants. Meanwhile <a href="https://charlottesville.gov/295/Charlottesville-Emissions-Reports">community emissions rose about 5% in 2024</a>, and transportation—about 30% of the city&rsquo;s emissions—has been flat for years while the fleet gets heavier (light-truck mileage up 50% since 2016, per the city&rsquo;s 2026 Climate Action Update).</p>
<p>Exact dollars-per-ton for these programs mostly can&rsquo;t be computed from what the city publishes: the retrofit contract reports tonnage and utility savings but not its price, and the LED conversion reports its price but not its tonnage. The one estimate the public numbers allow is rough but telling. Streetlights and traffic signals are about 7% of municipal emissions—roughly 900 t a year in 2024—so even if the <code>$600,000</code> conversion zeroed the whole category for 15 years, it would come to about <code>$45</code> per ton, and realistically more: the conversion covers only the Dominion-owned lights, and LEDs cut the load rather than zero it. That is in line with the national benchmarks above, and it is normal—this is simply what climate action costs.</p>
<p>The point is not that these programs are bad (retrofits and solar PPAs largely pay for themselves). The point is that traffic calming is not even trying to be climate policy. A city builds it to stop crashes, and the safety ledger alone repays the construction; the carbon is a byproduct. Yet the byproduct would very likely outperform the dedicated efforts: 2,000 to 6,000 tons a year from a mini-Holland-scale mode shift equals roughly 25 to 80 of those downtown-retrofit contracts—every one of which the city pursued <em>as</em> climate action, paid for <em>as</em> climate action. The tons from calming come along for free, on top of the safety benefits the streets were rebuilt for in the first place. <strong>A city that calms its streets gets a climate program without ever budgeting one—and one that removes more carbon than the programs it actually budgets.</strong></p>
<h3 id="local-economy">Local economy<a class="header-anchor" href="#local-economy" title="Link to this section">#</a></h3>
<p>The local-economy evidence points the same way: <a href="https://doi.org/10.1080/01441647.2021.1912849">a review of 23 studies by Volker and Handy</a> found that creating or improving active-travel facilities &ldquo;generally has positive or non-significant economic impacts&rdquo; on nearby retail and food businesses—I&rsquo;ve written about this literature, and why it transfers to small towns, in <a class="wikilink" href="/wiki/articles/20251012_translating_bigcity_lessons_to_small_towns/">a separate post</a>. The individual results are vivid. After New York installed a protected bike lane on 9th Avenue, <a href="https://www.nyc.gov/html/dot/downloads/pdf/2014-09-03-bicycle-path-data-analysis.pdf">retail sales in the project area rose 47% over two years, ahead of both comparison corridors (43% and 23%); on Columbus Avenue the pattern repeated at 20% against 9–12%</a> (NYC DOT). In Toronto, <a href="https://www.tcat.ca/wp-content/uploads/2020/06/8e2c-Bloor-West-Economic-Impacts-Summary-FINAL-Nov2019.pdf">three separate studies of the Bloor Street bikeway</a> found positive economic impact, with average reported customer spending per month rising from <code>$186</code> to <code>$245</code>. These are bike-lane studies rather than calming studies, but the two are the same project seen from different ends. What keeps most would-be riders off a bike is fast, heavy traffic (<a class="wikilink" href="/wiki/Traffic-calming-works/">the &ldquo;interested but concerned&rdquo; majority</a>), so slowing the street <em>is</em> bike infrastructure: a painted lane on an uncalmed street does nothing about the speeds that scare people off, while a calmed street invites riders with or without paint. And both kinds of studies answer the same fear—that making driving slower kills the street—and the answer is no.</p>
<h2 id="the-bottom-line">The bottom line<a class="header-anchor" href="#the-bottom-line" title="Link to this section">#</a></h2>
<p>Traffic calming is the rare public investment priced in tens to thousands of dollars set against a problem priced in millions or billions. Freeway money is mostly state and federal, but the comparison holds inside a city&rsquo;s own ledger: one new two-lane mile runs around <code>$20 million</code>, the price of calming a couple thousand streets, and the crash reductions calming measurably delivers would repay speed humps along fifty miles of streets in under a year—and the <code>$40</code>-post version of those fifty miles within weeks. The side effects seal it—health benefits worth millions a year, reducing massive amount of carbon emission at negative cost, retail that does as well or better. Whatever is stopping cities from calming their streets, <strong>it can&rsquo;t be the price</strong>.</p>
<p><em>Companion to <a class="wikilink" href="/wiki/Traffic-calming-works/">Traffic calming works</a>; part of the case for <a class="wikilink" href="/wiki/Safety-shouldn't-be-opt-in/">making calming the default, not by a request</a>.</em></p>
<p>I posted this on <a href="https://bsky.app/profile/yyahn.bsky.social/post/3mr3vluhn7k2x">Bluesky</a> too, if you want to chime in.</p>
<h2 id="references">References<a class="header-anchor" href="#references" title="Link to this section">#</a></h2>
<ul>
<li>
<p>Atkins, AECOM, and Maher, M. (2018). <a href="https://assets.publishing.service.gov.uk/media/5bf2bab940f0b6078acc6f4d/20mph-headline-report.pdf"><em>20 mph Research Study: Process and Impact Evaluation—Headline Report.</em></a> UK Department for Transport.</p>
</li>
<li>
<p>Batson, S. (2004). <a href="https://nacto.org/wp-content/uploads/Offset-Speed-Tables_Batson.pdf">&ldquo;Offset Speed Tables for Reduced Emergency Response Delay.&rdquo;</a> ITE Technical Conference, Irvine, California.</p>
</li>
<li>
<p>Blincoe, L., Miller, T., Wang, J.-S., Swedler, D., Coughlin, T., Lawrence, B., Guo, F., Klauer, S., and Dingus, T. (2023). <a href="https://crashstats.nhtsa.dot.gov/Api/Public/ViewPublication/813403.pdf"><em>The Economic and Societal Impact of Motor Vehicle Crashes, 2019 (Revised).</em></a> National Highway Traffic Safety Administration, DOT HS 813 403.</p>
</li>
<li>
<p>Bushell, M. A., Poole, B. W., Zegeer, C. V., and Rodriguez, D. A. (2013). <a href="https://www.pedbikeinfo.org/downloads/Countermeasure%20Costs_Report_Nov2013.pdf"><em>Costs for Pedestrian and Bicyclist Infrastructure Improvements.</em></a> UNC Highway Safety Research Center, prepared for the Federal Highway Administration.</p>
</li>
<li>
<p>California Department of Transportation. <a href="https://dot.ca.gov/-/media/dot-media/programs/safety-programs/documents/traffic-calming/final-traffic-calming-guide_v2-a11y.pdf"><em>Traffic Calming Guide.</em></a></p>
</li>
<li>
<p>Charlottesville Community Engagement (2026). <a href="https://communityengagement.substack.com/p/april-21-2026-charlottesville-reps">&ldquo;April 21, 2026 Edition.&rdquo;</a> (US 29/250 Smart Scale ramp applications.)</p>
</li>
<li>
<p>City of Charlottesville (2023). <a href="https://www.epa.gov/system/files/documents/2023-12/charlottesville-climate-action-plan-2023.pdf"><em>Climate Action Plan.</em></a></p>
</li>
<li>
<p>City of Charlottesville (2025). <a href="https://web.archive.org/web/2025/https://www.charlottesville.gov/CivicAlerts.aspx?AID=2309">News release on municipal energy performance contract upgrades (archived).</a></p>
</li>
<li>
<p>City of Charlottesville (2026). <a href="https://charlottesville.gov/DocumentCenter/View/16373"><em>2026 Climate Action Report.</em></a></p>
</li>
<li>
<p>City of Charlottesville. <a href="https://www.charlottesville.gov/1889/5th-Street-SW-Road-Diet-Bikeway">&ldquo;5th Street SW Road Diet Bikeway.&rdquo;</a></p>
</li>
<li>
<p>City of Charlottesville. <a href="https://charlottesville.gov/295/Charlottesville-Emissions-Reports">&ldquo;Charlottesville Emissions Reports.&rdquo;</a></p>
</li>
<li>
<p>City of Hoboken (2024). <a href="https://www.hobokennj.gov/news/city-of-hoboken-reaches-new-vision-zero-milestone-seven-consecutive-years-without-a-traffic-death">&ldquo;City of Hoboken Reaches New Vision Zero Milestone: Seven Consecutive Years Without a Traffic Death.&rdquo;</a></p>
</li>
<li>
<p>Cvillepedia. <a href="https://www.cvillepedia.org/Belmont_Bridge">&ldquo;Belmont Bridge.&rdquo;</a></p>
</li>
<li>
<p>Cvillepedia. <a href="https://www.cvillepedia.org/West_Main_Streetscape">&ldquo;West Main Streetscape.&rdquo;</a></p>
</li>
<li>
<p>Environmental Protection Agency. <a href="https://www.epa.gov/greenvehicles/greenhouse-gas-emissions-typical-passenger-vehicle">&ldquo;Greenhouse Gas Emissions from a Typical Passenger Vehicle.&rdquo;</a></p>
</li>
<li>
<p>Environmental Protection Agency. <a href="https://www.epa.gov/ghgemissions/sources-greenhouse-gas-emissions">&ldquo;Sources of Greenhouse Gas Emissions.&rdquo;</a></p>
</li>
<li>
<p>Environmental Protection Agency (2023). <a href="https://www.epa.gov/system/files/documents/2023-12/epa_scghg_2023_report_final.pdf"><em>EPA Report on the Social Cost of Greenhouse Gases: Estimates Incorporating Recent Scientific Advances.</em></a></p>
</li>
<li>
<p>Federal Highway Administration. <a href="https://data.transportation.gov/Research-and-Statistics/NHCCI/r94d-n4f9">&ldquo;National Highway Construction Cost Index (NHCCI).&rdquo;</a></p>
</li>
<li>
<p>Federal Highway Administration (2017). <a href="https://highways.dot.gov/safety/speed-management/traffic-calming-eprimer/module-5-effects-traffic-calming-measures-non">&ldquo;Traffic Calming ePrimer—Module 5: Effects of Traffic Calming Measures on Non-Personal Passenger Vehicles.&rdquo;</a></p>
</li>
<li>
<p>Gillingham, K., and Stock, J. H. (2018). <a href="https://doi.org/10.1257/jep.32.4.53">&ldquo;The Cost of Reducing Greenhouse Gas Emissions.&rdquo;</a> <em>Journal of Economic Perspectives</em>, 32(4), 53–72.</p>
</li>
<li>
<p>Gössling, S., Choi, A., Dekker, K., and Metzler, D. (2019). <a href="https://doi.org/10.1016/j.ecolecon.2018.12.016">&ldquo;The Social Cost of Automobility, Cycling and Walking in the European Union.&rdquo;</a> <em>Ecological Economics</em>, 158, 65–74.</p>
</li>
<li>
<p>IPCC (2023). <a href="https://www.ipcc.ch/report/ar6/syr/figures/figure-spm-7"><em>Climate Change 2023: Synthesis Report</em>, Figure SPM.7.</a></p>
</li>
<li>
<p>Kelly, P., Kahlmeier, S., Götschi, T., Orsini, N., Richards, J., Roberts, N., Scarborough, P., and Foster, C. (2014). <a href="https://doi.org/10.1186/s12966-014-0132-x">&ldquo;Systematic Review and Meta-Analysis of Reduction in All-Cause Mortality from Walking and Cycling and Shape of Dose Response Relationship.&rdquo;</a> <em>International Journal of Behavioral Nutrition and Physical Activity</em>, 11, 132.</p>
</li>
<li>
<p>London School of Hygiene &amp; Tropical Medicine (2019). <a href="https://www.lshtm.ac.uk/newsevents/news/2019/transport-londons-mini-holland-programme-associated-more-walking-and-cycling">&ldquo;Transport for London&rsquo;s Mini-Holland Programme Associated with More Walking and Cycling.&rdquo;</a></p>
</li>
<li>
<p>New York City Department of Transportation (2014). <a href="https://www.nyc.gov/html/dot/downloads/pdf/2014-09-03-bicycle-path-data-analysis.pdf"><em>Protected Bicycle Lanes in NYC.</em></a></p>
</li>
<li>
<p>Öz, E., Küçükkelepçe, O., Kurt, O., and Çavuş, A. C. (2023). <a href="https://doi.org/10.7759/cureus.33722">&ldquo;Effect of Speed Humps on Ambulance Delay.&rdquo;</a> <em>Cureus</em>, 15(1), e33722.</p>
</li>
<li>
<p>Pedestrian and Bicycle Information Center (2013). <a href="https://www.pedbikeinfo.org/resources/resources_details.cfm?id=4801">&ldquo;Daylighting&rdquo;</a> (Hoboken, NJ case study).</p>
</li>
<li>
<p>Results for America. <a href="https://catalog.results4america.org/case-studies/improving-traffic-safety-hoboken-nj">&ldquo;Improving Traffic Safety: Hoboken, NJ.&rdquo;</a> <em>Economic Mobility Catalog</em>.</p>
</li>
<li>
<p>Steinbach, R., Cairns, J., Grundy, C., and Edwards, P. (2013). <a href="https://doi.org/10.1136/injuryprev-2012-040347">&ldquo;Cost Benefit Analysis of 20 mph Zones in London.&rdquo;</a> <em>Injury Prevention</em>, 19(3), 211–213.</p>
</li>
<li>
<p>Streetsblog USA (2026). <a href="https://usa.streetsblog.org/2026/06/12/in-new-jersey-mayors-show-how-quickly-we-can-slow-down-drivers">&ldquo;In New Jersey, Mayors Show How Quickly We Can Slow Down Drivers.&rdquo;</a></p>
</li>
<li>
<p>Texas Department of Transportation. <a href="https://www.txdot.gov/about/newsroom/local/houston/i45-construction-begins-in-houston.html">&ldquo;I-45 Construction Begins in Houston.&rdquo;</a></p>
</li>
<li>
<p>Toronto Centre for Active Transportation (2019). <a href="https://www.tcat.ca/wp-content/uploads/2020/06/8e2c-Bloor-West-Economic-Impacts-Summary-FINAL-Nov2019.pdf"><em>Bloor Street West Economic Impacts Summary.</em></a></p>
</li>
<li>
<p>Transport for London. <a href="https://haveyoursay.tfl.gov.uk/lowering-speed-limits/widgets/31529/faqs">&ldquo;Lowering Speed Limits on TfL Roads: FAQs.&rdquo;</a></p>
</li>
<li>
<p>Transport for Wales (2025). <a href="https://tfw.wales/national-monitoring-report-july-2025"><em>Default 20 mph Speed Limit on Restricted Roads: National Monitoring Report.</em></a></p>
</li>
<li>
<p>University of Kentucky Safe Design. <a href="https://safedesign.uky.edu/speed-hump/">&ldquo;Speed Hump.&rdquo;</a></p>
</li>
<li>
<p>Victoria Transport Policy Institute (2023). <a href="https://www.vtpi.org/tca/tca0506.pdf">&ldquo;Roadway Costs.&rdquo;</a> <em>Transportation Cost and Benefit Analysis II.</em></p>
</li>
<li>
<p>Virginia Department of Motor Vehicles (2025). <a href="https://www.dmv.virginia.gov/sites/default/files/documents/VA-traffic-crash-2024.pdf"><em>Virginia Traffic Crash Facts 2024.</em></a></p>
</li>
<li>
<p>Volker, J. M. B., and Handy, S. (2021). <a href="https://doi.org/10.1080/01441647.2021.1912849">&ldquo;Economic Impacts on Local Businesses of Investments in Bicycle and Pedestrian Infrastructure: A Review of the Evidence.&rdquo;</a> <em>Transport Reviews</em>, 41(4), 401–431.</p>
</li>
<li>
<p>Washington State Department of Transportation. <a href="https://wsdot.wa.gov/travel/traffic-safety-methods/roundabouts">&ldquo;Roundabouts.&rdquo;</a></p>
</li>
<li>
<p>Wells, W. (2026). <a href="https://bsky.app/profile/warrenjwells.bsky.social/post/3mq3ns3ljxk2o">Post on feasibility, delay, and traffic safety.</a> Bluesky.</p>
</li>
<li>
<p>WHRO (2025). <a href="https://www.whro.org/local-government/2025-03-05/virginia-beach-gives-green-light-to-speed-cameras-in-school-zones">&ldquo;Virginia Beach Gives Green Light to Speed Cameras in School Zones.&rdquo;</a></p>
</li>
<li>
<p>Wikipedia. <a href="https://en.wikipedia.org/wiki/List_of_countries_by_traffic-related_death_rate">&ldquo;List of Countries by Traffic-Related Death Rate.&rdquo;</a></p>
</li>
<li>
<p>Wikipedia. <a href="https://en.wikipedia.org/wiki/Restricted_Roads_%2820_mph_Speed_Limit%29_%28Wales%29_Order_2022">&ldquo;Restricted Roads (20 mph Speed Limit) (Wales) Order 2022.&rdquo;</a></p>
</li>
</ul>]]></content>
    
  </entry>
  

  
  <entry>
    <title>Recently Updated Pages</title>
    <link href="https://yyahn.com/wiki/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/feed/updates/2026-08-09</id>
    <published>2026-08-09T00:00:00Z</published>
    <updated>2026-08-09T00:00:00Z</updated>
    <content type="html"><![CDATA[<p>The following pages were recently updated:</p>
<ul>
  <li><a href="https://yyahn.com/wiki/Claude-Code/Tips/">Claude Code: Tips</a> - 2026-08-09</li>
  <li><a href="https://yyahn.com/wiki/Software/Herdr/">Herdr</a> - 2026-08-09</li>
  <li><a href="https://yyahn.com/wiki/Traffic-projection/">Traffic projection</a> - 2026-08-09</li>
  <li><a href="https://yyahn.com/wiki/Motornomativity/">Motornomativity</a> - 2026-08-08</li>
  <li><a href="https://yyahn.com/wiki/Claude-Code/">Claude Code</a> - 2026-08-08</li>
  <li><a href="https://yyahn.com/wiki/Paper/Walker2022motornomativity/">Motornomativity: How Social Norms Hide a Major Public Health Hazard</a> - 2026-08-08</li>
  <li><a href="https://yyahn.com/wiki/Traffic-calming/">Traffic calming</a> - 2026-08-08</li>
  <li><a href="https://yyahn.com/wiki/Traffic-evaporation/">Traffic evaporation</a> - 2026-08-08</li>
  <li><a href="https://yyahn.com/wiki/Paper/Kojaku2024network/">Kojaku et al., &quot;Network community detection via neural embeddings&quot; (2024)</a> - 2026-08-01</li>
  <li><a href="https://yyahn.com/wiki/Protein-intake/">Protein intake</a> - 2026-08-01</li>
  <li><a href="https://yyahn.com/wiki/Claude-Code/How-I-Use-It/">Claude Code: How I Use It</a> - 2026-07-31</li>
  <li><a href="https://yyahn.com/wiki/Software/Ghostty/">Ghostty</a> - 2026-07-31</li>
  <li><a href="https://yyahn.com/wiki/Software/cmux/">cmux</a> - 2026-07-31</li>
  <li><a href="https://yyahn.com/wiki/Superwhisper/">Superwhisper</a> - 2026-07-31</li>
  <li><a href="https://yyahn.com/wiki/Software/foliate/">foliate</a> - 2026-07-30</li>
  <li><a href="https://yyahn.com/wiki/blog/20210703_연결망임베딩/">연결망 임베딩</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/YYiki/Examples/">YYiki: Examples</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Urban-design/Parking-destroys-cities/">Parking destroys cities</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Software/direnv/">direnv</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Python/Environment-setup/">Python environment setup</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Parking-minimum/">Parking minimum</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Memorization/">Memorization</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Machine-learning/Data-leakage/">Data leakage</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Julia/">Julia</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/How-to-study/">How to study</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/GitHub/Workflow/">GitHub Workflow</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Git/">Git</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Food/Carbonara/">Carbonara</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Cosine-similarity/">Cosine similarity</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Book/Strong-Towns/">Book: Strong Towns: A Bottom-Up Revolution to Rebuild American Prosperity</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Attention-mechanism/">Attention mechanism</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Peer-review/How-to-write-a-rebuttal/">How to write a rebuttal</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Research-advice/">Research advice</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Traffic-calming-works/">Traffic calming works</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/XY-problem/">XY problem</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/articles/20240315_peer_review_howto/">How to write a rebuttal</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/articles/20251209_letter_to_city_council_on_bike_infra/">A letter to city council: Inability to execute is not a justification for inaction</a> - 2026-07-28</li>
  <li><a href="https://yyahn.com/wiki/Atwood&#x27;s-law/">Atwood&#x27;s law</a> - 2026-07-27</li>
  <li><a href="https://yyahn.com/wiki/Python/uv/">uv (Python package manager)</a> - 2026-07-27</li>
  <li><a href="https://yyahn.com/wiki/Weisfeiler-Lehman-algorithm/">Weisfeiler-Lehman algorithm</a> - 2026-07-16</li>
  <li><a href="https://yyahn.com/wiki/Paper/Sengupta2025count/">Sengupta et al., &quot;Can Vision-Language Models Count? A Synthetic Benchmark and Analysis of Attention-Based Interventions&quot; (2025)</a> - 2026-07-16</li>
</ul>]]></content>
  </entry>
  
</feed>