CINXE.COM

Manton Reece

<!DOCTYPE html> <html lang="en"> <head> <meta name="generator" content="Hugo 0.91.2" /> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta content="Manton Reece" name="author"> <title>Manton Reece</title> <link href="/assets/css/style.css?1744220253" rel="stylesheet"> <link href="/assets/css/highlight.css?1744220253" rel="stylesheet"> <link href="/assets/css/alpine.css?1744220253" rel="stylesheet"> <style> .site-title { display: inline-block; font-size: 14px; font-weight: 500; line-height: 1.35; padding-left: 5px; margin-top: 0px; margin-bottom: 5px; padding-top: 5px; padding-bottom: 10px; } nav.main-nav a.cta { background: #ffffff; color: #f29c38; padding: 6px 14px; border: 2px solid #f29c38; border-radius: 20px; white-space: nowrap; box-shadow: none; } nav.main-nav a.cta:hover { background: #fffee4; color: #f29c38; margin-left: 12px; } </style> <link rel="alternate" href="https://www.manton.org/feed.xml" type="application/rss+xml" title="Manton Reece"> <link rel="alternate" href="https://www.manton.org/feed.json" type="application/json" title="Manton Reece"> <link rel="alternate" href="https://www.manton.org/podcast.xml" type="application/rss+xml" title="Podcast"> <link rel="alternate" href="https://www.manton.org/podcast.json" type="application/json" title="Podcast"> <link rel="me" href="https://micro.blog/manton"> <link rel="me" href="https://twitter.com/mantonsblog"> <link rel="me" href="https://github.com/manton"> <link rel="shortcut icon" href="https://micro.blog/manton/favicon.png" type="image/x-icon"> <link rel="EditURI" type="application/rsd+xml" href="https://www.manton.org/rsd.xml"> <link rel="authorization_endpoint" href="https://micro.blog/indieauth/auth"> <link rel="token_endpoint" href="https://micro.blog/indieauth/token"> <link rel="subscribe" href="https://micro.blog/users/follow"> <link rel="webmention" href="https://micro.blog/webmention"> <link rel="micropub" href="https://micro.blog/micropub"> <link rel="microsub" href="https://micro.blog/microsub"> <link rel="stylesheet" href="/custom.css?1744220253"> <link rel="stylesheet" href="/css/bookgoals.css?1744221671"> <link rel="stylesheet" href="/css/all.min.css?1744221671"> <link rel="stylesheet" href="/dark.css?1744221671"> <link rel="stylesheet" href="/css/collections.css?1744221671"> <link rel="license" href="https://creativecommons.org/licenses/by/4.0/"> <link rel="stylesheet" href="/css/barefoot.min.css"> <script src="/js/barefoot.min.js"></script> <script> document.addEventListener("DOMContentLoaded", (event) => { var barefoot = new BareFoot(); barefoot.init(); }); </script> <!-- <meta property="og:image" content="https://www.manton.org/uploads/2024/open-graph-placeholder.png"> --> <link rel="blogroll" type="text/xml" href="/.well-known/recommendations.opml"> <script> document.addEventListener('DOMContentLoaded', () => { const images = document.querySelectorAll('.microblog_collection img'); let currentImageIndex = 0; let isMultiLightbox = false; function createLightbox() { const lightbox = document.createElement('div'); lightbox.id = 'microblog_lightbox'; const closeBtn = document.createElement('button'); closeBtn.id = 'microblog_lightbox_close_btn'; closeBtn.innerHTML = '&times;'; const prevBtn = document.createElement('button'); prevBtn.id = 'microblog_lightbox_prev_btn'; prevBtn.className = 'microblog_lightbox_nav'; prevBtn.innerHTML = '&larr;'; const nextBtn = document.createElement('button'); nextBtn.id = 'microblog_lightbox_next_btn'; nextBtn.className = 'microblog_lightbox_nav'; nextBtn.innerHTML = '&rarr;'; const lightboxImg = document.createElement('img'); lightboxImg.id = 'microblog_lightbox_img'; lightboxImg.alt = 'Lightbox Image'; lightbox.appendChild(closeBtn); lightbox.appendChild(prevBtn); lightbox.appendChild(lightboxImg); lightbox.appendChild(nextBtn); document.body.appendChild(lightbox); return { lightbox, closeBtn, prevBtn, nextBtn, lightboxImg }; } const { lightbox, closeBtn, prevBtn, nextBtn, lightboxImg } = createLightbox(); function openMultiLightbox(index) { isMultiLightbox = true; currentImageIndex = index; lightboxImg.src = images[index].getAttribute('data-microblog-lightbox'); lightbox.style.display = 'flex'; prevBtn.style.display = 'block'; nextBtn.style.display = 'block'; } function openSingleLightbox(url) { isMultiLightbox = false; lightboxImg.src = url; lightbox.style.display = 'flex'; prevBtn.style.display = 'none'; nextBtn.style.display = 'none'; } function closeLightbox() { lightbox.style.display = 'none'; } function navigatePrevious() { currentImageIndex = (currentImageIndex - 1 + images.length) % images.length; lightboxImg.src = images[currentImageIndex].getAttribute('data-microblog-lightbox'); } function navigateNext() { currentImageIndex = (currentImageIndex + 1) % images.length; lightboxImg.src = images[currentImageIndex].getAttribute('data-microblog-lightbox'); } images.forEach((img, index) => { img.addEventListener('click', () => openMultiLightbox(index)); }); closeBtn.addEventListener('click', closeLightbox); prevBtn.addEventListener('click', navigatePrevious); nextBtn.addEventListener('click', navigateNext); document.addEventListener('keydown', (e) => { if (lightbox.style.display === 'flex') { switch (e.key) { case 'ArrowLeft': if (isMultiLightbox) { navigatePrevious(); } break; case 'ArrowRight': if (isMultiLightbox) { navigateNext(); } break; case 'Escape': closeLightbox(); break; } } }); lightbox.addEventListener('click', (e) => { if (e.target === lightbox) { closeLightbox(); } }); const single_images = document.querySelectorAll(".e-content img, .p-summary img"); single_images.forEach(function(image) { if (image.closest(".microblog_collection")) { return; } if (!image.closest("a")) { const hasClickHandler = image.onclick || image.hasAttribute("onclick"); const hasTouchHandler = image.ontouchstart || image.hasAttribute("ontouchstart"); if (!hasClickHandler && !hasTouchHandler) { image.addEventListener("click", function() { openSingleLightbox(image.src); }); } } }); }); </script> </head> <body> <nav class="main-nav"> <div class="site-title"> <img src="https://avatars.micro.blog/avatars/2024/02/3.jpg" width="25" height="25" class="site-image"> <a href="/">Manton Reece</a> </div> <div class="site-menus"> <a href="/about/">About</a> <a href="/photos/">Photos</a> <a href="/archive/">Archive</a> <a href="/30-days/">30 days</a> <a href="/88-parks/">88 parks</a> <a href="/replies/">Replies</a> <a href="/reading/">Reading</a> <a href="/search/">Search</a> <a class="cta" href="https://micro.blog/manton" rel="me">Also on Micro.blog</a> </div> </nav> <section id="wrapper"> <style> #wrapper { max-width: 1000px; } .home_columns { display: flex; flex-wrap: wrap; } .home_posts { flex: 1; padding-left: 20px; padding-right: 80px; box-sizing: border-box; } .home_blogroll { padding-left: 20px; padding-right: 20px; box-sizing: border-box; width: 30%; font-size: 15px; } .home_blogroll ul { padding-top: 14px; } .home_blogroll ul li { list-style-type: none; padding-bottom: 4px; } .home_blogroll a { text-decoration: none; color: black; } .home_blogroll a span { color: gray; } @media screen and (max-width: 600px) { .home_blogroll { display: none; } .home_posts { padding-right: 20px; } } </style> <div class="home_columns"> <ul id="post-list" class="h-feed home_posts"> <li> <article class="h-entry"> <div class="e-content"><p><a href="https://ma.tt/2025/04/ai-site-builder/">Matt Mullenweg</a> blogs about the new AI-powered WordPress design builder:</p> <blockquote> <p>The long-anticipated <a href="https://wordpress.com/ai-website-builder/?ref=blog">“Big Sky” AI site builder on WordPress.com went live today</a>. It combines several models and can create logos, site designs, typography, color schemes, and content. It’s an entirely new way to interact with and edit a brand-new or existing WordPress site.</p> </blockquote> <p>I went through their interface to get a sense of what they&rsquo;re doing. The AI will create a basic design, then you can tweak the layout, colors, and fonts by clicking around. To actually make the blog live, you have to upgrade to a paid plan.</p> </div> <a href="https://www.manton.org/2025/04/09/matt-mullenweg-blogs-about-the.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-09 12:24:53 -0500" class="dt-published">→ 12:24 PM, Apr 9</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lmfj3jvzl62f" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <section class="post-body"> <header> <h2><a href="https://www.manton.org/2025/04/09/ai-crawling-reprise.html" class="p-name">AI crawling reprise</a></h2> </header> <section class="post-body e-content"> <p>Jeremy Keith <a href="https://adactio.com/journal/21831">has a good collection of links and quotes</a> about AI crawling. On this specific part of the commentary I continue to disagree, though:</p> <blockquote> <p>If you’re using the products powered by these attacks, you’re part of the problem. Don’t pretend it’s cute to ask ChatGPT for something. Don’t pretend it’s somehow being technologically open-minded to continuously search for nails to hit with the latest “AI” hammers.</p> </blockquote> <p>I don&rsquo;t think we should paint all AI tools with the same brush. Some tools might be well-behaved crawlers and some might not be. Note that this is a separate question from the legality of AI training. The context is mostly Wikipedia which is not under copyright.</p> <p><a href="https://simonwillison.net/2025/Apr/7/crawlers/#atom-everything">Simon Willison adds</a> about the Wikipedia data:</p> <blockquote> <p>There&rsquo;s really no excuse for <a href="https://diff.wikimedia.org/2025/04/01/how-crawlers-impact-the-operations-of-the-wikimedia-projects/">crawling Wikipedia</a> (&ldquo;65% of our most expensive traffic comes from bots&rdquo;) when they offer a comprehensive collection <a href="https://dumps.wikimedia.org/">of bulk download options</a>.</p> </blockquote> <p>Ben Werdmuller <a href="https://werd.io/2025/denial">also sees these as bad actors</a>:</p> <blockquote> <p>Here the issue is vendors being bad actors: creating an enormous amount of traffic for resource-strapped services without any of the benefits they might see from a real user&rsquo;s financial support.</p> </blockquote> <p>The argument I&rsquo;m hearing from some folks is that because they consider AI to be bad, everything it touches must also be bad. All crawling, whether it respects robots.txt or not. All tools, because using them contributes to the success of LLMs.</p> <p>I&rsquo;d like to have more concrete answers, such as: do ChatGPT and Claude respect robots.txt or not? I assume they do, because they document their user agent strings. If they do, it doesn&rsquo;t seem fair to punish ChatGPT because there is some other rogue AI crawler that is misbehaving.</p> <p>AI is powerful and potentially dangerous. Because of this, most users will gravitate toward &ldquo;brands&rdquo; that are respected and accountable. In other words, users will prefer Apple Intelligence, ChatGPT, or Claude, where we know there has been some level of safety work, with only fringe users downloading and running models from other sources.</p> <p>These mainstream AI tools should be contributing back. We know ChatGPT has a deal with Reddit, but they should also be making a recurring donation to Wikipedia. This would further differentiate the well-behaved bots from the ones skirting the edges of fairness.</p> <p>Meta appears to have used their old <em>move fast and break things</em> playbook to training Llama, using pirated books. From <a href="https://www.theatlantic.com/technology/archive/2025/03/libgen-meta-openai/682093/">The Atlantic</a>:</p> <blockquote> <p>Meta employees turned their attention to Library Genesis, or LibGen, one of the largest of the pirated libraries that circulate online. It currently contains more than 7.5 million books and 81 million research papers. Eventually, the team at Meta got <a href="https://storage.courtlistener.com/recap/gov.uscourts.cand.415175/gov.uscourts.cand.415175.391.24.pdf">permission</a> from “MZ”—an apparent reference to Meta CEO Mark Zuckerberg—to download and use the data set.</p> </blockquote> <p>Another thing that&rsquo;s puzzling to me is if AI bots are so abusive, why haven&rsquo;t I felt this in Micro.blog? We host blogs. If bots were destroying the open web, I would expect to notice it on my own servers.</p> <p>If you dislike generative AI on philosophical grounds, or because of specific negative side effects such as energy use, that is totally fine. But then let&rsquo;s stick to those arguments. I&rsquo;m not yet convinced that legitimate AI crawling is going to destroy blogs or even Wikipedia.</p> </section> </section> <a href="https://www.manton.org/2025/04/09/ai-crawling-reprise.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-09 12:00:36 -0500" class="dt-published">→ 12:00 PM, Apr 9</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lmfhplqgo32q" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p>As I hinted at the other day, I&rsquo;m rolling out command-S in more places in Micro.blog. From the news blog today:</p> <blockquote class="quoteback" data-author="Micro.blog News" data-avatar="https://micro.blog/news/avatar.jpg" cite="https://news.micro.blog/2025/04/09/updated-new-posts-editing-and.html"><p>Updated new posts, editing, and notes to support command-S for saving. The convention in Micro.blog on the web will be command-return to save something and close the thing, and command-S to stay where you are if you don’t want to leave the page.</p> <footer>Micro.blog News <cite><a href="https://news.micro.blog/2025/04/09/updated-new-posts-editing-and.html" class="u-in-reply-to">https://news.micro.blog/2025/04/09/updated-new-posts-editing-and.html</a></cite></footer></blockquote><script src="https://cdn.micro.blog/quoteback.js"></script> <p>Vincent&rsquo;s also been working on some shortcut-related stuff that I can&rsquo;t wait to share. It&rsquo;s really nice.</p> </div> <a href="https://www.manton.org/2025/04/09/as-i-hinted-at-the.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-09 11:44:17 -0500" class="dt-published">→ 11:44 AM, Apr 9</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lmfgv5mrco2h" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p>Sigh. Amtrak really needs its own tracks:</p> <blockquote> <p>Train 21 and Train 421 are currently stopped west of Longview (LVW) due to a rail partner&rsquo;s disabled trainset blocking the tracks in the area. Due to an expected lengthy delay, Train 21 and Train 421 will reverse back to Longview (LVW) to await further updates.</p> </blockquote> <p>🚂</p> </div> <a href="https://www.manton.org/2025/04/09/sigh-amtrak-really-needs-its.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-09 10:38:26 -0500" class="dt-published">→ 10:38 AM, Apr 9</time> </aside> </a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p><a href="https://brilliantcrank.com/connection-isnt-just-personal-its-political/">Greg Storey blogging</a> about how much we’ve divided ourselves and what we’ve lost:</p> <blockquote> <p>When we don’t talk to each other, we stop trusting each other. When we stop trusting each other, we stop trusting <em>anything</em> —ballots, elections, basic facts. And when we lose trust, democracy doesn’t just wobble. It collapses.</p> </blockquote> </div> <a href="https://www.manton.org/2025/04/08/greg-storey-blogging-about-how.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-08 22:22:06 -0500" class="dt-published">→ 10:22 PM, Apr 8</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lmdzxxuubf2i" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p><a href="https://techcrunch.com/2025/04/08/tapestrys-app-can-now-de-dupe-your-social-feeds/">Nice write-up over at TechCrunch</a> of the new Tapestry 1.1:</p> <blockquote> <p>&hellip;one of the larger challenges of multi-feed aggregation apps like Tapestry is that you’re often confronted with duplicates as other users cross-post their updates to multiple services like Mastodon, Bluesky, and Micro.blog. [&hellip;] The latest Tapestry update is now able to automatically filter out these duplicates, even when the posts are not written exactly the same.</p> </blockquote> </div> <a href="https://www.manton.org/2025/04/08/nice-writeup-over-at-techcrunch.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-08 12:40:30 -0500" class="dt-published">→ 12:40 PM, Apr 8</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lmczj5gd6d2i" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p>Seth Godin on <a href="https://seths.blog/2025/04/this-is-number-10000/">his 10,000th blog post</a>:</p> <blockquote> <p>I’d write this blog even if no one read it, but that the fact that you do, that you subscribe to it and share it, that’s my fuel.</p> </blockquote> </div> <a href="https://www.manton.org/2025/04/08/seth-godin-on-his-th.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-08 10:26:24 -0500" class="dt-published">→ 10:26 AM, Apr 8</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lmcrypo4ro2i" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <section class="post-body"> <header> <h2><a href="https://www.manton.org/2025/04/07/david-brooks-in-the-atlantic.html" class="p-name">We should have seen it</a></h2> </header> <section class="post-body e-content"> <p><a href="https://www.theatlantic.com/magazine/archive/2025/05/trumpism-maga-populism-power-pursuit/682116/">David Brooks in The Atlantic</a> starts by echoing what <a href="https://www.manton.org/2025/03/01/we-can-all-see-it.html">I quoted</a> of his last month, then moves on to history lesson and how we eventually rebuild after Trump. A long, good read:</p> <blockquote> <p>Humility, prudence, and honesty are not just nice virtues to have—they are practical tools that produce good outcomes. When you replace them with greed, lust, hypocrisy, and dishonesty, terrible things happen.</p> </blockquote> <p>And:</p> <blockquote> <p>When the time comes to build a new paradigm, progressives talk about economic redistribution; conservatives talk about cultural and civic repair. History shows that you need both: Recovery from national crisis demands comprehensive reinvention at all levels of society.</p> </blockquote> </section> </section> <a href="https://www.manton.org/2025/04/07/david-brooks-in-the-atlantic.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-07 23:37:29 -0500" class="dt-published">→ 11:37 PM, Apr 7</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lmbnqq26mk26" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p>Watched the first season of The Rehearsal and it blew my mind a little. Hilarious and insane. 📺</p> </div> <a href="https://www.manton.org/2025/04/07/watched-the-first-season-of.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-07 21:05:14 -0500" class="dt-published">→ 9:05 PM, Apr 7</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lmbfcdhxbf24" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p>Great story about Bluesky and Jay Graber <a href="https://www.newyorker.com/magazine/2025/04/14/blueskys-quest-to-build-nontoxic-social-media">in The New Yorker</a>. I love this bit:</p> <blockquote> <p>Then, in December, 2019, she saw a tweet thread from Jack Dorsey about a decentralized social-media project he was launching—Bluesky. Graber told me that she felt a degree of so-called nominative determinism, pulled toward the project because it shared her name. “If fate doesn’t exist, then we must create it,” she said.</p> </blockquote> </div> <a href="https://www.manton.org/2025/04/07/great-story-about-bluesky-and.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-07 16:53:49 -0500" class="dt-published">→ 4:53 PM, Apr 7</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lmaxev7dwy2i" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p>I don’t delete my blog posts… even when it would be easier for me if I did. For longer posts I might add a note at the end to correct something, but most of the time I let it stand, or hope that replies on the post are enough clarification. The blog as a whole is the work.</p> </div> <a href="https://www.manton.org/2025/04/07/i-dont-delete-my-blog.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-07 14:12:54 -0500" class="dt-published">→ 2:12 PM, Apr 7</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lmaocmri4x26" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p>Of all the harm I was expecting from Trump&rsquo;s second term, I did not expect a market crash this soon. We basically put everything we had into the house down payment when we moved this year. I&rsquo;m sure there are people who had savings and investments ready for a similar move who are now facing disaster.</p> </div> <a href="https://www.manton.org/2025/04/07/of-all-the-harm-i.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-07 12:22:56 -0500" class="dt-published">→ 12:22 PM, Apr 7</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lmai3lss4h2h" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <section class="post-body"> <header> <h2><a href="https://www.manton.org/2025/04/07/ai-at-shopify.html" class="p-name">AI at Shopify</a></h2> </header> <section class="post-body e-content"> <p>Tobias Lütke, in a memo to employees at Shopify, <a href="https://x.com/tobi/status/1909231499448401946/photo/3">re-posted on Twitter / X</a>:</p> <blockquote> <p><strong>Using Al effectively is now a fundamental expectation of everyone at Shopify.</strong> It&rsquo;s a tool of all trades today, and will only grow in importance. Frankly, I don&rsquo;t think it&rsquo;s feasible to opt out of learning the skill of applying Al in your craft; you are welcome to try, but I want to be honest I cannot see this working out today, and definitely not tomorrow.</p> </blockquote> <p><a href="https://www.manton.org/2025/04/04/vibe-coding-on-the-th.html">I just blogged a few days ago</a> that I think generative AI gives programmers an advantage, but I wouldn&rsquo;t mandate it, just like I wouldn&rsquo;t mandate auto-complete or Stack Overflow. Programmers can be productive and happy in a variety of ways. Requiring AI (or <em>forbidding</em> it) strikes me as extremist for little benefit.</p> <p>Marco Arment <a href="https://mastodon.social/@marcoarment/114293734222953966">posted to Mastodon yesterday</a> that he doesn&rsquo;t use AI in Overcast beyond Xcode&rsquo;s smarter auto-complete.</p> <blockquote> <p>Maybe that&rsquo;ll change in the future, but I see myself only ever using autocomplete-style speedups, not &ldquo;write it for me”. I usually won&rsquo;t even use code that other humans write!</p> </blockquote> <p>Hard to argue with the results. Overcast is one of my favorite apps.</p> <p>Also I know from my own experience that some programmers love the craft more than others. AI is a major disruption to the craft, so everyone will have different opinions on when it should be integrated into the process. It <em>is</em> an advancement, but how it&rsquo;s used matters too.</p> </section> </section> <a href="https://www.manton.org/2025/04/07/ai-at-shopify.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-07 11:58:51 -0500" class="dt-published">→ 11:58 AM, Apr 7</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lmagpkvg5z2z" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p>The <a href="https://letterboxd.com/film/a-minecraft-movie/">Minecraft movie</a> was a lot of fun. 🍿</p> </div> <a href="https://www.manton.org/2025/04/06/the-minecraft-movie-was-a.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-06 18:25:50 -0500" class="dt-published">→ 6:25 PM, Apr 6</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lm6lv246ia2h" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p><a href="https://www.cnn.com/2025/04/05/us/joe-harris-triple-nickle-black-paratroopers/index.html">Amazing story on CNN</a> around veteran Joe Harris, who died at age 108, serving in World War II in an elite force of Black paratroopers:</p> <blockquote> <p>As the US Army was training the Triple Nickles to disarm bombs, the men were also being taught by the US Forest Service to become the first military smokejumpers.</p> </blockquote> <p>More history <a href="https://www.thenmusa.org/articles/triple-nickles/">at the National Museum of the US Army</a>.</p> </div> <a href="https://www.manton.org/2025/04/06/amazing-story-on-cnn-around.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-06 08:53:21 -0500" class="dt-published">→ 8:53 AM, Apr 6</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lm5lvawujz2o" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p>19 miles out from Lampasas.</p> <img src="https://cdn.uploads.micro.blog/10/2025/093711a8af.jpg" width="600" height="600" alt=""> </div> <a href="https://www.manton.org/2025/04/05/miles-out-from-lampasas.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-05 21:37:09 -0500" class="dt-published">→ 9:37 PM, Apr 5</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lm4g3u3jf72f" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p><a href="https://seths.blog/2025/04/we-are-all-goofballs/">In today&rsquo;s post</a>, Seth Godin captures something that I&rsquo;ve been thinking about but have had trouble communicating well:</p> <blockquote> <p>When someone makes an obvious mistake, it’s tempting to label them with a term that’s dismissive or even hurtful. A label is permanent, a noun, a way to sort and divide.</p> </blockquote> <p>Labels have a dehumanizing effect.</p> </div> <a href="https://www.manton.org/2025/04/05/in-todays-post-seth-godin.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-05 16:47:43 -0500" class="dt-published">→ 4:47 PM, Apr 5</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lm3vvlwzrr2z" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p>Rolled out some Micro.blog improvements to uploads on the web today. For example, if AI is enabled there are auto-generated accessibility descriptions for photos, and now you can edit the description without first needing to use it in a post. Plus some more UI tweaks for uploads.</p> <img src="https://cdn.uploads.micro.blog/10/2025/71b0ad5769.png" alt="Screenshot showing edit alt text field."> </div> <a href="https://www.manton.org/2025/04/05/rolled-out-some-microblog-improvements.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-05 15:02:56 -0500" class="dt-published">→ 3:02 PM, Apr 5</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lm3qbn6uwc2o" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p>My son has had the worst luck with his car. A few weeks ago, broke down driving back from Arizona… <em>after</em> having it checked out at a mechanic. New radiator and other work in New Mexico. Now today, a similar problem out in the Texas hill country.</p> </div> <a href="https://www.manton.org/2025/04/05/my-son-has-had-the.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-05 14:44:18 -0500" class="dt-published">→ 2:44 PM, Apr 5</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lm3oym63us2u" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p>All the broken pecan shells are in one spot under the tree. Must be some happy squirrels living here.</p> <img src="https://cdn.uploads.micro.blog/10/2025/77dbf7ff67.jpg" width="600" height="600" alt="A tree trunk surrounded by dark soil covered with scattered pecan shells and some leaves."> </div> <a href="https://www.manton.org/2025/04/05/all-the-broken-pecan-shells.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-05 13:30:55 -0500" class="dt-published">→ 1:30 PM, Apr 5</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3lm3kvyky6x2g" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p>Went looking for an old tweet and then got lost in the archive. I have all my tweets (mostly 2006-2012) <a href="https://www.manton.org/tweets/">on my blog</a> and it’s like a snapshot of a different life. Still me, but so many things change.</p> </div> <a href="https://www.manton.org/2025/04/04/went-looking-for-an-old.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-04 19:24:28 -0500" class="dt-published">→ 7:24 PM, Apr 4</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3llzo74infz2z" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <section class="post-body"> <header> <h2><a href="https://www.manton.org/2025/04/04/vibe-coding-on-the-th.html" class="p-name">Vibe coding on the 20th floor</a></h2> </header> <section class="post-body e-content"> <p><a href="https://atp.fm/633">This week&rsquo;s ATP</a> has a members-only special segment about vibe coding. One snippet from John Siracusa, encapsulating much of the conversation:</p> <blockquote> <p>As programming tools have gotten better, the demand for programmers has gone up, not down.</p> </blockquote> <p>When Steve Jobs returned to Apple, he gave a demo of NeXTSTEP <a href="https://youtu.be/QhhFQ-3w5tE?si=VLqhmgm7giFP6njs&amp;t=623">at Macworld</a>. I was lucky enough to be in the audience. Steve said that moving from traditional programming frameworks where you had to start with almost nothing, to Objective-C and what would become the Cocoa frameworks, was like starting a building on the 20th floor, with all the foundational pieces built for you.</p> <p><a href="https://youtu.be/QhhFQ-3w5tE?si=VLqhmgm7giFP6njs&t=623 "><img src="https://cdn.uploads.micro.blog/10/2025/macworld-1997.png" alt="Presentation slide with 3 columns, one for Windows, one for Mac, and one for OPENSTEP."></a></p> <p>A small team of only a couple developers could now build complete apps that before would&rsquo;ve required a much larger team. Solo developers were of course already building apps on their own, but Steve was right that Cocoa would greatly increase productivity, opening up the Mac to more developers.</p> <p><a href="https://simonwillison.net/2025/Mar/19/vibe-coding/">Vibe coding</a> is different than a new system framework. With a framework, you mostly trust that it is well-tested and understood by the developers who wrote it. With AI slop, no human has tested the code before you literally just saw it unfold on screen. You have to understand it and tweak it before shipping a real product. Vibe coding instead is purposefully giving in to the machine and just letting code fly without any review.</p> <p>Still, there&rsquo;s a similarity to previous programming advances just because of the productivity gains. With AI, the step forward is more extreme than it has ever been.</p> <p>Vibe coding will mostly prop up small projects and experiments, less likely to replace actual full-time development work. But if you&rsquo;re programming without <em>any</em> assistance from AI, you are at a disadvantage, in the same way that programming in pure C with the Mac toolbox was much slower and error-prone for building a modern Mac app than using Objective-C when the Cocoa frameworks matured.</p> <p>If after considering that productivity difference, a developer on principle wants to avoid AI, I respect that. Everyone should choose the programming language and frameworks that best suit their work. But there’s no sense in pretending that AI won&rsquo;t change development, or that we won&rsquo;t need to adapt along with it.</p> </section> </section> <a href="https://www.manton.org/2025/04/04/vibe-coding-on-the-th.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-04 17:10:10 -0500" class="dt-published">→ 5:10 PM, Apr 4</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3llzgogsoay24" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p><a href="https://daringfireball.net/2025/04/unchanging_prices_vs_nonsensical_tariffs">John Gruber blogging</a> about whether the tariffs will impact Apple:</p> <blockquote> <p>It’s under-remarked upon, but Apple, to a point of almost obstinance, considers pricing part of the brand for its products. They tend not to raise or lower prices with the ebbs and flows of the world economy or even the obvious constraints of simple supply and demand.</p> </blockquote> <p>I appreciate this about Apple. Prices send a message and consistency is part of that. (Also why Micro.blog’s standard subscription has never changed from $5.)</p> </div> <a href="https://www.manton.org/2025/04/04/john-gruber-blogging-about-whether.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-04 14:42:00 -0500" class="dt-published">→ 2:42 PM, Apr 4</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3llz6itzhrz2i" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p>While I&rsquo;m commenting on YouTube videos today, I love that half of Casey Neistat&rsquo;s <a href="https://www.youtube.com/watch?v=AjKGToaFDvA">video about the Switch 2</a> is actually about the New York subway.</p> </div> <a href="https://www.manton.org/2025/04/04/while-im-commenting-on-youtube.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-04 14:23:31 -0500" class="dt-published">→ 2:23 PM, Apr 4</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3llz5e7zdf72w" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> <li> <article class="h-entry"> <div class="e-content"><p>Nice <a href="https://youtu.be/Do6yrtur4AY?si=h6XH5Yv5KMpr43Px">9-minute edit by The Verge</a> of the Copilot event, including a protester interrupting the presentation. I get that AI is divisive but it does actual harm to scream at another human in this way. So much outrage now is funneled into attacks when for many topics it’s not even clear what is <em>right</em>.</p> <p><strong>Update:</strong> I didn&rsquo;t realize that this protest was about the war in Gaza. There&rsquo;s more context in the replies to my post you can view on the web.</p> </div> <a href="https://www.manton.org/2025/04/04/nice-minute-edit-by-the.html" class="u-url"> <aside class="dates"> <time datetime="2025-04-04 14:14:58 -0500" class="dt-published">→ 2:14 PM, Apr 4</time> </aside> </a> <a class="u-syndication" href="at://did:plc:pko7wbcggok753hnvndxh3ni/app.bsky.feed.post/3llz4v5ogde2f" style="display: none;">Also on Bluesky</a> </article> </li> <span class="separator"><span class="divider"></span></span> </ul> <div class="home_blogroll"> <b>Recommendations</b> <p></p> <ul> <li><a href="https://jonhays.me">Jon Hays</a></li> <li><a href="https://vincentritter.com/blog">Vincent Ritter</a></li> <li><a href="https://bitsplitting.org">Daniel Jalkut</a></li> <li><a href="https://daringfireball.net">John Gruber</a></li> <li><a href="https://micro.welltempered.net">Jean MacDonald</a></li> <li><a href="https://social.ayjay.org">Alan Jacobs</a></li> <li><a href="https://inessential.com">Brent Simmons</a></li> <li><a href="https://www.mollywhite.net">Molly White</a></li> <li><a href="https://ohhelloana.blog">Ana Rodrigues</a></li> <li><a href="https://om.co">Om Malik</a></li> <li><a href="https://aows.co/blog">Adrian Vila</a></li> <li><a href="https://mjtsai.com/blog/">Michael Tsai</a></li> <li><a href="http://scripting.com">Dave Winer</a></li> <li><a href="https://rebeccatoh.co">Rebecca Toh</a></li> <li><a href="https://stratechery.com">Ben Thompson</a></li> <li><a href="https://dahlstrand.net">Sven Dahlstrand</a></li> <li><a href="https://austinkleon.com">Austin Kleon</a></li> <li><a href="https://www.zylstra.org/blog/">Ton Zijlstra</a></li> <li><a href="https://pxlnv.com">Nick Heer</a></li> <li><a href="https://world.hey.com/jason">Jason Fried</a></li> </ul> <p>Blogroll as: <a href="/.well-known/recommendations.opml">OPML</a> | <a href="/.well-known/recommendations.json">JSON</a></p> </div> </div> </section> <footer id="footer"> <section id="wrapper"> <ul> <li><a href="/feed.xml">RSS</a></li> <li><a href="/feed.json">JSON Feed</a></li> <li><a href="/surprise-me/">Surprise me!</a></li> <li><a href="/tweets/">Tweets</a></li> </ul> </section> </footer> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10