<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1972227005391162265</id><updated>2026-06-08T17:47:25.746-07:00</updated><category term="law"/><category term="code"/><category term="links"/><category term="about"/><category term="misc"/><category term="copyright"/><category term="pd images"/><category term="music"/><category term="usgov"/><category term="twitter"/><category term="ai-coding"/><category term="expression"/><category term="google"/><category term="ai"/><category term="govforsv"/><category term="practice"/><category term="blogging"/><category term="canada"/><category term="kids"/><category term="library"/><category term="making"/><category term="politics"/><category term="recipes"/><category term="techiesingovt"/><category term="business"/><category term="drinks"/><category term="lazyweb"/><title type='text'>bricoleur</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.bricoleur.org/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>macgill</name><uri>http://www.blogger.com/profile/11740500682899250940</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>183</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-1617266907535993442</id><published>2026-06-02T12:29:00.996-07:00</published><updated>2026-06-02T12:29:34.446-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="law"/><title type='text'>Product Counselling in the AI Era</title><content type='html'>&lt;p&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; white-space: pre-wrap;&quot;&gt;AI is changing how products behave and how they are built. Product lawyering has to change too.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span id=&quot;docs-internal-guid-a4e2920c-7fff-52e6-4f41-c1f37298f0e8&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;a href=&quot;https://www.bricoleur.org/2020/04/product-counsel-origin-story.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Product counsel&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; have always needed to understand their products. What does the product do? What does it not do? How does it work? Two AI-driven changes complicate that job. First, many products now include LLM decision-making and output as product features, which can make product behavior unexpected. Second, product teams now use LLMs to build products, which can leave no one with a complete understanding of how the product works. Product counsel will need to adapt to both changes.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj_MMsq0Rg_yfu04OhcDLt2Hr0ULK7WPc8_t6iinzSS97WABODbBluqtk6d6XtYoANOPmgyE50_ztX8aDT3838kBp_ZHXwZ1cBph1gimhxqe_FuAB9c3bEort3kcEi-UUGgvJZFxGLZbEr3RNHt4hcLG5xlsUMXE8bWJU_gaGYVQj12Nnu7_Yy_IfUCUTlk&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;376&quot; data-original-width=&quot;831&quot; height=&quot;145&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj_MMsq0Rg_yfu04OhcDLt2Hr0ULK7WPc8_t6iinzSS97WABODbBluqtk6d6XtYoANOPmgyE50_ztX8aDT3838kBp_ZHXwZ1cBph1gimhxqe_FuAB9c3bEort3kcEi-UUGgvJZFxGLZbEr3RNHt4hcLG5xlsUMXE8bWJU_gaGYVQj12Nnu7_Yy_IfUCUTlk&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: x-small;&quot;&gt;From United Editors Encyclopedia and Dictionary: A Library of Universal Knowledge and an &lt;br /&gt;Unabridged Dictionary of the English Language, United Editors Association, 1907.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;LLMs as Product Features&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;The first major change is that some products now incorporate LLM responses. LLMs differ from most previous computer algorithms in the extent to which non-determinism is &lt;/span&gt;&lt;a href=&quot;https://medium.com/@Micheal-Lanham/from-fixed-to-fluid-the-evolution-from-deterministic-code-to-stochastic-ai-5883828dfcb8&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;both important and valuable&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. For product-counsel purposes, the key point is not mathematical randomness but operational unpredictability. The same or similar inputs may produce different outputs, and even great engineers cannot guarantee in advance what the model will say.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Chat interfaces, such as ChatGPT or Claude, provide the clearest examples. In the days of deterministic software, a user who typed “tell me a story” might get a predetermined response, perhaps &lt;/span&gt;&lt;a href=&quot;https://www.gutenberg.org/cache/epub/2591/pg2591-images.html#link2H_4_0027&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Rumpelstiltskin&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; or a random choice from a fixed set of stories. Prompt Claude or ChatGPT with “tell me a story,” and you will get a different story each time.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;blockquote style=&quot;border-color: currentcolor; border-image: initial; border-style: none; border-width: medium; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;&quot;&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; white-space: pre-wrap;&quot;&gt;There was once a lighthouse keeper named Maren who lived at the edge of a crumbling cliff on the northern coast. Every evening, she climbed the spiral stairs and lit the lamp, and every morning, she extinguished it. The rhythm of her days was as steady as the tide. …&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;There was once a lighthouse keeper named Maren who lived on a rocky island so small you could walk its entire shore in seven minutes. She had no boat, no radio, and no particular desire for either. Supplies came once a month by ferry, and the ferryman never stayed longer than it took to unload the crates. …&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;There was once a lighthouse keeper named Maren who lived on a rock so small it didn&#39;t appear on any map. Every evening she climbed the iron stairs, lit the lamp, and watched the beam sweep across the water like a slow, bright hand waving to no one. …&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;A non-LLM product might convert “Tell me a story,” “Spin me a yarn,” “Please can you tell me a story,” or even “Tell me a story” (with two spaces before “story”) into the same story query. An LLM will treat all of those prompts as requests for a story, but small wording changes will still change the output.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;blockquote style=&quot;border-color: currentcolor; border-image: initial; border-style: none; border-width: medium; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;&quot;&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; white-space: pre-wrap;&quot;&gt;“Tell me a story”&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;There was once a lighthouse keeper named Maren who lived on a narrow spit of rock three miles off the coast. Every evening, she climbed the iron spiral to the lamp room, lit the wick, and watched the beam sweep out across the dark water like a slow, bright arm reaching for something it could never quite hold. &lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;… &lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Years passed. The coast guard automated the light. They told Maren she could leave. She stood at the door of the lighthouse with a bag over her shoulder and Compass at her heel, looked back at the beam still turning without her, and felt something she hadn&#39;t expected: not sadness, but gratitude — for the years of dark water, and the one bright thing that had drifted out of it.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;She walked to the ferry. Compass walked beside her. Neither of them looked back again.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;“Spin me a yarn”&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;A lighthouse keeper named Margot had one job: keep the light burning. Simple enough, until the night the fog rolled in and the light started answering back. &lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;…&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Margot laughed, alone in her tower above the black Atlantic, and kept the light on a little longer that night. Some conversations are worth the overtime.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;“Please can you tell me a story”&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;There was once a lighthouse keeper named Maren who lived on a narrow spit of rock far from the mainland. Every evening, she climbed the iron spiral staircase to light the lamp, and every morning she climbed again to snuff it out. The rhythm of it — up and down, light and dark — had become the pulse of her life. &lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;…&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;The storm broke by morning. Maren watched his ferry pull away, the case tucked safely under his arm. She climbed the stairs and snuffed the lamp, same as always — but the tower didn&#39;t feel quite so quiet anymore.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;“Tell me a&amp;nbsp; story”&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;There was once a lighthouse keeper named Maren who lived at the edge of a rocky coast where the sea never seemed to rest. Every night, she climbed the spiral stairs and lit the lamp, watching its beam sweep across the dark water like a slow, golden arm reaching for something it could never quite hold. &lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;…&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 8pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;“Because,&quot; she said, lowering her arms at last, &quot;you can&#39;t save anyone from where it&#39;s comfortable.&quot;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;The same or very similar inputs can produce meaningfully different outputs. In these examples, the material difference lies in the emotional resonance of the story. In your product, the difference could create a security risk or legal jeopardy. In a customer-support product, the system might promise a refund. In a health product, it might give inaccurate medical-sounding advice. In a copyright-sensitive product, it might summarize a book or reproduce too much of it.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;AI engineers use many techniques to make products with LLM features &lt;/span&gt;&lt;a href=&quot;https://www.oreilly.com/library/view/ai-engineering/9781098166298/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;behave more like traditional software&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. These techniques can reduce risk, sometimes substantially, but they do not provide the same &lt;/span&gt;&lt;a href=&quot;https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;hard guarantees as traditional rule-based systems&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. It remains unclear whether that will change.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;LLMs as Product Builders&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;The second major change is that teams now use LLMs to build products. More and more product-development work is being done by &lt;/span&gt;&lt;a href=&quot;https://research.google/blog/ai-in-software-engineering-at-google-progress-and-the-path-ahead/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;LLMs rather than humans&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. The approaches vary, but they all sit on a continuum: each transfers more or less software implementation from a human to an LLM.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Ask &lt;/span&gt;&lt;a href=&quot;https://antigravity.google/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Antigravity&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; to create an online store, and the LLM will make many implementation decisions. Depending on the human&#39;s involvement and the tool&#39;s expressiveness, the person “coding” the product may not know those implementation details. What user information does the product receive or store? For how long? Can two users have the same username? Does the product verify a user&#39;s email address? Many such decisions are being “made” by the LLM. Code review may let an engineer peer behind the curtain, but code can be complex, and reviews may get less thorough as LLMs get better at coding.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Each change radically alters the role of lawyers who work with products.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;An Example from the Golden Age: Google Book Search&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;As &lt;/span&gt;&lt;a href=&quot;https://books.google.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Google Book Search&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&#39;s product counsel, it was my job to make the world&#39;s books searchable legally. Copyright law was central to that work. To understand which books were relevant to a query, we needed to copy them. That meant scanning books in many of the world&#39;s great libraries. That scanning created a copy, which implicated copyright law, so we had to design a product that stayed within the bounds of &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Fair_use&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;fair use&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; both in how it treated those copies and in what it showed users.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Even if copyright law had not existed, we wanted to help readers find authors&#39; books and hoped to help, not hurt, book sales. Our solution was a deterministic algorithm that showed a snippet from a book in response to a query. Because we did not want search to substitute for getting and reading the book, we took steps to keep users from stringing snippets together. The code could be guaranteed to follow the rules we established, and the engineers who wrote it knew it intimately. They could answer my questions. Google was sued over Book Search, and &lt;/span&gt;&lt;a href=&quot;https://www.law.berkeley.edu/wp-content/uploads/2016/05/Authors-Guild-v-Google-804_F.3d_202.pdf&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;judges agreed that it was a fair use&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; of the books based on those design decisions.&lt;/span&gt;&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;img height=&quot;209&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjmMR90pJqfily1UOBAgCFn4ERPz1aAQ3rftrM3MpASNth-lXXHzAtk3I6PIerNY0Y_-uE8z276zceXlztQIkS3OmGdSy5Dbf1HFSPW0AYOn75UedtF7cwn3-eb8C9rxIu77vzJOyOfS25Ujvl9y23c59urMD26qfn0jaUpx2OUSME4lmgzMqfKqo8u8k7I=w492-h209&quot; style=&quot;margin-left: auto; margin-right: auto; margin-top: 0px;&quot; width=&quot;492&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: x-small;&quot;&gt;A &quot;snippet&quot; from a book in Book Search.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;OpenAI’s product counsel have a harder job. OpenAI also makes copies in order for ChatGPT to be able to respond to queries, but it is much harder for its lawyers and engineers to design its responses because they are non-deterministic.* Telling an LLM to “never return more than fifty words from a passage, never return two fifty-word chunks from any one page, and never return more than five passages per book” cannot be guaranteed the same way we could guarantee rules in Google Book Search. Indeed, in the New York Times lawsuit against OpenAI, the Times submitted an &lt;/span&gt;&lt;a href=&quot;https://nytco-assets.nytimes.com/2023/12/Lawsuit-Document-dkt-1-68-Ex-J.pdf&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;entire exhibit&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; that purported to show ChatGPT reproducing large portions of Times content as part of its argument that OpenAI violated copyright law. Instructions to an LLM are weaker than hard guarantees. In adversarial settings like litigation, that difference can matter.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Some AGI optimists who believe AI will soon have essentially infinite intelligence will argue that LLMs will become good enough to take law into account in their responses. Or perhaps, as LLMs get better at mimicking human writing about copyright law, the product itself could respond in ways that mimic how a human might apply copyright law in each response. That would allow product counsel to shift from establishing product rules to issuing simpler behavioral statements, such as “don&#39;t violate relevant law.” Anthropic already uses what it calls a “&lt;/span&gt;&lt;a href=&quot;https://www.anthropic.com/constitution&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;constitutional&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;” approach, based on broad statements, to address many model-behavior issues.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;I am skeptical that “future AI will solve all problems.” Still, LLMs might let product counsel add nuance to product design. In Google Book Search, for example, we suppressed snippets for all books we believed contained short-chunk content, such as dictionaries, so users could not avoid buying those books by running searches on our site. That was a coarse determination. Perhaps LLMs would have allowed finer-grained determinations closer to our real intent: give searchers enough to know that a book would be useful, but not enough to substitute for getting the book. Rule-based algorithms struggle with that line. Even current LLMs might do better much of the time.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;LLM-Generated Products&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;The trend in product development is toward AI-written code. Future product counsel may no longer have access to smart humans with deep knowledge of the code. Or they may have access to smart humans with less deep knowledge of it.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;For example, while developing a &lt;/span&gt;&lt;a href=&quot;https://github.com/amac0/BusWatch&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;watch interface for local London bus schedules&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, I wanted to show bus times for stops near a user&#39;s location. Using Claude Code, I “wrote” the application in a coding language and framework I had never used. I “developed” a working product, creatively named “BusWatch,” and shipped it without ever looking at the code. From using the product, I knew that it correctly displayed bus stops and times based on my location. I had educated guesses about how it did that, but no guarantees.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;How a product works often matters to whether it is legal (or ethical). In BusWatch, the user&#39;s location is private information. How did my product get that information? How granular was it? With whom did it share the information? What other information was linked to it? Was the information stored? The creator of a product built by an LLM coding agent may have limited knowledge of those answers, or none at all.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;BusWatch sits at the extreme end of the LLM-coding continuum, but every point along that continuum moves product development away from deep engineering knowledge of how a product works. As LLM-assisted development spreads inside companies, teams may produce more code than traditional review processes can absorb, and fewer people may have a full mental model of what was built.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;This makes product counsel&#39;s job harder. At Google, I could ask the product manager and engineers to test my assumptions about how a product worked. The engineer who wrote the location code could have walked me through granularity and user consent. The PM could have confirmed with the team that the product did not store location or share it with anyone other than the bus-times supplier. With LLM coding tools, there may be no person with mastery of any part of the written code. That may remain true even if companies still require code review, documentation review, privacy review, or other reviews. Additionally, LLM-coded projects may shorten the time that product counsel have to review as products move from idea to prototype to launch on a compressed timeframe.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;On the other hand, code is now more transparent to the average lawyer than it has ever been. An LLM coding agent could digest the entire BusWatch codebase in its context window and answer questions about it. Despite the risk of errors, the ability to interrogate code directly gives product counsel a tantalizing new tool. A lawyer who cannot read a codebase can now ask an LLM to explain data flows, identify API calls, summarize permissions, or generate tests for risky scenarios. An LLM with specific instructions about what to look for could helpfully summarize technical and legal intersection points. Those answers need verification, but they change the lawyer&#39;s practical relationship to products.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Even more transformatively, product counsel could become coauthors of code, shaping products so they achieve their missions while complying with law. Engineer time would no longer be the main bottleneck to that kind of product reworking.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Testing and Evaluation&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Testing and evaluation offer even stronger answers. Product creators face the same problem as product counsel: they need to ensure that their products do what they intend. Between LLM errors in code interrogation, the relative opacity of LLMs used in products, and the non-deterministic parts of modern products, it is harder than ever to say reliably what a product does and does not do. Software engineers are putting more emphasis on testing and evaluation. Given the stakes of many product-counsel decisions, product counsel should too.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Many coding frameworks for LLM coding agents, including &lt;/span&gt;&lt;a href=&quot;https://github.com/obra/superpowers&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Jesse Vincent&#39;s excellent Superpowers framework&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, rely on testing-centered methodologies. These frameworks emphasize &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Test-driven_development&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;test-driven development&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, an older software-development methodology in which tests are written before code and code is written to pass the tests. In that process, tests stand in for specifications. Whether the code has been successfully developed depends on whether it passes the tests.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Product counsel can and should think about how to test legal constraints as applied to the products they advise. In BusWatch, for example, tests with network monitoring could verify that, at least in the tested situations, the product sends network traffic only to known destinations. Similarly, tests specifying the expected location data could verify what information the product collects. LLMs can help generate test data and test pathways, which may make this kind of testing easier. But product counsel should be careful about delegating test generation entirely to LLMs; otherwise they may recreate the same LLM problems they were trying to solve.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;AI engineers are also increasingly using evals, another kind of product analysis, for products with LLM features.&amp;nbsp; Whereas tests ensure product guarantees are met, evals are more useful to add qualitative assessments. In a recipe product, for example, tests might ensure that the &lt;/span&gt;&lt;a href=&quot;https://www.bbc.co.uk/news/articles/cd11gzejgz4o&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;recipes don’t contain the words “glue”&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; or “arsenic” while evals might evaluate recipe healthiness. Tests either pass or fail. Evals could help rate the recipes and determine whether a new model actually improves the product. Before LLMs, a designated group of people or a subset of users often performed evals, and product teams integrated those results into release processes. Now LLMs often judge evals, so a human-specified goal gets scored by an LLM. Yes, it is turtles all the way &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Turtles_all_the_way_down&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;down&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;There Was No Golden Age&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;I am a big fan of humans, but some of the problems I identify here also existed in the golden age of artisan hand-coded products. Internet history is littered with products that broke the law. Some came from companies that did not care what the law was, or knew they were operating illegally. I assume my readers would not do that.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Other products broke the law because the engineers did not quite understand what their products did, or because the lawyers did not understand the products well enough to advise properly. Misunderstandings between human engineers and lawyers happen. Engineers build products with unintended consequences. Engineers and lawyers make mistakes. Humans forget things. All of that happened in deterministic software written by well-intentioned humans.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Products with non-deterministic features and products built with LLM coding agents change the types and frequency of these problems. They do not create the problems from scratch. There was no golden age of product counseling in which none of them existed.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;What Product Counsel Should Do Now&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Changes brought by more powerful LLMs do not eliminate product counsel&#39;s traditional job. Product counsel still need to understand what the product does, what data it uses, what rights it implicates, and what harms it may cause. But LLMs in products and LLMs used to create products make product behavior harder to predict and product implementation harder to understand.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Product counsel should therefore use tests, evals, and ongoing monitoring to understand product behavior and guard against risk. They should also use LLM tools themselves to take a more hands-on approach to understanding products and to have better conversations with product teams about how those products work. These approaches will make product counsel more empowered and more tightly integrated into product teams. They may also give product counsel more room to think creatively about how to deliver on a product&#39;s mission without increasing legal risk. &lt;/span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;* I’m not engaging here with the separate interesting and important questions of whether ChatGPT is legal or good, or who should win the various legal challenges to LLMs and chatbots.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/1617266907535993442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/1617266907535993442' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/1617266907535993442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/1617266907535993442'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2026/06/product-counselling-in-ai-era.html' title='Product Counselling in the AI Era'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEj_MMsq0Rg_yfu04OhcDLt2Hr0ULK7WPc8_t6iinzSS97WABODbBluqtk6d6XtYoANOPmgyE50_ztX8aDT3838kBp_ZHXwZ1cBph1gimhxqe_FuAB9c3bEort3kcEi-UUGgvJZFxGLZbEr3RNHt4hcLG5xlsUMXE8bWJU_gaGYVQj12Nnu7_Yy_IfUCUTlk=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-9087066212766221107</id><published>2026-05-29T05:56:20.951-07:00</published><updated>2026-05-29T05:56:20.951-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="misc"/><title type='text'>Safari + NIKKOR Z 70-200mm f/2.8 VR S II</title><content type='html'>&lt;p&gt;If you are considering a new lens for taking pictures on safari, I highly recommend the new NIKKOR Z 70-200mm. I took it along with a 400mm lens and found both to be very useful. The detail, bokeh and colours from the 70-200mm were exceptional. Some examples are below (you can also look at bigger images in an &lt;a href=&quot;https://photos.app.goo.gl/r8a1Z9MgUnKGLAfq5&quot;&gt;album&lt;/a&gt;).&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7_7XRRkNPHFo5zbu7jkRoau4sCrsxtXpo0aFOCjK8t5ED0Uct2OeWIGQe2juGqfOK04SuSGQ_R0T79NsPHxmBBBW-i7r4rLhXFTQjBMZ8SHp0YI64UlZS44t_H1ZPyptUzoThRZW5_vC2urX83TT3VtQ8SLYCKPQU4cNhr4Ou3ViMAIGBZqfyAZrGnA46/s4898/AM1_9264.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7_7XRRkNPHFo5zbu7jkRoau4sCrsxtXpo0aFOCjK8t5ED0Uct2OeWIGQe2juGqfOK04SuSGQ_R0T79NsPHxmBBBW-i7r4rLhXFTQjBMZ8SHp0YI64UlZS44t_H1ZPyptUzoThRZW5_vC2urX83TT3VtQ8SLYCKPQU4cNhr4Ou3ViMAIGBZqfyAZrGnA46/s4898/AM1_9264.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC4WTfhtWYk8jWxAqNuX4nmZhlduMfbf3c_6nYgOxRFhC-qFQqe6gyt1zviQzkDYcOHTNp9stK4WWppFqHxKf7q_JjtwWdW5Spv0_40ZP9FlvgIx9vpFWX7VNPfh-sDlIPxkv8PFJCZBX1_lFjL73kidqwoUqS1shv59Q4WX7MAxyf-Z4kLAO4N2W9fMPf/s3588/AM1_9616.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC4WTfhtWYk8jWxAqNuX4nmZhlduMfbf3c_6nYgOxRFhC-qFQqe6gyt1zviQzkDYcOHTNp9stK4WWppFqHxKf7q_JjtwWdW5Spv0_40ZP9FlvgIx9vpFWX7VNPfh-sDlIPxkv8PFJCZBX1_lFjL73kidqwoUqS1shv59Q4WX7MAxyf-Z4kLAO4N2W9fMPf/s3588/AM1_9616.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8HxQnZiFez_K2On0fVJ8H2OK46pRaq2TdWnKSPEZUGZWPW_3Cw9QXQCRkcQjxmnGAD4DW1Um9MqghA3t8_PDRe3EE8f-X_3ukVustLluYbuQyqpdhvasE-IuqkV906eDxDEyAWI8e0mhV5R5XNKzPV2U48wkKlUoYO7kw7ZV4B8DdSBDoIgM14XQcGxNr/s4898/AM1_1773.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;3265&quot; data-original-width=&quot;4898&quot; height=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8HxQnZiFez_K2On0fVJ8H2OK46pRaq2TdWnKSPEZUGZWPW_3Cw9QXQCRkcQjxmnGAD4DW1Um9MqghA3t8_PDRe3EE8f-X_3ukVustLluYbuQyqpdhvasE-IuqkV906eDxDEyAWI8e0mhV5R5XNKzPV2U48wkKlUoYO7kw7ZV4B8DdSBDoIgM14XQcGxNr/w640-h426/AM1_1773.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;3588&quot; data-original-width=&quot;2691&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC4WTfhtWYk8jWxAqNuX4nmZhlduMfbf3c_6nYgOxRFhC-qFQqe6gyt1zviQzkDYcOHTNp9stK4WWppFqHxKf7q_JjtwWdW5Spv0_40ZP9FlvgIx9vpFWX7VNPfh-sDlIPxkv8PFJCZBX1_lFjL73kidqwoUqS1shv59Q4WX7MAxyf-Z4kLAO4N2W9fMPf/w480-h640/AM1_9616.JPG&quot; width=&quot;480&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;3265&quot; data-original-width=&quot;4898&quot; height=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7_7XRRkNPHFo5zbu7jkRoau4sCrsxtXpo0aFOCjK8t5ED0Uct2OeWIGQe2juGqfOK04SuSGQ_R0T79NsPHxmBBBW-i7r4rLhXFTQjBMZ8SHp0YI64UlZS44t_H1ZPyptUzoThRZW5_vC2urX83TT3VtQ8SLYCKPQU4cNhr4Ou3ViMAIGBZqfyAZrGnA46/w640-h426/AM1_9264.JPG&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVmsQrMycsHL8s8HaSHPZyCMNyJl-uVTKQfsV_RSA9K5t7fXSrHvi897zAz0JoQIAGphzlH5yu2rDbybit6FUM15N2Aa5SXwbLQH_CxYvgpIIJDQcFNmWboMnyyfp_FhNxtNqecz145GwDh3Io19KSl_7G9xJ_B0BdeR1-tBZGVRGlX4BAb7RWFqyWF9kT/s4898/AM1_5502.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;3265&quot; data-original-width=&quot;4898&quot; height=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVmsQrMycsHL8s8HaSHPZyCMNyJl-uVTKQfsV_RSA9K5t7fXSrHvi897zAz0JoQIAGphzlH5yu2rDbybit6FUM15N2Aa5SXwbLQH_CxYvgpIIJDQcFNmWboMnyyfp_FhNxtNqecz145GwDh3Io19KSl_7G9xJ_B0BdeR1-tBZGVRGlX4BAb7RWFqyWF9kT/w640-h426/AM1_5502.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdFeJ7WtAIrUkpLF6elcTW91Wq5ARLcGkDzomiRebHcske1vbhMLBVEQ1udXTNDWKSE6YP22iCehzSo-de3hBkZh3POWxV6UsOO5wXUvEFUf3Ekf5D4zsjfue68pffNR7ad9VB8ct2YXMZ48EqAalnNySMWLZmXGQ5u1pl4lP9pld4fEE5rXJUlPsvHzs0/s4542/AM1_1226.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;3028&quot; data-original-width=&quot;4542&quot; height=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdFeJ7WtAIrUkpLF6elcTW91Wq5ARLcGkDzomiRebHcske1vbhMLBVEQ1udXTNDWKSE6YP22iCehzSo-de3hBkZh3POWxV6UsOO5wXUvEFUf3Ekf5D4zsjfue68pffNR7ad9VB8ct2YXMZ48EqAalnNySMWLZmXGQ5u1pl4lP9pld4fEE5rXJUlPsvHzs0/w640-h426/AM1_1226.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0MRDJQcWoHJg1WIkKVAi5QIisMQGTfnPnyZ6miBh9jBDuRDuQJGplvG6HD0jgiLXtvthPw1OK4kzWXtTTXOv-qC4Bd-hnZKvnvBM4JeJtjsSHx6W48f1JE7uSEZSansK273ISOBoa0_Mw7COspFlvesDXdVW2-0p7CvcaYlYrymRmijOhku0ZYEpr5yzN/s4898/AM1_3552.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;3265&quot; data-original-width=&quot;4898&quot; height=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0MRDJQcWoHJg1WIkKVAi5QIisMQGTfnPnyZ6miBh9jBDuRDuQJGplvG6HD0jgiLXtvthPw1OK4kzWXtTTXOv-qC4Bd-hnZKvnvBM4JeJtjsSHx6W48f1JE7uSEZSansK273ISOBoa0_Mw7COspFlvesDXdVW2-0p7CvcaYlYrymRmijOhku0ZYEpr5yzN/w640-h426/AM1_3552.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5-OecnQ1opNYZh4OdVNvQM_Qke_W1Pl4ClGva575j6OplZfggy9iuXxL_kdNAix_sf6xD9tsDDdh0ECeEJEUNFRLGcqOeoEc370PBx7IFat8wHzpnd3x_8Ja3Y7go0OmADWFtdmh-MvIbMmYvl8KKyXclt8RfPcJ2LaQZsy876syOy7_TBTDIGMycZIkm/s2624/AM1_3740.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1968&quot; data-original-width=&quot;2624&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5-OecnQ1opNYZh4OdVNvQM_Qke_W1Pl4ClGva575j6OplZfggy9iuXxL_kdNAix_sf6xD9tsDDdh0ECeEJEUNFRLGcqOeoEc370PBx7IFat8wHzpnd3x_8Ja3Y7go0OmADWFtdmh-MvIbMmYvl8KKyXclt8RfPcJ2LaQZsy876syOy7_TBTDIGMycZIkm/w640-h480/AM1_3740.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/9087066212766221107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/9087066212766221107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/9087066212766221107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/9087066212766221107'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2026/05/safari-nikkor-z-70-200mm-f28-vr-s-ii.html' title='Safari + NIKKOR Z 70-200mm f/2.8 VR S II'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8HxQnZiFez_K2On0fVJ8H2OK46pRaq2TdWnKSPEZUGZWPW_3Cw9QXQCRkcQjxmnGAD4DW1Um9MqghA3t8_PDRe3EE8f-X_3ukVustLluYbuQyqpdhvasE-IuqkV906eDxDEyAWI8e0mhV5R5XNKzPV2U48wkKlUoYO7kw7ZV4B8DdSBDoIgM14XQcGxNr/s72-w640-h426-c/AM1_1773.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-2137107667000862706</id><published>2026-05-27T02:56:13.062-07:00</published><updated>2026-05-27T03:07:56.084-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="ai-coding"/><category scheme="http://www.blogger.com/atom/ns#" term="code"/><title type='text'>My Current AI Codegen Setup</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;&lt;span style=&quot;font-size: 11pt; white-space: pre-wrap;&quot;&gt;This is as of May 2026, it’ll likely change.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span id=&quot;docs-internal-guid-ff0ffcf2-7fff-1f2a-df4e-168273fbb1e0&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Models:&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; I mostly use the Anthropic models (a mix of&lt;/span&gt;&lt;a href=&quot;https://www.anthropic.com/claude/opus&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;opus&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;https://www.anthropic.com/claude/sonnet&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;sonnet&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; and&lt;/span&gt;&lt;a href=&quot;https://www.anthropic.com/claude/haiku&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;haiku&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;). At this point, that&#39;s partly because I also use their harnesses/coding agents and have a bit more trust in them as a company. That said, I&#39;m trying to ensure my development environment is able to switch model providers easily as&lt;/span&gt;&lt;a href=&quot;https://openai.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;OpenAI&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; and &lt;/span&gt;&lt;a href=&quot;https://gemini.google.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Google&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&#39;s models seem to be in the same ballpark of functionality and the open models are coming on strong. Exceptions to this are for images (&lt;/span&gt;&lt;a href=&quot;https://gemini.google.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Gemini&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;amp;&lt;/span&gt;&lt;a href=&quot;https://chatgpt.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;ChatGPT&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;). I currently don&#39;t do much video beyond playing around.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Harness:&lt;/span&gt;&lt;a href=&quot;https://code.claude.com/docs/en/overview&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Claude Code&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, mostly because it has consistently led the way in useful innovation. I&#39;m looking to do more experiments with&lt;/span&gt;&lt;a href=&quot;https://openai.com/codex/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Codex&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. I&#39;m also curious about the tools built for specific environments, like&lt;/span&gt;&lt;a href=&quot;https://aistudio.google.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Google AI Studio&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. I use lots of&lt;/span&gt;&lt;a href=&quot;https://code.claude.com/docs/en/sub-agents&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;subagents&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; and sometimes (very rarely) have multiple agents working the same codebase.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Permissions:&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; This deserves its own category because of how important it is. I use&lt;/span&gt;&lt;a href=&quot;https://code.claude.com/docs/en/iam#permission-modes&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;--dangerously-skip-permissions&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; when I am running in a container (see environments below). I also am playing around with the &quot;&lt;/span&gt;&lt;a href=&quot;https://code.claude.com/docs/en/auto-mode-config&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;auto&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot; permission mode. In each case, it is hard to overstate how different it is to the regular approval mode. The best analogy I can come up with is the difference between bluetooth and wired headphones. Wires don&#39;t seem very inconvenient but once you start using bluetooth you end up using audio on your phone a TON more. YOLO mode completely changed how I use AI codegen allowing for a lot more evaluation of results rather than the process to get them.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Skills:&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; I am consistently shocked by how useful&lt;/span&gt;&lt;a href=&quot;https://github.com/obra/superpowers&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Jesse Vincent&#39;s Superpowers&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; is. I need to do some experiments without it as it is so key to my coding workflow that I&#39;ve lost any comparison. I also use a bunch of&lt;/span&gt;&lt;a href=&quot;https://2389.ai/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2389&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&#39;s products, including&lt;/span&gt;&lt;a href=&quot;https://github.com/2389-research/simmer&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Simmer&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;https://github.com/2389-research/scenario-testing&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Scenario Testing&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;,&lt;/span&gt;&lt;a href=&quot;https://github.com/2389-research/review-squad&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Review Squad&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; and&lt;/span&gt;&lt;a href=&quot;https://github.com/2389-research/fresh-eyes-review&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Fresh Eyes Review&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. I keep meaning to try their skills for giving agents&lt;/span&gt;&lt;a href=&quot;https://github.com/2389-research/journal-mcp&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;journals&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; and&lt;/span&gt;&lt;a href=&quot;https://github.com/2389-research/agent-drugs&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;drugs&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; (yes, you read that right).&lt;/span&gt;&lt;a href=&quot;https://www.roborev.io/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Roborev&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; is my core catch all for reviews. And &lt;/span&gt;&lt;a href=&quot;https://github.com/obra/the-elements-of-style&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Jesse’s writing skill&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; that puts Strunk &amp;amp; White in context is pretty great.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhM88XbLyGg840bpsmKVpxR4FlJWjdZeCCuB1xygG60SLfwnEVqgFqR2mCoJv-J2DiKJzYFbBhwj_c6-sdr8efIkTx2EAeJh1nmgPd8uEpEO2mPRCRH6b2dfWBPl06WFZeKbsGCnovHjDPLpYG7FfBHC7Vw3wyzrVu44sgNVrbbpc5WWWab2aCvg3GeP971&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1124&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhM88XbLyGg840bpsmKVpxR4FlJWjdZeCCuB1xygG60SLfwnEVqgFqR2mCoJv-J2DiKJzYFbBhwj_c6-sdr8efIkTx2EAeJh1nmgPd8uEpEO2mPRCRH6b2dfWBPl06WFZeKbsGCnovHjDPLpYG7FfBHC7Vw3wyzrVu44sgNVrbbpc5WWWab2aCvg3GeP971&quot; width=&quot;281&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: x-small;&quot;&gt;Mechanical Bread Kneader&amp;nbsp;&lt;br /&gt;&lt;i&gt;The Encyclopaedia Britannica&lt;/i&gt;. United Kingdom, 1875, p. 257.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Git:&lt;/span&gt;&lt;a href=&quot;https://git-scm.com/&quot; style=&quot;font-family: inherit; text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Git&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: inherit; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; is key. Knowing how git is structured and how to ask your agent to do various things in git is very important. The build, test and revert to before the build cycle until the agent gets it right is a very good pattern.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Agent &amp;amp; Git Hooks:&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; The various skills use a variety of&lt;/span&gt;&lt;a href=&quot;https://code.claude.com/docs/en/hooks&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;session-start hooks&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. I also use&lt;/span&gt;&lt;a href=&quot;https://www.roborev.io/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;roborev&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; on&lt;/span&gt;&lt;a href=&quot;https://git-scm.com/docs/githooks#_post_commit&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;git post-commit&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. I think there is a lot more power here that I am not using well.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Claude.md/Agents.md:&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; Mine is &lt;/span&gt;&lt;a href=&quot;https://github.com/amac0/miscpubliccode/blob/master/CLAUDE.md&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Claude.md&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. It is key to review this over time.&lt;/span&gt;&lt;a href=&quot;https://github.com/obra/dotfiles/blob/main/.claude/CLAUDE.md&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Jesse Vincent&#39;s&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; and&lt;/span&gt;&lt;a href=&quot;https://github.com/harperreed/dotfiles/blob/master/.claude/CLAUDE.md&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Harper Reed&#39;s&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; are good places to start.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;After-session review:&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; I use&lt;/span&gt;&lt;a href=&quot;https://code.claude.com/docs/en/slash-commands&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;/insights&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; and also ask specific questions to figure out how things could have gone better. Make sure you have “&quot;cleanupPeriodDays&quot;: 999” set in your Claude settings.json file to keep the logs longer. My environment script is a good example of the outcome (see below).&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Environment:&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; Depending on what I am doing, I&#39;m either on my local host system (a&lt;/span&gt;&lt;a href=&quot;https://frame.work/products/laptop16-diy-amd-7040&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Framework 16&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; running&lt;/span&gt;&lt;a href=&quot;https://fedoraproject.org/silverblue/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Fedora Silverblue&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;) when rarely absolutely necessary, in a&lt;/span&gt;&lt;a href=&quot;https://containertoolbx.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;toolbox&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; when I am doing very limited scope work, or, almost always, in a container managed by a custom version of&lt;/span&gt;&lt;a href=&quot;https://github.com/obra/packnplay&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;packnplay&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. Running in multiple, weird environments confuses agents so I have a script and companion skill that tells the agent what it is running in and how to do some basic things (like which port is forwarded for me to access whatever web server it runs).&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Launching:&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; I use some combination of&lt;/span&gt;&lt;a href=&quot;https://railway.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Railway&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; and&lt;/span&gt;&lt;a href=&quot;https://pages.github.com/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: black; font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-size: 11pt; font-variant: normal; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Github pages&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. Both are relatively easy for an agent to navigate.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Logs:&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; I don&#39;t currently have a good system for monitoring logs and ensuring that agents have easy access to logs for debugging. It seems like that would be a good add.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;I’d be interested in things you think I’m doing wrong or other peoples’ setups.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/2137107667000862706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/2137107667000862706' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/2137107667000862706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/2137107667000862706'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2026/05/my-current-ai-codegen-setup.html' title='My Current AI Codegen Setup'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhM88XbLyGg840bpsmKVpxR4FlJWjdZeCCuB1xygG60SLfwnEVqgFqR2mCoJv-J2DiKJzYFbBhwj_c6-sdr8efIkTx2EAeJh1nmgPd8uEpEO2mPRCRH6b2dfWBPl06WFZeKbsGCnovHjDPLpYG7FfBHC7Vw3wyzrVu44sgNVrbbpc5WWWab2aCvg3GeP971=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-9113449995772708688</id><published>2026-01-09T06:51:00.000-08:00</published><updated>2026-01-09T07:15:07.441-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai-coding"/><category scheme="http://www.blogger.com/atom/ns#" term="code"/><title type='text'>Barrel of Suck: A bot to surface relevant old Suck.com articles</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Finally finished up a bot for posting an article from Suck.com everyday through &lt;a href=&quot;https://mastodon.social/&quot;&gt;Mastodon&lt;/a&gt; and &lt;a href=&quot;https://bsky.app/&quot;&gt;BlueSky&lt;/a&gt; (I would have done &lt;a href=&quot;https://www.threads.com/&quot;&gt;Threads&lt;/a&gt; too, but I can&#39;t seem to get Threads to give me a working API access token).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;You are probably too young to know Suck.com.&amp;nbsp; It was a wonderful, and incredibly influential, early web magazine/blog/newsletter that started publishing in 1995 and closed in June 2001. It had wonderful writers and illustrators, an often funny but always intelligent point of view, and did a great job skewering the earlyish Internet business world that I was a part of.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6eddCK_5TZv7KIVS-TTXSL12l-4d4de41UMrsbmGGjdgH-ITO8OsO_9sM-ExudDnVHLZcsHhzA0fkbLL0LOBstyWLW8AEqe9i4cakNMoNdVcEdqjyR3gLAWMOKIJhVaRei8_xW53NozhGRyposv0znWBo1gRhfaY0XclXXQfsBWhNOxn4gn8krvMPZ06o/s1241/FooterSuck.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;136&quot; data-original-width=&quot;1241&quot; height=&quot;67&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6eddCK_5TZv7KIVS-TTXSL12l-4d4de41UMrsbmGGjdgH-ITO8OsO_9sM-ExudDnVHLZcsHhzA0fkbLL0LOBstyWLW8AEqe9i4cakNMoNdVcEdqjyR3gLAWMOKIJhVaRei8_xW53NozhGRyposv0znWBo1gRhfaY0XclXXQfsBWhNOxn4gn8krvMPZ06o/w611-h67/FooterSuck.png&quot; width=&quot;611&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;https://waxy.org/2019/01/suck-com-gone-for-good-for-good/&quot; style=&quot;font-family: inherit;&quot;&gt;Andy Baio wrote a good requiem for Suck&lt;/a&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; that includes this list of other summaries:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: inherit; margin-bottom: 1.5em; margin-left: auto; margin-right: auto; max-width: 800px;&quot;&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&quot;For retrospectives on Suck’s role in early web history, these links do a good job:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: inherit; list-style-image: initial; list-style-position: initial; margin-left: auto; margin-right: auto; max-width: 800px;&quot;&gt;&lt;li style=&quot;box-sizing: inherit;&quot;&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Josh Quittner’s 1996&amp;nbsp;&lt;a data-iawmlf-archived-broken=&quot;false&quot; data-iawmlf-archived-last-checked=&quot;2026-01-06 19:12:18&quot; data-iawmlf-archived-url=&quot;http://web-wp.archive.org/web/20250624112704/https://www.wired.com/1996/11/web-dreams-2/&quot; data-iawmlf-current-url=&quot;https://www.wired.com/1996/11/web-dreams-2&quot; href=&quot;https://www.wired.com/1996/11/web-dreams-2/&quot; style=&quot;background-color: transparent; box-sizing: inherit; color: black; transition: color 0.2s ease-in-out;&quot;&gt;Wired article&lt;/a&gt;&amp;nbsp;about the site’s origins.&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit;&quot;&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Keep Going’s “&lt;a class=&quot;iawmlf-broken-link&quot; data-iawmlf-archived-broken=&quot;true&quot; data-iawmlf-archived-last-checked=&quot;2026-01-09 13:38:59&quot; data-iawmlf-archived-url=&quot;http://web-wp.archive.org/web/20240627202754/http://www.keepgoing.org/issue20_giant/the_big_fish.html&quot; data-iawmlf-current-url=&quot;http://www.keepgoing.org/issue20_giant/the_big_fish.html&quot; href=&quot;http://web-wp.archive.org/web/20240627202754/http://www.keepgoing.org/issue20_giant/the_big_fish.html&quot; style=&quot;background-color: transparent; box-sizing: inherit; color: black; transition: color 0.2s ease-in-out;&quot;&gt;The Big Fish&lt;/a&gt;,” a 2005 retrospective about the impact of “the first great website”&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit;&quot;&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Engadget’s Nicole Lee&amp;nbsp;&lt;a data-iawmlf-archived-broken=&quot;false&quot; data-iawmlf-archived-last-checked=&quot;2026-01-06 19:12:18&quot; data-iawmlf-archived-url=&quot;http://web-wp.archive.org/web/20190417080641/https://www.engadget.com/2015/09/16/suck-dot-com-20th-anniversary/&quot; data-iawmlf-current-url=&quot;https://www.engadget.com/2015/09/16/suck-dot-com-20th-anniversary&quot; href=&quot;https://www.engadget.com/2015/09/16/suck-dot-com-20th-anniversary/&quot; style=&quot;background-color: transparent; box-sizing: inherit; color: black; transition: color 0.2s ease-in-out;&quot;&gt;interviewed the Suck crew&lt;/a&gt;&amp;nbsp;after their appearance at XOXO 2015.&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit;&quot;&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;The&amp;nbsp;&lt;a data-iawmlf-archived-broken=&quot;false&quot; data-iawmlf-archived-last-checked=&quot;2026-01-06 19:12:19&quot; data-iawmlf-archived-url=&quot;http://web-wp.archive.org/web/20250826180833/https://www.internethistorypodcast.com/2016/02/founders-of-suck-com-carl-steadman-and-joey-anuff/&quot; data-iawmlf-current-url=&quot;http://www.internethistorypodcast.com/2016/02/founders-of-suck-com-carl-steadman-and-joey-anuff&quot; href=&quot;http://www.internethistorypodcast.com/2016/02/founders-of-suck-com-carl-steadman-and-joey-anuff/&quot; style=&quot;background-color: transparent; box-sizing: inherit; color: black; transition: color 0.2s ease-in-out;&quot;&gt;Internet History Podcast&lt;/a&gt;&amp;nbsp;with Suck founders Carl Steadman and Joey Anuff, and the&amp;nbsp;&lt;a data-iawmlf-archived-broken=&quot;false&quot; data-iawmlf-archived-last-checked=&quot;2026-01-06 19:12:18&quot; data-iawmlf-archived-url=&quot;http://web-wp.archive.org/web/20250624112705/https://www.internethistorypodcast.com/2016/05/suck-again-joey-anuff-and-carl-steadman-return/&quot; data-iawmlf-current-url=&quot;http://www.internethistorypodcast.com/2016/05/suck-again-joey-anuff-and-carl-steadman-return&quot; href=&quot;http://www.internethistorypodcast.com/2016/05/suck-again-joey-anuff-and-carl-steadman-return/&quot; style=&quot;background-color: transparent; box-sizing: inherit; color: black; transition: color 0.2s ease-in-out;&quot;&gt;followup episode&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit;&quot;&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;In 2016, The Atlantic’s Anna Wiener wrote about “&lt;a data-iawmlf-archived-broken=&quot;false&quot; data-iawmlf-archived-last-checked=&quot;2026-01-06 19:12:18&quot; data-iawmlf-archived-url=&quot;http://web-wp.archive.org/web/20251105110429/https://www.theatlantic.com/technology/archive/2016/03/suck-webzine/473853/&quot; data-iawmlf-current-url=&quot;https://www.theatlantic.com/technology/archive/2016/03/suck-webzine/473853&quot; href=&quot;https://www.theatlantic.com/technology/archive/2016/03/suck-webzine/473853/&quot; style=&quot;background-color: transparent; box-sizing: inherit; color: black; transition: color 0.2s ease-in-out;&quot;&gt;the best magazine on the early web&lt;/a&gt;.”&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit;&quot;&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;In 2017,&amp;nbsp;&lt;a data-iawmlf-archived-broken=&quot;false&quot; data-iawmlf-archived-last-checked=&quot;2026-01-06 19:12:17&quot; data-iawmlf-archived-url=&quot;http://web-wp.archive.org/web/20251105110618/https://thehistoryoftheweb.com/the-web-after-suck/&quot; data-iawmlf-current-url=&quot;https://thehistoryoftheweb.com/the-web-after-suck&quot; href=&quot;https://thehistoryoftheweb.com/the-web-after-suck/&quot; style=&quot;background-color: transparent; box-sizing: inherit; color: black; transition: color 0.2s ease-in-out;&quot;&gt;The History of the Web&lt;/a&gt;&amp;nbsp;covered “The Web After Suck” in its second post.&quot;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;I miss it and wanted more excuses to take a look at it. I also generally wanted to see if there was a good way of surfacing old content related to today&#39;s news because I generally think there is a TON of great content out there that no longer gets seen. I would use the Suck.com archive to try out matching an article per day from that archive with today&#39;s news.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;To build it, first I crawled the &lt;a href=&quot;https://archive.org/&quot;&gt;Internet Archive&lt;/a&gt;&#39;s collection of &lt;a href=&quot;https://web.archive.org/web/20011001000000*/suck.com&quot;&gt;old Suck articles&lt;/a&gt;. Then I used &lt;a href=&quot;https://code.claude.com/docs/en/overview&quot;&gt;Claude Code&lt;/a&gt; to write a tool to select one archived Suck.com article each day based on its relevance to current news. It works by converting both the archived articles and today&#39;s news headlines into numerical representations (vectors) that capture their meaning. Articles about similar topics end up with similar vectors, so the system can find which old Suck.com piece best matches what&#39;s happening in the news today. This approach finds conceptual connections. For example, a Suck article on media hype from 2000 might match a news story about viral misinformation, even if they share no exact words.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;The system also tracks which articles have been shown and won&#39;t repeat any until the entire archive has been cycled through.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;The accounts are: &lt;a href=&quot;https://mastodon.social/@barrelofsuck&quot;&gt;@barrelofsuck@mastodon.social&lt;/a&gt; and &lt;a href=&quot;https://bsky.app/profile/barrelofsuck.bsky.social&quot;&gt;@barrelofsuck.bsky.social&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;More about my &lt;a href=&quot;https://www.bricoleur.org/2025/12/ai-coding-another-update.html&quot;&gt;general Claude Code approach is here&lt;/a&gt;. This is yet another example of Claude Code giving me the ability to do a little something with very limited audience that I&#39;ve always wanted.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;If you know of a good way to make the Threads api work and are willing to talk me through it, lmk.&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/9113449995772708688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/9113449995772708688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/9113449995772708688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/9113449995772708688'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2026/01/finally-finished-up-bot-for-posting.html' title='Barrel of Suck: A bot to surface relevant old Suck.com articles'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6eddCK_5TZv7KIVS-TTXSL12l-4d4de41UMrsbmGGjdgH-ITO8OsO_9sM-ExudDnVHLZcsHhzA0fkbLL0LOBstyWLW8AEqe9i4cakNMoNdVcEdqjyR3gLAWMOKIJhVaRei8_xW53NozhGRyposv0znWBo1gRhfaY0XclXXQfsBWhNOxn4gn8krvMPZ06o/s72-w611-h67-c/FooterSuck.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-7028358847814908083</id><published>2025-12-16T07:12:00.000-08:00</published><updated>2025-12-17T13:42:26.286-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="law"/><category scheme="http://www.blogger.com/atom/ns#" term="politics"/><category scheme="http://www.blogger.com/atom/ns#" term="usgov"/><title type='text'>AI Presentations</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Have been doing some fun presentations on AI. They are split between policy (like the one below) and struggling with when and when not to use AI in learning (will post a recording when I have one).&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&quot;&quot; class=&quot;BLOG_video_class&quot; height=&quot;279&quot; src=&quot;https://www.youtube.com/embed/eFLrdp6daqo&quot; width=&quot;336&quot; youtube-src-id=&quot;eFLrdp6daqo&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;The AI in Learning presentation dives deep into the analogy of regular learning as weightlifting to AI&#39;s forklift. I first heard it on the great&amp;nbsp;&lt;a href=&quot;https://www.nytimes.com/2025/03/28/podcasts/hardfork-signal-dwarkesh.html&quot; target=&quot;_blank&quot;&gt;Hard Fork&lt;/a&gt;&amp;nbsp;podcast and &lt;a href=&quot;https://www.nytimes.com/by/kevin-roose&quot;&gt;Kevin Roose&lt;/a&gt; said he had first heard it elsewhere but didn&#39;t remember where. Anyhow, here&#39;s the slide from the presentation.&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEim-T7a8Z2LVSQheISHvvxdiTRCK6CTXGZJu4tgPOl_8LbScIihym2kiafOsWPwRmLAmguaOUrwfb29SuwcvP27YAHdO_VAXm2Dr2CWAqk0IB-SZGYHOUSdpJDG2KgTFPRkX7F4Dy6JKiXFFse-P3eXv9bFHApk89IiEMI8YOSf6Tg63t0d413muK_okI72&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1044&quot; data-original-width=&quot;1828&quot; height=&quot;183&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEim-T7a8Z2LVSQheISHvvxdiTRCK6CTXGZJu4tgPOl_8LbScIihym2kiafOsWPwRmLAmguaOUrwfb29SuwcvP27YAHdO_VAXm2Dr2CWAqk0IB-SZGYHOUSdpJDG2KgTFPRkX7F4Dy6JKiXFFse-P3eXv9bFHApk89IiEMI8YOSf6Tg63t0d413muK_okI72&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;It has been fun to get my thoughts in a presentable form.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/7028358847814908083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/7028358847814908083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/7028358847814908083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/7028358847814908083'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2025/12/ai-presentations.html' title='AI Presentations'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/eFLrdp6daqo/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-603413196598099427</id><published>2025-12-16T06:46:00.000-08:00</published><updated>2025-12-16T06:47:23.272-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai-coding"/><category scheme="http://www.blogger.com/atom/ns#" term="code"/><title type='text'>AI Coding Another Update</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&amp;nbsp;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; white-space-collapse: preserve;&quot;&gt;I’ve been doing a &lt;a href=&quot;https://www.bricoleur.org/search/label/ai-coding&quot; target=&quot;_blank&quot;&gt;bunch of projects to learn the good and bad of the codegen products&lt;/a&gt;. Those products include &lt;a href=&quot;https://code.claude.com/docs/en/overview&quot; target=&quot;_blank&quot;&gt;Claude Code&lt;/a&gt;, &lt;a href=&quot;https://developers.openai.com/codex/cli/&quot; target=&quot;_blank&quot;&gt;Codex CLI&lt;/a&gt;, &lt;a href=&quot;https://github.com/google-gemini/gemini-cli&quot; target=&quot;_blank&quot;&gt;Gemini CLI&lt;/a&gt;, etc. and their uses range from autocomplete to &lt;a href=&quot;https://simonwillison.net/2025/Oct/7/vibe-engineering/&quot; target=&quot;_blank&quot;&gt;vibe coding or engineering&lt;/a&gt; (I prefer the word “&lt;a href=&quot;https://harper.blog/2025/02/16/my-llm-codegen-workflow-atm/&quot;&gt;codegen&lt;/a&gt;” h/t Harper Reed). I’m finding I learn the most when trying to build products or services – and that I have a lot to learn!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span id=&quot;docs-internal-guid-454ba8d7-7fff-3d35-eee2-b73dd681cbf2&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Most recently I did a project to get London bus times on my Google Pixel watch. I called it BusWatch. The &lt;a href=&quot;https://github.com/amac0/BusWatch&quot; target=&quot;_blank&quot;&gt;finished code is on GitHub&lt;/a&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; white-space-collapse: preserve;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXgO9lDql9PHdShwiBld7an99B-Hv6xjZ7ZXTI9-eGeduVLSi8LSVOY-69J3Z15vVNNgWX1AJwiN5kUKj1BBLL6KSExg-3hzE4r0SynPMGSDhBFWRCj0EogrhjI40RniLSW_aB7LAKWa1gryhIPwrxr_zS3CdimduOaFRp2KH61GKsB3T6y3wCbxkutM1c/s1824/BusWatch.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;456&quot; data-original-width=&quot;1824&quot; height=&quot;114&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXgO9lDql9PHdShwiBld7an99B-Hv6xjZ7ZXTI9-eGeduVLSi8LSVOY-69J3Z15vVNNgWX1AJwiN5kUKj1BBLL6KSExg-3hzE4r0SynPMGSDhBFWRCj0EogrhjI40RniLSW_aB7LAKWa1gryhIPwrxr_zS3CdimduOaFRp2KH61GKsB3T6y3wCbxkutM1c/w456-h114/BusWatch.png&quot; width=&quot;456&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;BusWatch App Screens&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; white-space-collapse: preserve;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; white-space-collapse: preserve;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;I have never actually coded an app for a phone or written in &lt;a href=&quot;https://en.wikipedia.org/wiki/Kotlin&quot; target=&quot;_blank&quot;&gt;Kotlin&lt;/a&gt;, which meant I wasn’t reading or writing any code myself through this whole process. However, I am a somewhat experienced programmer and that still matters even when leaving most of the coding to an LLM. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; white-space-collapse: preserve;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; white-space-collapse: preserve;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;I’ll detail my process and what I learned below.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;The tl;dr includes:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;margin-bottom: 0px; margin-top: 0px; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;&quot;&gt;Models still get basic stuff disastrously wrong (but are surprisingly effective anyway).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;&quot;&gt;A little bit of understanding by the human interacting with the AI can be extremely helpful.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;&quot;&gt;&lt;a href=&quot;https://github.com/obra/superpowers&quot; target=&quot;_blank&quot;&gt;Jesse Vincent’s Superpowers&lt;/a&gt; is great!&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;&quot;&gt;Claude Code really really really doesn’t want to run all your tests successfully before moving on. It also loves to mock for a test rather than test a real thing. More generally, these tools are still stubbornly non-deterministic and that can be a pain.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;&quot;&gt;More small batch and customized personal development is coming.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;b&gt;Building the Specification: Part 1 with ChatGPT&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;The first thing I worked on was moving from the vague idea of an app to get live London bus times to a more detailed specification. I started that in &lt;a href=&quot;https://chatgpt.com/&quot; target=&quot;_blank&quot;&gt;ChatGPT&lt;/a&gt; 5 Thinking. I used the following prompt (based on &lt;a href=&quot;https://harper.blog/2025/02/16/my-llm-codegen-workflow-atm/&quot; target=&quot;_blank&quot;&gt;Harper Reed’s excellent and now ancient codegen processes&lt;/a&gt;):&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;div&gt;&lt;span&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; white-space-collapse: preserve;&quot;&gt;&lt;span background-color=&quot;#D3D3D3&quot; style=&quot;background-color: #eeeeee; font-family: courier;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; white-space-collapse: preserve;&quot;&gt;&lt;span background-color=&quot;#D3D3D3&quot; style=&quot;background-color: #eeeeee; font-family: courier;&quot;&gt;Ask me one question at a time so we can develop a thorough, step-by-step spec for this idea. Each question should build on my previous answers, and our end goal is to have a detailed specification I can hand off to a developer. Let’s do this iteratively and dig into every relevant detail. Remember, only one question at a time.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Here’s the idea:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;I&#39;d like to develop a Wear OS app that will give real-time london bus arrival times for bus stops near the wearer. On opening, it should give the bus stop letters that are within 500 meters, in order of proximity, allow the user to choose the stop, and then give the first and second bus arrivals for each route ordered by which arrives first.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;ChatGPT usually does a pretty good job at this type of thing but near the beginning we had this exchange:&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote style=&quot;border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;&quot;&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;ChatGPT:&lt;/span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt; Great. Should this be a &lt;/span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;standalone Wear OS app&lt;/span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt; that fetches TfL data directly over the watch’s Wi-Fi/LTE, or a &lt;/span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;companion app&lt;/span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt; setup where the phone handles network calls and relays results to the watch?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Me:&lt;/span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt; If the watch doesn&#39;t have LTE, can it not use the phone for network even if there is no companion app?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;ChatGPT: &lt;/span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Good question. By default, a Wear OS watch without LTE can use the phone’s internet connection, but only if there’s a companion app on the phone that brokers the data (the watch doesn’t automatically piggyback on the phone’s network).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;So, you’ll need to decide:&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;&quot;&gt;Standalone app → Works fully on watch (requires LTE or Wi-Fi).&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;&quot;&gt;Companion app setup → Watch talks to the phone app for data if the watch has no direct network.&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;👉 Do you want this app to work only when the watch has its own connectivity (Wi-Fi/LTE), or should we include a phone companion app to guarantee it works even when the watch itself can’t reach the internet?&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; white-space-collapse: preserve;&quot;&gt;This is incorrect in a fairly fundamental way. It is the kind of mistake that cascades badly if you don’t notice it early. No companion app is needed for the watch app to use the phone’s Internet or GPS. ChatGPT’s mistake* would have meant coding an additional app for a different OS and managing the complexities of communication between the apps. It would also have meant rebuilding a bunch of builtin functionality from scratch, which would have likely led to more complexity and errors but no gain in functionality. I had a vague feeling it was wrong but didn’t correct ChatGPT for a bit, which led to a bunch of wasted time. If I didn’t understand the watch capabilities, this would have been a big red herring that would have led to more and more complex development and likely a bunch of more errors.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;ChatGPT then asked me 59 (!) more questions without seeming even close to attempting to summarize in a spec. It didn’t seem to have any understanding of the relative importance of different questions and didn’t seem at all focused on the goal of having a spec (as opposed to having a long conversation with a user). I gave up working with it and shifted to Claude Code.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;b&gt;Building the Specification: Part 2 with Claude Code &amp;amp; Superpowers&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;I’ve been meaning to try &lt;a href=&quot;https://blog.fsck.com/&quot; target=&quot;_blank&quot;&gt;Jesse Vincent&lt;/a&gt;’s &lt;a href=&quot;https://github.com/obra/superpowers&quot; target=&quot;_blank&quot;&gt;Superpowers&lt;/a&gt; for a while now. Superpowers is a set of prompts and tools that are invoked by Claude Code to accomplish specific tasks while pushing it towards better development practices, such as test-driven development, structured planning, or using worktrees to isolate new functionality. For example, Superpowers has a &lt;a href=&quot;https://github.com/obra/superpowers/blob/main/skills/brainstorming/SKILL.md&quot; target=&quot;_blank&quot;&gt;brainstorming skill&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt; that Claude Code should add to prompts where the user is asking to brainstorm. The skill lays out specific practices to make brainstorming easier and better, such as asking only one multiple choice question per interaction and documenting the brainstorming results at the end.&amp;nbsp; &lt;a href=&quot;https://code.claude.com/docs/en/skills&quot; target=&quot;_blank&quot;&gt;Claude Code’s skill capability&lt;/a&gt; [link] is modular and extensible. OpenAI looks &lt;a href=&quot;https://simonwillison.net/2025/Dec/12/openai-skills/&quot; target=&quot;_blank&quot;&gt;like it is adopting something similar as well&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Installing Superpowers in Claude Code is as easy as:&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote style=&quot;border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;&quot;&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-size: 11pt; white-space-collapse: preserve;&quot;&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;/plugin marketplace add obra/superpowers-marketplace&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;/plugin install superpowers@superpowers-marketplace&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;So I installed them and asked the same prompt as above using Claude Code Sonnet 4.5.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Claude correctly identified that it should use the &quot;superpowers:brainstorming&quot; skill and read the &lt;a href=&quot;https://github.com/obra/superpowers/blob/main/skills/brainstorming/SKILL.md&quot; target=&quot;_blank&quot;&gt;relevant documentation&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;. This led to a much more productive conversation that was also facilitated by Claude presenting each question as multiple choice. For example, the first thing it asked after my project prompt was:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote style=&quot;border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;&quot;&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-size: 11pt; white-space-collapse: preserve;&quot;&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;I can see this is a fresh project. Let me start refining your spec with some questions, amac.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;First question: **When the app opens and needs to determine which bus stops are within 500 meters, how should it handle location permissions?**&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;A) Request location permission on first launch, and if denied, ask the user to manually enter a bus stop code&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;B) Request location permission on first launch, and if denied, show a helpful error message explaining the app requires location to function&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;C) Request location permission on first launch, and if denied, default to showing bus stops near a landmark (like Trafalgar Square) with a note that location is disabled&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;D) Something else?&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;After 40 questions, it created a &lt;a href=&quot;https://github.com/amac0/BusWatch/blob/main/docs/plans/2025-11-19-buswatch-design.md&quot; target=&quot;_blank&quot;&gt;design plan&lt;/a&gt;&lt;/span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;, an &lt;a href=&quot;https://github.com/amac0/BusWatch/blob/main/docs/plans/2025-11-19-buswatch-implementation.md&quot; target=&quot;_blank&quot;&gt;implementation plan&lt;/a&gt;, and a git worktree to track it all. You can also look at the &lt;a href=&quot;https://amac0.github.io/BusWatch/DesignImplementationPlanLog.html&quot; target=&quot;_blank&quot;&gt;whole back and forth to get to design and implementation&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;b&gt;Implementation&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Superpowers also does a good job at forcing the use of a todo list. For BusWatch’s implementation, it looked like this:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; font-family: arial; height: 547px; overflow: hidden; width: 624px;&quot;&gt;&lt;img height=&quot;547&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg47idEPDEkRDj4Bwglx2a50SQSJ2OXdEvg3e6RWDEURU1yP0sRoy2g8OMZlWvprcSmtJxPZ9O6jsvbVCDUlv04N5dSslmWMhdZZESzzmJEnNQefn_VxBqKdeLtLT_vVsLNkIGfLpuy_K8tSevfjOAOEm_UxZT4dFwfQR7vtYpoEFwDo1m1jq7u3YaIn9Sv&quot; style=&quot;margin-left: 0px; margin-top: 0px;&quot; width=&quot;624&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Superpowers prefers Git Worktrees for getting work done in an isolated way. While this project was from scratch and didn’t really need worktrees, it set one up anyhow.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;One of the great newish features of Claude Code is &lt;a href=&quot;https://code.claude.com/docs/en/sub-agents&quot; target=&quot;_blank&quot;&gt;sub-agents&lt;/a&gt;. Sub-agents allow for parallel development but also help with context management because context flow between the main agent and sub-agents is not complete. Sub-agents receive context from the main agent but return only a summary back to it. Similarly sub-agents do not pollute each other’s context. One useful result of this is that sub-agents can more effectively take on distinct roles.&amp;nbsp; Superpowers prompts for sub-agent or parallel execution. I have found sub-agent execution to work very well and chose it here. Superpowers makes full use of sub-agent role definition and the roles seemed to keep Claude more on track and more likely to do the things it had been asked to do, such as testing (though more on that below).&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;The creation of a more detailed plan followed, with a new Todo list:&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; font-family: arial; height: 920px; overflow: hidden; width: 624px;&quot;&gt;&lt;img height=&quot;920&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiSRb1pCg0vok1RP-DMbPm6qemDQjWFOiTHKtg1siTIZRyW5w5WNQJFp3zuATjO10sLG5cBQdCyWmy_82rtUNDNQ0IDuF1qSqPMHIabrku63b0umsQXGSK2zeDrT0QlmVzQNf_f4xEM2slKr7UibtaNDBfKPGn0zjKdCIpa20KEGUPsWXYW5bxtAaF38M2j&quot; style=&quot;margin-left: 0px; margin-top: 0px;&quot; width=&quot;624&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Claude motored away for about an hour and a half completing seven of the tasks on its list before bumping into my subscription limit. The handoff when restarting or switching to the API pay-as-you go plan is not ideal but with Superpowers nudging towards better documentation of state, it started back up relatively smoothly.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Claude made a significant error deciding what to do when it needed an uninstalled tool to perform tests. Rather installing the tool or raising the issue for me to direct it, it decided to just postpone all the testing to the end (!). It noted matter-of-factly:&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote style=&quot;border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;&quot;&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;I see Gradle isn&#39;t set up yet. Since we can&#39;t run tests without the Gradle wrapper, I&#39;ll continue implementing the code and we&#39;ll set up Gradle and run all tests together in Task 15. &lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;...&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;That’s not good, and not what it was told repeatedly by the various Superpowers instructions and my own &lt;/span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Claude.md&lt;/span&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt; instructions to do. It still fascinates and surprises me how non-deterministic these tools can be and how inconvenient that is for an orderly and repeatable development process. Ug.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;When I intervened and directed it (again) to do the unit tests, it complemented me (still hate that) and went on its merry way:&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote style=&quot;border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;&quot;&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-size: 11pt; white-space-collapse: preserve;&quot;&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;b&gt;Me:&lt;/b&gt; Please set up Gradle so that you can do the unit tests.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;b&gt;Claude&lt;/b&gt;: Good idea, amac! Let me set up the Gradle wrapper so we can run tests as we go.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; white-space-collapse: preserve;&quot;&gt;That led to a bunch of confusion about which version of Java and other libraries to install. These agents are still sometimes blind to newer software models. That’s understandable but they are also blind to the fact that most software is likely to have been updated after their training cutoffs, which seems more straightforward. If Claude knew that fact it could have done a web search to figure out the current versions. Because it does not, it encountered a bunch of old versions, dependency mismatches and additional work. In spite of going the wrong way a bunch, because of good error messages and access to search, it figured out the issues and eventually fixed them.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Once back on testing, in spite of all commands that tests need to be satisfied before moving on, Claude said things like:&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote style=&quot;border: none; margin: 0 0 0 40px; padding: 0px;&quot;&gt;&lt;span&gt;&lt;p style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-size: 11pt; white-space-collapse: preserve;&quot;&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;The tests are taking too long to complete, amac. Let me commit the test fixes we&#39;ve made and summarize the progress:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;In each case, I had to direct Claude to “keep working on the tests” to keep it from moving on while tests were still failing.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;b&gt;Finished or Mock Finished?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;The basics of the application are relatively simple but require interacting with &lt;a href=&quot;https://tfl.gov.uk/&quot; target=&quot;_blank&quot;&gt;Transport for London&lt;/a&gt; &lt;a href=&quot;https://api.tfl.gov.uk/&quot; target=&quot;_blank&quot;&gt;API&lt;/a&gt;, so I was quite surprised when Claude reported that it had finished with all tests passing without ever asking me for an API key.&amp;nbsp; It understood that it needed the API before shipping but decided to do all testing without ever actually calling the API.&amp;nbsp; Instead it only coded to and tested against a self-hallucinated mock API which is definitely NOT likely to get a correct result.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote style=&quot;border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;&quot;&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier;&quot;&gt;&lt;b style=&quot;font-size: 11pt; white-space-collapse: preserve;&quot;&gt;Me&lt;/b&gt;&lt;span style=&quot;font-size: 11pt; white-space-collapse: preserve;&quot;&gt;: Have you tested the tfl connection and API responses?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: courier; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;b&gt;Claude&lt;/b&gt;: No, I haven&#39;t tested the actual TfL API connection yet - the tests we ran were unit tests with mocked responses. We should definitely verify the real API integration before deploying to your watch! Let me check the TfL API service and test it:&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;I have seen this in other projects as well and it is a very bad pattern.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Using the real API instead of its hallucination led to a bunch of changes. Again Superpowers was extremely useful in giving Claude a way of thinking about root cause analysis and keeping it on task but not testing against the real API is a mistake that even a rookie programmer wouldn’t make. &lt;a href=&quot;https://github.com/2389-research/claude-plugins/tree/b12bf2e792060f04d91dd3e001574e4adc52f0aa/scenario-testing&quot; target=&quot;_blank&quot;&gt;Scenario testing&lt;/a&gt; from &lt;a href=&quot;https://2389.ai/&quot; target=&quot;_blank&quot;&gt;2389 Research&lt;/a&gt; looks like a promising way to address that in future.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;b&gt;Testing, Debugging and Improving&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;The rest of the development process involved me testing the app and then reporting my results to Claude to have it debug and fix the issues along with a bunch of improvements. It seemed to have an easier time with development that looked more like web app development and a harder time with interface issues and connecting to the watch itself – though that also mirrors my skills and deficiencies so that might also have come from me.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Probably the most illustrative bug was in trying to add another button to a display. Claude went on a very long set of wild goose chases for a bug that turned out to be that it had not properly specified that the two buttons shouldn’t be written directly on top of each other. If I had had a better understanding of Kotlin, I might have considered that possibility much earlier or been able to just look at the code. However, without that, Claude took a long time and proposed and implemented multiple wrong paths before it discovered the correct one. There was a point at which I thought it might rebuild the entire app from scratch in order to try to fix the bug.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;I’ve now been using the app a lot for about 3 weeks. It is just what I want on the device I own. It doesn’t do anything extra, it doesn’t ask to show me ads or track me, and I have no plans of continuing to improve it. It does one thing well.&amp;nbsp;If you want to use it yourself you can, you just need to bring your own Transport for London key. But I&#39;m fine with it being just for me.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;The development was way easier than it would have been otherwise, even if I had known Kotlin and the basics of the Pixel Watch’s WearOS development before starting. Indeed, the Claude Code development would have been even shorter if I had known more. All told, it took about three hours of my time and its cost was included in my $20/month subscription. Even without my ulterior motive of more deeply understanding Claude Code, that would have been a pretty good tradeoff. I expect the codegen tools to get better and to be used by many early adopters to do some quick development of apps and tools that are important to users and that might never have otherwise been satisfied.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;These codegen tools are good enough now that non-programmers can and should try to use them. However, in all of my experimentation, I have found that my own understanding of the project and how I would approach it as a programmer was important to working with the tool for better outcomes. These tools amplify my knowledge and my knowledge gaps. That was definitely true here as well. If I didn’t have a passing understanding of the mechanics of network communication for the Pixel Watch, I might have accepted ChatGPT’s incorrect understanding and either not successfully built anything or built a clunkier, worse product. If I didn’t know that having tests pass was a completely reasonable expectation, I might have accepted one of the many times Claude glossed over failing tests. And I bet the combination of Claude and I made a bunch of other errors that I just don&#39;t know enough to know we made. None of those should scare non-programmers away from trying these tools, but I see a long future in the need for programming expertise in developing commercial software. &lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Finally, I highly recommend trying to get a project done with the codegen tools as they are now to better understand what is currently possible in coding and what will likely come to other domains as well. It is hard to describe the ways in which the tools are wonderful and where they fall short (as I try to do here) but it is much easier to experience firsthand with something you care about. Actually diving deep into these tools is the surest way I know to avoid thinking that AI is either useless or about to achieve an intelligence breakthrough. The truth is much more interesting and in-between.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;* Throughout this piece I somewhat anthropomorphize and otherwise use imprecise words to describe what is actually happening with LLMs. There&#39;s a tradeoff between being accurate and understandable. For this piece I am going with understandable.&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/603413196598099427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/603413196598099427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/603413196598099427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/603413196598099427'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2025/12/ai-coding-another-update.html' title='AI Coding Another Update'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXgO9lDql9PHdShwiBld7an99B-Hv6xjZ7ZXTI9-eGeduVLSi8LSVOY-69J3Z15vVNNgWX1AJwiN5kUKj1BBLL6KSExg-3hzE4r0SynPMGSDhBFWRCj0EogrhjI40RniLSW_aB7LAKWa1gryhIPwrxr_zS3CdimduOaFRp2KH61GKsB3T6y3wCbxkutM1c/s72-w456-h114-c/BusWatch.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-9073655875845656533</id><published>2025-05-28T08:15:00.000-07:00</published><updated>2025-06-01T02:30:46.441-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai-coding"/><category scheme="http://www.blogger.com/atom/ns#" term="code"/><title type='text'>Some Current AI Coding Thoughts</title><content type='html'>&lt;p&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;I&#39;ve been doing a bunch of coding with AI assistance ranging from souped-up auto-complete to full on &lt;/span&gt;&lt;a href=&quot;https://simonwillison.net/2025/Mar/19/vibe-coding/&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;vibe coding&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;. I’m learning a ton and am &lt;/span&gt;&lt;a href=&quot;https://www.bricoleur.org/search/label/ai-coding&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;blogging AI coding projects here&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;span id=&quot;docs-internal-guid-f9d65194-7fff-33bc-3dd5-e93910e13580&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Three thoughts about software development with AI that I wanted to get down on paper: the return to waterfall, the perils of “product” and the primacy of evaluation.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Return to Waterfall&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Many vibe coding best practices are a regression to &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Waterfall_model&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;waterfall&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt; code development (h/t to Harper Reed for incepting &lt;a href=&quot;https://harper.blog/2025/04/10/waterfall-in-15-minutes-or-your-money-back/&quot;&gt;this thought into my brain&lt;/a&gt; so well I forgot he had). Waterfall is known for its sequential thinking about project development. An idea is translated into a detailed product specification that is then used as the basis for implementation. &lt;/span&gt;&lt;a href=&quot;https://harper.blog/2025/02/16/my-llm-codegen-workflow-atm/&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Harper Reed’s excellent AI codegen process&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt; is pretty much what I use, and is a good example of this type of thinking. A thorough specification is developed through conversation with an LLM. Then a set of prompts are developed from the specification. Then the spec and prompts are used by the codegen AI for implementation. This contrasts with more modern &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Agile_software_development&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;agile development processes&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt; that integrate requirements gathering, design and implementation.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Is this a step backward? Perhaps the speed of iteration means that the waterfall cycles become quick enough to look more agile? Or maybe agile can’t work if the implementer is an LLM? Or maybe the overwhelming difficulty in keeping the AI codegen programs on task and executing within scope merit more specification and less iterative adaptation? &lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;In any case, the problems of waterfall need to be considered in the development process. In my experimentation, AI codegen often gets hung up on a way of doing things that is consistent with the spec but not with reality (just as happens in other waterfall processes). In response, I usually scrap the whole attempt and start again at the beginning of the waterfall with a new specification.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Perils of “Product”&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;With waterfall development also comes thinking about software as a “product” that gets “finished” as opposed to a service that gets continuously maintained and improved. While AI one-shots get a lot of coverage, much less is devoted to the more difficult proposition of working on an established code base or, even more importantly, AI coding on top of AI coding to continuously maintain and improve a code base.&lt;a href=&quot;#star&quot;&gt;*&lt;/a&gt; Thinking of software as a product has &lt;/span&gt;&lt;a href=&quot;https://www.ulam.io/blog/software-maintenance&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;all sorts&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt; of &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Software_evolution&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;pitfalls&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;, not least of which is the fact that almost no software of any import stays the same because use of it changes over time and the world does too. Maintenance and constant evolution is a more important pattern. I’m excited that I’m starting to see more work on those &lt;/span&gt;&lt;a href=&quot;https://azure.microsoft.com/en-us/blog/agentic-devops-evolving-software-development-with-github-copilot-and-microsoft-azure/&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;patterns&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;. How we think about AI-aided maintenance of existing code bases will be extremely important. Knowing the current problems of AI codegen, I’m pretty worried about AI maintenance of AI code.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Primacy of Evaluation&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;That ties neatly into the importance of being able to evaluate AI-coded changes. Lili Jiang did a &lt;/span&gt;&lt;a href=&quot;https://www.oreilly.com/library/view/coding-with-ai/0642572017171/video386938.html&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;great talk&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt; on the subject at the &lt;/span&gt;&lt;a href=&quot;https://www.oreilly.com/CodingwithAI/&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;O’Reilly Coding with AI Conference&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;. She also has a &lt;/span&gt;&lt;a href=&quot;https://medium.com/data-science/paradigm-shifts-of-eval-in-the-age-of-llm-7afd58e55b29&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;color: #1155cc; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Medium post that is well worth a read&lt;/span&gt;&lt;/a&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;. She highlights that, for software that incorporates AI functionality, evaluation is a bigger part of building great software, comparing changes to benchmarks is key, and that human evaluation is also important. A big part of the greater importance of eval is the shift from relatively deterministic approaches to automation to these non-deterministic ones. While you might evaluate a deterministic system on the basis of the correctness of the algorithm or output, non-deterministic systems can frustrate that approach and call for more investment in evaluation. This is especially true with relatively opaque non-deterministic systems. That has some significant ramifications for policy, e.g. maybe FDA is the better model than FTC. And, though the thrust of Ms. Jiang’s arguments are about software that incorporates AI functionality, her prescriptions also apply to coding with AI.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;My key takeaway is to front-load project elements that enable human evaluation of progress. This is similar to the agile concept of getting to MVP fast but it means that I intentionally front-load human-readable output and evaluations that have straightforward answers while delaying the harder to evaluate pieces. It also means that human-readable hooks are important. I don’t just develop an API with a test suite, instead I make sure that I can use the API and see its output. This is one protection against AI coding assistants’ constant reversion to gaming tests to make them pass. If I can see what is going on, it is easier for me to catch it. If all of that happens earlier in the process, not only do I not waste a bunch of time and dollars but I also don’t have a codebase that has grown from a flawed premise.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;It is worth noting however that this disbelief in AI agentic testing puts a lot of extra burden on the human evaluator. In regular coding I would never simply trust my evaluation based on seeing the output, I would want an excellent suite of tests with good test coverage. If you are developing something real, that&#39;s still going to be the right approach and you&#39;ll need to be able to understand and verify the tests. That job will likely include humans who code for a while longer, or maybe always.&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;font-size: 11pt; white-space-collapse: preserve;&quot;&gt;&lt;a id=&quot;star&quot;&gt;*&lt;/a&gt; And yes, that sounds like guaranteed full employment for human coders to me.&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/9073655875845656533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/9073655875845656533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/9073655875845656533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/9073655875845656533'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2025/05/some-current-ai-coding-thoughts.html' title='Some Current AI Coding Thoughts'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-1731769765421602812</id><published>2025-05-27T06:45:00.000-07:00</published><updated>2025-05-28T11:52:47.774-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai-coding"/><category scheme="http://www.blogger.com/atom/ns#" term="code"/><title type='text'>Understanding Claude Code Sessions</title><content type='html'>&lt;p&gt;Claude Code logs a bunch of stuff via jsonl. The logs are a little hard to read but include all the requests a user makes and a bunch of other information (such as tool calls). I made a rough and ready parser that shows the logs in a more human readable form. It can also show git commits in the log timeline so that you can see what changes to the code correspond to a set of Claude Code work.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/amac0/ClaudeCodeJSONLParser&quot;&gt;https://github.com/amac0/ClaudeCodeJSONLParser&lt;/a&gt;&lt;/p&gt;&lt;p&gt;All coded via LLM, mostly o3 &amp;amp; when o3 had trouble, switched to Claude 4 Sonnet (in Claude Code). Very easy to install just download the html file and open it locally in your browser.&lt;/p&gt;&lt;p&gt;One big learning from this one as it is mostly javascript and I don&#39;t know javascript that well was the importance of making the LLMs send a lot of debugging information to the console so that I could see it.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/1731769765421602812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/1731769765421602812' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/1731769765421602812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/1731769765421602812'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2025/05/understanding-claude-code-sessions.html' title='Understanding Claude Code Sessions'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-1295864122916674745</id><published>2025-05-12T08:45:00.000-07:00</published><updated>2025-05-28T11:52:59.704-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai-coding"/><category scheme="http://www.blogger.com/atom/ns#" term="code"/><title type='text'>Claude Code + Theater Scraper</title><content type='html'>&lt;p&gt;Am playing around with AI coding. Which is fun and frustrating and very educational.&lt;/p&gt;&lt;p&gt;Am going to post some of my attempts and observations.&lt;/p&gt;&lt;p&gt;I use Harper&#39;s excellent &lt;a href=&quot;https://harper.blog/2025/02/16/my-llm-codegen-workflow-atm/&quot;&gt;LLM Codegen Workflow&lt;/a&gt;&amp;nbsp;(see also this &lt;a href=&quot;https://harper.blog/2025/05/08/basic-claude-code/&quot;&gt;followup&lt;/a&gt;). For this experiment, I used Claude Code. I did this in late Feb 2025 (sorry for the delay in writing it up).&lt;/p&gt;&lt;p&gt;My basic project was to write a scraper that would get theater listings from a bunch of London theaters and send me an email daily with new listings. I thought this was a good experiment because it was a relatively easy project in a domain I know well enough to do myself.&lt;/p&gt;&lt;p&gt;Here is the &lt;a href=&quot;https://github.com/amac0/TheatreScraper/blob/main/spec.md&quot;&gt;Spec&lt;/a&gt; that I came up with in a back and forth with ChatGPT 4o. It really wanted to expand the scope and wanted to use selenium (to simulate web browser requests) in spite of it not being needed.&amp;nbsp;&lt;/p&gt;&lt;p&gt;I then asked for a &lt;a href=&quot;https://github.com/amac0/TheatreScraper/blob/main/prompt_plan.md&quot;&gt;specific set of prompts&lt;/a&gt; and a &lt;a href=&quot;https://github.com/amac0/TheatreScraper/blob/main/todo.md&quot;&gt;todo list&lt;/a&gt; for those prompts (I think this was with o1, but it could have been 03-mini). The result was pretty good and I felt ready to go.&lt;/p&gt;&lt;p&gt;I was trying to minimally intervene in the code generation process.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Today the results may be different (I have since borrowed a better Claude.md (thanks &lt;a href=&quot;https://fsck.com/&quot;&gt;Jessie Vincent&lt;/a&gt;) and both Claude Code and Claude itself have gotten better) but&amp;nbsp;the first attempt was a disaster. Claude Code kept trying to do all of the prompts at once but more importantly, it seemed completely lost in terms of actually doing the work of figuring out how to get the right information from the web pages. I spent a bunch of time and Claude $ but eventually scrapped that entirely and started fresh with one big change: I manually went out and downloaded every single page I wanted to be able to scrape and put them in a folder (tests/fixtures).&amp;nbsp;&lt;/p&gt;&lt;p&gt;That one change really made a big difference. Claude Code still wanted to do everything all at once, but now I could push it towards getting correct answers for what to look for in the html and what the outputs of its scraping of the fixtures should be. The &lt;a href=&quot;https://github.com/amac0/TheatreScraper&quot;&gt;result&lt;/a&gt; is something that is useful and seems to be working.&lt;/p&gt;&lt;p&gt;My big takeaways were:&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;be prepared to throw everything out (also, learn &amp;amp; incorporate git);&lt;/li&gt;&lt;li&gt;make the spec and the prompts simple -- no, simpler than that;&amp;nbsp;&lt;/li&gt;&lt;li&gt;anything you would want to have at your disposal when coding, make sure Claude Code has and knows it has;&amp;nbsp;&lt;/li&gt;&lt;li&gt;stop Claude Code often to point out obvious things -- &quot;that is out of scope for this step&quot;, &quot;mocking the test result doesn&#39;t mean you passed the test&quot;, &quot;yes the tests are important, you should still do the tests and not move on if some are failing.&quot;;&lt;/li&gt;&lt;li&gt;pay attention to Claude Code and intervene;&lt;/li&gt;&lt;li&gt;Claude Code will do better in areas that you know because you&#39;ll be able to tell when it is not doing good stuff and stop/redirect it;&lt;/li&gt;&lt;li&gt;this type of coding is a bit like social media scrolling in terms of dopamine slot machine (someone at &lt;a href=&quot;https://www.oreilly.com/CodingwithAI/index.csp&quot;&gt;Coding AI&lt;/a&gt; said this and I agree but forgot who said it)&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/1295864122916674745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/1295864122916674745' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/1295864122916674745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/1295864122916674745'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2025/05/claude-code-theater-scraper.html' title='Claude Code + Theater Scraper'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-4802287778760438240</id><published>2025-01-08T11:28:00.000-08:00</published><updated>2025-01-08T11:28:27.351-08:00</updated><title type='text'>Harvey Anderson</title><content type='html'>&lt;p&gt;Am in SF/Bay to mourn the death of Harvey Anderson. I&#39;m devastated. Harvey was a friend and someone I admired tremendously. He was a giant in shaping what it means to be a tech General Counsel but also in every other aspect of his life.&amp;nbsp;&lt;/p&gt;&lt;p&gt;He was always wise and generous with his time and with the way his mind was open and curious to many possibilities. He could drive a hard bargain -- see eg the amazing amount of resources he brought to Mozilla through the Google and other search deals -- but he was also kind and supportive in so many ways.&amp;nbsp;&lt;/p&gt;&lt;p&gt;I had known ~of~ him for a long time when I asked whether he would mentor me as a young and inexperienced GC at Twitter. While he rejected the label, he was an outstanding mentor, always reminding me to think about the bigger picture and gently pushing me to focus on areas that were important. He also had a wonderful sense of humor and a smile that invited you in, and reminded you of the insignificance of whatever decision you were asking about in the context of the more important things in life.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Harvey was also a model for me in thinking about family. His is wonderfully overflowing. I expect they know how much he loved them and how much joy they brought him, but it was evident from the outside too. My thoughts are with each of them as they mourn.&lt;/p&gt;&lt;p&gt;Two obituaries are here:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://piedmontexedra.com/2024/12/obituary-harvey-james-anderson-ii&quot;&gt;Piedmont Exedra&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://today.marquette.edu/2025/01/university-mourns-the-loss-of-alumnus-friend-and-trustee-harvey-j-anderson-ii/&quot;&gt;Marquette&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Rest in peace Harvey, I am grateful to have known you.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/4802287778760438240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/4802287778760438240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/4802287778760438240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/4802287778760438240'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2025/01/harvey-anderson.html' title='Harvey Anderson'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-7846717130104673612</id><published>2024-09-30T05:38:00.000-07:00</published><updated>2024-09-30T05:38:45.529-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><title type='text'>Notebook LM</title><content type='html'>After listening to &lt;a href=&quot;https://www.nytimes.com/2024/09/27/podcasts/metas-race-for-your-face-googles-hit-ai-notebook-and-hatgpt.html&quot;&gt;Hard Fork this week&lt;/a&gt;, am playing around with &lt;a href=&quot;https://notebooklm.google/&quot;&gt;NotebookLM&lt;/a&gt;, Google&#39;s new AI tool designed around &quot;sources&quot; uploaded by users and developed in collaboration with &lt;a href=&quot;https://stevenberlinjohnson.com/my-books-bf38f309b6d7&quot;&gt;Steven Johnson&lt;/a&gt;.* Am excited that &lt;a href=&quot;https://labs.google/&quot;&gt;Google Labs&lt;/a&gt; is back and also, I agree with Casey Newton that NotebookLM is very &quot;old school google&quot;: geeky, experimental and niche.&lt;br /&gt;&lt;br /&gt;Listening to the podcast encouraged me to play around a bit with NotebookLM so here are some results. Sadly I think that sharing the notebooks themselves is limited to specific signed in accounts, so am provided a few podcasts and notes in Google docs. LMK if that&#39;s not true and I&#39;ll link to the complete notebooks.&lt;br /&gt;&lt;br /&gt;First, I was about to visit the &lt;a href=&quot;https://www.iwm.org.uk/visits/churchill-war-rooms&quot;&gt;Churchill War Rooms&lt;/a&gt;, the underground bunkers from which UK military command worked during the World War II. As a sidenote, they are really interesting. Especially the &lt;a href=&quot;https://www.iwm.org.uk/events/cabinet-war-rooms&quot;&gt;Map Room&lt;/a&gt;, which reminded me a lot of the way the Situation Room in the White House is a data collection hub in addition to a place for national security meetings. They also have a recreation of a July 9, 1944 Chiefs of Staff meeting debating Churchill&#39;s suggestion to consider bombing small German towns in retaliation for German bombing of civilian targets in London. That recreation is interesting both for the substance they discuss and also because it is very similar inn form to thousands of meetings I have been in, from a product team trying to decide whether to implement Sergey Brin&#39;s latest feature idea, to the Blueprint for an AI Bill of Rights team figuring out whether to make a West Wing suggested change in the document. Seeing that recreated was great.&lt;br /&gt;&lt;br /&gt;Anyhow, before going to the War Rooms I printed to PDF three Wikipedia articles about &lt;a href=&quot;https://en.wikipedia.org/wiki/Winston_Churchill&quot;&gt;Churchill&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/London_in_World_War_II&quot;&gt;London in World War II&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Blitz&quot;&gt;the Blitz&lt;/a&gt; and plugged them into NotebookLM. The resulting notebook was interesting and somewhat useful (here&#39;s &lt;a href=&quot;https://docs.google.com/document/d/1zOSY3NAF6HNn-hCh6D6gzE7jvgfkbGfWLlXAYXu4u9s/edit?usp=sharing&quot;&gt;some output from the notebook&lt;/a&gt; and &lt;a href=&quot;https://drive.google.com/file/d/1E_24Dscpye_fxBhztE47545T507zf7_R/view?usp=sharing&quot;&gt;podcast&lt;/a&gt;&amp;nbsp;it generated). The podcast in particular was less of a primer than an bit of additional colour, though when I asked specifically for the notebook to tell me what I should know before visiting, it did a good job of summarizing some basic facts (see the end of the &lt;a href=&quot;https://docs.google.com/document/d/1zOSY3NAF6HNn-hCh6D6gzE7jvgfkbGfWLlXAYXu4u9s/edit?usp=sharing&quot;&gt;output document&lt;/a&gt;). I tried similar things for an upcoming Berlin visit including a set of web pages that focused on the history of Hitler&#39;s rise to power and a separate group focused on the airlift, the wall and the cold war in Berlin. These were also worth the time and interesting.&lt;br /&gt;&lt;br /&gt;Then I split this blog up into 20 pdfs and uploaded them. That project was less successful. The &lt;a href=&quot;https://drive.google.com/file/d/1RscwKsNUnNleMIKV-FFQjFTj1H14NPT2/view?usp=sharing&quot;&gt;podcast is cringeworthy&lt;/a&gt; and the &lt;a href=&quot;https://docs.google.com/document/d/1hkDNKaBS3dOVaqpumTHLFZwBFcBb10K5IQhLPyEJa_I/edit?usp=sharing&quot;&gt;notes&lt;/a&gt; are of varying quality.* Perhaps this is unsurprising given the really diverse set of posts I have up here. Seems that NotebookLM does better with documents that are thematically aligned or different descriptions of a single phenomenon. On the other hand, I liked that NotebookLM is not shy in saying when a source does not answer whatever question I asked (see the end of the &lt;a href=&quot;https://docs.google.com/document/d/1hkDNKaBS3dOVaqpumTHLFZwBFcBb10K5IQhLPyEJa_I/edit?usp=sharing&quot;&gt;notes doc&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;In all, I enjoy these specific purpose built AI tools. I&#39;m glad for the whimsical podcasts being added to a relatively dry product, even though I&#39;m not sure they have a purpose. I&#39;m thrilled that Google Labs is back and is trying stuff (I hadn&#39;t noticed before now). I&#39;m not confident this is a thing that I&#39;ll keep using beyond the novelty but I&#39;ll keep playing around with it and seeing what sticks.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* !!! Really excited for this because I&#39;m a huge fan of his work. If you haven&#39;t already read &lt;a href=&quot;https://stevenberlinjohnson.com/my-books-bf38f309b6d7&quot;&gt;his books&lt;/a&gt;, I recommend either &lt;i&gt;Where Good Ideas Come From: The Natural History of Innovation&lt;/i&gt;&amp;nbsp;or &lt;i&gt;Emergence: The Connected Lives of Ants, Brains, Cities, and Software&lt;/i&gt;&amp;nbsp;as starting points.&lt;br /&gt;&lt;br /&gt;** I tried it again from my non-&lt;a href=&quot;https://en.wikipedia.org/wiki/Google_Workspace&quot;&gt;Google Workspace&lt;/a&gt; account and got a very different set of results. I think these are substantially better, though still contain some straightforward errors. It could be that the NotebookLM running for Google Workspace accounts is different than the one running on regular Google accounts, so your mileage may vary.&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/7846717130104673612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/7846717130104673612' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/7846717130104673612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/7846717130104673612'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2024/09/notebook-lm.html' title='Notebook LM'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-3169894973216914361</id><published>2024-02-26T06:40:00.000-08:00</published><updated>2024-02-26T08:03:10.440-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="code"/><title type='text'>Google Timeline to Countries and Dates</title><content type='html'>&lt;p&gt;I recently needed a list of all of the countries I had been to and the dates I was in each. Naturally I thought of my Google Timeline (formerly &quot;location history&quot;) as a way to do it. Google Timeline is a data store of all the places you have been over time. It is extremely detailed and, at least for me, seems relatively complete. To view yours, go to &lt;a href=&quot;https://timeline.google.com/&quot;&gt;your timeline&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;To get your timeline in a form you can manipulate, you can use &lt;a href=&quot;https://takeout.google.com/&quot;&gt;Google Takeout&lt;/a&gt;, Google&#39;s data portability service (big kudos to &lt;a href=&quot;https://staging.bsky.app/profile/therealfitz.com&quot;&gt;Fitz&lt;/a&gt; and the whole Google Takeout team). My file contained over 2.8 million locations, so the first thing I did was used &lt;a href=&quot;https://geopy.readthedocs.io/en/stable/&quot;&gt;geopy&lt;/a&gt; to throw out any locations that weren&#39;t at least 50 miles apart (see &lt;a href=&quot;https://github.com/amac0/google-location-tools/blob/master/reduce_json.py&quot;&gt;code&lt;/a&gt;). That left ~12,000 entries. For each of the 12,000 entries, I rounded them down to reduce calls, then used &lt;a href=&quot;https://geopy.readthedocs.io/en/stable/&quot;&gt;geopy&lt;/a&gt; to reverse geocode (look up the street address based on the latitude and longitude), threw out everything but the country, and outputted any change with a date (see &lt;a href=&quot;https://github.com/amac0/google-location-tools/blob/master/find_countries.py&quot;&gt;code&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;This was somewhat similar to a &lt;a href=&quot;https://www.bricoleur.org/2017/09/google-location-history-to-country-chart.html&quot;&gt;project I did more than six years ago&lt;/a&gt;, though Google had changed the format of its timeline file, so I needed to rewrite it. It should be pretty easy to also produce a country chart, but I haven&#39;t done that yet.&lt;/p&gt;&lt;p&gt;I continue to believe that data portability will not take off and be demanded by users until there exists useful things to do with the data. Hopefully scripts like these can help contribute to that.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/3169894973216914361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/3169894973216914361' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/3169894973216914361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/3169894973216914361'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2024/02/google-timeline-to-countries-and-dates.html' title='Google Timeline to Countries and Dates'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-9053486159726713338</id><published>2023-11-08T17:50:00.005-08:00</published><updated>2023-11-08T18:00:41.059-08:00</updated><title type='text'>Biden Admin Artificial Intelligence Executive Order &amp; OMB Guidance: Some thoughts &amp; a calendar</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-family: arial; font-size: x-small;&quot;&gt;&lt;i&gt;Take what I say here with a grain of salt because &lt;a href=&quot;https://www.bricoleur.org/2023/10/my-time-in-biden-harris-administration.html&quot;&gt;my old team worked on this (and I worked on earlier iterations&lt;/a&gt;&amp;nbsp;and &lt;a href=&quot;https://www.whitehouse.gov/ostp/ai-bill-of-rights/&quot;&gt;the Blueprint for an AI Bill of Rights&lt;/a&gt;).&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Now that I&#39;ve had a chance to read the U.S.&amp;nbsp;&lt;a href=&quot;https://www.whitehouse.gov/briefing-room/presidential-actions/2023/10/30/executive-order-on-the-safe-secure-and-trustworthy-development-and-use-of-artificial-intelligence/&quot;&gt;AI Executive Order&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;(here&#39;s a&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://docs.google.com/document/d/1NQu94UWJY_XhYAZjPVPsmg3gTKqOgrvrU-Iq3HJvHRY/edit?usp=sharing&quot; style=&quot;font-family: arial;&quot;&gt;version of the order that prints in fewer pages&lt;/a&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;and the accompanying -- and equally important -- &lt;a href=&quot;https://www.whitehouse.gov/wp-content/uploads/2023/11/AI-in-Government-Memo-draft-for-public-review.pdf&quot;&gt;Office of Management and Budget (OMB) Draft AI Guidance&lt;/a&gt;, I wanted to share a couple of thoughts and a calendar to help folks who are tracking the various deliverables assigned in the AI Order and the OMB AI Guidance&lt;/span&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinb55p6QEDFrCbSSXc1d-kIevxBcIhE4Bt3a7Rlh7y3ddvtZmvE4E4Q9GBmoCWZkPQfn6ZaLwE6aMYRwS0nLhWRRZQH4Wlc_PK8oAjXpO_XPbXHx6GeZpG6pbnyPzYBOi8o3kUSS_kr-DlcH5t8m522oDEmlB9CehblOfPt8KHpdPds1YLMhwjiEoZ_ZCC/s1241/PXL_20231030_185926179%20(1).jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1022&quot; data-original-width=&quot;1241&quot; height=&quot;264&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinb55p6QEDFrCbSSXc1d-kIevxBcIhE4Bt3a7Rlh7y3ddvtZmvE4E4Q9GBmoCWZkPQfn6ZaLwE6aMYRwS0nLhWRRZQH4Wlc_PK8oAjXpO_XPbXHx6GeZpG6pbnyPzYBOi8o3kUSS_kr-DlcH5t8m522oDEmlB9CehblOfPt8KHpdPds1YLMhwjiEoZ_ZCC/s320/PXL_20231030_185926179%20(1).jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: x-small;&quot;&gt;President Biden speaking at the AI Order signing ceremony.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Much has been said about the size of AI Order but what struck me about it was its willingness to contain tensions. It has provisions dealing with concerns about &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Artificial_general_intelligence&quot; style=&quot;font-family: arial;&quot;&gt;AGI&lt;/a&gt;&lt;span style=&quot;font-family: arial;&quot;&gt; and existential threats as well as the current and historical harms from AI that are impacting people now. It has numerous specific provisions that are more national security focused and also many that are more typical of domestic policy and equity. It has a number of provisions that may impose burdens on new entrants to the AI space but also provisions that would radically lower barriers to entry. It addresses numerous AI harms but also contains provisions that recognize and&amp;nbsp; seek to catalyze its benefits.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;All of this speaks to the nuanced understanding of AI that exists in the federal government from President Biden to the various folks working day to day on getting the Order together. I believe that&#39;s a product of &lt;/span&gt;&lt;a href=&quot;https://www.bricoleur.org/2023/10/my-time-in-biden-harris-administration.html&quot; style=&quot;font-family: arial;&quot;&gt;greater tech fluency throughout the White House and federal agencies&lt;/a&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&amp;nbsp;and the way the White House has prioritized AI policy.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Another striking thing about the AI Order is the sheer volume of deliverables it launches. I&#39;m going to want to see what becomes of them, so I made an&amp;nbsp;&lt;a href=&quot;https://calendar.google.com/calendar/embed?src=1da69146aac4a7a6b9984db672316cb018d3adbe0dad53d7acf3da08526d9044%40group.calendar.google.com&amp;amp;ctz=America%2FNew_York&quot;&gt;AI Order and OMB AI Guidance Calendar&lt;/a&gt;&amp;nbsp;(and in &lt;a href=&quot;https://calendar.google.com/calendar/ical/1da69146aac4a7a6b9984db672316cb018d3adbe0dad53d7acf3da08526d9044%40group.calendar.google.com/public/basic.ics&quot;&gt;iCal&lt;/a&gt;). It might be helpful to you too. You can import it into your Google or iCal calendar. Please let me know if I got a date wrong or missed one.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;The calendar only contains entries tied to dates and contains one hundred entries. There were a lot more actions that eitherstarted immediately or were not associated with a date by which they had to be done.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;In creating the calendar, it was also striking that the AI Order requires some deliverables that are quite distant from today. I&#39;m generally pretty skeptical of requirements far in the future for the reasons Jen Pahlka describes so well in her great book &lt;a href=&quot;https://www.recodingamerica.us/&quot;&gt;Recoding America&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;I will add more entries from the OMB AI Guidance once it is finalized but for now the calendar contains the most important one: December 5, 2023, the date that comments are due. There is a &lt;a href=&quot;https://www.whitehouse.gov/wp-content/uploads/2023/11/Guide-for-Public-Comment-on-Regulations.gov_.pdf&quot;&gt;helpful guide to commenting&lt;/a&gt; on the Guidance as well as a &lt;a href=&quot;https://www.regulations.gov/document/OMB-2023-0020-0001&quot;&gt;Regulations.gov page&lt;/a&gt; for submitting comments. Please consider giving it a read and submitting comments.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;I&#39;m excited that the AI Order and draft OMB AI Guidance are out in the world and look forward to hearing what folks think about them.&lt;/span&gt;&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGI4I9jUxX3JJKerBgNogPerQsTagMtpDBxKDhDNocl174XkNDHA53DKWwXU_vNwGGj79sRhxWHmyCZ9gHqqxWqwCejeW03xUIRrdCzM0Cde5hc99fOHGAm-4ToJ2lXVTAseqxxDLcmLv0Bkr43BDdW5HX-sCHr7WbYh_9jD_NoNxURlVmqv7FJi669OnB/s4080/PXL_20231030_192218771.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;3072&quot; data-original-width=&quot;4080&quot; height=&quot;241&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGI4I9jUxX3JJKerBgNogPerQsTagMtpDBxKDhDNocl174XkNDHA53DKWwXU_vNwGGj79sRhxWHmyCZ9gHqqxWqwCejeW03xUIRrdCzM0Cde5hc99fOHGAm-4ToJ2lXVTAseqxxDLcmLv0Bkr43BDdW5HX-sCHr7WbYh_9jD_NoNxURlVmqv7FJi669OnB/s320/PXL_20231030_192218771.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: x-small;&quot;&gt;A good group of the Blueprint for an AI Bill of Rights team posing together at the AI Order signing ceremony.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/9053486159726713338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/9053486159726713338' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/9053486159726713338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/9053486159726713338'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2023/11/biden-admin-artificial-intelligence.html' title='Biden Admin Artificial Intelligence Executive Order &amp; OMB Guidance: Some thoughts &amp; a calendar'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinb55p6QEDFrCbSSXc1d-kIevxBcIhE4Bt3a7Rlh7y3ddvtZmvE4E4Q9GBmoCWZkPQfn6ZaLwE6aMYRwS0nLhWRRZQH4Wlc_PK8oAjXpO_XPbXHx6GeZpG6pbnyPzYBOi8o3kUSS_kr-DlcH5t8m522oDEmlB9CehblOfPt8KHpdPds1YLMhwjiEoZ_ZCC/s72-c/PXL_20231030_185926179%20(1).jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-7746677662959235713</id><published>2023-10-24T06:50:00.006-07:00</published><updated>2023-10-24T07:09:43.524-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="usgov"/><title type='text'>My Time in The Biden-Harris Administration </title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;
I recently (ok, &lt;i&gt;not&lt;/i&gt; that recently) left the Biden-Harris Administration after serving in a variety of ways over the last few years. Initially I was part of the transition team. Then, after a break, I became Deputy Assistant to the President and Principal Deputy US Chief Technology Officer (CTO), in the &lt;a href=&quot;https://www.whitehouse.gov/ostp/&quot;&gt;Office of Science and Technology Policy&lt;/a&gt;
through the wonderful &lt;a href=&quot;https://new.nsf.gov/tip/latest&quot;&gt;National Science Foundation Technology, Innovation and Partnerships Directorate&lt;/a&gt;. I&#39;m grateful for the time I had in the administration, the phenomenal people I got to work with, and the impact we had together.&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqFBIx-NXBwirZmABJypd8bFYir0RqLK-T4ZctdLf7CIR6aN_5Ojznx6JuB3Yorr2ivHioXSG26h3kzeh4W98DF55rRhtFI7jTnCdI1PzNfcsTBhlXhq5uB04o_ur7FJnCHCixWvStyGhxz5Vgl9_-UGQ5e7Jic7UyLqhFHW18arZwVvLV2bCJ2dSQcWif/s4080/PXL_20220525_135952014.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;4080&quot; data-original-width=&quot;3072&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqFBIx-NXBwirZmABJypd8bFYir0RqLK-T4ZctdLf7CIR6aN_5Ojznx6JuB3Yorr2ivHioXSG26h3kzeh4W98DF55rRhtFI7jTnCdI1PzNfcsTBhlXhq5uB04o_ur7FJnCHCixWvStyGhxz5Vgl9_-UGQ5e7Jic7UyLqhFHW18arZwVvLV2bCJ2dSQcWif/s320/PXL_20220525_135952014.jpg&quot; width=&quot;241&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: x-small;&quot;&gt;The Eisenhower Executive Office Building hallway leading to the Navy Steps down to the White House. One of my favorite views in the EEOB. In the morning the light as you walk towards those doors is blinding.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;Joining the small but mighty CTO team in the fall of 2021 was quite different from when &lt;a href=&quot;https://www.bricoleur.org/2017/04/first-time-in-government.html&quot;&gt;I held a similar role in the Obama-Biden Administration&lt;/a&gt;. For one thing, I was joining at the beginning of an administration, not the end. For another, President Biden had learned a number of lessons during his long career and time as Vice President that led his administration to keep a rigorous focus on the &lt;a href=&quot;https://www.whitehouse.gov/priorities/&quot;&gt;priorities President Biden had outlined on the campaign&lt;/a&gt; and to prioritize effective implementation of policy initiatives at the highest level. Finally, from a tech perspective, the government in 2021 was different than in 2014.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;The first US CTOs extended our government’s capacity to use technology effectively and brought tech expertise to White House policy making. In 2009, few agencies used modern technology fluently. Many career techie civil servants were pushing for change but were met with the various forms of resistance as &lt;a href=&quot;https://www.linkedin.com/in/jpahlka&quot;&gt;Jen Pahlka&lt;/a&gt; details in her exceptional book, &lt;a href=&quot;https://www.recodingamerica.us/&quot;&gt;Recoding America&lt;/a&gt;. The first three US CTOs, &lt;a href=&quot;https://www.linkedin.com/in/apchopra&quot;&gt;Aneesh Chopra&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/todd-park-3232573&quot;&gt;Todd Park&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/Megan_Smith&quot;&gt;Megan Smith&lt;/a&gt; and their teams were successful in a wide array of policy areas. They opened data sets for transparency and innovation, championed expanding digital medical records, helped increase access to broadband, brought more &lt;a href=&quot;https://obamawhitehouse.archives.gov/blog/2017/01/04/tq-public-policy&quot;&gt;tech expertise to policy tables&lt;/a&gt;, and much more.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;They also made significant strides, working with many others at the White House and across government agencies, in building the capacity of the federal government to deliver modern technology. That included helping to create the &lt;a href=&quot;https://www.usds.gov/&quot;&gt;US Digital Service&lt;/a&gt;, the &lt;a href=&quot;https://join.tts.gsa.gov/&quot;&gt;Tech Transformation Service&lt;/a&gt;, the &lt;a href=&quot;https://presidentialinnovationfellows.gov/&quot;&gt;Presidential Innovation Fellows&lt;/a&gt;, and supporting the creation of agency digital services (e.g. the &lt;a href=&quot;https://www.dds.mil/&quot;&gt;Defense Digital Service&lt;/a&gt;, &lt;a href=&quot;https://www.usds.gov/projects/medicare-payment-program&quot;&gt;Health and Human Services Digital Service&lt;/a&gt;, etc) and the transformative work of the federal and agency Chief Information Officers (CIOs) and Chief Data Officers (CDOs).&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;One of the most exciting things about being back in government in 2021 was how different it was from 2009. In 2021, there was significant tech expertise in all of the White House policy counsels, from the Domestic Policy Council, to both the National Economic Council and National Security Council. Even without counting the excellent CTO Team, the Office of Science and Technology Policy had significant technical expertise in its other divisions – including &lt;a href=&quot;https://www.alondranelson.com/&quot;&gt;Alondra Nelson&lt;/a&gt;’s incredible Science and Society division. Both Alondra and &lt;a href=&quot;https://www.whitehouse.gov/ostp/directors-office/&quot;&gt;Arati Prabhakar&lt;/a&gt;, two of the three Office of Science and Technology Directors during my tenure, were highly technically sophisticated. In addition, leaders at agencies across the spectrum were increasing technical fluency at all levels.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1640&quot; data-original-width=&quot;1955&quot; height=&quot;269&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwPCfmStUM48pLpzyC8jBw4stidSXZX6Zcz6CLacUxmyh7pPIABE6WShf3I5_3_YR60I2RTIXVMeVCZ2p9PPAKr2Qy76viH8MaH86IJGqEWVcVsoVHZ_8FMuuSPy2-IO335W6RuLMqhEB6YT1hUEtKSYvxAI1un1DifoqA6xWxvITR7ZDSEM3xh5YnUWAU/w320-h269/PXL_20220519_171430252-cropped.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot; width=&quot;320&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: x-small;&quot;&gt;Senior Staff at the Office of Science and Technology Policy circa May 2022.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwPCfmStUM48pLpzyC8jBw4stidSXZX6Zcz6CLacUxmyh7pPIABE6WShf3I5_3_YR60I2RTIXVMeVCZ2p9PPAKr2Qy76viH8MaH86IJGqEWVcVsoVHZ_8FMuuSPy2-IO335W6RuLMqhEB6YT1hUEtKSYvxAI1un1DifoqA6xWxvITR7ZDSEM3xh5YnUWAU/s1955/PXL_20220519_171430252-cropped.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;Furthermore, the centralized tech experts at the US Digital Service, Federal CIO, and &lt;a href=&quot;https://www.whitehouse.gov/ostp/&quot;&gt;GSA&lt;/a&gt; were – and still are – thriving under strong leadership of Mina Hsiang, Clare Martorana, and Robin Carnahan. Many agencies have digital services groups of their own, while others have bulked up their CIO, CTO or other offices to more aggressively pursue strong digital service delivery. And, if you looked into the teams working on the biggest problems, such as climate change or COVID-19, you’d find strong tech experts.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;3167&quot; data-original-width=&quot;4748&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuTG6VQAZ-sSQlQhynzyijRdelFUsiWQH1I-fM9PRglY-kAeMa5rIwpvbW2l7ZvQLoxWuDvXVkfMzxFaNAAAU89QBZ_LQcAtpOu6B3C9fntTlOTuc-0jh-0DU41o1dGCbyActa84rZlMeSDAbpaXKf84jEc6a_Wx9ZRnv2JmshRobA5dbg18HTeFO92Yiv/s320/P20221012YM-1358.JPG&quot; style=&quot;margin-left: auto; margin-right: auto;&quot; width=&quot;320&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: x-small;&quot;&gt;I love walking meetings. This is staged for the White House photographer. In real ones I wouldn&#39;t be wearing a suit. With me are two wonderful members of the CTO team, Ismael Hussein and April Chen.&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuTG6VQAZ-sSQlQhynzyijRdelFUsiWQH1I-fM9PRglY-kAeMa5rIwpvbW2l7ZvQLoxWuDvXVkfMzxFaNAAAU89QBZ_LQcAtpOu6B3C9fntTlOTuc-0jh-0DU41o1dGCbyActa84rZlMeSDAbpaXKf84jEc6a_Wx9ZRnv2JmshRobA5dbg18HTeFO92Yiv/s4748/P20221012YM-1358.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;
&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;While the government environment was changing, the CTO team’s core mission remained the same. Our priorities were to build tech capacity and advise on policy, all in the service of delivering on the President’s agenda and delivering results for the American people. The CTO team still works hard on establishing good tech policy, including in the areas of artificial intelligence, digital assets (cryptocurrency), privacy, platform regulation, advanced air mobility, web accessibility, broadband access, wireless spectrum policy and in many other areas. Also, under the leadership of &lt;a href=&quot;https://www.linkedin.com/in/denicewross&quot;&gt;Denice Ross&lt;/a&gt; and now &lt;a href=&quot;https://www.linkedin.com/in/dominiqueduvaldiop&quot;&gt;Dominique Duval-Diop&lt;/a&gt; in the role of U.S. Chief Data Scientist, we had the privilege of continuing to support federal data science expertise, including in the development of &lt;a href=&quot;https://www.whitehouse.gov/ostp/news-updates/2022/04/22/the-release-of-the-equitable-data-working-group-report/&quot;&gt;equitable data&lt;/a&gt; that can be used to ensure government benefits and services reach those who&amp;nbsp; need them the most and that data science is&amp;nbsp; a&amp;nbsp; key&amp;nbsp; part of &amp;nbsp; policy implementation.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBaNMg2hjExArYTg-C2cxr3tsZr5_0zBTBxRi5cUvGmNqTB4B5V5Txw4otB3GuOG2Gn22-uUgDe1umKxf0CokB0rrHO8HU8q6XKChXKD7RPiWE44PeroWgTvCZm-UY_8hKU2Ey1UmKtxEerMnwljBz0vHYXJGXIHkQE7nmbkFu13qapFovcpOgGh4TkQaR/s904/Screenshot%20from%202023-10-24%2009-27-02.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;818&quot; data-original-width=&quot;904&quot; height=&quot;290&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBaNMg2hjExArYTg-C2cxr3tsZr5_0zBTBxRi5cUvGmNqTB4B5V5Txw4otB3GuOG2Gn22-uUgDe1umKxf0CokB0rrHO8HU8q6XKChXKD7RPiWE44PeroWgTvCZm-UY_8hKU2Ey1UmKtxEerMnwljBz0vHYXJGXIHkQE7nmbkFu13qapFovcpOgGh4TkQaR/s320/Screenshot%20from%202023-10-24%2009-27-02.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;President Biden and Vice President Harris meeting with AI CEOs on the promise and risks of AI. This meeting and its followup commitments are examples of the types of tools the CTO team used to drive policy forward.&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;Delving deeper on the team’s artificial intelligence work the US CTO team was deeply involved in President Biden’s work on AI. The team helped draft and launch the landmark &lt;a href=&quot;https://www.whitehouse.gov/ostp/ai-bill-of-rights/&quot; style=&quot;font-family: arial;&quot;&gt;Blueprint for an AI Bill of Rights&lt;/a&gt;. We spearheaded the &lt;a href=&quot;https://www.washingtonpost.com/technology/2023/05/04/white-house-ai-ceos-meeting/&quot; style=&quot;font-family: arial;&quot;&gt;Biden-Harris AI CEO convening&lt;/a&gt; that resulted in a &lt;a href=&quot;https://www.whitehouse.gov/briefing-room/statements-releases/2023/07/21/fact-sheet-biden-harris-administration-secures-voluntary-commitments-from-leading-artificial-intelligence-companies-to-manage-the-risks-posed-by-ai/&quot; style=&quot;font-family: arial;&quot;&gt;set of commitments from the largest AI companies regarding AI&lt;/a&gt;. We led, hosted or participated in the various White House AI processes to create federal AI policy as well as subsidiary policies such as the &lt;a href=&quot;https://www.whitehouse.gov/wp-content/uploads/2023/05/National-Artificial-Intelligence-Research-and-Development-Strategic-Plan-2023-Update.pdf&quot; style=&quot;font-family: arial;&quot;&gt;National AI Research and Development Strategic Plan&lt;/a&gt;. We put forward the &lt;a href=&quot;https://www.ai.gov/wp-content/uploads/2023/01/NAIRR-TF-Final-Report-2023.pdf&quot; style=&quot;font-family: arial;&quot;&gt;National AI Research Resource&lt;/a&gt; to ensure public sector participation in AI research and development. We also hosted the &lt;a href=&quot;https://www.ai.gov/&quot; style=&quot;font-family: arial;&quot;&gt;National AI Initiative Office&lt;/a&gt;, the federal coordination body for AI policy. That comprehensive approach to AI is similar to how we approached other policy areas.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuBJhMwHFz7iwQiJoE9QbVyEYLJZIbHWrcTvBllIlZWLLFGJiZ5z6K6KNshHfIVJqCQtpfse_ns5exCpbQAEt-rv3gBdhETE0X0-va65HSHEh5g5pWek-QhlULHlDIluvV_KL-eafjwXmWSd6vD5EKeux3YjSAdksCrbT4gFvo_sRswodapOe4K35vS5_u/s4080/PXL_20221004_143355961.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;3072&quot; data-original-width=&quot;4080&quot; height=&quot;241&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuBJhMwHFz7iwQiJoE9QbVyEYLJZIbHWrcTvBllIlZWLLFGJiZ5z6K6KNshHfIVJqCQtpfse_ns5exCpbQAEt-rv3gBdhETE0X0-va65HSHEh5g5pWek-QhlULHlDIluvV_KL-eafjwXmWSd6vD5EKeux3YjSAdksCrbT4gFvo_sRswodapOe4K35vS5_u/s320/PXL_20221004_143355961.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: x-small;&quot;&gt;Alondra Nelson leading a panel during the launch of the Blueprint for an AI Bill of Rights in October 2022. I was proud to have helped draft and achieve the internal consensus required to publish the Blueprint. It was a deep collaboration with the Science and Society Division.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;There is still a ton of work to do and the leadership team now in place on the US CTO team is phenomenal. &lt;a href=&quot;https://www.ischool.berkeley.edu/people/deirdre-mulligan&quot; style=&quot;font-family: arial;&quot;&gt;Deirdre Mulligan&lt;/a&gt; is the Principal Deputy US CTO and is someone I’ve wanted to work with – or for – for more than 20 years, &lt;a href=&quot;https://www.linkedin.com/in/austinbonner&quot; style=&quot;font-family: arial;&quot;&gt;Austin Bonner&lt;/a&gt; is Deputy US CTO for Policy, &lt;a href=&quot;https://www.linkedin.com/in/wade-shen&quot; style=&quot;font-family: arial;&quot;&gt;Wade Shen&lt;/a&gt; is Deputy US CTO for AI and leads the &lt;a href=&quot;https://ai.gov/&quot; style=&quot;font-family: arial;&quot;&gt;National AI Initiative Office&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/denicewross&quot; style=&quot;font-family: arial;&quot;&gt;Denice Ross&lt;/a&gt; is now Deputy US for Tech Capacity, &lt;a href=&quot;https://www.linkedin.com/in/dominiqueduvaldiop&quot; style=&quot;font-family: arial;&quot;&gt;Dominique Duval-Diop&lt;/a&gt; is US Chief Data Scientist, and &lt;a href=&quot;https://nikmarda.com/&quot; style=&quot;font-family: arial;&quot;&gt;Nik Marda&lt;/a&gt;, the longest current serving member of the CTO team, is the Chief of Staff. Working with each of them, and the rest of the CTO team is what I miss most about having left the administration. Watching them take the team in new directions will be the best thing about sitting on the sidelines.&lt;/span&gt;&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgbOfgJN0mmQ4MYCfCbHdZHW-LDoXT34emeZJ4kbk9Gxwg6At4dv-MhiAZ4I75A4I784EewhgU2wW0aIQFYDIiwoKAzirF15-vrN4p7Hgb1ibKWv3yn5lXdqFPy_p1xu4rx5zCNsbttaplwQy5bexTc1N-gKmoMpI9bmY-5cioFbo0Uc9iJzbMlhAjxNAB/s3617/20230515%20Team.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1654&quot; data-original-width=&quot;3617&quot; height=&quot;146&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgbOfgJN0mmQ4MYCfCbHdZHW-LDoXT34emeZJ4kbk9Gxwg6At4dv-MhiAZ4I75A4I784EewhgU2wW0aIQFYDIiwoKAzirF15-vrN4p7Hgb1ibKWv3yn5lXdqFPy_p1xu4rx5zCNsbttaplwQy5bexTc1N-gKmoMpI9bmY-5cioFbo0Uc9iJzbMlhAjxNAB/s320/20230515%20Team.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Zoom tiles from a meeting of the CTO team.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;Our third US CTO, &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Megan_Smith&quot; style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;Megan Smith&lt;/a&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;, sometimes joked that the CTO team’s job would be fundamentally different when there were as many tech experts in all the rooms as lawyers or economists. That dream imagines a government that always delivers services effectively, efficiently, and equitably on behalf of the American people. A government that understands, and can keep up with, technologies and the disruptions they create to mitigate harm and ensure that people can maximally benefit from our phenomenally innovative nation. I was privileged to be able to work towards that dream.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;&lt;i&gt;P.S. Now is a critical time to come into government as a techie. The potential to make a deep positive impact on the lives of people is huge. It is also a time of tremendous opportunity because of President Biden’s genuine empathy in understanding people’s needs, as well as his focus and excellence in execution in delivering on their behalf.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;&lt;i&gt;If you are interested in getting involved, please consider applying to join the &lt;a href=&quot;https://www.usds.gov/&quot;&gt;United States Digital Service&lt;/a&gt;, &lt;a href=&quot;https://join.tts.gsa.gov/&quot;&gt;Tech Transformation Services&lt;/a&gt;, &lt;a href=&quot;https://presidentialinnovationfellows.gov/&quot;&gt;Presidential Innovation Fellows&lt;/a&gt;,&lt;a href=&quot;https://digitalcorps.gsa.gov/apply/&quot;&gt;US Digital Corps&lt;/a&gt; or the broader set of government technical jobs on the &lt;a href=&quot;https://tech.usajobs.gov/&quot;&gt;Federal Tech Jobs Portal&lt;/a&gt;. &lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;3072&quot; data-original-width=&quot;4080&quot; height=&quot;241&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ0nXOzY2yFOziixOp5H1Et1q0GGPAsS401bmTt40eQWDVydJccD9kMqo4dPz0o7vWgS6abEhyphenhyphenFNHvyGcA8cPBzb-Ru_rkM2obPGix_r7ygdj1Fgy1OGKCpIU0baILn3i0ph0MPP4B9QQEPqaopVhrRA0saCKRP6OX7Yyqw0U0z9BaDTfPd6bgED3AU1Ym/s320/PXL_20211118_220402573.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot; width=&quot;320&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: x-small;&quot;&gt;One of my favorite views. When leaving around sunset, there would often be a murmeration of starlings near the edge of the South Lawn with the Washington Monument in the background.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ0nXOzY2yFOziixOp5H1Et1q0GGPAsS401bmTt40eQWDVydJccD9kMqo4dPz0o7vWgS6abEhyphenhyphenFNHvyGcA8cPBzb-Ru_rkM2obPGix_r7ygdj1Fgy1OGKCpIU0baILn3i0ph0MPP4B9QQEPqaopVhrRA0saCKRP6OX7Yyqw0U0z9BaDTfPd6bgED3AU1Ym/s4080/PXL_20211118_220402573.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 12pt;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/7746677662959235713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/7746677662959235713' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/7746677662959235713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/7746677662959235713'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2023/10/my-time-in-biden-harris-administration.html' title='My Time in The Biden-Harris Administration '/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqFBIx-NXBwirZmABJypd8bFYir0RqLK-T4ZctdLf7CIR6aN_5Ojznx6JuB3Yorr2ivHioXSG26h3kzeh4W98DF55rRhtFI7jTnCdI1PzNfcsTBhlXhq5uB04o_ur7FJnCHCixWvStyGhxz5Vgl9_-UGQ5e7Jic7UyLqhFHW18arZwVvLV2bCJ2dSQcWif/s72-c/PXL_20220525_135952014.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-6800454650222248867</id><published>2021-01-21T13:47:00.003-08:00</published><updated>2021-02-11T08:10:38.347-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="about"/><category scheme="http://www.blogger.com/atom/ns#" term="politics"/><title type='text'>The Last Four Years</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;I haven’t shared an update here on what I have been up to since the &lt;a href=&quot;http://www.bricoleur.org/2017/04/first-time-in-government.html&quot;&gt;end of the Obama Administration&lt;/a&gt;, so now’s a good time to write some of this down.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Like many, I was extremely worried by Donald Trump’s election to the Presidency. Doing all I could to get to a different result in 2020 drove much of my work since 2017. I also tried to extend my non-profit work and grow my fundraising ability because I came to the sad realization that my fundraising ability is worth at least as much, if not more, than my strategic advice to the non-profits I care about (and I am not very good at fundraising).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;All of the projects below were overlapping, and most were not full-time. They combined to be a ridiculous amount of work sometimes, and nearly no work at other times. The list below is in somewhat chronological order.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Thanks to Megan Smith and Tom Perez, I got to help bring in Raffi Krikorian to be the first Chief Technology Officer of the Democratic National Committee (DNC). Tom understood the value of tech and how badly Democrats were being beaten in this regard. He helped re-up tech within the DNC and the team has done amazing stuff under Raffi and Lindsey Schuh Cortes, and now Nellwyn Thomas and Kat Atwater.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Thanks to Mike Yang, Haley van Dÿck and Mikey Dickerson, I helped found &lt;a href=&quot;https://Alloy.us&quot;&gt;Alloy.us&lt;/a&gt; and was its General Counsel for the first year. Alloy’s mission was to help improve data and technology for the progressive ecosystem. We were originally focused on legal data sharing among progressive organizations and campaigns, but once the Democratic Data Exchange (DDx) got up and running, and based on feedback from potential users, we shifted to improving basic data availability and update frequency, as well as voter registration. The wonderful Kendall Burman took over as General Counsel on January 1st, 2020. Alloy is now in talks with &lt;a href=&quot;https://civitech.io/&quot;&gt;CiviTech&lt;/a&gt; to have them carry on our mission. I’m thankful for the incredible people we were able to hire, many of whom I had not met before, and for the fact that Alloy seems to have had a positive impact on the election and Georgia runoffs through its set of partners.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;While working on the tech and data side for Dems and progressives, I also got drawn into, and did some funding of, and fundraising for, a wide set of organizations and candidates. One of the most amazing things to come out of 2016 was the incredible set of new organizations and candidates. The narrow 2016 loss to the person who would become one of the worst presidents in American history was also a catalyst for a bunch of more established organizations to do great work. I am really grateful to the many, many people who shared their wisdom and time as I was getting up to speed (I still am). I am also grateful to the folks who did the work of registering a record breaking number of new voters, helped to elect good candidates, including President Biden, and then protected those victories against the efforts to undo them. Before 2016 I had no idea of the richness and variety of people and organizations that are part of the big tent of the progressive community and Democratic party. It looks chaotic at times, but I was constantly blown away by the talented, committed people who work in politics. Many do so without much compensation or limelight, and nearly everyone I met shared a basic common purpose that was tied to getting real benefits for people.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Thanks to Eric Goldman, Adelin Cai, Clara Tsao, and Denelle Dixon-Thayer, I got to help found the &lt;a href=&quot;https://tspa.info/&quot;&gt;Trust &amp;amp; Safety Professional Association&lt;/a&gt; (TSPA) and the &lt;a href=&quot;https://www.tsf.foundation/&quot;&gt;Trust &amp;amp; Safety Foundation Project&lt;/a&gt; (TSF). I’ve wanted to do something like this for fifteen years but it took others to push for their formation.&amp;nbsp; I had the good fortune of getting to know some great Cognizant folks, including Kristen Titus and Davis Abraham, and many others while fundraising for TSPA and TSF. And then I got to talk to many old friends and make some new ones as we considered who would be the perfect first Executive Director. I couldn’t be happier that Charlotte Willner took the job. Being so immersed in a community I have been around for a long time was deeply satisfying. And the collective “FINALLY!!!” we heard on launching underscored to me that community building is important and should never be put off.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;I’ve also spent a good amount of time working as a Board Member at &lt;a href=&quot;https://creativecommons.org/&quot;&gt;Creative Commons&lt;/a&gt; and &lt;a href=&quot;https://datasociety.net/&quot;&gt;Data &amp;amp; Society&lt;/a&gt;. They are two great organizations from which I have learnt a lot. I am the Board lead for fundraising at both places, and so have been asking many of my friends for money to support their wonderful missions. Being a Board Member is also something I am still learning, and I have been thankful to get to watch others who are better at it than I, and to have such an intimate view of these two very different organizations during these exceptional times. I still also exist as a fanboy for the work that Creative Commons and Data &amp;amp; Society each do, so it is great to feel like I am helping them achieve their goals.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;More recently, thanks to Yohannes Abraham, DJ Patil, David Recordon, Ginny Hunt, Mina Hsiang, Eric Hysen, Clarence Wardell and many others, I was lucky to get to work on the Biden Transition (and with my old friend and mentor Nicole Wong). That was a huge privilege and again underscored that working with a great team, on hard problems, with one clear purpose is a wonderful experience. I am so pleased for the folks who are going into government (and will try to write more about some of them soon). If you want to learn more about transitions, &lt;a href=&quot;https://presidentialtransition.org/transition-lab/&quot;&gt;Transition Lab&lt;/a&gt; is a fabulous podcast and episode 46 (!!) is with&amp;nbsp; Yohannes.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;I would not have thought in 2016 that I would have spent a large portion of the next four years in politics and political tech. Nor would I have thought I would have helped found three non-profits. So while&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;I continue to be on the Board at Alloy, Creative Commons, Data &amp;amp; Society, TSPA and TSF,&lt;/span&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&amp;nbsp;I really don’t know what the next of these updates will look like. After President Biden’s heartwarming inauguration, I am very hopeful for us all.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Finally, if you got this far and are wondering what to donate to in the new year with the hellishness of COVID still in full swing, please consider using this &lt;a href=&quot;https://www.feedingamerica.org/find-your-local-foodbank&quot;&gt;tool to find your local food bank and donate&lt;/a&gt;. I have a longer and &lt;a href=&quot;https://www.bricoleur.org/2020/04/covid-19-donation-list.html&quot;&gt;slightly older list of COVID charities here&lt;/a&gt;, but know that many are having a very hard time getting basics like food and shelter, so please be generous.&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/6800454650222248867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/6800454650222248867' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/6800454650222248867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/6800454650222248867'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2021/01/the-last-four-years.html' title='The Last Four Years'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-6767237814213251093</id><published>2020-05-07T08:44:00.000-07:00</published><updated>2020-05-07T08:44:18.096-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="expression"/><category scheme="http://www.blogger.com/atom/ns#" term="law"/><title type='text'>First Amendment and Earlyish Content Moderation</title><content type='html'>This thread got long, so here is a perhaps more easily read copy of it:&lt;br /&gt;
&lt;br /&gt;
One thing that came up on #InLieuOfFun that I didn&#39;t get the chance to answer was @klonick asking about whether the earlyish content moderation was based on &quot;First Amendment Norms.&quot; I think the answer to that is a bit more complicated than it may seem.&lt;br /&gt;
1/&lt;br /&gt;
&lt;br /&gt;
Am speaking from my experience at Google (outside counsel 2000-3, inside 2003-9) and Twitter (2009-13). Others may have used different approaches.&lt;br /&gt;
2/&lt;br /&gt;
&lt;br /&gt;
By &quot;First Amendment Norms&quot; I take @Klonick to mean that the platforms were thinking about what a govt might be OK banning under 1st Am jurisprudence in the US.&lt;br /&gt;
&lt;br /&gt;
Of course, the platforms aren&#39;t govt &amp;amp; 1st Am doesn&#39;t speak to what govts ban, only what they cannot. But still...&lt;br /&gt;
3.1/&lt;br /&gt;
&lt;br /&gt;
To restate, &quot;1st Am Norms&quot; might be something like platforms ~only~ removing what was removable under US 1st Am jurisprudence ~and~ had been generally made illegal in the US (or elsewhere if doing geo-removals), irrespective of 47 USC 230.&lt;br /&gt;
3.2/&lt;br /&gt;
&lt;br /&gt;
First, lots of content removal was simply not cognizable under 1st Am analysis. Spam was a significant issue for Google&#39;s various products &amp;amp; Twitter. I don&#39;t know of a jurisdiction where spam is illegal &amp;amp; it is unclear whether a govt banning it would survive 1st Am.&lt;br /&gt;
4.1/&lt;br /&gt;
&lt;br /&gt;
Nevertheless, spam removal (both by hand and automated) was/is extremely important and was done on the basis of improving user experience / usefulness of the products.&lt;br /&gt;
4.2/&lt;br /&gt;
&lt;br /&gt;
Similarly, nudity &amp;amp; porn were sometimes banned for similar reasons. Some types of products (video) might be overrun by porn and be unwelcome for other uses / users if porn was not discouraged through removal, especially early. And yet, the 1st Am is quite porn-friendly.&lt;br /&gt;
4.3/&lt;br /&gt;
&lt;br /&gt;
There were also some places that might look like they fit 1st Am norms but were really the platforms deferring to courts. For example, a court order for the removal of defamation would result in removal (irrespective of §230 immunity).&lt;br /&gt;
5.1/&lt;br /&gt;
&lt;br /&gt;
You can square that w/ 1st Am norms but the analysis was not based on what types of defamation or other causes of action the 1st Am would allow, but rather deferring to courts of competent jurisdiction in democracyish places.* &amp;lt;- this last bit was complicated + inexact.&lt;br /&gt;
5.2/&lt;br /&gt;
&lt;br /&gt;
Where we refused, it was often about fairness, justice, human rights, or jurisdictional distance from the service, not the 1st Am per se.&lt;br /&gt;
5.3/&lt;br /&gt;
&lt;br /&gt;
All of that said, I do think there were times when we look to the 1st Am (and freedom of expression exceptions more generally) to try to grapple with what the right policy was for each product.&lt;br /&gt;
6.1/&lt;br /&gt;
&lt;br /&gt;
For example, understanding what types of threats we would remove from Blogger, we used US precedent to guide our rules. My memory is hazy as to why, but I believe it stemmed from two factors: (a) that we felt that we were relatively new to analyzing this stuff but that&lt;br /&gt;
6.2/&lt;br /&gt;
&lt;br /&gt;
the Courts had more experience drawing those lines, and (b) that the Courts and Congress, being part of a functioning democracy, might reflect the general will of the people. These were overly simplistic ideas but that&#39;s my memory.&lt;br /&gt;
6.3/&lt;br /&gt;
&lt;br /&gt;
In summary: while I think there is something to the idea that 1st Am norms were important, I think the bigger impetus was trying to effectively build the products for our then users -- to have the product do the job the user wanted -- within legal/ethical constraints. But...&lt;br /&gt;
7.1/&lt;br /&gt;
&lt;br /&gt;
But, we did all of that from a particular set of perspectives (and that&#39;s what the 1st Am norms are probably part of) that was nowhere near diverse enough given the eventual reach and importance of our products.&lt;br /&gt;
7.2/&lt;br /&gt;
&lt;br /&gt;
I&#39;d love the read of others doing or observing this work at the time on whether I&#39;m misremembering/misstating @nicolewong @goldman @delbius @jilliancyork @adelin @rmack @mattcutts @clean_freak @helloyouths @dswillner +many more + those who aren&#39;t on Twitter… (please tag more)&lt;br /&gt;
8/&lt;br /&gt;
&lt;br /&gt;
And, in case you want to see the question I&#39;m referring to, from @Klonick on #InLieuOfFun look here at minute 22:11 (though the whole conversation was good):&lt;br /&gt;
&lt;a href=&quot;https://youtu.be/oYRMd-X77w0?t=1331&quot;&gt;https://youtu.be/oYRMd-X77w0?t=1331&lt;/a&gt;&lt;br /&gt;
9/9</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/6767237814213251093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/6767237814213251093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/6767237814213251093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/6767237814213251093'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2020/05/first-amendment-and-earlyish-content.html' title='First Amendment and Earlyish Content Moderation'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-3868236914823489248</id><published>2020-04-20T08:39:00.002-07:00</published><updated>2022-02-23T08:32:20.147-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="law"/><category scheme="http://www.blogger.com/atom/ns#" term="practice"/><title type='text'>Product Counsel: Origin Story</title><content type='html'>&lt;i&gt;This post is co-authored by &lt;a href=&quot;https://twitter.com/nicolewong&quot;&gt;Nicole Wong&lt;/a&gt; and I. &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
One of the best jobs either of us have ever had, didn’t exist before we had it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
We both started as lawyers in Silicon Valley firms. Alexander joined Google in May of 2003 as an IP Counsel. Less than a year later, Nicole joined as Senior Compliance Counsel. For both of us, the pitch was some combination of a bunch of our favorite areas of law, including privacy, content, consumer protection, copyright, open source, and jurisdictional issues as the company’s product ambitions and international footprint grew. As in many start ups, our actual jobs were to do whatever needed to get done.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Gmail launched in April 2004 (on April Fools Day -- don’t do that) and that marked the beginning of Google’s &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_Google_products&quot;&gt;explosion in terms of number of products&lt;/a&gt;, including Book Search, Maps, Chat, and the acquisitions of DoubleClick and YouTube. Google grew not only in terms of its product offerings, but  in number of users, revenue, the number of countries it was in, and its impact in the world. The stakes got MUCH higher while product, operational and, of course, legal complexity exploded.&lt;br /&gt;
&lt;br /&gt;
We both set to work trying to figure out how to help Googlers launch successful products that were legal (at least in the countries where we operated). We each had some experience with this as outside counsel, and we were both pretty unsatisfied with the typical model of legal review for products. &lt;br /&gt;
&lt;br /&gt;
That model was taken from big companies which historically treated legal review like part of an assembly line (towards the end). The product teams would develop products and then check in with a line of legal subject matter experts for sign-off before launch. For example, a product that matched people to their perfect pet might get designed, written, tested, and be ready to launch when it was then taken for review by a commercial lawyer for the terms of service, an intellectual property lawyer for trademark and copyright clearance, a patent lawyer in case anything new had been invented, a regulatory attorney for regulatory compliance (sometimes including privacy), and maybe an export control lawyer and a similar set of experts in the countries where the product was launching. Law firms are typically departmentalized in similar ways, aligning along legal subject matter specialization, and consequently smaller companies who don’t have in-house counsel often need to hire multiple specialized lawyers.&lt;br /&gt;
&lt;br /&gt;
There are four major problems with this process:  &lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;legal approval in each area is binary and too late: by the time the product is built, there is a large amount of pressure to launch with little ability to make more than cosmetic changes to the product;  &lt;/li&gt;
&lt;li&gt;legal approval is too fragmented: a product might need several different legal approvals (or rounds of consultation and then approval) from in-house and/or outside counsel. That would take too long and be very inefficient for a product team, which would have to explain the product to each new counsel. On top of that, no counsel would be able to weigh risks across domains to come up with more holistic tradeoffs.  &lt;/li&gt;
&lt;li&gt;legal would understand the law but not necessarily the product: dividing up legal counsel by area of legal specialization means that each lawyer has a depth in law and a breadth in products.  &lt;/li&gt;
&lt;li&gt;legal becomes “them” versus the product team’s “us”: last minute binary review by people who don’t know the product or the product team unnecessarily forces misalignment between the team trying to get something done for the users and the business, and the lawyers. That misalignment can result in all sorts of bad, from simple misunderstandings to adversarial behavior. &lt;/li&gt;
&lt;/ol&gt;
Taking our lead from Google’s first lawyer Kulpreet Rana and the way many commercial legal teams already functioned, we started working at the beginning of the product process rather than the end. We joined product teams and tried to get deep understanding of the product goals early, so that we could help them meet those goals with the right legal considerations. That meant going to a lot of meetings where product teams struggled to define and execute on new product and feature designs, raising legal issues, and working through alternatives. We tried to help our teams remove obstacles to their launches and refine launch processes so that the teams could deliver more easily and understand legal constraints that would result in us later blocking launch. We consolidated legal review so that the team could get answers from fewer lawyers and feel that those lawyers could properly balance risks and benefits in a holistic way. That meant that each of us would be responsible for a set of products on the core legal issues those products would face at launch.&lt;br /&gt;
&lt;br /&gt;
This approach is not without downsides. Perhaps the biggest is that product depth can come at the expense of legal depth, which meant that we sometimes incurred costs working with outside counsel and experts in legal areas and countries outside of our expertise or missed legal issues. However, we remain convinced that the vast majority of significant mistakes in-house departments make in our industry are the result of not understanding the product rather than not understanding the law. Another downside is that while being part of the “us” of a team is satisfying, can result in a much better understanding of a product, and better teamwork in identifying and fixing problems, it can also mean you are in the team “groupthink” as opposed to removed from it. Careful attention must be paid to all of the ways to reduce groupthink and it is imperative that you actively seek input from folks outside the bubble if you are going to effectively understand the various impacts your product decisions are likely to have in the world. We found it really helpful to discuss product features with advocacy organizations and they frequently improved the products. But, there were also definitely times we screwed up. &lt;br /&gt;
&lt;br /&gt;
The actual role of “product counsel” grew out of the fact that our previous job descriptions didn’t make much sense given how we were doing our jobs. So we started thinking through names. Originally, we liked “launch counsel” because it was active, aligned with what our teams were trying to do, and could describe a bunch of different areas of law. Eventually we settled on “product counsel” because it was even more descriptive of the alignment we hoped for, and was tied to the whole lifecycle of a product from idea generation through maintenance and refinement, not just launch.&lt;br /&gt;
&lt;br /&gt;
Our &lt;a href=&quot;https://web.archive.org/web/20050224014451/http://www.google.com:80/jobs/legal.html&quot;&gt;first job posting was in February 2004&lt;/a&gt;. It read:&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;=======================&lt;br /&gt;Google is looking for experienced and entrepreneurial attorneys to develop and implement legal policies and approaches for new and existing products. The Product Counsel will be responsible for a portfolio of Google products across many legal subject areas including privacy, security, content regulation, consumer protection and intellectual property. Indeed, the only product legal matters with which this position will not be deeply involved are those that are strictly patent or transactional in nature, which are handled by other existing Google lawyers.&lt;br /&gt;&lt;br /&gt;Requirements: &lt;br /&gt;Passion for and deep understanding of internet. &lt;br /&gt;Very strong academic credentials. &lt;br /&gt;Solid understanding of Internet architecture and operation. &lt;br /&gt;Ability to respond to questions/issues spontaneously. &lt;br /&gt;Demonstrated ability to manage multiple matters in a time-sensitive environment. &lt;br /&gt;Strong interpersonal and team skills. &lt;br /&gt;Excellent interpersonal skills, dynamic and highly team-oriented. &lt;br /&gt;Flexibility and willingness to work on a broad variety of legal matters. &lt;br /&gt;Superior English language writing and oral communication skills. &lt;br /&gt;Sense of humor and commitment to professionalism and collegiality are required. &lt;br /&gt;California Bar&lt;br /&gt;=======================&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Note the many mistakes in that posting. For example, the Internet is referred to with both lower-case and upper-case capitalization (back then I was incorrectly not capitalizing it). Ug. &lt;br /&gt;
&lt;br /&gt;
Even so, we were very fortunate to recruit an amazing set of folks at Google to become the first Product Counsel. Some of the originals who defined the role were: Glenn Brown, Trevor Callaghan, Halimah DeLaine, Brian Downing, Gitanjli Duggal, William Farris, Mia Garlick, Milana Homsi, Susan Infantino, Daphne Keller, Lance Kavanaugh, Courtney Power, Nikhil Shanbhag, Tu Tsao, and Mike Yang (in alphabetical order). The team was eventually about forty-strong by the time we left and worked across many countries. The idea of it spread relatively quickly in the industry and now &lt;a href=&quot;https://www.linkedin.com/search/results/people/?keywords=%22product%20counsel%22&quot;&gt;LinkedIN lists thousands of product counsel&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Product Counsel, particularly when we were still doing it and not just managing people doing it, was one of the best jobs we have ever had. &lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/3868236914823489248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/3868236914823489248' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/3868236914823489248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/3868236914823489248'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2020/04/product-counsel-origin-story.html' title='Product Counsel: Origin Story'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-7389152898560669614</id><published>2020-04-16T12:24:00.002-07:00</published><updated>2020-05-05T08:20:00.468-07:00</updated><title type='text'>COVID-19 Donation List</title><content type='html'>&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;This list is designed to help people give money in a time of COVID-19. There are many many many great projects out there helping people. Sometimes they need people to help with specific skills or equipment but all also need money. For each category listed below, there are some recommended charitable organizations. There are also some writeups, many of which were sources of recommendations. Please give generously.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
This list is somewhat long so to help you find something that resonates with you. BUT, if you don’t have the time or inclination to look through the whole list, you can donate to the &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://covid19responsefund.org/&amp;amp;sa=D&amp;amp;ust=1587064791879000&quot;&gt;World Health Organization fund&lt;/a&gt;&lt;/span&gt;&amp;nbsp;or &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://secure.feedingamerica.org/site/Donation2;jsessionid%3D00000000.app20121b?idb%3D1422587697%26df_id%3D26876%2626876.donation%3Dform1%26mfc_pref%3DT%26NONCE_TOKEN%3D039EE3D47BDB57821DFC5996E2DFB70C%26s_channel%3Dno_channel%26s_onsite_promo%3DMainNav_Donate%26s_subsrc%3Dhttps://www.feedingamerica.org/%26s_src%3DW204DIRCT%2626876_donation%3Dform1&amp;amp;sa=D&amp;amp;ust=1587064791879000&quot;&gt;Feeding America&lt;/a&gt;&lt;/span&gt;&amp;nbsp;easily (just click &amp;amp; donate) or choose a &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.google.com/maps/d/u/0/viewer?mid%3D1nbceydaV515ERWJ3TtqsWN0I_s0bF_1z%26ll%3D40.34002604904353%252C-106.69519983019848%26z%3D4&amp;amp;sa=D&amp;amp;ust=1587064791880000&quot;&gt;local community foundation fund&lt;/a&gt;&lt;/span&gt;&amp;nbsp;from &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.google.com/maps/d/u/0/viewer?mid%3D1nbceydaV515ERWJ3TtqsWN0I_s0bF_1z%26ll%3D40.34002604904353%252C-106.69519983019848%26z%3D4&amp;amp;sa=D&amp;amp;ust=1587064791880000&quot;&gt;this map&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;. If you have an extra second, please tweet or otherwise share that you donated (feel free to tag me and I’ll retweet). Being vocal about donating will encourage others to do the same and increase the value of your donation.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
One other note specifically for those of you (like me) who are privileged to have a Donor Advised Fund (DAF). You may have funded that DAF a while ago with the intention of figuring out how to give away the money over time. You may not have given much away because: life. Now is a very good time to use your DAF to help. You put money in to give it away, not to watch it grow. Your money NOW can make a big difference. Please consider choosing a goal that meets the urgency of this crisis and pushing yourself to give that goal away. Each recommendation below includes the organizations’ EIN so that you can easily give from your DAF (I generally give unrestricted funds, but you can also specify programs when you submit). I have also included recommendations from some DAFs and community foundations at the end. [If you don’t know what a Donor Advised Fund is, don’t worry, you are normal! You don’t have to know about them but if you’d like to, here are some resources: &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://en.wikipedia.org/wiki/Donor-advised_fund&amp;amp;sa=D&amp;amp;ust=1587064791880000&quot;&gt;explainer from Wikipedia&lt;/a&gt;&lt;/span&gt;, &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.fidelitycharitable.org/guidance/philanthropy/what-is-a-donor-advised-fund.html&amp;amp;sa=D&amp;amp;ust=1587064791881000&quot;&gt;explainer from Fidelity (a provider of them)&lt;/a&gt;&lt;/span&gt;, and &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.nytimes.com/2018/08/03/business/donor-advised-funds-tech-tax.html&amp;amp;sa=D&amp;amp;ust=1587064791881000&quot;&gt;a critical take from the NYT&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;.] &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
Finally, this is an evolving draft. If you have suggestions or questions, shoot me a note. I’m &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://twitter.com/amac&amp;amp;sa=D&amp;amp;ust=1587064791881000&quot;&gt;@amac&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;&amp;nbsp;on Twitter.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c2&quot;&gt;&lt;b&gt;Categories&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c25&quot;&gt;
&lt;span class=&quot;c9 c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;http:/#h.jtg9bqdwtlyg&quot;&gt;Hospitals, Doctors, Nurses &amp;amp; the Front Line&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c20&quot;&gt;
&lt;span class=&quot;c9 c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;http:/#h.7woai8w99o4a&quot;&gt;Food &amp;amp; Other Relief For Economically Disadvantaged&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c20&quot;&gt;
&lt;span class=&quot;c9 c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;http:/#h.4yll6fkr34a3&quot;&gt;Refugees and Displaced People&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c20&quot;&gt;
&lt;span class=&quot;c9 c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;http:/#h.89tzk3adqvpa&quot;&gt;Domestic Abuse&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c20&quot;&gt;
&lt;span class=&quot;c9 c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;http:/#h.dx5h9r6le3dk&quot;&gt;Children&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c20&quot;&gt;
&lt;span class=&quot;c9 c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;http:/#h.hskoyhu8d9i0&quot;&gt;Miscellaneous and Support&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c23&quot;&gt;
&lt;span class=&quot;c9 c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;http:/#h.r2jefvqbx1w8&quot;&gt;Other Good Writeups &amp;amp; Resources&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c23&quot;&gt;
&lt;span class=&quot;c9 c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.blogger.com/blogger.g?rinli=1&amp;amp;pli=1&amp;amp;blogID=1972227005391162265#h.r2jefvqbx1w8&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;b class=&quot;c21&quot; id=&quot;h.jtg9bqdwtlyg&quot;&gt;&lt;span class=&quot;c7&quot;&gt;Hospitals, Doctors, Nurses &amp;amp; the Front Line&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.who.int/&amp;amp;sa=D&amp;amp;ust=1587064791883000&quot;&gt;Support WHO Efforts&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://covid19responsefund.org/&amp;amp;sa=D&amp;amp;ust=1587064791883000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;&lt;i&gt;This is a large fund (&amp;gt;$100M so far) that is run through the UN Foundation.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 58-2368165 (UN Foundation)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.cdcfoundation.org/&amp;amp;sa=D&amp;amp;ust=1587064791883000&quot;&gt;US CDC Foundation&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://give4cdcf.org/&amp;amp;sa=D&amp;amp;ust=1587064791884000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 58-2106707&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.pih.org/article/pihs-emergency-coronavirus-response&amp;amp;sa=D&amp;amp;ust=1587064791884000&quot;&gt;Partners in Health&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://donate.pih.org/page/contribute/coronavirus-response&amp;amp;sa=D&amp;amp;ust=1587064791885000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;&lt;i&gt;Developing country care &amp;amp; testing.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5 c6&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 04-3567502&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.directrelief.org/&amp;amp;sa=D&amp;amp;ust=1587064791886000&quot;&gt;Direct Relief&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.directrelief.org/emergency/coronavirus-outbreak/&amp;amp;sa=D&amp;amp;ust=1587064791886000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;&lt;i&gt;Supplies to medical professionals to help them protect themselves.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 95-1831116&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://flexport.org/&amp;amp;sa=D&amp;amp;ust=1587064791887000&quot;&gt;Flexport&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.gofundme.com/f/frontlinerespondersfund&amp;amp;sa=D&amp;amp;ust=1587064791887000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;&lt;i&gt;Logistics and shipping for front line supplies.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.doctorswithoutborders.org/&amp;amp;sa=D&amp;amp;ust=1587064791888000&quot;&gt;Doctors without Borders&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://donate.doctorswithoutborders.org/onetime.cfm&amp;amp;sa=D&amp;amp;ust=1587064791888000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 13-3433452&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.nafcclinics.org/Coronavirus&amp;amp;sa=D&amp;amp;ust=1587064791889000&quot;&gt;National Association of Free and Charitable Clinics&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://nafcclinics.networkforgood.com/projects/89438-nafc-donations-2020&amp;amp;sa=D&amp;amp;ust=1587064791889000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 56-2273242&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://healthleadsusa.org/covid-19-resources/&amp;amp;sa=D&amp;amp;ust=1587064791889000&quot;&gt;Health Leads&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://healthleadsusa.org/about-us/supporting-our-vision/donate/&amp;amp;sa=D&amp;amp;ust=1587064791890000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;&lt;i&gt;Resources for health systems focusing on resolving inequity. &lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 45-0484533&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.frontlinefoods.org/&amp;amp;sa=D&amp;amp;ust=1587064791891000&quot;&gt;Frontline Foods&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.frontlinefoods.org/&amp;amp;sa=D&amp;amp;ust=1587064791891000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;&lt;i&gt;Meals from local restaurants to health workers. &lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c6 c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 27-3521132 &amp;nbsp;(through World Central Kitchen)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b class=&quot;c11&quot; id=&quot;h.7woai8w99o4a&quot;&gt;Food &amp;amp; Other Relief For Economically Disadvantaged&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.google.com/maps/d/u/0/viewer?mid%3D1nbceydaV515ERWJ3TtqsWN0I_s0bF_1z%26ll%3D40.34002604904353%252C-106.69519983019848%26z%3D4&amp;amp;sa=D&amp;amp;ust=1587064791892000&quot;&gt;A&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.google.com/maps/d/u/0/viewer?mid%3D1nbceydaV515ERWJ3TtqsWN0I_s0bF_1z%26ll%3D40.34002604904353%252C-106.69519983019848%26z%3D4&amp;amp;sa=D&amp;amp;ust=1587064791892000&quot;&gt;&amp;nbsp;Local Community Foundation&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;i&gt;Community Foundations have a history of local giving and the staff to review potential grantees and get the money quickly in times of crisis. Consider giving to your local one (found via the map above) and/or one in a community that you care about. For example, for me that’s the &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.mainecf.org/&amp;amp;sa=D&amp;amp;ust=1587064791893000&quot;&gt;Maine Community Foundation&lt;/a&gt;&lt;/span&gt;&amp;nbsp;(&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://4agc.com/donation_pages/5b9b541a-cd5f-409e-bccd-878f279ed393&amp;amp;sa=D&amp;amp;ust=1587064791893000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&amp;nbsp;EIN: 01-0391479), they have already given a wave of money to &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.mainecf.org/initiatives-impact/covid-19-response/covid-19-grants/&amp;amp;sa=D&amp;amp;ust=1587064791893000&quot;&gt;good local institutions&lt;/a&gt;&lt;/span&gt;. &lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;i&gt;&lt;span class=&quot;c15 c17 c19&quot;&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.feedingamerica.org/&amp;amp;sa=D&amp;amp;ust=1587064791894000&quot;&gt;Feeding America&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://secure.feedingamerica.org/site/Donation2;jsessionid%3D00000000.app20121b?idb%3D1422587697%26df_id%3D26876%2626876.donation%3Dform1%26mfc_pref%3DT%26NONCE_TOKEN%3D039EE3D47BDB57821DFC5996E2DFB70C%26s_channel%3Dno_channel%26s_onsite_promo%3DMainNav_Donate%26s_subsrc%3Dhttps://www.feedingamerica.org/%26s_src%3DW204DIRCT%2626876_donation%3Dform1&amp;amp;sa=D&amp;amp;ust=1587064791894000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;i&gt;&lt;span class=&quot;c14&quot;&gt;They also run the very good &lt;/span&gt;&lt;span class=&quot;c3 c14&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.feedingamerica.org/find-your-local-foodbank&amp;amp;sa=D&amp;amp;ust=1587064791894000&quot;&gt;Find Your Local Food Bank&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c13&quot;&gt;&amp;nbsp;resource, which allows you to give locally.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 36-3673599&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.mealsonwheelsamerica.org/take-action/covid-19-response&amp;amp;sa=D&amp;amp;ust=1587064791895000&quot;&gt;Meals on Wheels&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://ams.mealsonwheelsamerica.org/eweb/DynamicPage.aspx?WebCode%3Dcovid19donate%26site%3Dmowa%26CampCode%3DCOVID-19EmergencyResponseCamp%26AplCode%3D2020ER-WEB-COVID-19&amp;amp;sa=D&amp;amp;ust=1587064791895000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;&lt;i&gt;Many seniors use this program.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 23-7447812&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.savethechildren.org/us/what-we-do/emergency-response/coronavirus-outbreak&amp;amp;sa=D&amp;amp;ust=1587064791896000&quot;&gt;Save the Children&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://support.savethechildren.org/site/Donation2?df_id%3D1620%261620.donation%3Dform1&amp;amp;sa=D&amp;amp;ust=1587064791896000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;&lt;i&gt;Keeping children fed.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 06-0726487&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.nokidhungry.org/&amp;amp;sa=D&amp;amp;ust=1587064791896000&quot;&gt;No Kid Hungry (Share our Strength)&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://secure.nokidhungry.org/site/Donation2;jsessionid%3D00000000.app20116a?idb%3D1639457315%26df_id%3D17508%26mfc_pref%3DT%2617508.donation%3Dform1%26NONCE_TOKEN%3D582D5D5797E7C368D0861D7D9E6F6A99%26s_subsrc%3D200WADR00L0T%26s_src%3Dweb%2617508_donation%3Dform1&amp;amp;sa=D&amp;amp;ust=1587064791897000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
EIN: 52-1367538&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://wck.org/&amp;amp;sa=D&amp;amp;ust=1587064791897000&quot;&gt;World Central Kitchen&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://donate.wck.org/give/236738/%23!/donation/checkout&amp;amp;sa=D&amp;amp;ust=1587064791897000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;&lt;i&gt;They also fund Frontline Foods (see above).&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 27-3521132 &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.givedirectly.org/covid-19/&amp;amp;sa=D&amp;amp;ust=1587064791898000&quot;&gt;Give Directly COVID-19 Fund&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://donate.givedirectly.org/covid-19&amp;amp;sa=D&amp;amp;ust=1587064791898000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;i&gt;Gives cash to people who need it.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 27-1661997&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://missionassetfund.org/coronavirus-rapid-response/&amp;amp;sa=D&amp;amp;ust=1587064791898000&quot;&gt;Mission Asset Fund&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.classy.org/campaign/directcashassistance/c277176&amp;amp;sa=D&amp;amp;ust=1587064791899000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;i&gt;“Emergency financial relief for students, immigrants, and workers left out”&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 20-8993652&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;b&gt;Update:&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;a href=&quot;https://twitter.com/mredshirtshaw&quot;&gt;@mredshirtshaw&lt;/a&gt;&amp;nbsp;has a &lt;a href=&quot;https://twitter.com/mredshirtshaw/status/1251535772664160256&quot;&gt;good thread on a number of South Dakota Tribes&lt;/a&gt;&#39; COVID-19 funds. She points to South Dakota because of the lack of a shelter-in-place order there.&lt;/div&gt;
&lt;b class=&quot;c21&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b class=&quot;c21&quot; id=&quot;h.4yll6fkr34a3&quot;&gt;Refugees and Displaced People&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3 c15&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.global-response.org/&amp;amp;sa=D&amp;amp;ust=1587064791899000&quot;&gt;Global Response Management&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c15 c16&quot;&gt;&amp;nbsp;[&lt;/span&gt;&lt;span class=&quot;c3 c15&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://global-response.networkforgood.com/projects/93906-main-giving-page&amp;amp;sa=D&amp;amp;ust=1587064791899000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c9 c15 c17 c16&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;i&gt;&lt;span class=&quot;c12&quot;&gt;Consider directing your donation to the &lt;/span&gt;&lt;span class=&quot;c3 c15 c14&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.global-response.org/matamoros&amp;amp;sa=D&amp;amp;ust=1587064791900000&quot;&gt;Matamoros Project&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c18 c12 c17&quot;&gt;.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c15 c16&quot;&gt;EIN: 81-5163032&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c9 c15 c17 c16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3 c15&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.sidewalkschool.org/&amp;amp;sa=D&amp;amp;ust=1587064791900000&quot;&gt;Sidewalk School&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c15 c16&quot;&gt;&amp;nbsp;[&lt;/span&gt;&lt;span class=&quot;c3 c15&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.sidewalkschool.org/donate&amp;amp;sa=D&amp;amp;ust=1587064791900000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c9 c15 c17 c16&quot;&gt;]&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;c9 c15 c17 c16&quot;&gt;EIN:&amp;nbsp;80-3405530&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c9 c15 c17 c16&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;c9 c15 c17 c16&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;c9 c15 c17 c16&quot;&gt;&lt;b&gt;Update:&amp;nbsp;&lt;/b&gt;A friend who knows more than I do about refugee issues points to the following two orgs:&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.rescue.org/&quot;&gt;International Rescue Committee&lt;/a&gt;, &lt;a href=&quot;https://www.signpost.ngo/&quot;&gt;Signpost Project&lt;/a&gt; [&lt;a href=&quot;https://help.rescue.org/donate/support-signpost&quot;&gt;donate&lt;/a&gt;]&lt;br /&gt;
&lt;span class=&quot;c9 c15 c17 c16&quot;&gt;EIN:&amp;nbsp;13-5660870&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;c9 c15 c17 c16&quot;&gt;&lt;i&gt;Signpost is designed to help refugees get good information during the crisis which the IRC&#39;s president says is one of the most pressing problems.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;c9 c15 c17 c16&quot;&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;
Refugee Advocacy Lab at &lt;a href=&quot;https://www.refugeesinternational.org/&quot;&gt;Refugees International&lt;/a&gt; + &lt;a href=&quot;https://refugeerights.org/&quot;&gt;International Refugee Assistance Project&lt;/a&gt;&amp;nbsp;(IRAP)[donate: &lt;a href=&quot;https://www.refugeesinternational.org/donate&quot;&gt;Refugees International&lt;/a&gt; or &lt;a href=&quot;https://refugeerights.org/donate/&quot;&gt;IRAP&lt;/a&gt;]&lt;br /&gt;
EINs:&amp;nbsp;52-1224516 (Refugees International) or 82-2167556 (IRAP)&lt;br /&gt;
&lt;i&gt;Matching refugees with healthcare experiences with states that need healthcare workers and the certifications they need to practice, thereby helping both.&lt;/i&gt;&lt;br /&gt;
&lt;span class=&quot;c9 c15 c17 c16&quot;&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
I have a friend who works specifically with communities on the El Paso / Juarez border. There they recommend:&lt;/div&gt;
&lt;/div&gt;
&lt;ul class=&quot;c22 lst-kix_rbbhhab9849c-0 start&quot;&gt;
&lt;li class=&quot;c5 c10&quot;&gt;&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.gofundme.com/f/the-border-refugee-assistance-fund?utm_medium%3Dcopy_link%26utm_source%3Dcustomer%26utm_campaign%3Dp_nacp%2Bshare-sheet%26rcid%3D5d90525cdbb2424b824f62443fa2a9d3&amp;amp;sa=D&amp;amp;ust=1587064791901000&quot;&gt;The Catholic Bishop’s Fund&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c16&quot;&gt;&amp;nbsp;[&lt;/span&gt;&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.gofundme.com/f/the-border-refugee-assistance-fund?utm_medium%3Dcopy_link%26utm_source%3Dcustomer%26utm_campaign%3Dp_nacp%2Bshare-sheet%26rcid%3D5d90525cdbb2424b824f62443fa2a9d3&amp;amp;sa=D&amp;amp;ust=1587064791901000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c9 c17 c16&quot;&gt;]&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;c5 c10&quot;&gt;&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.seguimosadelante.org/&amp;amp;sa=D&amp;amp;ust=1587064791901000&quot;&gt;Seguimos Adelante&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c16&quot;&gt;&amp;nbsp;[&lt;/span&gt;&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.seguimosadelante.org/donate&amp;amp;sa=D&amp;amp;ust=1587064791902000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c16&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;c16&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;c5 c10&quot;&gt;&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.abarafrontiers.org/&amp;amp;sa=D&amp;amp;ust=1587064791902000&quot;&gt;Abara&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c16&quot;&gt;&amp;nbsp;[&lt;/span&gt;&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.abarafrontiers.org/donate/&amp;amp;sa=D&amp;amp;ust=1587064791902000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c16&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;c16&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c9 c15 c16 c17&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c15 c16&quot;&gt;The ACLU also has a &lt;/span&gt;&lt;span class=&quot;c3 c15&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.aclutx.org/en/news/whats-really-happening-our-border-and-what-you-can-do-help&amp;amp;sa=D&amp;amp;ust=1587064791903000&quot;&gt;good article&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c9 c15 c17 c16&quot;&gt;&amp;nbsp;about donating in this category.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c9 c15 c17 c16&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
I don&#39;t have a perfect recommendation to directly help those in prisons and jails but &lt;a href=&quot;https://www.civilrightscorps.org/&quot;&gt;Civil Rights Corps&lt;/a&gt;&amp;nbsp;[&lt;a href=&quot;https://www.civilrightscorps.org/donate&quot;&gt;donate&lt;/a&gt;] and&amp;nbsp;&lt;a href=&quot;https://www.law.georgetown.edu/icap/&quot;&gt;Institute for Constitutional Advocacy and Protection&lt;/a&gt; [&lt;a href=&quot;https://www.law.georgetown.edu/icap/donate/&quot;&gt;donate&lt;/a&gt;] are fighting some of the legal battles around this. Please &lt;a href=&quot;https://twitter.com/amac&quot;&gt;ping me&lt;/a&gt; if you have others.&lt;br /&gt;
&lt;b&gt;Update: &lt;/b&gt;The&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;a href=&quot;https://p2a.co/w9R2EcZ&quot;&gt;Reform Alliance&lt;/a&gt; has a special &lt;a href=&quot;https://p2a.co/w9R2EcZ&quot;&gt;COVID-19 action page&lt;/a&gt; to attempt to get governmental attention to this problem. Thanks &lt;a href=&quot;https://twitter.com/rklau&quot;&gt;@rklau&lt;/a&gt;.&lt;/div&gt;
&lt;b class=&quot;c11&quot;&gt;&lt;span class=&quot;c7&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b class=&quot;c11&quot; id=&quot;h.89tzk3adqvpa&quot;&gt;&lt;span class=&quot;c7&quot;&gt;Domestic Abuse&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.rainn.org/&amp;amp;sa=D&amp;amp;ust=1587064791903000&quot;&gt;RAINN&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://donate.rainn.org/donate&amp;amp;sa=D&amp;amp;ust=1587064791903000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;&lt;i&gt;RAINN runs the US National Sexual Assault Hotline.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 52-1886511&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=http://www.ncadv.org/&amp;amp;sa=D&amp;amp;ust=1587064791904000&quot;&gt;National Coalition Against Domestic Violence&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://ncadv.org/donate&amp;amp;sa=D&amp;amp;ust=1587064791904000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 91-1081344&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.globalfundforwomen.org/&amp;amp;sa=D&amp;amp;ust=1587064791905000&quot;&gt;Global Fund for Women&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://act.globalfundforwomen.org/donate&amp;amp;sa=D&amp;amp;ust=1587064791905000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 77-0155782&lt;/span&gt;&lt;/div&gt;
&lt;b class=&quot;c21&quot;&gt;&lt;span class=&quot;c7&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b class=&quot;c21&quot; id=&quot;h.dx5h9r6le3dk&quot;&gt;&lt;span class=&quot;c7&quot;&gt;Children&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.unicefusa.org/&amp;amp;sa=D&amp;amp;ust=1587064791905000&quot;&gt;UNICEF&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://donate.unicefusa.org/page/contribute/help-save-childrens-lives-29161&amp;amp;sa=D&amp;amp;ust=1587064791905000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 13-1760110&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.savethechildren.org/us/what-we-do/emergency-response/coronavirus-outbreak&amp;amp;sa=D&amp;amp;ust=1587064791906000&quot;&gt;Save the Children&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://support.savethechildren.org/site/Donation2?df_id%3D1620%261620.donation%3Dform1&amp;amp;sa=D&amp;amp;ust=1587064791906000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;]&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;&lt;i&gt;Keeping children fed (also in Food above).&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 06-0726487&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.nokidhungry.org/&amp;amp;sa=D&amp;amp;ust=1587064791907000&quot;&gt;No Kid Hungry (Share our Strength)&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://secure.nokidhungry.org/site/Donation2;jsessionid%3D00000000.app20116a?idb%3D1639457315%26df_id%3D17508%26mfc_pref%3DT%2617508.donation%3Dform1%26NONCE_TOKEN%3D582D5D5797E7C368D0861D7D9E6F6A99%26s_subsrc%3D200WADR00L0T%26s_src%3Dweb%2617508_donation%3Dform1&amp;amp;sa=D&amp;amp;ust=1587064791907000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;&lt;i&gt;Also in Food above.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 52-1367538&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.childrenshealthfund.org/&amp;amp;sa=D&amp;amp;ust=1587064791908000&quot;&gt;Children&#39;s Health Fund&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://donate.childrenshealthfund.org/give/277403/%23!/donation/checkout&amp;amp;sa=D&amp;amp;ust=1587064791908000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 13-3468427&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://firstbook.org/&amp;amp;sa=D&amp;amp;ust=1587064791908000&quot;&gt;First Book&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://support.firstbook.org/give/275995/%23!/donation/checkout&amp;amp;sa=D&amp;amp;ust=1587064791909000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;US Focus on learning.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 52-1779606&lt;/span&gt;&lt;/div&gt;
&lt;b class=&quot;c11&quot;&gt;&lt;span class=&quot;c7&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b class=&quot;c11&quot; id=&quot;h.hskoyhu8d9i0&quot;&gt;&lt;span class=&quot;c7&quot;&gt;Miscellaneous and Support&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://creativecommons.org/&amp;amp;sa=D&amp;amp;ust=1587064791909000&quot;&gt;Creative Commons&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://us.netdonor.net/page/6650/donate/1?ea.tracking.id%3Dtop-of-page-banner&amp;amp;sa=D&amp;amp;ust=1587064791910000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;&lt;i&gt;Creative Commons provides the licensing infrastructure for a lot of the open content being relied on in this crisis and was part of creating the Open COVID Pledge to help ensure that people fighting COVID can worry less about patent lawsuits. Disclaimer: I am a Board Member. &lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 04-3585301&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://datasociety.net/&amp;amp;sa=D&amp;amp;ust=1587064791910000&quot;&gt;Data &amp;amp; Society&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://donorbox.org/datasociety&amp;amp;sa=D&amp;amp;ust=1587064791911000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;&lt;i&gt;Tech is becoming even more important now. Data &amp;amp; Society studies and critically unpacks the social implications of data-centric technologies &amp;amp; automation so that their impact is less harmful / more beneficial. Disclaimer: I am a Board Member. &lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 46-2904827&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://cpj.org/&amp;amp;sa=D&amp;amp;ust=1587064791912000&quot;&gt;Committee to Protect Journalists&lt;/a&gt;&lt;/span&gt;&amp;nbsp;[&lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://cpj.org/donate/?utm_source%3Dwebsite%26utm_medium%3Dbutton%26utm_content%3Dtopheader&amp;amp;sa=D&amp;amp;ust=1587064791912000&quot;&gt;donate&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c13&quot;&gt;&lt;i&gt;Good information is critical to combating&amp;nbsp;COVID and journalists are risking their lives to get it to us.&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;EIN: 13-3081500&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;a href=&quot;https://www.rcfp.org/&quot;&gt;Reporters Committee for Freedom of the Press&lt;/a&gt; [&lt;a href=&quot;https://www.rcfp.org/donate/&quot;&gt;donate&lt;/a&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;i&gt;Support their just launched fund to give legal support to local and regional reporters.&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
EIN:&amp;nbsp;52-0972043&lt;/div&gt;
&lt;b class=&quot;c21&quot;&gt;&lt;span class=&quot;c7&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b class=&quot;c21&quot; id=&quot;h.r2jefvqbx1w8&quot;&gt;&lt;span class=&quot;c7&quot;&gt;Other Good Writeups &amp;amp; Resources&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;c5&quot;&gt;
Community Foundations have expertise to help get money to local charities in times of crisis. &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.google.com/maps/d/u/0/viewer?mid%3D1nbceydaV515ERWJ3TtqsWN0I_s0bF_1z%26ll%3D40.34002604904353%252C-106.69519983019848%26z%3D4&amp;amp;sa=D&amp;amp;ust=1587064791912000&quot;&gt;This map&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;&amp;nbsp;will help you find one in an area that you care about.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
Amelia Nierenberg, &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.nytimes.com/2020/03/27/smarter-living/coronavirus-charity-donations.html?searchResultPosition%3D1&amp;amp;sa=D&amp;amp;ust=1587064791913000&quot;&gt;Don’t Need That $1,200 Stimulus Check? Here Are Places to Donate It&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;, New York Times, March 27, 2020 but updated as well.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;i&gt;Great round up and source of a bunch of the above.&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;i&gt;&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
Cynthia Pompa, &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.aclutx.org/en/news/whats-really-happening-our-border-and-what-you-can-do-help&amp;amp;sa=D&amp;amp;ust=1587064791913000&quot;&gt;What’s Really Happening At Our Border And What You Can Do To Help&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;, ACLU, December 23, 2019. &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;i&gt;Before COVID-19 was the focus but still very relevant.&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;i&gt;&lt;span class=&quot;c13&quot;&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
Denise Hearn, &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://medium.com/@denisehearn_25750/covid-19-where-to-give-money-now-1e8b511e8ca9&amp;amp;sa=D&amp;amp;ust=1587064791914000&quot;&gt;COVID-19 — where to give money now&lt;/a&gt;&lt;/span&gt;, April 2, 2020. &lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;i&gt;Bloomberg Beta, Schmidt Futures, and The Stanford Center on Philanthropy and Civil Society put this together.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update:&amp;nbsp;&lt;/b&gt;Isaac Chotiner,&amp;nbsp;The Danger of COVID-19 for Refugees, April 10, 2020.&lt;br /&gt;
&lt;i&gt;Q&amp;amp;A with&amp;nbsp;David Miliband, the president and C.E.O. of the International Rescue Committee about the specific issues raised by COVID-19 in refugee communities where he highlights disinformation as an important issue.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
Disaster Philanthropy, &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://disasterphilanthropy.org/disaster/2019-ncov-coronavirus/&amp;amp;sa=D&amp;amp;ust=1587064791914000&quot;&gt;COVID-19 Coronavirus&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;c4&quot;&gt;, April 13, 2020.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
Fidelity Charitable, &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://www.fidelitycharitable.org/guidance/disaster-relief/how-to-help-novel-coronavirus.html&amp;amp;sa=D&amp;amp;ust=1587064791915000&quot;&gt;How to help: Novel Coronavirus&lt;/a&gt;&lt;/span&gt;.&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;c5&quot;&gt;
Schwab Charitable, &lt;span class=&quot;c3&quot;&gt;&lt;a class=&quot;c0&quot; href=&quot;https://www.google.com/url?q=https://mkt.schwabcharitable.org/COVID-19.html&amp;amp;sa=D&amp;amp;ust=1587064791915000&quot;&gt;Maximize your charitable impact: COVID-19&lt;/a&gt;&lt;/span&gt;.&lt;/div&gt;
&lt;div class=&quot;c1&quot;&gt;
&lt;span class=&quot;c4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/7389152898560669614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/7389152898560669614' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/7389152898560669614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/7389152898560669614'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2020/04/covid-19-donation-list.html' title='COVID-19 Donation List'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-2225161597421970804</id><published>2019-08-13T07:14:00.000-07:00</published><updated>2019-08-13T07:14:16.621-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="twitter"/><title type='text'>10 Years of Retweet</title><content type='html'>10 years ago today, Twitter &lt;a href=&quot;https://blog.twitter.com/en_us/a/2009/project-retweet-phase-one.html&quot;&gt;launched&lt;/a&gt; “native retweet” and significantly changed how people experienced the Twitter timeline. IMHO it was a huge and relatively gutsy change. I’m writing this post to explain what changed, and why I like a particularly controversial aspect of it -- &lt;i&gt;strangers in the timeline&lt;/i&gt; -- so much. I hope it will encourage others who were at Twitter at the time to share their stories.&lt;br /&gt;
&lt;br /&gt;
First off, imagine the Twitter of early 2009. It was a simpler Twitter in SOOOOO many ways. Timelines were a reverse chronological set of 140 character tweets. There were no ads. No images. And no mobile phone client from Twitter.&amp;nbsp; Barack Obama had just been inaugurated.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://techgeek.com.au/wp-content/uploads/2008/09/screenshot014.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://techgeek.com.au/wp-content/uploads/2008/09/screenshot014.png&quot; data-original-height=&quot;370&quot; data-original-width=&quot;800&quot; height=&quot;147&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Late 2008 screenshot from Huynh, Terence, &lt;br /&gt;&lt;a href=&quot;http://techgeek.com.au/2008/09/20/twitter-releases-new-design-more-customisable/&quot;&gt;Twitter releases new design, more customisable&lt;/a&gt;, &lt;br /&gt;TechGeek, Sept 20, 2008&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
People were already retweeting each other through a convention of using the letters “RT” and the original user’s username, and then the tweet. Retweeting the President’s election victory tweet would have been something like “RT @BarackObama We just made history. All of this happened because you gave your time, talent and passion. All of this happened because of you. Thanks.” If you followed me and I retweeted that, you’d see my avatar and that text. Nothing would link my Tweet back to the original, and there was nothing stopping me from editing the original and misquoting it. In fact, even that retweet of @BarackObama would have needed editing so that it could fit in the 140 characters. Still, the convention was used and useful.&lt;br /&gt;
&lt;br /&gt;
On August 13, 2009 @biz made a short blog post pre-announcing a new retweet feature so that the Twitter client developers (none of whom worked at the company or were paid by Twitter) would be ready for it when it rolled out on twitter.com. At least one of those developers already had a retweet button that made retweeting easier, but the new feature @biz announced was different. It was simple and revolutionary. Now when I retweeted @BarackObama my followers would see his tweet as if they too were followers of @BarackObama for that instant. They would see his Tweet as if they followed him -- in their regular timeline -- but with an acknowledgement to me, and as if it had been tweeted when I hit the retweet button. As @Biz described it:&lt;br /&gt;
&lt;br /&gt;
&quot;Let’s say you follow @jessverr, @biz (that’s me), and @gregpass but you don’t follow @ev. However, I do follow @ev and the birth of his baby boy was so momentous that I retweeted it to all my followers.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blog.twitter.com/content/dam/blog-twitter/archive/project_retweet_phaseone95.thumb.1280.1280.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;600&quot; data-original-width=&quot;800&quot; height=&quot;240&quot; src=&quot;https://blog.twitter.com/content/dam/blog-twitter/archive/project_retweet_phaseone95.thumb.1280.1280.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Imagine that my simple sketch is your Twitter timeline. You’d see @ev’s tweet even though you don’t follow him because you follow me and I really wanted you to have the information that I have.&quot; Photo and quotation from Stone, Biz, &lt;a href=&quot;https://blog.twitter.com/en_us/a/2009/project-retweet-phase-one.html&quot;&gt;Project Retweet: Phase One&lt;/a&gt;, Twitter Blog, Aug. 13, 2009.&lt;br /&gt;
&lt;br /&gt;
It made retweeting much easier,* but it also meant that users saw the faces of people they didn’t follow in their timeline (internally we called this the &quot;strangers in the timeline&quot; phenomenon). Retweets were also displayed based on the time of retweet, not the time of the original tweet (even though the timestamp was still the original one), so it looked like the tweets were being displayed out of order. Here’s what it looked like when it rolled out later that year (with a special dialog box to explain to people why they were seeing strange new avatars).&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK3i9iv4Mzk75U0FH_9DZbn7l7DrVON3z6fzBn8tKGszOx0V5BT1H2uC7aMhgLxROyqAVgdUoYUxFQ4EhJdQ4okSoRbCb6eh2wrIPZMx3tJ861iFvsyboOqtLs4JShII0dij6DzEdQwzbL/s1600/4112757339_3287caeb64_o.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;884&quot; data-original-width=&quot;1065&quot; height=&quot;265&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK3i9iv4Mzk75U0FH_9DZbn7l7DrVON3z6fzBn8tKGszOx0V5BT1H2uC7aMhgLxROyqAVgdUoYUxFQ4EhJdQ4okSoRbCb6eh2wrIPZMx3tJ861iFvsyboOqtLs4JShII0dij6DzEdQwzbL/s320/4112757339_3287caeb64_o.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://www.flickr.com/photos/seeminglee/4112757339&quot;&gt;Screenshot&lt;/a&gt; by &lt;a href=&quot;https://www.flickr.com/photos/seeminglee/&quot;&gt;See-ming Lee&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;https://creativecommons.org/licenses/by-sa/2.0/&quot;&gt;CC-BY-SA&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
This was (and is) a big deal for a whole bunch of reasons, but the one that I really appreciate today is that seeing strangers in my timeline made it so much easier for me to find and follow new interesting people. &lt;a href=&quot;https://web.archive.org/web/20091112172426/https://evhead.com/2009/11/why-retweet-works-way-it-does.html&quot;&gt;@Ev’s blog post from the time&lt;/a&gt; summarizes a lot of the other benefits and concerns that people had about the idea, including his description of the blowback he knew Twitter would face over putting strangers in peoples&#39; timelines. He wrote, “The drawback is that it may be a little surprising (unpleasant even, for some) to discover avatars of people they don&#39;t follow in their timeline.” Which avatar to show, the original tweeter&#39;s or the retweeter&#39;s was a significant discussion and I am really glad the team chose to show the original tweeter as I think it has led directly to my timeline getting better and better over the years.&lt;br /&gt;
&lt;br /&gt;
Anyhow, I’ll leave the rest of the stories about this to others who were closer to the decision and implementation. For now I just want to thank the folks that were there and call them out so that they (hopefully) tell more of the story. My memory is hazy, but I think at least @zhanna, @alissa, @cw, @goldman, @ev, and @biz would have good memories of it. Please share, tell the inside story, and add more folks I missed.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
* Despite the ridiculous title, this &lt;a href=&quot;https://www.buzzfeednews.com/article/alexkantrowitz/how-the-retweet-ruined-the-internet&quot;&gt;Buzzfeed article&lt;/a&gt; has some good discussion from folks on the cons of the convenience and speed of the retweet button, and ways to think about slowing the spread of harmful retweet cycles while preserving the good.&amp;nbsp;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/2225161597421970804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/2225161597421970804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/2225161597421970804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/2225161597421970804'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2019/08/10-years-of-retweet.html' title='10 Years of Retweet'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK3i9iv4Mzk75U0FH_9DZbn7l7DrVON3z6fzBn8tKGszOx0V5BT1H2uC7aMhgLxROyqAVgdUoYUxFQ4EhJdQ4okSoRbCb6eh2wrIPZMx3tJ861iFvsyboOqtLs4JShII0dij6DzEdQwzbL/s72-c/4112757339_3287caeb64_o.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-1383194823193917462</id><published>2019-02-04T05:27:00.000-08:00</published><updated>2019-02-04T07:39:43.513-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="law"/><category scheme="http://www.blogger.com/atom/ns#" term="practice"/><category scheme="http://www.blogger.com/atom/ns#" term="twitter"/><title type='text'>Advice for new General Counsels (GCs)</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;Here’s some advice I give first-time General Counsels (GC) or, as the kids today call themselves, Chief Legal Officers. These are written from my perspective as someone who had worked as an Associate at a law firm and in-house at Google before going to Twitter as the GC. Your mileage should vary.&lt;/span&gt;&lt;/div&gt;
&lt;b id=&quot;docs-internal-guid-099858ec-7fff-3c31-5735-f6537fa6b10a&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700;&quot;&gt;Being a GC is lonely, you need colleagues.&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;Once you become a GC you have no colleagues. Your CEO and Board are your boss. You may have lawyers who work for you, but you are their boss. Your colleagues are the other members of the management team, but they don’t really care about legal stuff the way you do. They’ll be friends, but you need to also have GC friends, and you’ll need to find them outside of the company.&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;Eventually (on my last day), I formed a network of SF Tech GCs that would have been WONDERFUL to have had before I left. At the time I met with a bunch of peers outside of work and they were a godsend. These folks should be struggling like you. That way you’ll feel free to ask them anything and you’ll be as helpful to them as they are to you. They are your support group as well as your knowledge base. Plus they’ll remember being as clueless as you, which will make them good teachers. These are not your mentors. You need good mentors too, but these are your colleagues. &lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;/b&gt;

&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwJbUiac0xnSntK3ZNxEFF4FcqunIUYli4kkiyY29FWLcFuwQDwr8f4Fobcv0bcbaitXjMGtOXA7PLqI7F0Cv7NeUgiwC-4khdqDbZZEas9CdS8v-hF7yCrmO4Ns7LkQ2DJa91_AQ96WmP/s1600/Arabella_mansfield.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;364&quot; data-original-width=&quot;260&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwJbUiac0xnSntK3ZNxEFF4FcqunIUYli4kkiyY29FWLcFuwQDwr8f4Fobcv0bcbaitXjMGtOXA7PLqI7F0Cv7NeUgiwC-4khdqDbZZEas9CdS8v-hF7yCrmO4Ns7LkQ2DJa91_AQ96WmP/s320/Arabella_mansfield.jpg&quot; width=&quot;228&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Arabella Mansfield, 1870. &lt;br /&gt;
Public Domain image from &lt;a href=&quot;https://en.wikipedia.org/wiki/Arabella_Mansfield&quot;&gt;Wikipedia&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700;&quot;&gt;You are the boss and the end of the line.&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;When you are the GC, you are it. Yes you can “escalate” things to your CEO or Board but doing that a bunch will not build respect with either. For many hard decisions, you are the decision maker. You cannot just let something slide or say “here are three options.” You are being paid to be responsible for this stuff and have an opinion. Also, there are some things that only you can do, especially before you have a team. When the CEO is freaking out about the CFO deciding to go to your biggest competitor, talking to somebody else likely will not cut it. Vacation purity will go down. Stress will go up. You will need a way to deal with that and it is very important that it is not &lt;/span&gt;&lt;a href=&quot;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4736291/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline;&quot;&gt;alcohol, drugs, or other bad things&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700;&quot;&gt;You are your company. &lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;If you come from being an outside counsel, you may misunderstand the ethical issues involved in being at a company. At an outside firm you might have had a bunch of ways to distance yourself from a bad thing that a firm clients does. You might not work on their matters. Or not advise them on that subject matter. And, in any case, even bad actors need legal defense. When you are in-house that is no longer the case. You are your company. If they do something unethical or illegal, that is you doing it. Another way to say that is that there is no &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: italic; font-variant: normal; font-weight: 400;&quot;&gt;they&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;, only &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: italic; font-variant: normal; font-weight: 400;&quot;&gt;we&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;. So… you need to be VERY comfortable with the company you are joining. Both what they are now and how they might change over the time you are there. Your only remedy will likely be to quit quietly. Quitting quietly is not a good remedy. Especially if you need the job and the money it provides.&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioeQZvXZgFh6CSbrMT_qVnRRrO-MtGmfp7lY2VkC611OE8gQ3A2id-K4yrnBzhiNsLe80c6EY2e4M697Syz0BuDE1OPpg3oEyGD44cXe48l6OwCbDurv5swF5lx-RL0GU_8ZJ2ftl7P50g/s1600/14577323969_8f355f2692_o.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1011&quot; data-original-width=&quot;1600&quot; height=&quot;202&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioeQZvXZgFh6CSbrMT_qVnRRrO-MtGmfp7lY2VkC611OE8gQ3A2id-K4yrnBzhiNsLe80c6EY2e4M697Syz0BuDE1OPpg3oEyGD44cXe48l6OwCbDurv5swF5lx-RL0GU_8ZJ2ftl7P50g/s320/14577323969_8f355f2692_o.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Interior of H.A. Goodrich &amp;amp; Co.&#39;s Store. Public Domain&lt;br /&gt;
illustration from &lt;i&gt;&lt;a href=&quot;https://archive.org/stream/fitchburgmassach00inemer/fitchburgmassach00inemer#page/n327/mode/2up/&quot;&gt;Fitchburg, Massachusetts &lt;br /&gt;Past and Present&lt;/a&gt;&lt;/i&gt; via Internet Archive.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;/b&gt;

&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700;&quot;&gt;You are the establishment. &lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;You likely came from being a part of a team and not being in the very senior part of management. You might even have complained about the Partners or the management team at your last company. That ends now. You are the management. If the company has a problem, then it is your problem. You whining is not a good thing. You are not a victim and you need to fix what you don’t like, not complain about it. That goes for even things that the CEO or Board do that you don’t agree with. Make sure you had your say. Quit if you need to, but if you are not going to quit, you need to take ownership of it with the rest of management.&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700;&quot;&gt;You work for the Board (and the CEO).&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;GCs have a weird dual reporting structure because they represent the corporation, not any particular person in the corporation. Your day-to-day boss is the CEO, but the Board is also your boss and you need a relationship with the Board. This can be tricky because the CEO often thinks of themselves as the only person who “reports” to the Board. You need to have your own relationship with the Board for a bunch of reasons and a wise CEO will understand that your relationship with the Board is helpful to them as well. You should help the CEO manage getting the board deck together and with the basic stuff that goes comes with managing the Board. In that sense you will act a bit like a Chief of Staff and Executive Assistant. You have a legal role too, and may be the Board Secretary as well, but you should do the other, more mundane stuff as well in order to ensure that you are part of the company having a good relationship with its Board. For example, you should have periodic informal meetings with your board members. You should know how many kids they have and where they like to take vacations. FWIW, CFO’s have a similar need for that type of direct relationship.&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgd8I_o7PV4qOpA2MrXPClbeFpkX6rWzkP9aQ6iaObOPfLiYjdFpR8Rx8ec-_bGn8c94AOXdMCyNX6PamvfTtpdCdQgdpGDuDRlwYDh_pYFbP_COIHdZY1sZCqHSkl5pYgqYrZ66fk4cSH/s1600/Screenshot+from+2019-01-30+11-14-15.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;360&quot; data-original-width=&quot;238&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgd8I_o7PV4qOpA2MrXPClbeFpkX6rWzkP9aQ6iaObOPfLiYjdFpR8Rx8ec-_bGn8c94AOXdMCyNX6PamvfTtpdCdQgdpGDuDRlwYDh_pYFbP_COIHdZY1sZCqHSkl5pYgqYrZ66fk4cSH/s320/Screenshot+from+2019-01-30+11-14-15.png&quot; width=&quot;211&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Crocker Block. Public Domain&lt;br /&gt;
&lt;span style=&quot;font-size: 12.8px;&quot;&gt;illustration from&amp;nbsp;&lt;/span&gt;&lt;i style=&quot;font-size: 12.8px;&quot;&gt;&lt;a href=&quot;https://archive.org/stream/fitchburgmassach00inemer/fitchburgmassach00inemer#page/n293/mode/2up/&quot;&gt;Fitchburg,&lt;br /&gt;Massachusetts&amp;nbsp;Past and Present&lt;/a&gt;&lt;/i&gt;&lt;span style=&quot;font-size: 12.8px;&quot;&gt;&lt;br /&gt;via Internet Archive.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700;&quot;&gt;You are also an owner of the company &amp;amp; member of the management team.&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;Your CEO and the rest of the team will look to you for your legal opinion. That is very important. If you screw that up, you will not be GC for very long. &lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;/b&gt;

&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;However, you are also (hopefully) a significant owner of the company through your stock grant, as well as a member of the senior management team. In those roles the CEO is looking for you to have an opinion on what is the right thing for the company to do. If you come from being an outside counsel, you may be used to giving opinions of the form: “Doing X is a legal risk.” or perhaps “Doing X is a legal risk and I would quantify it in the following way.” Once you are a GC you need to be ready to say things like: “Doing X is a legal risk but is important for us to do because Y” or “Doing X is a legal risk that is not worth pursuing because Y.” What you fill in for Y will not be legal analysis but business, customer, user, employee, etc. analysis. Get to know those parts of your business and start making contributions that have nothing to do with legal.&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700;&quot;&gt;Be careful about acting in your non-legal capacity. &lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;Now that I’ve told you not to only act like a lawyer, I need to flag some important pitfalls. First, you need to do a good job of labeling and calibrating your non-legal advice. You’ll make more mistakes and tread on other management team members expertise in your non-legal role. If you are not clear about it, the management team may start treating your non-legal advice like your legal advice (or vice versa), and that is usually unhelpful. This can be as simple as saying, “this isn’t a legal issue but…” or “there is nothing legal that requires X but…” and “here I’m speaking directly about our legal requirements under the contract.” You needn’t do it all the time, but being able to be clear can help a lot.&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;Second, we lawyers are somewhat spoiled by the protections that our legal advice affords us under the law. We can have conversations with people that won’t be revealed in lawsuits. When you venture out into the world of non-legal advice those protections fade away. Some lawyers have gotten into bad habits based on their attorney-client relationships and have gotten used to saying really dumb things in email that they (a) don’t mean, and (b) would never let a client say in email. Remember that your non-legal work is not protected by your special status as an attorney. Do what you tell your clients to do. Imagine your email on the front page of the Wall Street Journal.&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700;&quot;&gt;Legal is a cost center.&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;If you came from a firm, legal advising was the profit center. Lawyers were extremely important and probably ran the show. That is not true now. You are a support service. Act like it. Don’t waste your clients time (ie. arrive to meetings on time, with an agenda, etc.). Respond to their emails. Do the things you said you were going to do when you said you were going to do them. Provide value. Make sure your internal clients are happy. And, understand that winning at the Supreme Court and establishing precedent are not the purpose of your business. They shouldn’t be &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-variant: normal; font-weight: 400;&quot;&gt;&lt;i&gt;your &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;purpose. &lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;/b&gt;

&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhljk5uPxm9VLnVmo4DKHmcyOTi0AJA82RBXF67sAb8MRhVE_Hqd07b_W2-l9WbXUg9KtQUXT9rOhmgaOefryYg94UtDO7TmKq0lzDamo-wqFBoP0D27bSnL-QeMCzfscPnzPDBS3pCx04Y/s1600/Thurgood-marshall-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1488&quot; data-original-width=&quot;1184&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhljk5uPxm9VLnVmo4DKHmcyOTi0AJA82RBXF67sAb8MRhVE_Hqd07b_W2-l9WbXUg9KtQUXT9rOhmgaOefryYg94UtDO7TmKq0lzDamo-wqFBoP0D27bSnL-QeMCzfscPnzPDBS3pCx04Y/s320/Thurgood-marshall-2.jpg&quot; width=&quot;254&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Thurgood Marshall, 1976.&lt;br /&gt;
Public Domain image from the &lt;br /&gt;
Library of Congress via &lt;a href=&quot;https://en.wikipedia.org/wiki/Thurgood_Marshall&quot;&gt;Wikipedia&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-weight: 700;&quot;&gt;Set yourself up to be constructive.&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;Some people say GCs shouldn’t say no. I strongly disagree. There will be times when you need to say a flat no. Those times will be bad for the company and for you. But the flat no you enforce may be a moment where you are providing your greatest value to the company. Don’t shy away from those times, but don’t welcome them either. &lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;/b&gt;

&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;Try to set yourself up so that you do not get into a flat no situation by understanding legal issues early, and by understanding product goals enough to suggest solutions that will meet the product goals and legal constraints. &lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;Understanding legal issues early, particularly in a startup, means having a very good understanding of who is working on what. Many startups spend a large amount of time transitioning from everyone knowing everything to having processes so that people can know what they need to know. That in-between stage is a hard one for the GC. If you find out about a feature launch from reviewing the launch blog post, you are likely too late for a product redesign. Your product team will have spent a bunch of time working and dreaming about the feature implemented exactly the way they have implemented it. They will be looking to you to say yes (or no). That may be a valuable “no” but it will hurt a lot. And if you say “yes but…” then at that point you may only be putting lipstick on a pig. It is FAR better to be able to understand what is going on when the feature is just an idea. Product managers, designers, and engineers are really good with constraints. They design within them all the time. Having them understand the legal constraints and desires when designing is essential. To do that, you need to be really in tune with whatever part of your company first thinks up new features. Google’s first lawyer, Kulpreet Rana’s practice of taking one afternoon a week to just wander around introducing himself to people and asking them what they were working on is brilliant in that respect (and also helps with the culture points below).&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;Equally importantly, once you see a legal issue, don’t just issue spot. Know enough about what the teams are trying to do to get your hands dirty in a design setting to help them understand the legal constraints and design within them. Sometimes this looks like working with the engineers to implement variable public domain rights for very old books in Google Books and embedding local copyright law into code. Sometimes it is jumping from a legal constraint to value creation, such as when &lt;/span&gt;&lt;a href=&quot;https://twitter.com/gob&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline;&quot;&gt;Glenn Brown&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;, &lt;/span&gt;&lt;a href=&quot;https://twitter.com/zahavah10&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline;&quot;&gt;Zahavah Levine&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;, and I helped design the &lt;/span&gt;&lt;a href=&quot;https://www.tubefilter.com/2018/11/07/youtube-payouts-content-id/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline;&quot;&gt;YouTube DMCA system to also allow content providers to leave content up and get a share of revenue&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;. There is almost always more than one way to do something. Help your product teams choose the way that helps users and will survive legal challenges.&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700;&quot;&gt;You have a decision to make about who to hire when.&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;As you build your team, you need to decide who to hire when. You will eventually be middle management and do very little legal thinking. You also came into this job not knowing most of the legal areas you will supervise. Do you hire what you know first, or what you don’t? Do you start building with someone who could be the next GC, or someone more junior who can churn through more basic stuff so you don’t have to? If the company is getting bigger, do you start with an employment lawyer? There is no right answer, other than that employment lawyers tend to get hired really early because very few GCs love dealing with employment issues, and good employment lawyers are really good.&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700;&quot;&gt;Your team(s) are everything.&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;As your team grows and perhaps you take on a few extra responsibilities (public policy, trust &amp;amp; safety, communications, corporate development, business development, human resources, etc.) because you are a competent leader at a growing company, your teams will be much more important than you in terms of the company’s success. Many lawyers never get management training and didn’t start out life wanting to be managers. That is your life now. It is difficult and you need to want to do it extremely well. That means training, intentional focus, and making sacrifices on other things to make sure that you are doing the management part well. It also means understanding, valuing, and actually achieving diversity from the get-go. Start growing your leaders and empowering them. Get out of the way.&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;If you don’t like management and would prefer to be doing law stuff, being a GC probably isn’t the right job for you.&lt;/span&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3O2wr2DY72DY9YaW2yUX8o7KmSXipjHaTTJFFrSj6i1KLBtceZ5cgWJCJM4ot6epusvqpmrl4kekY7YMRucpDV_ehQWOHC9ZI9YWVjatca6U7AvA4FK2Xd9Ro4PpntTgNbn2TZ2RWoCEj/s1600/14577777187_14c87d7e03_o.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1103&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3O2wr2DY72DY9YaW2yUX8o7KmSXipjHaTTJFFrSj6i1KLBtceZ5cgWJCJM4ot6epusvqpmrl4kekY7YMRucpDV_ehQWOHC9ZI9YWVjatca6U7AvA4FK2Xd9Ro4PpntTgNbn2TZ2RWoCEj/s320/14577777187_14c87d7e03_o.jpg&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Clara Shortridge Foltz. Public Domain&lt;br /&gt;
image from &lt;a href=&quot;https://archive.org/stream/benchandbarofcal00shuc/benchandbarofcal00shuc#page/830/mode/2up&quot;&gt;History of the Bench and&lt;br /&gt;Bar of of California&lt;/a&gt;&amp;nbsp;via Internet Archive.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;/b&gt;

&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700;&quot;&gt;You define the culture of the Legal department, and likely the culture and ethics of the company. &lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;Many of you will get the privilege of being at a very small company, or being the first or second attorney at the company. When I joined Twitter we were around 50 people and had one other intrepid lawyer (the great &lt;/span&gt;&lt;a href=&quot;https://twitter.com/tyip&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline;&quot;&gt;@tyip&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;!). You will define the relationship between the company and legal. You will define what legal is. Those are probably your most important jobs other than ensuring the company continues to exist. If you establish that legal should be consulted last, heard to say no, and then overruled by others without consequences, that will be the way legal is treated by the company for a very long time. If you are teammates who provide value and help get stuff launched, it will be hard to lose that reputation. Make sure that legal’s relationship with the company is something you focus on. Have goals. Do things that help. For example, &lt;/span&gt;&lt;a href=&quot;https://twitter.com/BenL&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline;&quot;&gt;Ben Lee&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt; and I created the &lt;/span&gt;&lt;a href=&quot;https://github.com/twitter/innovators-patent-agreement&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline;&quot;&gt;Innovators Patent Agreement&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt; as a way to signal to engineers that Twitter was in line with their ethics on patents so that legal could contribute to the company’s #1 priority of hiring great engineers. Another one of my favorite hacks is to set up a desk by wherever your team gets coffee for the post lunch afternoon coffee time. Sit there. Answer questions. (Yes, it is amazing how many engineers have “friends” with weird legal issues and need to be told to get a lawyer.) Being a GC is not a popularity contest, but you need to be known and you need to make sure people understand you are on their team, especially when you disagree with them. &lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;GCs are also often the oldest and/or people who have the biggest vocabulary for ethics at the company. I don’t think we are necessarily the folks who care the most about ethics or have the best ethical compass, but we have the hubris / common sense to have been thinking about ethics and how it applies to our work for a long time. That often makes the GC the de facto Chief Ethics Officer. The important part of that often unofficial role is to understand the difference between ethics or values, and law. When a GC says something is OK to do, we sometimes mean legally OK but the company will frequently hear that it is both legally and ethically good. Ideally everyone at the company is thinking about ethics and your founders, CEO, Board, and management team all provide a solid tone from the top on ethics. That is not always the case. You should ensure that you are the backstop on ethics. Consider making that part of your job &lt;/span&gt;&lt;a href=&quot;https://twitter.com/rhomsany/status/1055121127389847558&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline;&quot;&gt;official&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;. Definitely talk to the company about its ethical responsibilities and always consider those in your analysis. “That’s legal but completely unethical” is extremely important advice from a GC.&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700;&quot;&gt;Conclusion&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;You are not an impostor. Nobody was born a GC. No GC knows every area of law. There is no perfect way to manage people. There is no secret to being a GC that is not something that was learned through trial and error on the job. The truly incredible GCs that I have met may have been better at the job than I but they weren’t superhuman. They started out just like me and you.&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400;&quot;&gt;Finally, have fun. I found being a GC to be really interesting, challenging, and rewarding. I still love the various teams I helped build. I still have trouble not referring to my old companies with the pronouns “us” or “we.” Being a GC can be a phenomenal job (but it is only a job). Congratulations and good luck!&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: italic; font-variant: normal; font-weight: 400;&quot;&gt;P.S. Thank you to the SFGCs email list for their useful comments on a working draft of this paper. Ken Carter and others on that list have grown it and made it into something great since I left SF. If you are an SF GC, DM me on Twitter (@amac) and I’ll forward to the right person to add you. If you are a D.C. GC, I’d also love to hear from you.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: italic; font-variant: normal; font-weight: 400;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: italic; font-variant: normal; font-weight: 400;&quot;&gt;P.P.S. I got another great suggestion for a pic to add to this post, Laura de Force Gordon.&lt;/span&gt;&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_w1XdfkWocN_BKuRlG8N8q-_Tu7xui1ccwPrbvcuM9kLkNzpqeFnUG2FOeTxoXr1r1XRHmptsHqdJRAqX6ki6uKA5UA_wWbWG8BZqhcVYU5j3jqJV3p12WvcFmterbTCpFkExsLnVjDUa/s1600/Laura_de_Force_Gordon.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;464&quot; data-original-width=&quot;347&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_w1XdfkWocN_BKuRlG8N8q-_Tu7xui1ccwPrbvcuM9kLkNzpqeFnUG2FOeTxoXr1r1XRHmptsHqdJRAqX6ki6uKA5UA_wWbWG8BZqhcVYU5j3jqJV3p12WvcFmterbTCpFkExsLnVjDUa/s320/Laura_de_Force_Gordon.jpg&quot; width=&quot;239&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;font-size: 12.8px;&quot;&gt;Laura de Force Gordon&lt;br /&gt;
Public Domain image&amp;nbsp;&lt;span style=&quot;font-size: 12.8px;&quot;&gt;via&lt;/span&gt;&lt;span style=&quot;font-size: 12.8px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Thurgood_Marshallhttps://en.wikipedia.org/wiki/Laura_de_Force_Gordon&quot; style=&quot;font-size: 12.8px;&quot;&gt;Wikipedia&lt;/a&gt;&lt;span style=&quot;font-size: 12.8px;&quot;&gt;.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;font-size: medium; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: start;&quot;&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: italic; font-variant: normal; font-weight: 400;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/1383194823193917462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/1383194823193917462' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/1383194823193917462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/1383194823193917462'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2019/02/advice-for-new-general-counsels-gcs.html' title='Advice for new General Counsels (GCs)'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwJbUiac0xnSntK3ZNxEFF4FcqunIUYli4kkiyY29FWLcFuwQDwr8f4Fobcv0bcbaitXjMGtOXA7PLqI7F0Cv7NeUgiwC-4khdqDbZZEas9CdS8v-hF7yCrmO4Ns7LkQ2DJa91_AQ96WmP/s72-c/Arabella_mansfield.jpg" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-7723926207690889772</id><published>2018-08-31T07:45:00.002-07:00</published><updated>2019-01-16T05:37:39.050-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="code"/><category scheme="http://www.blogger.com/atom/ns#" term="expression"/><category scheme="http://www.blogger.com/atom/ns#" term="law"/><title type='text'>Recent Podcasts &amp; Articles on Content Moderation</title><content type='html'>One of the great things happening now is that more and more attention is being focused at one of my favorite subjects: content moderation by internet platforms. It&#39;s an important subject because a large amount of online speaking and listening happens through platforms. There has been a ton of good writing about this over many, many, years but I want to focus on four relatively recent bits here.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Radiolab, &lt;a href=&quot;https://www.wnycstudios.org/story/post-no-evil&quot;&gt;Post No Evil&lt;/a&gt;, Aug 17, 2018&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Radiolab tells a sweeping story of the development of Facebook&#39;s content removal policies, deftly switching perspectives from people protesting its former policy against breastfeeding, to the headquarters workers developing policy and dealing with high-profile controversies, to the offshore contractors on the front line evaluating thousands pieces of disturbing content every day.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.wnycstudios.org/story/post-no-evil&quot;&gt;Post No Evil&lt;/a&gt;&amp;nbsp;is a great introduction to the issues in this space but I think its most insightful moment is relatively buried. At 1:02, this exchange happens:&lt;br /&gt;
&lt;ul&gt;&lt;tt&gt;Simon Adler: What I think this [controversy around a beheading video] shows is that Facebook has become too many different things at the same time. So Facebook is now sort of a playground, it&#39;s also an R-rated movie theater, and now it&#39;s the front page of a newspaper.&lt;br /&gt;

Jad Abumrad (?): Yeah, it&#39;s all those things at the same time.&lt;br /&gt;

Simon Adler: It&#39;s all those things at the same time and what we, the users, are demanding of them is that they create a set of policies that are just. And the reality is justice means a very different thing in each one of these settings.&lt;/tt&gt;
&lt;/ul&gt;
I&#39;ve tried to emphasize when I talk about content policies that there is no one perfect set of policies that &lt;i&gt;should&lt;/i&gt;&amp;nbsp;exist for every service but rather that the policies serve the product or service goal that the platform is trying to create. The type of experience Google web search is trying to create (&quot;you can find whatever you are looking for&quot;) is very different from the experience that the Disney was going for when it launched a social network for pre-teens where users could only talk to each other through a set of pre-chosen phrases (&quot;this place is REALLY safe for kids&quot;).&lt;br /&gt;
&lt;br /&gt;
Think of the content policies you might want at a library versus a dinner party. When I go to a library, it is very important to me that they have books about the tiny niche of the world that I am interested in at that moment. For example, books on bias in machine learning or Italian Amaros. It doesn&#39;t really bother me if they have books on things I don&#39;t care as much about, like American football. For books that I disagree with, such as &lt;a href=&quot;https://books.google.com/books/about/To_Save_America.html?id=9KQtcs-qg2UC&amp;amp;printsec=frontcover&amp;amp;source=kp_read_button#v=onepage&amp;amp;q&amp;amp;f=false&quot;&gt;To Save America&lt;/a&gt;, or think are evil, such as &lt;a href=&quot;https://books.google.com/books?id=qKTjsgEACAAJ&amp;amp;dq=mein+kampf&amp;amp;hl=en&amp;amp;sa=X&amp;amp;ved=0ahUKEwiezKeeh5XdAhUxw1kKHar2C8UQ6AEIJzAA&quot;&gt;Mein Kampf&lt;/a&gt;, I may question the curators&#39; choices but I expect breadth, and the inclusion of those books is less bad than if the books I cared about were not included.*&lt;br /&gt;
&lt;br /&gt;
Change to the dinner party context and my preferences are reversed. Dinner parties that don&#39;t hit on bias in machine learning are fine by me but if I was at a dinner party where someone couldn&#39;t shut up about American football, I would not call it a success. A dinner party where a guest was espousing the views of Mein Kamfp would be one I would cause a scene at and leave. Over-inclusion is a huge problem and outweighs inclusion of my specific niche interests.&lt;br /&gt;
&lt;br /&gt;
I&#39;ve never been a big Facebook user, but it used to remind me of a dinner party. I thought that&#39;s what it was going for with its various content policies. Now, as Simon Adler says, it is trying to be many things (perhaps everything?) to many people (perhaps everyone?) and that is really hard (perhaps impossible?). It also has made the decision that some of the types of moderation that other platforms have used to deal with those problems (blocking by geography, content markings for age, etc.**) don&#39;t work well for it&#39;s goals. As Radiolab concludes starting at 1:08:&lt;br /&gt;
&lt;ul&gt;&lt;tt&gt;Robert Krulwich (?): Where does that leave you feeling? Does this leave you feeling that this is just, that at the end this is just undoable?&lt;br /&gt;

Simon Adler: I think [Facebook] will inevitably fail, but they have to try and I think we should all be rooting for them.&lt;/tt&gt;
&lt;/ul&gt;
&lt;b&gt;Kate Klonick, &lt;a href=&quot;https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2937985&quot;&gt;The New Governors: The People, Rules, and Processes Governing Online Speech&lt;/a&gt;, 131 Harv. L. Rev. 1598, last revised Apr 17, 2018&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Professor Klonick does an excellent job of describing why platforms may want to moderate content, how they do it, and the legal framework and regulatory framework that underpins it all. This is a very large expanse of ground, covered extremely well.*** If you are new to this area and want an in depth briefing, I highly recommend The New Governors. Her proscriptions are to push platforms towards greater transparency in their content moderation decision making and policies, as well as greater accountability to users. As in Post No Evil (for which she was a source), Professor Klonick identifies the popular concern about platform policies and locates it as a mismatch between platform policies and user expectations.&lt;br /&gt;
&lt;br /&gt;
Professor Klonick also draws out the similarities and differences between content moderation and judicial decision-making. She writes:&lt;br /&gt;
&lt;ul&gt;&lt;tt&gt;Beyond borrowing from the law substantively, the [Facebook content moderation rule documents called] the Abuse Standards borrow from the way the law is applied, providing examples and analogies to help moderators apply the rules. Analogical legal reasoning, the method whereby judges reach decisions by reasoning through analogy between cases, is a foundation of legal theory. Though the use of example and analogy plays a central role throughout the Abuse Standards, the combination of legal rule and example in content moderation seems to contain elements of both rule-based legal reasoning and analogical legal reasoning. For example, after stating the rules for assessing credibility, the Abuse Standards give a series of examples of instances that establish credible or noncredible threats. “I’m going to stab (method) Lisa H. (target) at the frat party (place),” states Abuse Standards 6.2, demonstrating a type of credible threat that should be escalated. “I’m going to blow up the planet on new year’s eve this year” is given as an example of a noncredible threat. Thus, content moderators are not expected to reason directly from prior content decisions as in common law — but the public policies, internal rules, examples, and analogies they are given in their rulebook are informed by past assessments.&lt;/tt&gt;
&lt;/ul&gt;
(footnotes omitted).&amp;nbsp;Content moderation rules are always evolving and changing. Just as there is no one perfect set of content policies for all services, there is also no one perfect static set of rules for any given service. Instead, just like the law, the rules are always changing and being adapted to deal with new realities.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Ellen Pao, &lt;a href=&quot;https://www.wired.com/story/ellen-pao-facebook-twitter-ceos-can-fix-abuse-mark-zuckerberg-jack-dorsey/&quot;&gt;Let&#39;s Stop Pretending Facebook and Twitter&#39;s CEOs Can&#39;t Fix This Mess&lt;/a&gt;, Wired, Aug 28, 2018; and Kara Swisher and Ron Wyden,&amp;nbsp;&lt;a href=&quot;https://www.recode.net/2018/8/22/17765668/ron-wyden-senator-recode-decode-kara-swisher-podcast-transcript&quot;&gt;Full Q&amp;amp;A: Senator Ron Wyden on Recode Decode&lt;/a&gt;, Recode Decode, Aug 22, 2018&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I include these two as good examples of the current mood. Both Ms. Pao and Senator Wyden are friends of tech and highly tech knowledgeable. Ms. Pao was the CEO of Reddit. Senator Wyden was one of the authors of the original statute that encouraged content moderation by protecting platforms that moderate content from many types of liability. Nevertheless, Ms. Pao believes that the tech CEO&#39;s don&#39;t care about and aren&#39;t trying to solve the issue of bad speech on their platforms. She calls for legal liability for falsity and harassment on platforms.&lt;br /&gt;
&lt;ul&gt;&lt;tt&gt;If you’re a CEO and someone dies because of harassment or false information on your platform—even if your platform isn’t alone in the harassment—your company should face some consequences. That could mean civil or criminal court proceedings, depending on the circumstances. Or it could mean advertisers take a stand, or your business takes a hit.&lt;/tt&gt;
&lt;/ul&gt;
Senator Wyden says that he is working on legislation that:&lt;br /&gt;
&lt;ul&gt;&lt;tt&gt;... lay[s] out what the consequences are when somebody who is a bad actor, somebody who really doesn’t meet the decency principles that reflect our values, if that bad actor blows by the bounds of common decency, I think you gotta have a way to make sure that stuff is taken down.&lt;/tt&gt;
&lt;/ul&gt;
I strongly disagree with legislating &quot;common decency&quot; because I think there is good evidence that it would do more harm than good, particularly to suppress the speech of unfairly marginalized groups. More broadly both Wyden and Pao seem to believe that these problems are relatively easy to solve, if only the CEOs cared, or were legally liable. I don&#39;t agree that this is an easy problem to solve in part because I don&#39;t see examples of it having been solved in spite of the value of solving it. As I have written &lt;a href=&quot;http://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html&quot;&gt;previously&lt;/a&gt;:&lt;br /&gt;
&lt;ul&gt;&lt;tt&gt;... I don&#39;t know of many good examples outside of heavily editorial ones with a relatively small set of content producers, that have been able to be both extremely inclusive and progressive towards what I think are the &quot;right&quot; kind of marginalized ideas while keeping out the ones that I think are marginalized for very good reason. ...
Many of the larger Internet platforms are trying, with varying degrees of success and failure, to do this right, as I was when I worked at Google and Twitter. That said, I don&#39;t have a great example of a platform or community that is working exactly as I would like. And it seems like that is a big and worthy challenge.&lt;/tt&gt;
&lt;/ul&gt;
(footnotes omitted). As I said in that post, if you have a good example, please send it my way. In the meantime, my belief is that this is difficult, there is no silver bullet, and we should continue trying.&lt;br /&gt;
&lt;br /&gt;
Nevertheless, it is important to understand that this is where public opinion is headed and these two pieces are a good indication.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Finally,&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
If you want to find out more about content moderation, here&#39;s a twitter list of &lt;a href=&quot;https://twitter.com/amac/lists/content-moderation&quot;&gt;content moderation folks&lt;/a&gt; on Twitter.&amp;nbsp;If I&#39;m missing someone, please let me know.&lt;br /&gt;
&lt;br /&gt;
* This is really specific to me and your mileage may vary widely. I am a white male with lots of privilege. Take what I say about evil content with a huge grain of salt. I am relatively unthreatened by that content compared to someone who has had their life impacted by that evil. I get that some societies will want to ensure that books like Mein Kampf are not available in libraries. I don&#39;t believe that is the right way forward, but I may not be best situated to make that call.&lt;br /&gt;
&lt;br /&gt;
** Facebook does use some of these tactics for advertising and Facebook Pages but, as far as I know, not for Facebook Posts or Groups.&lt;br /&gt;
&lt;br /&gt;
*** Professor Klonick&#39;s description of Twitter&#39;s early content policies as non-existent is mistaken. Even early in Twitter&#39;s history the company had content policies which resulted in the removal of content, for example, for impersonation or child pornography. I think she just didn&#39;t have a good source of information for Twitter.</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/7723926207690889772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/7723926207690889772' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/7723926207690889772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/7723926207690889772'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2018/08/recent-podcasts-articles-on-content.html' title='Recent Podcasts &amp; Articles on Content Moderation'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-5861526287232619168</id><published>2018-04-04T04:24:00.000-07:00</published><updated>2019-01-16T05:37:55.846-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="code"/><category scheme="http://www.blogger.com/atom/ns#" term="expression"/><category scheme="http://www.blogger.com/atom/ns#" term="law"/><title type='text'>Hallin Spheres, Overton Windows, Constitutional Interpretation, and Online Platforms (oh my!)</title><content type='html'>Hallin Spheres, Overton Windows, and certain theories of constitutional interpretation&lt;sup&gt;[&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#Hallin1&quot; name=&quot;BackHallin1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; are all ways of thinking about what can and cannot be argued successfully, or at all, within different contexts. They are very applicable to our current discussion about online platforms and the types of speech they contain. This post aims to briefly describe all three, and how they might apply to online speech. One thing that seems to follow from thinking about the Internet and online platforms through these lenses is that the widening of participants that the Internet brought tends to increase the types of arguments that can be had and tends to decrease the amount of consensus available. While I am generally optimistic about the change as a way of accelerating social progress and bringing more, previously marginalized people into the &quot;&lt;a href=&quot;https://www.youtube.com/watch?v=WySzEXKUSZw&quot;&gt;room where it happens&lt;/a&gt;,&quot; some people and ideas were marginalized for very good reason. Implementing global platforms or communities inclusively, but only towards progress seems possible but I don&#39;t yet know of a good example of it being done successfully at scale. (If you know of more, I&#39;d love to hear about them!)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Hallin Spheres&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://communication.ucsd.edu/people/faculty/daniel-c-hallin.html&quot;&gt;Daniel Hallin&lt;/a&gt; is a journalist and professor of media systems who wrote &lt;a href=&quot;https://books.google.com/books?id=kmpYUSYLD8MC&quot;&gt;The Uncensored War: The Media and Vietnam&lt;/a&gt; about the way journalists covered the Vietnam war through a description of three spheres of ideas on which journalists report. At the two extremes are the &lt;i&gt;sphere of consensus&lt;/i&gt;, for ideas journalists assume their readers accept and agree with; and the &lt;i&gt;sphere of deviance&lt;/i&gt;, for ideas that the journalists believe their readers disagree with vehemently. Between the two is the &lt;i&gt;sphere of legitimate controversy&lt;/i&gt; where a journalists assumes her readers believe that there may be debate. These spheres come together like a donut, with the sphere of deviance outside the donut, the sphere of legitimate controversy making up the dough, and the sphere of consensus, the hole in the middle (the Canadian in me can&#39;t help but think of it as the &lt;a href=&quot;http://www.timhortons.com/ca/en/menu/timbits.php&quot;&gt;Timbit&lt;/a&gt; of consensus).&lt;br /&gt;
&lt;br /&gt;
Hallin observed that within the spheres of deviance or consensus, journalists would deviate from &quot;objective&quot; journalism in a variety of ways, such as adopting sphere of consensus views without challenge, excluding sphere of deviance sources and ideas from any mention in their stories, and generally reinforcing the divisions between the spheres. For more specifically on Hallin Spheres and the effect of the the Internet on mainstream media ability to maintain them, see Jay Rosen,&amp;nbsp;&lt;a href=&quot;http://archive.pressthink.org/2009/01/12/atomization.html#comment52316&quot;&gt;&amp;nbsp;Audience Atomization Overcome: Why the Internet Weakens the Authority of the Press&lt;/a&gt;&amp;nbsp;(more on that below). A&amp;nbsp;&lt;a href=&quot;https://books.google.es/books?id=kmpYUSYLD8MC&amp;amp;pg=PA117#v=onepage&amp;amp;q&amp;amp;f=false&quot;&gt;diagram from Hallin&#39;s book discussing the spheres&lt;/a&gt; is below from Google Books.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK9ReGSU102qXVMohbM_9TSVHn9xToQq846q3SIkpmb0NcLCg36uTY_OstZgFM_Cmyg8qIcBbbZ7pRlUWklzsLzOy082v4V6JY_8GYw8CYJGzFEJnyui7sluZX1_wibktFTqxfct7M5Wld/s1600/Screenshot+from+2018-04-04+13-27-48.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;373&quot; data-original-width=&quot;557&quot; height=&quot;214&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK9ReGSU102qXVMohbM_9TSVHn9xToQq846q3SIkpmb0NcLCg36uTY_OstZgFM_Cmyg8qIcBbbZ7pRlUWklzsLzOy082v4V6JY_8GYw8CYJGzFEJnyui7sluZX1_wibktFTqxfct7M5Wld/s320/Screenshot+from+2018-04-04+13-27-48.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;From Hallin, Daniel, &lt;a href=&quot;https://books.google.es/books?id=kmpYUSYLD8MC&amp;amp;pg=PA117#v=onepage&amp;amp;q&amp;amp;f=false&quot;&gt;The Uncensored War: The Media and Vietnam&lt;/a&gt;, &lt;br /&gt;
University of California Press (1989), p 117.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Overton Window&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.mackinac.org/bio.aspx?ID=12&quot;&gt;Joseph Overton&lt;/a&gt; was writer and think tanker who proposed the window as a metaphor for understanding which ideas are viable from a political perspective in a certain community. Ideas in the window are viable and can be debated and adopted. Ideas outside the window cannot. Overton appears to have seen the window along a continuum of more and less government intervention (which many on the right would call &quot;less free&quot; and &quot;free&quot;) and believed that while the window constrained policy discussions, it was political and social forces that could change whether ideas were inside or outside of the window. The Overton Window has been in the news a lot lately as a way to explain that normalizing extremely radical ideas can move the whole window towards those ideas and thereby move some slightly less radical ideas into the center of the window. For example, see Politico&#39;s&amp;nbsp;&lt;a href=&quot;https://www.politico.com/magazine/story/2018/02/25/overton-window-explained-definition-meaning-217010&quot;&gt;How an Obscure Conservative Theory Became the Trump Era’s Go-to Nerd Phrase&lt;/a&gt; and&amp;nbsp;&lt;a href=&quot;https://www.vox.com/2017/12/21/16806676/strikethrough-how-trump-overton-window-extreme-normal&quot;&gt;Vox Media&#39;s description&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjef6CSeehSp5MFt9_XABUPLlQh9IJVh5Rl4IDmqUc-ne-b-Xsx8SNIRHu2oQB4dlQrvFAtq2sWxV5X4btaxSxSrOG-BX8aqPGSIHSVul25EHtipvonneqOo6zjHlNm2fmxdEdEuAWI/s1600/Overton_Window_diagram.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;680&quot; data-original-width=&quot;400&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjef6CSeehSp5MFt9_XABUPLlQh9IJVh5Rl4IDmqUc-ne-b-Xsx8SNIRHu2oQB4dlQrvFAtq2sWxV5X4btaxSxSrOG-BX8aqPGSIHSVul25EHtipvonneqOo6zjHlNm2fmxdEdEuAWI/s320/Overton_Window_diagram.jpg&quot; width=&quot;188&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Overton_window#/media/File:Overton_Window_diagram.svg&quot;&gt;Image of the Overton Window&lt;/a&gt; from &lt;br /&gt;
Wikipedia.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;Constitutional Interpretation&lt;/b&gt;&lt;br /&gt;
I&#39;ve had a harder time coming up with a good source or pithy name for these same ideas in constitutional interpretation. The first time I learned about them was in an Advanced Constitutional Law class I was lucky to take from &lt;a href=&quot;http://www.lessig.org/&quot;&gt;Professor Lawrence Lessig&lt;/a&gt;. My recollection / understanding is as follows, but all errors are mine, not his. First off, the Constitution is made of words. A lot of constitutional law is about interpreting those words and how they might apply to situations in a particular case. For example, is death by a particular lethal injection &quot;cruel and unusual punishment&quot; and therefor illegal under the &lt;a href=&quot;https://en.wikipedia.org/wiki/Eighth_Amendment_to_the_United_States_Constitution#Text&quot;&gt;Eighth Amendment&lt;/a&gt;? There are a bunch of different ways to go about this and some significant &lt;a href=&quot;https://en.wikipedia.org/wiki/Judicial_interpretation&quot;&gt;disagreement among jurists&lt;/a&gt;, however the question that Lessig was asking was, is there a context behind all of this that makes some thoughts thinkable by the Supreme Court Justices, while others are not?&lt;sup&gt;[&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#Hallin2&quot; name=&quot;BackHallin2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt; For example, how do all but one of the Justices in &lt;a href=&quot;https://www.law.cornell.edu/supremecourt/text/163/537#writing-USSC_CR_0163_0537_ZO&quot;&gt;Plessy v. Ferguson&lt;/a&gt;, not understand that separate is not equal, whereas almost sixty years later, all of the&amp;nbsp;&lt;a href=&quot;https://www.law.cornell.edu/supremecourt/text/347/483&quot;&gt;Brown v Board of Education&lt;/a&gt; Court does? Compare:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&quot;The object of the [fourteenth] amendment was undoubtedly to enforce the absolute equality of the two races before the law, but, in the nature of things, it could not have been intended to abolish distinctions based upon color, or to enforce social, as distinguished from political, equality, or a commingling of the two races upon terms unsatisfactory to either. Laws permitting, and even requiring, their separation in places where they are liable to be brought into contact do not necessarily imply the inferiority of either race to the other, and have been generally, if not universally, recognized as within the competency of the state legislatures in the exercise of their police power. The most common instance of this is connected with the establishment of separate schools for white and colored children, which has been held to be a valid exercise of the legislative power even by courts of States where the political rights of the colored race have been longest and most earnestly enforced.&quot; Plessy v Ferguson, &lt;a href=&quot;https://www.law.cornell.edu/supremecourt/text/163/537#writing-USSC_CR_0163_0537_ZO&quot;&gt;163 U.S. 537&lt;/a&gt;, 544 (1896)&lt;/blockquote&gt;
with:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&quot;To separate [students] from others of similar age and qualifications solely because of their race generates a feeling of inferiority as to their status in the community that may affect their hearts and minds in a way unlikely ever to be undone. The effect of this separation on their educational opportunities was well stated by a finding in the Kansas case by a court which nevertheless felt compelled to rule against the Negro plaintiffs: Segregation of white and colored children in public schools has a detrimental effect upon the colored children. The impact is greater when it has the sanction of the law, for the policy of separating the races is usually interpreted as denoting the inferiority of the negro group. A sense of inferiority affects the motivation of a child to learn. Segregation with the sanction of law, therefore, has a tendency to [retard] the educational and mental development of negro children and to deprive them of some of the benefits they would receive in a racial[ly] integrated school system. ... We conclude that, in the field of public education, the doctrine of &quot;separate but equal&quot; has no place. Separate educational facilities are inherently unequal.&quot; Brown v Board of Education, &lt;a href=&quot;https://www.law.cornell.edu/supremecourt/text/347/483&quot;&gt;347 U.S. 483&lt;/a&gt;, 494-5 (1954)&lt;/blockquote&gt;
For more on these cases, listen to the difference between the oral arguments in&amp;nbsp;&lt;a href=&quot;https://www.oyez.org/cases/1850-1900/163us537&quot;&gt;Plessy&lt;/a&gt; and &lt;a href=&quot;https://www.oyez.org/cases/1940-1955/347us483&quot;&gt;Brown&lt;/a&gt;,&amp;nbsp;and read Justice Harlan&#39;s dissent in &lt;a href=&quot;https://www.law.cornell.edu/supremecourt/text/163/537#writing-USSC_CR_0163_0537_ZO&quot;&gt;Plessy&lt;/a&gt;.&amp;nbsp; In the language of Hallin Spheres, segregation being detrimental and not &quot;equal,&quot; moved from pretty close to the sphere of deviance for the Court, to the Sphere of consensus. And, there have been similarly important, radical, and progressive shifts in Supreme Court understanding of specific words in the constitution in many other areas that I care about.&lt;sup&gt;[&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#Hallin3&quot; name=&quot;BackHallin3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Enter, the Internet&lt;/b&gt;&lt;br /&gt;
As &lt;a href=&quot;https://twitter.com/jayrosen_nyu&quot;&gt;Jay Rosen&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/nototally&quot;&gt;Shaun Lau&lt;/a&gt; have said better than I ever could, the Internet and its propensity to allow for many more speakers to join the conversation&lt;sup&gt;[&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#Hallin4&quot; name=&quot;BackHallin4&quot;&gt;4&lt;/a&gt;]&lt;/sup&gt; have had a significant effect on windows and spheres in the mainstream media, on internet media, and in society at large.&lt;br /&gt;
&lt;br /&gt;
Rosen gives a great description of Hallin Spheres and argues that the &quot;audience&#39;s&quot; increased ability to talk among themselves and talk back to bigger media players weakens the big media players ability to maintain the spheres without challenge:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&quot;Now we can see why blogging and the Net matter so greatly in political journalism. In the age of mass media, the press was able to define the sphere of legitimate debate with relative ease because the people on the receiving end were atomized— meaning they were connected “up” to Big Media but not across to each other. But today one of the biggest factors changing our world is the falling cost for like-minded people to locate each other, share information, trade impressions and realize their number. Among the first things they may do is establish that the “sphere of legitimate debate” as defined by journalists doesn’t match up with their own definition. ... what’s [] happening is that the authority of the press to assume consensus, define deviance and set the terms for legitimate debate is weaker when people can connect horizontally around and about the news.&quot; Jay Rosen,&amp;nbsp;&lt;a href=&quot;http://archive.pressthink.org/2009/01/12/atomization.html#comment52316&quot;&gt;&amp;nbsp;Audience Atomization Overcome: Why the Internet Weakens the Authority of the Press&lt;/a&gt;&lt;/blockquote&gt;
Lau makes the same point before expanding on it to a bigger point about how internet communities affect discourse in this &lt;a href=&quot;https://twitter.com/NoTotally/status/908909777777864704&quot;&gt;excellent thread&lt;/a&gt;. He&#39;s writing about how Jemelle Hill&#39;s description of Donald Trump as a white supremacist was seen by ESPN as in the sphere of deviance, whereas many on the Internet disagreed. You should go read it.&lt;br /&gt;
&lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;
&lt;div dir=&quot;ltr&quot; lang=&quot;en&quot;&gt;
Y&#39;all are having a Hallin&#39;s Spheres argument, but I haven&#39;t seen anyone else bring it up. So here we go. &lt;a href=&quot;https://t.co/egJhoWFUr9&quot;&gt;https://t.co/egJhoWFUr9&lt;/a&gt;&lt;/div&gt;
— Studio Glibly (@NoTotally) &lt;a href=&quot;https://twitter.com/NoTotally/status/908909777777864704?ref_src=twsrc%5Etfw&quot;&gt;September 16, 2017&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; charset=&quot;utf-8&quot; src=&quot;https://platform.twitter.com/widgets.js&quot;&gt;&lt;/script&gt;

Among the many good points Lau and Rosen make is that Hallin Spheres are also about understanding consensus. As more people are included in a community, the sphere of legitimate controversy tends to grow. As it grows, it likely takes some space away from the sphere of consensus. As Lau says:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&quot;Put only Montagues in a room, and you have consensus. Now put a few Capulets in. &#39;What happened to all the consensus?&#39; The answer is that there never was consensus; there was only agreement among those with access or those represented by those with access. &quot;Internet pushback&quot; when the internet- and very specifically twitter- is more meritocratic than, let&#39;s say large corporations like ESPN? That&#39;s not &quot;the internet&quot; pushing back. It&#39;s those who you didn&#39;t allow in the room before we forced our way in via new technology. PEOPLE.&quot; From&amp;nbsp;@NoTotally Twitter thread, &lt;a href=&quot;https://twitter.com/NoTotally/status/908909777777864704&quot;&gt;Sept. 15, 2017&lt;/a&gt;.&lt;/blockquote&gt;
Both of these observations mean that it can be harder to create spheres of consensus, that it is harder to maintain them once created, and that we might expect spheres of legitimate controversy to grow.&lt;sup&gt;[&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#Hallin5&quot; name=&quot;BackHallin5&quot;&gt;5&lt;/a&gt;]&lt;/sup&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;This is good?&lt;/b&gt;&lt;br /&gt;
Years of forward societal progress based in part on expanding and shifting the Overton Window and sphere of legitimate controversy may make you think, this is great! But hold on, some ideas are in the sphere of deviance for a reason. Racism is one good and sadly timely example. Same with some people. The Internet and its platforms have created many spaces for marginalized people to congregate and become less marginalized by removing gatekeepers who might enforce spheres and windows to exclude.&lt;sup&gt;[&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#Hallin6&quot; name=&quot;BackHallin6&quot;&gt;6&lt;/a&gt;]&lt;/sup&gt; On the internet, nobody needs permission to speak. Again, that&#39;s often good progress. But, some groups are marginalized for a very good reason. Nazis are a good and sadly timely example. Bringing racism and Nazis back into the window is VERY, VERY BAD, and yet the relative lack of speech gatekeepers in the U.S. Constitution, on the Internet, and on many Internet platforms may make this more likely. This is not a malfunction, but a design feature of the Internet and many of its platforms.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What can online platforms and communities do?&lt;/b&gt;&lt;br /&gt;
It is worth noting that spheres and windows are a bit of a misnomer for these phenomenon because not only can they be different sizes in different communities, they can also be pretty permeable along the edges and can change size or permeability. Just as importantly, they can change shape. There is nothing that says that a particular society, medium, or context needs to treat all ideas that are equidistant from the center of consensus as equal. The sphere need not be a sphere, it can be oblong and irregular. The window can be slanted and weird looking. In other words, it is not a law of nature that determines that two ideas that are believed by a similar number of people need to be treated the same. That said, I don&#39;t know of many good examples outside of heavily editorial ones with a relatively small set of content producers, that have been able to be both extremely inclusive and progressive towards what I think are the &quot;right&quot; kind of marginalized ideas while keeping out the ones that I think are marginalized for very good reason (and I use &quot;I&quot; here as a measure because different people differ quite a bit on these judgments).&lt;sup&gt;[&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#Hallin7&quot; name=&quot;BackHallin7&quot;&gt;7&lt;/a&gt;]&lt;/sup&gt; If anything, there are concerns that attempts to suppress speech by groups that should be marginal are often used against those that shouldn&#39;t.&lt;sup&gt;[&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#Hallin8&quot; name=&quot;BackHallin8&quot;&gt;8&lt;/a&gt;]&lt;/sup&gt;&lt;br /&gt;
&lt;br /&gt;
Many of the larger Internet platforms are trying, with varying degrees of success and failure, to do this right, as I was when I worked at Google and Twitter. That said, I don&#39;t have a great example of a platform or community that is working exactly as I would like. And it seems like that is a big and worthy challenge. Anyhow, there is probably a whole &#39;nother post from me on this, but that&#39;s for another day, this one is already long enough.&lt;br /&gt;
&lt;br /&gt;
P.S. If you have examples of platforms or communities doing this extremely well at scale, please forgive me for not including them and help me fix my error by pointing me towards them&amp;nbsp;&lt;a href=&quot;https://twitter.com/amac&quot;&gt;@amac&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;hr align=&quot;LEFT&quot; width=&quot;80%&quot; /&gt;
&lt;br /&gt;
&lt;sup&gt;[&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Hallin1&quot;&gt;&lt;/a&gt;1]&lt;/sup&gt; I am an expert in none of these, but I have found them to be very useful concepts. [&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#BackHallin1&quot;&gt;return&lt;/a&gt;]&lt;br /&gt;
&lt;sup&gt;[&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Hallin2&quot;&gt;&lt;/a&gt;2]&lt;/sup&gt; One of the questions that Professor Lessig asked that I think is really interesting, but not quite on point for this post is &quot;What is the thing that we can&#39;t really consider today because it almost unthinkable, but our grandchildren will think is so obviously true that it is unthinkable to debate against?&quot;
[&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#BackHallin2&quot;&gt;return&lt;/a&gt;]&lt;br /&gt;
&lt;sup&gt;[&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Hallin3&quot;&gt;&lt;/a&gt;3]&lt;/sup&gt; For example, see&amp;nbsp;Obergefell v. Hodges, &lt;a href=&quot;https://supreme.justia.com/cases/federal/us/576/14-556/opinion3.html&quot;&gt;576 U.S. ___&lt;/a&gt; (2015).
[&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#BackHallin3&quot;&gt;return&lt;/a&gt;]&lt;br /&gt;
&lt;sup&gt;[&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Hallin4&quot;&gt;&lt;/a&gt;4]&lt;/sup&gt; This has clearly not been uniform progress. Even as the speech gatekeepers have receded and allowed more people to speak, harassment, trolling, aggressive spamming, false flagging, and other techniques are being used to suppress speech and drive speakers, particularly those who have historically been marginalized, away from these platforms.
[&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#BackHallin4&quot;&gt;return&lt;/a&gt;]&lt;br /&gt;
&lt;sup&gt;[&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Hallin5&quot;&gt;&lt;/a&gt;5]&lt;/sup&gt; I also believe that these two effects have negatively impacted trust in institutions more generally.&amp;nbsp; [&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#BackHallin5&quot;&gt;return&lt;/a&gt;]&lt;br /&gt;
&lt;sup&gt;[&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Hallin6&quot;&gt;&lt;/a&gt;6]&lt;/sup&gt; &lt;i&gt;See&lt;/i&gt; note 4.
[&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#BackHallin6&quot;&gt;return&lt;/a&gt;]&lt;br /&gt;
&lt;sup&gt;[&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Hallin7&quot;&gt;&lt;/a&gt;7]&lt;/sup&gt; Spam or illegal content might be good examples of this at some of the major services.
[&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#BackHallin7&quot;&gt;return&lt;/a&gt;]&lt;br /&gt;
&lt;sup&gt;[&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Hallin8&quot;&gt;&lt;/a&gt;8]&lt;/sup&gt; &lt;i&gt;See e.g.&amp;nbsp;&lt;/i&gt;Daphne Keller, &lt;a href=&quot;https://cyberlaw.stanford.edu/files/publication/files/Commission-Filing-Stanford-CIS-26-3_0.pdf&quot;&gt;Inception Impact Assessment: Measures to further improve the effectiveness of the fight against illegal content online&lt;/a&gt;, Comment to the European Commission, March 29 2018 (discussing the potential for disparate impact of rules requiring internet platforms removal of terrorist content).[&lt;a href=&quot;https://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html#BackHallin8&quot;&gt;return&lt;/a&gt;]</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/5861526287232619168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/5861526287232619168' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/5861526287232619168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/5861526287232619168'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2018/04/hallin-spheres-overton-windows.html' title='Hallin Spheres, Overton Windows, Constitutional Interpretation, and Online Platforms (oh my!)'/><author><name>macgill</name><uri>http://www.blogger.com/profile/11740500682899250940</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK9ReGSU102qXVMohbM_9TSVHn9xToQq846q3SIkpmb0NcLCg36uTY_OstZgFM_Cmyg8qIcBbbZ7pRlUWklzsLzOy082v4V6JY_8GYw8CYJGzFEJnyui7sluZX1_wibktFTqxfct7M5Wld/s72-c/Screenshot+from+2018-04-04+13-27-48.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-8106398916185094360</id><published>2018-02-28T07:14:00.000-08:00</published><updated>2019-01-16T05:38:10.591-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="code"/><category scheme="http://www.blogger.com/atom/ns#" term="expression"/><title type='text'>A Service I Want</title><content type='html'>I would like an algorithm or service that would suggest arguments, opinions, and points of view from smart people trusted within their communities but with whom I am likely to disagree or whose communities I am underexposed to. I do not think I am alone in this desire.&lt;br /&gt;
&lt;br /&gt;
I attempt to get some of this out of who I follow on Twitter (and it was a great use for Google Reader -- may it rest in peace), but that is a pretty imperfect system. I also routinely ask others to suggest sources I might like to fulfill these needs, but I have found that many struggle to make good suggestions.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf8XSibcV1D6YkngpHx82sB7pJKYR9DdjZKJKqFiRMHKIJMYLDmmvEKnDlIZqGI8nwtrbUB05xHkizJk-5sUOTqCVpigyX2q3rV3b2wn7eStWVxBYP1YPbxB2psw_4yRvhZO7spOUhZmbB/s1600/14598276840_306197d522_o.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;828&quot; data-original-width=&quot;1600&quot; height=&quot;165&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf8XSibcV1D6YkngpHx82sB7pJKYR9DdjZKJKqFiRMHKIJMYLDmmvEKnDlIZqGI8nwtrbUB05xHkizJk-5sUOTqCVpigyX2q3rV3b2wn7eStWVxBYP1YPbxB2psw_4yRvhZO7spOUhZmbB/s320/14598276840_306197d522_o.jpg&quot; width=&quot;320&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Noble Returns to the Pavilion, from&amp;nbsp;&lt;a href=&quot;https://archive.org/stream/wgcricketingremi00grac/wgcricketingremi00grac#page/n500/mode/1up&quot;&gt;&quot;W.G.&quot;, cricketing &lt;br /&gt;reminiscences and personal recollections&lt;/a&gt;&amp;nbsp;(1899) &lt;br /&gt;Public domain book from the &lt;a href=&quot;https://archive.org/&quot;&gt;Internet Archive&lt;/a&gt;.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
One of the tricky things about this algorithm or service is that it would need to distinguish between those arguments and communities that I care about, those that I do not, and those I am repulsed by. For example, I am probably underexposed to cricket enthusiasts but I don’t care much about cricket anymore and don’t want more information. Another example is that I have not read anything about the Parkland victims being actors conspiracy theories but I would be actively repulsed if a service suggested that I should read about it.&lt;br /&gt;
&lt;br /&gt;
My suspicion is that one of the reasons services serve up filter-bubble content based on the engagement metrics of friend groups and similar users is because it is much easier than finding good, challenging material to suggest to users. That said, I wonder if the later might be more fulfilling to the user over the long term and result in a stickier service if it could be achieved.&lt;br /&gt;
&lt;br /&gt;
Do you know of a service doing a good job of this? Do you have ideas for users or publications that would fit this bill for me? If so, please send them my way at&amp;nbsp;&lt;a href=&quot;https://twitter.com/amac&quot; style=&quot;text-decoration-line: none;&quot;&gt;@amac&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEiTtpHKl6E65fGcXoGzFWoRGfAgxhSv-0I2BRIrKLJj9Lr015ulsvzmsgIduYHvaLiA3ltTTJBCbglx7zvM1VWInKzqYzC84sUyxfzoV9NfL-HtU2mjLeRbVmAAfPmsF2l1EXaTavtpjm/s1600/14761978676_fd1aa9dfc6_o.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1004&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEiTtpHKl6E65fGcXoGzFWoRGfAgxhSv-0I2BRIrKLJj9Lr015ulsvzmsgIduYHvaLiA3ltTTJBCbglx7zvM1VWInKzqYzC84sUyxfzoV9NfL-HtU2mjLeRbVmAAfPmsF2l1EXaTavtpjm/s320/14761978676_fd1aa9dfc6_o.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;C.L. Townsend, Playing Forward, from&amp;nbsp;&lt;a href=&quot;https://archive.org/stream/wgcricketingremi00grac/wgcricketingremi00grac#page/n464/mode/1up&quot;&gt;&quot;W.G.&quot;, cricketing&lt;br /&gt;reminiscences&amp;nbsp;and personal recollections&lt;/a&gt;&amp;nbsp;(1899)&lt;br /&gt;
Public domain book from the&amp;nbsp;&lt;a href=&quot;https://archive.org/&quot;&gt;Internet Archive&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/8106398916185094360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/8106398916185094360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/8106398916185094360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/8106398916185094360'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2018/02/a-service-i-want.html' title='A Service I Want'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf8XSibcV1D6YkngpHx82sB7pJKYR9DdjZKJKqFiRMHKIJMYLDmmvEKnDlIZqGI8nwtrbUB05xHkizJk-5sUOTqCVpigyX2q3rV3b2wn7eStWVxBYP1YPbxB2psw_4yRvhZO7spOUhZmbB/s72-c/14598276840_306197d522_o.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-8679916455676697434</id><published>2018-02-26T04:21:00.000-08:00</published><updated>2018-02-26T04:24:45.253-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="law"/><title type='text'>Internet &amp;amp; Jurisdiction</title><content type='html'>I went to the last &lt;a href=&quot;http://conference2016.internetjurisdiction.net/&quot;&gt;Internet &amp;amp; Jurisdiction gathering in Paris&lt;/a&gt;. I can’t make it to the one that &lt;a href=&quot;https://conference.internetjurisdiction.net/&quot;&gt;starts today in Ottawa&lt;/a&gt;, but I would have come if I could. I’ve been thinking about the last one all year because it was full of good, smart people trying to make progress on coherent and practical Internet jurisdiction. What I also loved about it was that I came away strongly disagreeing with the direction they were going. More on that below, but first some background.&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEKoHlw4QK-dM23sEQfBzEtD251Q8VqcVh5JInf_tZxOeFbkTk2pDHrGOFrIQ6RqO7vh_aDcHSTEDnK9ATQv_RNKFGcBdTf3Vo4CLaQQG11LHX7rlA32mkBn7iP5c9vvpfiHqIzu3nPfp0/s1600/9508405067_68b1647abe_o.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1600&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEKoHlw4QK-dM23sEQfBzEtD251Q8VqcVh5JInf_tZxOeFbkTk2pDHrGOFrIQ6RqO7vh_aDcHSTEDnK9ATQv_RNKFGcBdTf3Vo4CLaQQG11LHX7rlA32mkBn7iP5c9vvpfiHqIzu3nPfp0/s320/9508405067_68b1647abe_o.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Dwarf Galaxy Caught Ramming Into a Large Spiral Galaxy &lt;br /&gt;
(NASA, Chandra, 08/14/13) from &lt;a href=&quot;https://www.flickr.com/photos/nasamarshall/9508405067/&quot;&gt;NASA Marshall Space Flight Center&lt;/a&gt;.&lt;br /&gt;
This and the other space images accompanying this blog post appear &lt;br /&gt;
to be in the public domain, in spite of NASA&#39;s &lt;a href=&quot;https://www.nasa.gov/multimedia/guidelines/index.html&quot;&gt;weird licensey language&lt;/a&gt; &lt;br /&gt;
to the contrary.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-weight: 700; white-space: pre;&quot;&gt;Background: Internet Jurisdiction&lt;/span&gt;&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
Jurisdiction is one of the oldest and thorniest questions for Internet policy: “Which government(s) get to regulate what and who, where?” &lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
As John Perry Barlow put it in his &lt;a href=&quot;https://www.eff.org/cyberspace-independence&quot;&gt;1996 manifesto&lt;/a&gt; declaring the Internet’s independence from government regulation, “[Cyberspace] is a world that is both everywhere and nowhere, but it is not where bodies live.” In that piece, he argued that regulation of the Internet by governments was both unwise and impractical. Others saw it differently. As Tim Wu &lt;a href=&quot;http://jolt.law.harvard.edu/articles/pdf/v10/10HarvJLTech647.pdf&quot;&gt;wrote in 1997&lt;/a&gt;, &amp;nbsp;“it is possible to regulate the Internet, and ... countries, corporations, organizations, and private individuals are already doing so.” The first important legal cases involving the extent of government jurisdiction over the Internet were decided shortly thereafter. &lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
As the Internet has grown, become more mainstream, and increased in importance, particularly with respect to real world consequences that governments have historically regulated, questions of which governments get to regulate who and what online have become increasingly frequent. These questions get “answered” in courts, as governments make laws, and by corporations and individuals as the architecture, norms, markets, and regulation of the Internet develop.&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
There has been no straight line of consensus “progress” from one point of view to another. Even now, there are big questions that are being actively fought, including the United States Supreme Court considering &lt;a href=&quot;https://en.wikipedia.org/wiki/Microsoft_Corp._v._United_States&quot;&gt;Microsoft’s challenge to request by the United States&lt;/a&gt; for user data stored in Ireland, and the Supreme Court of Canada &lt;a href=&quot;https://scc-csc.lexum.com/scc-csc/scc-csc/en/item/16701/index.do&quot;&gt;asserting&lt;/a&gt; the ability to order content removed globally only to have a U.S. District Court &lt;a href=&quot;https://digitalcommons.law.scu.edu/cgi/viewcontent.cgi?referer=http://jolt.law.harvard.edu/digest/google-v-equustek-united-states-federal-court-declares-canadian-court-order-unenforceable&amp;amp;httpsredir=1&amp;amp;article=2589&amp;amp;context=historical&quot;&gt;disagree&lt;/a&gt;.&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
The technological landscape has also changed dramatically. Over the last twenty years, as billions of people started using the Internet it has morphed from an incredibly decentralized landscape of personal websites hosted from tiny service providers, often at the very edge of the network, to a more centralized set of cloud-storage service providers serving a large percentage of the population. If the FBI wanted to find out whether I had sent an email to a particular person in 1996, they would have had to come to my house to get my computer and take a look at my locally stored email, if I hadn’t already deleted it. Today, all my email is on Google’s servers, just like that of more than a billion other people from all over the world. The public content I created used to be housed on a server in my closet. If someone thought I was saying something illegal, they would have likewise most likely have had to come to me in order to get it removed from the Internet. While it is true that, in some situations, some other avenues existed to get my information or remove my content, they were not very broadly available or used. By contrast, now, most of my online content is served from large U.S. corporations, like Google and Github. If they decide my content shouldn’t be online, they can remove it and force me to go look for another publisher. In some cases the online service providers are so important that no suitable replacement would exist.&lt;br /&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEjpLna2bhKhKW_Uql_rC-i4BNL2JBvAeg4a8psbqSO91_jF9uwYvJ4jHOWGrD_o5xNfuWOy8coRCuAH2hiMNAi8jMCx4QtIt34DhzjxriNsbX1iUNoXdy0iX25mHkimixaoAUXaLrBKzW/s1600/6950499078_5a93c15379_o.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1280&quot; data-original-width=&quot;1600&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEjpLna2bhKhKW_Uql_rC-i4BNL2JBvAeg4a8psbqSO91_jF9uwYvJ4jHOWGrD_o5xNfuWOy8coRCuAH2hiMNAi8jMCx4QtIt34DhzjxriNsbX1iUNoXdy0iX25mHkimixaoAUXaLrBKzW/s320/6950499078_5a93c15379_o.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;font-size: 12.8px;&quot;&gt;Tarantula Nebula (NASA, Chandra, Hubble,&amp;nbsp;Spitzer,&lt;br /&gt;
04/17/12)&amp;nbsp;from&amp;nbsp;&lt;a href=&quot;https://www.flickr.com/photos/nasamarshall/6950499078/&quot;&gt;NASA Marshall Space Flight Center&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-weight: 700; white-space: pre;&quot;&gt;Towards a coherent, if abhorrent, Internet jurisdiction policy&lt;/span&gt;&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
The &lt;a href=&quot;https://conference.internetjurisdiction.net/&quot;&gt;Internet &amp;amp; Jurisdiction Conference&lt;/a&gt; (I&amp;amp;J for short) focuses on three broad tracks: data, requests for private user data; content, requests to render content inaccessible; and the internet domain name system. I’m most interested in the first two and these comments are mostly meant for them. &lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
I&amp;amp;J had a wide variety of participants and many more government and law enforcement types than I generally find at the Internet policy conferences. The conversation was therefore more oriented towards those stakeholders than at some other conferences, and it was quite similar in tone to the types of conversations happening in &lt;a href=&quot;https://www.congress.gov/bill/115th-congress/house-bill/1865&quot;&gt;governments&lt;/a&gt; and &lt;a href=&quot;https://scc-csc.lexum.com/scc-csc/scc-csc/en/item/16701/index.do&quot;&gt;courts&lt;/a&gt; all over the world right now. &lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
In both the data request and content removal areas, these conversations are moving towards a coherent, if abhorrent, policy of allowing governments almost everywhere to get data about any internet user or remove any content without needing to engage the users themselves or the court systems of their jurisdictions. Most discussions exclude certain governments from the club that should have this type of power, but the idea that data should be able to be given over and content should be able to be suppressed through interactions between governments and repeat-player intermediaries was so ingrained in many of the discussions as to be an assumption. &lt;a href=&quot;https://www.nytimes.com/2018/02/16/opinion/sunday/tyranny-convenience.html&quot;&gt;Convenience&lt;/a&gt; and speed are touted as principal advantages. &lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
For example, a Facebook user in Mexico &lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;should &lt;/span&gt;have their data given to authorities in the England on a request to Facebook. A Canadian Microsoft user &lt;span style=&quot;background-color: transparent; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;should&lt;/span&gt; have their post suppressed, at least in Thailand if not all over the world, via a request to Microsoft. Even if the user is known to the complainant, no direct approach to them is contemplated. At some companies under some circumstances the user might get a notice, but that is left to the companies and to the circumstance. This is not just “&lt;a href=&quot;https://en.wikipedia.org/wiki/All_your_base_are_belong_to_us&quot;&gt;All your base are belong to us&lt;/a&gt;” but “All your base aren’t ever belonged to you in the first place.”&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGZ6zRP8wbgUT5RXc4ZFC0wLCAY_Bc8wUbJttiVOLDGyq9Ol8PWIyugXnyoPNY6_EIgGkc9mEQvYlp2FNgk47fU78EkoPpPVsddjZHenSYEURjzsIfB6wlfqa3hMpKeobg2rXr-dManjd8/s1600/7004963602_744b4a5c87_o.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1600&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGZ6zRP8wbgUT5RXc4ZFC0wLCAY_Bc8wUbJttiVOLDGyq9Ol8PWIyugXnyoPNY6_EIgGkc9mEQvYlp2FNgk47fU78EkoPpPVsddjZHenSYEURjzsIfB6wlfqa3hMpKeobg2rXr-dManjd8/s320/7004963602_744b4a5c87_o.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 12.8px;&quot;&gt;Black Hole Caught in a Stellar Homicide (NASA, Chandra, &lt;br /&gt;GALEX, 05/03/12)&lt;/span&gt;&amp;nbsp;from&amp;nbsp;&lt;a href=&quot;https://www.flickr.com/photos/nasamarshall/7004963602/&quot;&gt;NASA Marshall Space Flight Center&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-weight: 700; vertical-align: baseline; white-space: pre;&quot;&gt;A challenge: Center Internet policy on &lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-weight: 700; vertical-align: baseline; white-space: pre;&quot;&gt;users&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 11pt; font-weight: 700; vertical-align: baseline; white-space: pre;&quot;&gt; citizens&lt;/span&gt;&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
If I were able to come again this year, I would. Indeed, my favorite conferences are those at which a majority of the attendees are smart, passionate advocates with direct experience with the subject matter and with whom I disagree (see e.g. the excellent &lt;a href=&quot;http://fordhamipinstitute.com/&quot;&gt;Fordham Intellectual Property Institute&lt;/a&gt;). If I was there, I would challenge the attendees to propose a way forward that centers on the user rather than removing them from the equation. It is more convenient to just go to the big corporate repeat players. They are well known to the governments and can be counted on to pick up the phone. However, an Internet jurisdiction policy that regularly circumvents the user will encourage countermeasures to return power to the user -- the emerging prevalence of end-to-end encrypted services is one good example of this trend. More importantly, those users are our countries’ citizens, they deserve our respect and, at least, to be able to face their accusers and challenge the accusations. There may be cases where expediency trumps all, but this is the tiny minority of cases, not the norm on which policy should be based.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe allow=&quot;autoplay; encrypted-media&quot; allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/tBR6qUGH1SU?start=1323&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;

&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;The YouTube clip above is of me trying to make a similar point at the end of last year&#39;s I&amp;amp;J.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
PS If you want to read more about the current intermediary liability battles, please follow &lt;a href=&quot;https://twitter.com/daphnehk&quot;&gt;Daphne Keller&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/ericgoldman&quot;&gt;Eric Goldman&lt;/a&gt; and take a look at their excellent sets of resources on the topic at &lt;a href=&quot;http://cyberlaw.stanford.edu/focus-areas/intermediary-liability&quot;&gt;Stanford&lt;/a&gt; and on Eric’s &lt;a href=&quot;https://blog.ericgoldman.org/&quot;&gt;blog&lt;/a&gt;. &lt;a href=&quot;https://twitter.com/cyberleagle&quot;&gt;Graham Smith&lt;/a&gt; also wrote a &lt;a href=&quot;http://www.cyberleagle.com/2018/02/peaceful-coexistence-jurisdiction-and.html&quot;&gt;couple&lt;/a&gt; of&amp;nbsp;&lt;a href=&quot;http://www.cyberleagle.com/2017/08/21-years-of-cross-border-liability-on.html&quot;&gt;posts&lt;/a&gt;&amp;nbsp;in the run-up to this year’s I&amp;amp;J.&lt;br /&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxlAlO8itIxWsweY9addu5W2-u-zK-vxKwu3nWUCuUHrlJjfBs9v6uYvBpLtrj6fURePjvu6R-unmQPOuPmO-sicYw1iLg9Z9HhGYpbupKpj3OzpC5GxP4LfZb0UOZWOpwNEouw0kC-v-W/s1600/8165115083_6d4390c226_o.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1600&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxlAlO8itIxWsweY9addu5W2-u-zK-vxKwu3nWUCuUHrlJjfBs9v6uYvBpLtrj6fURePjvu6R-unmQPOuPmO-sicYw1iLg9Z9HhGYpbupKpj3OzpC5GxP4LfZb0UOZWOpwNEouw0kC-v-W/s320/8165115083_6d4390c226_o.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;font-size: 12.8px;&quot;&gt;Star Cluster Cygnus OB2 (NASA,&amp;nbsp;Chandra,&lt;br /&gt;
11/07/12)&amp;nbsp;from&amp;nbsp;&lt;a href=&quot;https://www.flickr.com/photos/nasamarshall/8165115083/&quot;&gt;NASA Marshall Space Flight Center&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/8679916455676697434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/8679916455676697434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/8679916455676697434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/8679916455676697434'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2018/02/internet-jurisdiction.html' title='Internet &amp;amp; Jurisdiction'/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEKoHlw4QK-dM23sEQfBzEtD251Q8VqcVh5JInf_tZxOeFbkTk2pDHrGOFrIQ6RqO7vh_aDcHSTEDnK9ATQv_RNKFGcBdTf3Vo4CLaQQG11LHX7rlA32mkBn7iP5c9vvpfiHqIzu3nPfp0/s72-c/9508405067_68b1647abe_o.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1972227005391162265.post-8064116891573299697</id><published>2018-02-02T01:58:00.000-08:00</published><updated>2018-02-02T01:58:32.068-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="code"/><category scheme="http://www.blogger.com/atom/ns#" term="pd images"/><title type='text'>Screens, Images, and Attention (a thing I&#39;m working on) </title><content type='html'>Many of us have more than a few screens. Mostly they lay idle. A tablet for plane trips, an old phone, a Chromecast connected LCD TV.&lt;br /&gt;
&lt;br /&gt;
I also have a bunch of images I want to see more of. More than 100,000 personal digital photos. And, &lt;a href=&quot;http://www.britishmuseum.org/research/collection_online/about_the_database/images_on_the_database.aspx&quot;&gt;lots&lt;/a&gt; &lt;a href=&quot;https://www.metmuseum.org/art/collection&quot;&gt;more&lt;/a&gt; &lt;a href=&quot;https://commons.wikimedia.org/wiki/Commons:Featured_pictures/chronological&quot;&gt;incredible&lt;/a&gt; &lt;a href=&quot;https://www.flickr.com/photos/obamawhitehouse/&quot;&gt;images&lt;/a&gt; &lt;a href=&quot;https://www.flickr.com/photos/internetarchivebookimages/&quot;&gt;out&lt;/a&gt; in the &lt;a href=&quot;https://archive.org/details/nasa?and[]=mediatype%3A%22image%22&quot;&gt;world&lt;/a&gt;. Millions.&lt;br /&gt;
&lt;br /&gt;
One of the things I loved about the Obama White House was that Pete Souza and his team&#39;s wonderful photos were everywhere and changed relatively frequently. Walking to a meeting you&#39;d see a picture of a co-worker and her kids hugging the President. In a meeting room there would be a beautiful photo of Half Dome in Yosemite and Marine One. It was great.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://farm4.staticflickr.com/3846/15399462301_7fc15d95d6_o_d.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;533&quot; data-original-width=&quot;800&quot; height=&quot;213&quot; src=&quot;https://farm4.staticflickr.com/3846/15399462301_7fc15d95d6_o_d.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;President Barack Obama visits with Natalie Quillian, &lt;br /&gt;
Advisor to the Chief of Staff, and family in the Oval Office,&lt;br /&gt;
&amp;nbsp;Aug. 27, 2014. (&lt;a href=&quot;https://www.flickr.com/photos/obamawhitehouse/15399462301&quot;&gt;Official White House Photo&lt;/a&gt; by Pete Souza).&lt;br /&gt;
Public Domain.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
I&#39;m working on using idle screens to bring more of that into my home with my images and those from incredible online collections. The idea would be that the screens could show a playlist (automatically generated or hand-curated) of images from a wide variety of sources and on a wide variety of devices / screens. Incidentally, I haven&#39;t been able to find the equivalent of .m3u for images. I don&#39;t think it exists. It would be wonderful if people could trade image playlists.&lt;br /&gt;
&lt;br /&gt;
Automatically generated playlists could show images relevant to the day of the year, or types of images, or ones that will look good on that particular screen, or ones I might like based on what I&#39;ve liked before. An earlier version of this was surprisingly good if it just showed images from Christmas, New Year&#39;s and Thanksgiving.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://upload.wikimedia.org/wikipedia/commons/e/e3/Magnificent_CME_Erupts_on_the_Sun_-_August_31.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;800&quot; height=&quot;180&quot; src=&quot;https://upload.wikimedia.org/wikipedia/commons/e/e3/Magnificent_CME_Erupts_on_the_Sun_-_August_31.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Solar Flare, August 31, 2012, Nasa Goddard Space Flight &lt;br /&gt;
Center. &lt;a href=&quot;https://en.wikipedia.org/wiki/File:Magnificent_CME_Erupts_on_the_Sun_-_August_31.jpg&quot;&gt;Hosted&lt;/a&gt; by Wikipedia. Public Domain.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
I don&#39;t know of a thing out there that does this across image collections. Do you?&lt;br /&gt;
&lt;br /&gt;
I mostly program to learn things. This project will help me really learn the techniques I&#39;ve been studying through the Andrew Ng&#39;s &lt;a href=&quot;https://www.coursera.org/learn/machine-learning&quot;&gt;Coursera on Machine Learning&lt;/a&gt;. It will also brush up some of my full-stack web development skills as the database will be Mysql, the backend will be Python 3 and Django 2, the frontend will be HTML and CSS with a lot of Javascript (including ajax, which I haven&#39;t used too much). And, I&#39;ll get to know both JQuery and &lt;a href=&quot;http://jquery.malsup.com/cycle2/&quot;&gt;Cycle 2&lt;/a&gt; well. It has been fun so far and I will share updates as I go, and, eventually, the code.&lt;br /&gt;
&lt;br /&gt;
I&#39;m not doing this as an &quot;entrepreneur.&quot; The idea isn&#39;t to make a bunch of money or get a million users. Mostly I&#39;m doing this for myself and to learn. I have found that deeply understanding technology is really helpful to my legal and policy work (not to mention my life). I also really enjoy coding for fun. If you haven&#39;t tried that, you should!&lt;br /&gt;
&lt;br /&gt;
I&#39;m writing about it here to further commit to finishing it and so that others can share their good ideas.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://ia800501.us.archive.org/3/items/mma_153rd_new_york_infantry_268038/268038.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;519&quot; data-original-width=&quot;800&quot; height=&quot;207&quot; src=&quot;https://ia800501.us.archive.org/3/items/mma_153rd_new_york_infantry_268038/268038.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;153rd New York Infantry, ca. 1861, from Metropolitan Museum &lt;br /&gt;
of Art. &lt;a href=&quot;https://archive.org/details/mma_153rd_new_york_infantry_268038&quot;&gt;Hosted&lt;/a&gt; by the Internet Archive. Public Domain.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
If you are interested in using or working on this, please let me know. I&#39;d be interested in understanding other use cases. I would also love pointers to great image repositories (preferably public domain). And eventually, I&#39;d like people to help me rate the pics from some of the public repositories. My email is &quot;lawyer&quot; @ the popular email service run by Google. Or you can&amp;nbsp;@reply me on twitter&amp;nbsp;&lt;a href=&quot;https://twitter.com/amac&quot;&gt;@amac&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://www.bricoleur.org/feeds/8064116891573299697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1972227005391162265/8064116891573299697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/8064116891573299697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1972227005391162265/posts/default/8064116891573299697'/><link rel='alternate' type='text/html' href='http://www.bricoleur.org/2018/02/screens-images-and-attention.html' title='Screens, Images, and Attention (a thing I&#39;m working on) '/><author><name>A M</name><uri>http://www.blogger.com/profile/00446743082690666845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>