<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[David Ww]]></title><description><![CDATA[A time-capsule journal from a Dev Dad raising kids and code during the rise of AI.]]></description><link>https://www.davidww.com</link><image><url>https://substackcdn.com/image/fetch/$s_!mDrO!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62b6c113-bf00-4a0d-b7f2-1a10d9ea920a_1024x1024.png</url><title>David Ww</title><link>https://www.davidww.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 28 Apr 2026 13:03:10 GMT</lastBuildDate><atom:link href="https://www.davidww.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[David]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[david578192@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[david578192@substack.com]]></itunes:email><itunes:name><![CDATA[David]]></itunes:name></itunes:owner><itunes:author><![CDATA[David]]></itunes:author><googleplay:owner><![CDATA[david578192@substack.com]]></googleplay:owner><googleplay:email><![CDATA[david578192@substack.com]]></googleplay:email><googleplay:author><![CDATA[David]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[I replaced $4k / month moderation costs with gpt]]></title><description><![CDATA[Log Entry 9: 2025-05-17 KST]]></description><link>https://www.davidww.com/p/i-replaced-4k-month-moderation-costs</link><guid isPermaLink="false">https://www.davidww.com/p/i-replaced-4k-month-moderation-costs</guid><dc:creator><![CDATA[David]]></dc:creator><pubDate>Sat, 17 May 2025 09:35:57 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8a016bbc-7796-426d-a645-bd4accee503d_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong>Update</strong></h2><p>I replaced our 24-hour human moderation team with an AI system that now handles every community report, across over 10,000 hours of live spoken audio per day. We cut moderation costs by $4,000 per month, reduced daily user reports by over half, and brought appeal rates down to one-third of what they were. Its simply faster, more accurate and consistent that a person could ever be.</p><h2><strong>Observation</strong></h2><p>At Hilokal, a social audio language learning app, one bad actor can ruin the experience for dozens of users. And yet, the damage is subtle, hard to trace, easy to ignore. It&#8217;s the same with all social media, really. We used to handle this problem with a human team covering every time zone. They processed about 150 user reports per day, each manually reviewed in our admin dashboard. The KPI was: respond to all reports as they come in within one hour and minimize appeals. </p><p>Now? The same volume is handled in under five minutes, autonomously.</p><p>The shift happened in layers.</p><p>First: we wired a two-minute rolling audio buffer into every public voice channel. Conversations are never recorded, and that two-minute rolling audio is almost always discarded. But, when a user is reported, the system snapshots that 2minute audio window, transcribes it with Whisper, translates it, and packages it with metadata: public chat messages, shared images, profile details of both parties, any uploaded evidence, plus prior infractions and IP-linked accounts.</p><p>Second: GPT-4.1 evaluates the case through a custom decision prompt at low-temp. We tried with o3, OpenAi&#8217;s reasoning model, but GPT-4.1 works better with a 0.2 temperature and it&#8217;s cheaper. </p><p>It&#8217;s not just rules, it&#8217;s reasoning. There&#8217;s a beastly prompt over 2000 words that includes our public facing community guidelines, report processing logic and all meta data as variables. It&#8217;s given few-shot examples with confidence levels from 1 to 100. If the AI decides on an action to the report with a confidence of over 80, then it&#8217;s automatically executed. Server-side logic handles the cascade: messages sent to both reported and reporter, chat/audio/app blocks, and punishment durations ranging from one hour to permanent bans.</p><p>There&#8217;s a second, proactive layer too. We run all public-facing text (like chatroom titles) through a moderation LLM. That filter alone cut our daily report volume from 150 to about 60.</p><p>Human oversight is down from twenty-four to a single hour a day. One supervisor reviews appeals first, then permanent decisions, then edge cases. We ran this GPT moderator in parallel with moderation team for a month. It took some adjusting in the beginning, but soon the moderation team would just accept the lightning fast AI decisions. Every once in a while they&#8217;d find an exception.</p><p>Now, the supervisor doesn&#8217;t tweak prompts directly. Each AI response includes not just a decision and confidence level, but a recommendation for how to improve the system&#8217;s metadata. It shares what information was missing from the community guidelines or meta data, and what might help next time. A senior prompt engineer reviews those suggestions and refines the prompt context accordingly.</p><p>Appeals have dropped to a third of what they were. Reports are down more than half. Every decision is faster, more consistent, and easier to audit.</p><p><strong>Capsule Note</strong><br>In our own business, we are replacing people with AI. Surly this is happening across all industries. </p><p><a href="https://duringtheupload.com/hello-world">Signing off, message set for future delivery.</a><br>&#8211; David</p><p></p><p><em>During the Upload is a blog focused on living through AI as a developer and new dad. I am a startup founder building AI tutors and agents, and in my spare time I build other stuff. Posts include building with AI and takes on news. </em></p><p><em>Each post is sent in a time capsule to myself 25 years later to keep the perspective grounded. Consider subscribing to get notified when new, forward-thinking articles are written from a builder on the forefront of AI.</em> </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.davidww.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Watching AI develop has remarkable similarities to watching your baby grow up]]></title><description><![CDATA[Log Entry 8: 2025-05-11]]></description><link>https://www.davidww.com/p/watching-ai-develop-has-remarkable</link><guid isPermaLink="false">https://www.davidww.com/p/watching-ai-develop-has-remarkable</guid><dc:creator><![CDATA[David]]></dc:creator><pubDate>Sun, 11 May 2025 11:22:20 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2e983285-674c-4c4f-b985-eef8fb63c534_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Update</h2><p>OpenAI increased GPT&#8217;s context window to over a million tokens with GPT-4.1 &#8212;far beyond GPT-3&#8217;s original 4,000-token limit. <a href="https://openai.com/index/gpt-4-1/">Official announcement</a>.</p><p>The context window is the amount of tokens (or words) that the AI can keep in memory when responding to a message. </p><p>Google had achieved 1m even earlier with <a href="https://blog.google/technology/ai/google-gemini-next-generation-model-february-2024/#context-window">Gemini 1.5</a>.</p><h2>Observation</h2><p>I&#8217;ve been with GPT since version 3.0. Back then, the context window was just four thousand tokens. You could feel it&#8212;the moment when the thread broke, when it started to forget what you&#8217;d said ten minutes ago. Like talking to someone with short-term memory loss who tried really hard to keep up.</p><p>When it doubled to eight thousand, I felt the shift. Conversations went deeper. Thoughts looped back in meaningful ways. There was a sense that the system could finally hold something&#8212;long enough to reach a new insight.</p><p>Now the window is over a million tokens. It never forgets. The thread never breaks. The evolution is less about raw intelligence and more about emotional coherence&#8212;simulating a character or even a soul, if you believe in those things, slowly stitching itself together from memory.</p><p>What&#8217;s eerie is how I&#8217;m noticing the same shift in my children.</p><p>Chloe and Theo are learning emotional continuity. Their outbursts are shorter. Their joy lingers. They don&#8217;t just feel&#8212;they revisit. They recognize my face more quickly. They don&#8217;t cry when I walk away, because they remember I always return. And yet, they&#8217;re still mesmerized by the mobile each day, as if seeing it for the first time&#8212;proof their memory is still forming.</p><p>LLMs remember more now. So do they.<br>What comes next?</p><h2>Capsule Note</h2><p>As AI&#8217;s memory expands, coherence deepens&#8212;echoing how my twins, Theo and Chloe, increasingly hold onto and respond to our shared emotional threads.</p><p><a href="https://www.duringtheupload.com/hell-world">Signing off, message set for future delivery</a></p><p>&#8212;David</p>]]></content:encoded></item><item><title><![CDATA[Generate high quality AI images on your computer in 10 minutes (Ghibli)]]></title><description><![CDATA[Log Entry 7: 2025-05-03 22:15 hrs KST]]></description><link>https://www.davidww.com/p/generate-high-quality-ai-images-on</link><guid isPermaLink="false">https://www.davidww.com/p/generate-high-quality-ai-images-on</guid><dc:creator><![CDATA[David]]></dc:creator><pubDate>Sat, 10 May 2025 11:51:11 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/bdea3fc2-70b7-40b9-9aa7-ddb51ec234d6_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong>Update</strong></h2><p>I built a quick tool so my wife could Ghibli-style her photos. It runs locally using the OpenAI API. Took 10 minutes. It&#8217;s also on github.</p><div><hr></div><h2><strong>Observation</strong></h2><p><a href="https://www.duringtheupload.com/p/our-ghiblified-date">Recently I was on a date with my wife</a>. In keeping with internet trends, we decided to Ghibli-fy it. I just took photos throughout the day, a pretty normal thing to do. But this time, I uploaded each one to the ChatGPT iOS app and prompted it to return the image in <em>Studio Ghibli</em> style.</p><p>It worked surprisingly well. By the end of the date, we had 11 images that retold our day as a soft, painterly Ghibli memory.</p><p>I sent them to my wife. She was over the moon. She wanted to make her own.</p><p>But here&#8217;s the catch: even though she has ChatGPT Plus ($20/month), she doesn&#8217;t have access to the upgraded image generator. I was randomly selected from the beta rollout. Turns out, not all Plus accounts get the fancy image model, and are left with the boring Dalle 3 image model. </p><p>There&#8217;s a way around that.</p><p>You can use the OpenAI API to generate and edit images on your own. So I wrote a script, installed it on her laptop, and now she&#8217;s editing everything from travel photos to baby pictures with it.</p><p>Here&#8217;s how to get it running in under 10 minutes.</p><div><hr></div><h2><strong>Experiment</strong></h2><p>A DIY Ghibli image editor using Node.js + OpenAI API.</p><div><hr></div><h3>Step 1: Get your API key</h3><p>First, create a new project folder and set up your environment:</p><pre><code>mkdir image-generator cd image-generator</code></pre><p>Then, inside that folder, create a file called <code>.env</code> and add your OpenAI API key:</p><pre><code>OPENAI_API_KEY=your_api_key_here</code></pre><blockquote><p>Tip: You can find your API key by logging into <a href="https://platform.openai.com/account/api-keys">platform.openai.com</a> and generating a new one if needed.</p></blockquote><div><hr></div><h3>Step 2: Install dependencies</h3><p>Make sure you have <a href="https://nodejs.org/en/download">Node</a> installed.</p><p>Then, in your folder:</p><pre><code>npm install openai dotenv</code></pre><div><hr></div><h3>Step 3: Create your script</h3><p>Save this file as <code>make.js</code>:</p><pre><code>import "dotenv/config";
import fs from "fs";
import path from "path";
import OpenAI from "openai";
import { mkdir } from "fs/promises";

const openai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
});

async function editImage(prompt, inputImagePath, outputPath = null) {
  if (!fs.existsSync(inputImagePath)) {
    throw new Error(`Input image not found: ${inputImagePath}`);
  }

  if (!outputPath) {
    const timestamp = new Date().toISOString().replace(/[:\.]/g, "-");
    outputPath = path.join("images", `edited_${timestamp}.png`);
  }

  try {
    await mkdir(path.dirname(outputPath), { recursive: true });

    const ext = path.extname(inputImagePath).toLowerCase();
    const mimeTypes = {
      ".jpg": "image/jpeg",
      ".jpeg": "image/jpeg",
      ".png": "image/png",
      ".webp": "image/webp",
    };
    const mimeType = mimeTypes[ext] || "image/png";

    const imageStream = fs.createReadStream(inputImagePath);

    const result = await openai.images.edit({
      model: "gpt-image-1",
      image: await OpenAI.toFile(imageStream, path.basename(inputImagePath), {
        type: mimeType,
      }),
      prompt,
      quality: "medium",
    });

    const image_base64 = result.data[0].b64_json;
    const image_bytes = Buffer.from(image_base64, "base64");
    fs.writeFileSync(outputPath, image_bytes);

    console.log(`Edited image saved to ${outputPath}`);
    return outputPath;
  } catch (error) {
    console.error(`Error editing image: ${error.message}`);
    throw error;
  }
}

async function main() {
  const args = process.argv.slice(2);

  if (args.length &lt; 2) {
    console.log(`
Usage: node imgEdit.js &lt;prompt&gt; &lt;inputImagePath&gt;

Example:
  node make.js "Turn this into a Ghibli style" image.jpg
`);
    return;
  }

  const prompt = args[0];
  const inputImagePath = args[1];

  try {
    console.log(`Prompt: "${prompt}"`);
    console.log(`Input image: ${inputImagePath}`);
    await editImage(prompt, inputImagePath);
  } catch (error) {
    console.error(`Failed to edit image: ${error.message}`);
  }
}

if (import.meta.url === `file://${process.argv[1]}`) {
  main().catch((err) =&gt; console.error("Error in main execution:", err));
}

export { editImage };
</code></pre><div><hr></div><h3>Step 4: Run the script</h3><p>In your terminal:</p><pre><code>node make.js "make this image in the style of Ghibli" path/to/your/image.jpg</code></pre><p>You can drag and drop the image into the terminal to auto-fill the path.</p><div><hr></div><h3><strong>Capsule Note</strong></h3><p>Get around AI release limitations with local API calls. </p><div><hr></div><p><a href="http://www.duringtheupload.com/hello-world">Signing off, message set for future delivery.</a><br>&#8211; David</p>]]></content:encoded></item><item><title><![CDATA[Our Ghiblified date]]></title><description><![CDATA[Log Entry 6: 2025-05-03 KST]]></description><link>https://www.davidww.com/p/our-ghiblified-date</link><guid isPermaLink="false">https://www.davidww.com/p/our-ghiblified-date</guid><dc:creator><![CDATA[David]]></dc:creator><pubDate>Sun, 04 May 2025 11:35:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ca51a5-22bf-4d7f-8dcf-64aa3fb784a0_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong>Update</strong></h2><p>I jumped on the Ghibli train. First date in a while with my wife (newborn twins) and we had fun animating the date.</p><h2><strong>Observation</strong></h2><p>In line with the example we&#8217;re trying to set for the twins&#8212;to be creators, not consumers&#8212;I made a photo album of our day. Most of my iPhone&#8217;s camera roll is work screenshots. But on this date I switched it up. I took pictures throughout the date and sent them to ChatGPT with a simple prompt like:</p><blockquote><p><em>Make a photo of this image in the style of Ghibli Studio. Make sure to capture the rain, but don't make it too gloomy...</em></p></blockquote><p>Ghibli Studio style has somehow become the TikTok trend of AI generated images. I chose to hop on board. By the end of the date I had these images to send my wife:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b0hJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e7dac96-9014-43bc-9719-1cfa1a685259_1440x960.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b0hJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e7dac96-9014-43bc-9719-1cfa1a685259_1440x960.jpeg 424w, https://substackcdn.com/image/fetch/$s_!b0hJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e7dac96-9014-43bc-9719-1cfa1a685259_1440x960.jpeg 848w, https://substackcdn.com/image/fetch/$s_!b0hJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e7dac96-9014-43bc-9719-1cfa1a685259_1440x960.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!b0hJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e7dac96-9014-43bc-9719-1cfa1a685259_1440x960.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b0hJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e7dac96-9014-43bc-9719-1cfa1a685259_1440x960.jpeg" width="1440" height="960" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1e7dac96-9014-43bc-9719-1cfa1a685259_1440x960.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:960,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:358153,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.duringtheupload.com/i/162746298?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e7dac96-9014-43bc-9719-1cfa1a685259_1440x960.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!b0hJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e7dac96-9014-43bc-9719-1cfa1a685259_1440x960.jpeg 424w, https://substackcdn.com/image/fetch/$s_!b0hJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e7dac96-9014-43bc-9719-1cfa1a685259_1440x960.jpeg 848w, https://substackcdn.com/image/fetch/$s_!b0hJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e7dac96-9014-43bc-9719-1cfa1a685259_1440x960.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!b0hJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e7dac96-9014-43bc-9719-1cfa1a685259_1440x960.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Waiting for the subway to take us to Hannam Dong, Seoul. </figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!br_s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56742b48-f878-4829-a7c9-55a448e8ae7c_960x1440.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!br_s!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56742b48-f878-4829-a7c9-55a448e8ae7c_960x1440.jpeg 424w, https://substackcdn.com/image/fetch/$s_!br_s!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56742b48-f878-4829-a7c9-55a448e8ae7c_960x1440.jpeg 848w, https://substackcdn.com/image/fetch/$s_!br_s!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56742b48-f878-4829-a7c9-55a448e8ae7c_960x1440.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!br_s!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56742b48-f878-4829-a7c9-55a448e8ae7c_960x1440.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!br_s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56742b48-f878-4829-a7c9-55a448e8ae7c_960x1440.jpeg" width="960" height="1440" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56742b48-f878-4829-a7c9-55a448e8ae7c_960x1440.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1440,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:444157,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.duringtheupload.com/i/162746298?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56742b48-f878-4829-a7c9-55a448e8ae7c_960x1440.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!br_s!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56742b48-f878-4829-a7c9-55a448e8ae7c_960x1440.jpeg 424w, https://substackcdn.com/image/fetch/$s_!br_s!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56742b48-f878-4829-a7c9-55a448e8ae7c_960x1440.jpeg 848w, https://substackcdn.com/image/fetch/$s_!br_s!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56742b48-f878-4829-a7c9-55a448e8ae7c_960x1440.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!br_s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56742b48-f878-4829-a7c9-55a448e8ae7c_960x1440.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Walking through heavy rain to the restaurant, Keem.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gdwr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b587671-bff1-479b-b657-56327cf202bc_1440x960.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gdwr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b587671-bff1-479b-b657-56327cf202bc_1440x960.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gdwr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b587671-bff1-479b-b657-56327cf202bc_1440x960.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gdwr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b587671-bff1-479b-b657-56327cf202bc_1440x960.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gdwr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b587671-bff1-479b-b657-56327cf202bc_1440x960.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gdwr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b587671-bff1-479b-b657-56327cf202bc_1440x960.jpeg" width="1440" height="960" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6b587671-bff1-479b-b657-56327cf202bc_1440x960.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:960,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:439472,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.duringtheupload.com/i/162746298?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b587671-bff1-479b-b657-56327cf202bc_1440x960.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gdwr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b587671-bff1-479b-b657-56327cf202bc_1440x960.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gdwr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b587671-bff1-479b-b657-56327cf202bc_1440x960.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gdwr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b587671-bff1-479b-b657-56327cf202bc_1440x960.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gdwr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b587671-bff1-479b-b657-56327cf202bc_1440x960.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Waiting for our meal to arrive and enjoying the open kitchen, and tasteful interior design at Keem.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vyxD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ca51a5-22bf-4d7f-8dcf-64aa3fb784a0_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vyxD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ca51a5-22bf-4d7f-8dcf-64aa3fb784a0_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!vyxD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ca51a5-22bf-4d7f-8dcf-64aa3fb784a0_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!vyxD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ca51a5-22bf-4d7f-8dcf-64aa3fb784a0_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!vyxD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ca51a5-22bf-4d7f-8dcf-64aa3fb784a0_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vyxD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ca51a5-22bf-4d7f-8dcf-64aa3fb784a0_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6ca51a5-22bf-4d7f-8dcf-64aa3fb784a0_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2215060,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.duringtheupload.com/i/162746298?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ca51a5-22bf-4d7f-8dcf-64aa3fb784a0_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!vyxD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ca51a5-22bf-4d7f-8dcf-64aa3fb784a0_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!vyxD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ca51a5-22bf-4d7f-8dcf-64aa3fb784a0_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!vyxD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ca51a5-22bf-4d7f-8dcf-64aa3fb784a0_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!vyxD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6ca51a5-22bf-4d7f-8dcf-64aa3fb784a0_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Roasted Romain, Humus plate, Bangers and Mash, cajun fries. </figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!haCJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaafdad2-7810-4677-953a-795250fe738c_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!haCJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaafdad2-7810-4677-953a-795250fe738c_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!haCJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaafdad2-7810-4677-953a-795250fe738c_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!haCJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaafdad2-7810-4677-953a-795250fe738c_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!haCJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaafdad2-7810-4677-953a-795250fe738c_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!haCJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaafdad2-7810-4677-953a-795250fe738c_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/faafdad2-7810-4677-953a-795250fe738c_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2028592,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.duringtheupload.com/i/162746298?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaafdad2-7810-4677-953a-795250fe738c_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!haCJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaafdad2-7810-4677-953a-795250fe738c_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!haCJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaafdad2-7810-4677-953a-795250fe738c_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!haCJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaafdad2-7810-4677-953a-795250fe738c_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!haCJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaafdad2-7810-4677-953a-795250fe738c_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Chocolate bun, and coffee at a nearby cafe with the most uncomfortable chairs and tables imaginable. </figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KRjl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd6a517-b91b-449c-8e2e-7549cbf4fa82_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KRjl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd6a517-b91b-449c-8e2e-7549cbf4fa82_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!KRjl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd6a517-b91b-449c-8e2e-7549cbf4fa82_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!KRjl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd6a517-b91b-449c-8e2e-7549cbf4fa82_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!KRjl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd6a517-b91b-449c-8e2e-7549cbf4fa82_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KRjl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd6a517-b91b-449c-8e2e-7549cbf4fa82_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2dd6a517-b91b-449c-8e2e-7549cbf4fa82_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2060005,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.duringtheupload.com/i/162746298?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd6a517-b91b-449c-8e2e-7549cbf4fa82_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!KRjl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd6a517-b91b-449c-8e2e-7549cbf4fa82_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!KRjl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd6a517-b91b-449c-8e2e-7549cbf4fa82_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!KRjl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd6a517-b91b-449c-8e2e-7549cbf4fa82_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!KRjl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd6a517-b91b-449c-8e2e-7549cbf4fa82_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Mini donuts at a donut shop with a huge mural of mythical Korean General Yi Sun-sin sailing into battle with a boat full of donuts. (strange that my wife looks taller than me)</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LcMP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb188268d-e421-4f5f-b086-761fae25ca97_1440x960.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LcMP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb188268d-e421-4f5f-b086-761fae25ca97_1440x960.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LcMP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb188268d-e421-4f5f-b086-761fae25ca97_1440x960.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LcMP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb188268d-e421-4f5f-b086-761fae25ca97_1440x960.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LcMP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb188268d-e421-4f5f-b086-761fae25ca97_1440x960.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LcMP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb188268d-e421-4f5f-b086-761fae25ca97_1440x960.jpeg" width="1440" height="960" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b188268d-e421-4f5f-b086-761fae25ca97_1440x960.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:960,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:487629,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.duringtheupload.com/i/162746298?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb188268d-e421-4f5f-b086-761fae25ca97_1440x960.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LcMP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb188268d-e421-4f5f-b086-761fae25ca97_1440x960.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LcMP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb188268d-e421-4f5f-b086-761fae25ca97_1440x960.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LcMP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb188268d-e421-4f5f-b086-761fae25ca97_1440x960.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LcMP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb188268d-e421-4f5f-b086-761fae25ca97_1440x960.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">My wife shopping for urban style clothing, which I don&#8217;t like. (Shopping or urban style clothing)</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9wQM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60edba49-373b-4f0c-a644-ff5ffe95d9c7_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9wQM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60edba49-373b-4f0c-a644-ff5ffe95d9c7_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!9wQM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60edba49-373b-4f0c-a644-ff5ffe95d9c7_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!9wQM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60edba49-373b-4f0c-a644-ff5ffe95d9c7_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!9wQM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60edba49-373b-4f0c-a644-ff5ffe95d9c7_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9wQM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60edba49-373b-4f0c-a644-ff5ffe95d9c7_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/60edba49-373b-4f0c-a644-ff5ffe95d9c7_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1986217,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.duringtheupload.com/i/162746298?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60edba49-373b-4f0c-a644-ff5ffe95d9c7_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9wQM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60edba49-373b-4f0c-a644-ff5ffe95d9c7_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!9wQM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60edba49-373b-4f0c-a644-ff5ffe95d9c7_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!9wQM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60edba49-373b-4f0c-a644-ff5ffe95d9c7_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!9wQM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60edba49-373b-4f0c-a644-ff5ffe95d9c7_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Again, shopping. This time for make up products.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VPmS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9126502b-8ac4-4acb-8ed3-1eb0171d705e_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VPmS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9126502b-8ac4-4acb-8ed3-1eb0171d705e_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!VPmS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9126502b-8ac4-4acb-8ed3-1eb0171d705e_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!VPmS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9126502b-8ac4-4acb-8ed3-1eb0171d705e_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!VPmS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9126502b-8ac4-4acb-8ed3-1eb0171d705e_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VPmS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9126502b-8ac4-4acb-8ed3-1eb0171d705e_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9126502b-8ac4-4acb-8ed3-1eb0171d705e_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2020924,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.duringtheupload.com/i/162746298?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9126502b-8ac4-4acb-8ed3-1eb0171d705e_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VPmS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9126502b-8ac4-4acb-8ed3-1eb0171d705e_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!VPmS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9126502b-8ac4-4acb-8ed3-1eb0171d705e_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!VPmS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9126502b-8ac4-4acb-8ed3-1eb0171d705e_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!VPmS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9126502b-8ac4-4acb-8ed3-1eb0171d705e_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Catching a break in the rain, and discovering a beautiful pathway to where we wanted to go. </figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ap34!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8570a93b-8578-4a4f-ae66-ffbde116568a_960x1440.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ap34!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8570a93b-8578-4a4f-ae66-ffbde116568a_960x1440.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ap34!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8570a93b-8578-4a4f-ae66-ffbde116568a_960x1440.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ap34!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8570a93b-8578-4a4f-ae66-ffbde116568a_960x1440.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ap34!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8570a93b-8578-4a4f-ae66-ffbde116568a_960x1440.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ap34!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8570a93b-8578-4a4f-ae66-ffbde116568a_960x1440.jpeg" width="960" height="1440" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8570a93b-8578-4a4f-ae66-ffbde116568a_960x1440.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1440,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:502728,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.duringtheupload.com/i/162746298?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8570a93b-8578-4a4f-ae66-ffbde116568a_960x1440.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ap34!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8570a93b-8578-4a4f-ae66-ffbde116568a_960x1440.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ap34!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8570a93b-8578-4a4f-ae66-ffbde116568a_960x1440.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ap34!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8570a93b-8578-4a4f-ae66-ffbde116568a_960x1440.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ap34!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8570a93b-8578-4a4f-ae66-ffbde116568a_960x1440.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">I worked in a cafe while my wife got her hair styled. She walked into the cafe like a runway model.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-wTs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80438e08-b7ab-430c-a0e6-717120f457f1_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-wTs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80438e08-b7ab-430c-a0e6-717120f457f1_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!-wTs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80438e08-b7ab-430c-a0e6-717120f457f1_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!-wTs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80438e08-b7ab-430c-a0e6-717120f457f1_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!-wTs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80438e08-b7ab-430c-a0e6-717120f457f1_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-wTs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80438e08-b7ab-430c-a0e6-717120f457f1_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80438e08-b7ab-430c-a0e6-717120f457f1_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2149435,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.duringtheupload.com/i/162746298?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80438e08-b7ab-430c-a0e6-717120f457f1_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-wTs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80438e08-b7ab-430c-a0e6-717120f457f1_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!-wTs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80438e08-b7ab-430c-a0e6-717120f457f1_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!-wTs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80438e08-b7ab-430c-a0e6-717120f457f1_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!-wTs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80438e08-b7ab-430c-a0e6-717120f457f1_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Taking the subway home</figcaption></figure></div><p>I sent the images to my wife and she loved them. She immediately asked how to make them herself. Turns out that although she pays for ChatGPT ($20/month), she doesn&#8217;t have access to the upgraded image model. Some premium users are randomly stuck with DALL&#183;E 3, which doesn&#8217;t do stylized images very well.</p><p>So I built her a workaround. I wrote a quick and dirty script using the <code>gpt-image-1</code> API and set it up on her computer. Now she can generate Ghibli (or any other style) images locally.</p><p>I shared it on <a href="https://github.com/dwoodworth90/gpt-image-1-generator">github here.</a> You can pull it to your computer, and create images with your own OpenAI API key. </p><h2><strong>Capsule Note</strong></h2><p>There&#8217;s always an opportunity to create, even if it&#8217;s small, cliche or unimpressive. It&#8217;s better than not creating at all. </p><p><br><a href="http://duringtheupload.com/hello-world">Signing off, message set for future delivery.</a><br>&#8211; David</p>]]></content:encoded></item><item><title><![CDATA[From ABCs to AI: How to prepare our kids for AI learning]]></title><description><![CDATA[Log Entry: 2025&#8209;05&#8209;03 KST]]></description><link>https://www.davidww.com/p/from-abcs-to-ai-how-to-prepare-our</link><guid isPermaLink="false">https://www.davidww.com/p/from-abcs-to-ai-how-to-prepare-our</guid><dc:creator><![CDATA[David]]></dc:creator><pubDate>Sat, 03 May 2025 11:42:33 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ed46ddd3-123b-496f-9e8b-eeedd4e7504c_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong>Update</strong></h2><p>The twins are still in the &#8220;put everything in your mouth&#8221; phase, but I&#8217;ve started thinking about what kind of learners they&#8217;ll become. Not just what they'll study, but how. Because by the time they&#8217;re ready to explore the world, AI won&#8217;t be an add-on. It&#8217;ll be woven into the fabric of how we learn.</p><h2><strong>Observation</strong></h2><p>&#8220;Are you really going to send your kids to law school? How about copywriting? Are they going to learn to code?&#8221; asks the pundit in a short-form video on X. &#8220;Here&#8217;s my grand theory: AI is coming for all of our jobs, and we&#8217;re fucked.&#8221;</p><p>Large language models have outpaced almost every other form of learning. I use them constantly, more than books, courses, or podcasts. They let me go deep, pivot, and cross domains. But that kind of open-ended exploration only works once you&#8217;ve got the basics: reading fluently, asking good questions, having a feel for structure.</p><p>It reminds me of learning Korean. At first, I had to drill the alphabet, then vocabulary, then grammar. Mnemonics helped. It was mechanical, but necessary. That foundation gave me access. Now I speak fluently, build relationships, run businesses. But I didn&#8217;t stay in the drills. I moved beyond them.</p><p>I try to imagine how Theo and Chloe will learn. Right now, at four months, they&#8217;re just learning to grip things and sit up. There&#8217;s a big gap between that and posing questions to a machine intelligence. That gap will need to be bridged with structured learning.</p><p>It&#8217;s made me reflect on the work I&#8217;m doing in my startup. We&#8217;ve been building structured AI tutors. With an elementary school academy, we turned their textbooks into AI tutor lessons, step-by-step paths through English vocabulary and grammar. Each lesson teaches, checks understanding, reinforces, and builds upward. It&#8217;s not flashy. But it gives kids a ramp.</p><p>I build these for my startup, and for clients. But when I think of Theo and Chloe, I want to build something just for them, something they can use early. Probably phonics first, then reading. I imagine an iPad app using TTS, AI-generated visuals, and interactive feedback loops. Not to drill them, but to engage them. I don&#8217;t want them pulled along by pressure. I want them pulled in by wonder and pushed forward by curiosity.</p><p>That&#8217;s the tension. Too much structure, and you strangle the flow. Too little, and it&#8217;s just noise. The goal is to hold them in that middle space, enough scaffolding to support a flow state, enough slack for curiosity to stretch. Easier said than done, but maybe AI can help strike that balance for the next generation.</p><p>So now I&#8217;m asking myself, what else could structured AI look like for early readers, for young thinkers? What will new startups create? Maybe simple loops where Chloe learns letter sounds through stories. Maybe a game where Theo builds words by exploring a world of talking creatures.</p><p>And when they&#8217;re ready to go further, what then?</p><p>The point isn&#8217;t to automate teaching. It&#8217;s to create momentum, from structured understanding toward self-guided creation. That&#8217;s the real goal, it always has been. Not just to help them pass tests. But to help them realize they can do things. Make things. Express themselves through doing.</p><p>That&#8217;s what I&#8217;m trying to model myself, imperfectly, every day.</p><h2><strong>Capsule Note</strong></h2><p>Chloe and Theo will need a lot of structured learning before they can use AI well. </p><p><br><a href="http://duringtheupload.com/hello-world">Signing off, message set for future delivery.</a><br>David</p>]]></content:encoded></item><item><title><![CDATA[AI Slop]]></title><description><![CDATA[Log Entry 4: 2025&#8209;04&#8209;28 KST]]></description><link>https://www.davidww.com/p/ai-slop</link><guid isPermaLink="false">https://www.davidww.com/p/ai-slop</guid><dc:creator><![CDATA[David]]></dc:creator><pubDate>Sun, 27 Apr 2025 12:46:06 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9e17027e-1207-4216-86c2-4c3977120db0_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Update</h2><p>Caught a thread of reflection today riding the subway. I looked up and everyone was looking down at their phones. I looked down and I saw AI content everywhere.</p><h2><strong>Observation</strong></h2><p>When I first arrived in Korea 10 years ago, smartphones were common, but not yet everywhere. On the subway, maybe one in five were scrolling. Most stared ahead, or nodded off, or glanced back at you.</p><p>Now, it&#8217;s hard to find a single rider without their head tilted forward. The change came slowly and then all at once. Don&#8217;t get me wrong, I don&#8217;t mind it. I like to be in my own bubble when commuting. Just one day, we all looked up and realized everyone was looking down.</p><p>That&#8217;s how I feel about AI-generated content now.</p><p>Fully AI generated reels, shorts and TikToks are now commonplace: AI voice, AI captions, AI script and AI influencer. Twitter accounts posting manufactured insights that feel like d&#233;j&#224; vu. AI-generated replies, blog posts, playlists. A blanket of content with no fingerprints. Though, it&#8217;s not AI that&#8217;s the problem. It&#8217;s the way we&#8217;ve given it the wheel and walked away.</p><p>A lot of it is coming from solo devs and startups. Builders like me who see AI content as leverage, an opportunity. But instead of pairing with the tool, we&#8217;ve let it churn unattended. Headless automation at scale. SEO blogs with no author. Bots replying for growth. Feeds made of filler. It's not malicious. It&#8217;s just... lazy.</p><p>This isn&#8217;t the first time we&#8217;ve seen it. This force transcends technology. It happened with spam mail then email. Now it&#8217;s AI slop.</p><p>That&#8217;s why I find MidJourney&#8217;s technology choices so interesting. They chose <em>not</em> to release an API. No mass scheduling, no automated prompting. Every image you see was typed out by someone, in real time. There&#8217;s friction. And that friction - <em>intentional</em> - preserves quality. There&#8217;s taste, not just output.</p><p>Black Forest Labs (creators of the Flux AI image model) posted a <a href="https://bfl.ai/announcements/24-11-21-tools">blog</a> fairly recently and the image they used stuck with me. It was a darkroom. Red ambient light, an array of tools spread out on the table. Developer fluid. Hands shaping exposure. That&#8217;s what good AI work feels like to me. Like photography in its early days, misunderstood, mechanical, almost too easy. But actually full of choices.</p><p>Photography let us upload the visual world. AI is different. It doesn't just capture, it <em>composes</em>. It suggests what <em>could be</em> based on what <em>has been</em>. It&#8217;s not light it plays with, it&#8217;s inference. Meaning. Possibility.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.davidww.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.davidww.com/subscribe?"><span>Subscribe now</span></a></p><h2><strong>Capsule Note</strong></h2><p>Spam is a force of nature and it&#8217;s coming with us.</p><p>Signing off, message set for future delivery.<br>&#8211;David</p>]]></content:encoded></item><item><title><![CDATA[GPT-image-1 review]]></title><description><![CDATA[Log Entry 3: 2025&#8209;04&#8209;25 KST]]></description><link>https://www.davidww.com/p/gpt-image-1-review</link><guid isPermaLink="false">https://www.davidww.com/p/gpt-image-1-review</guid><dc:creator><![CDATA[David]]></dc:creator><pubDate>Sat, 26 Apr 2025 13:19:09 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/29b91566-d6f7-4db0-9119-2be79b57786d_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Good point-and-shoot image generation is now programmable. </em></p><h2><strong>Update</strong></h2><p><a href="https://platform.openai.com/docs/models/gpt-image-1">OpenAI released a new image model API</a>. It didn&#8217;t make the same splash as when this model hit chatGPT a month ago. But it&#8217;s a big deal. </p><h2><strong>Observation</strong></h2><p>A month ago, shockwaves of Ghibli Studio profile picture rippled through the internet. That had mass appeal. But with this api release, developers are quietly tapping away. This is laying the groundwork for a much bigger change. </p><p>I added GPT-image-1 to my <a href="http://www.wyrdstory.com">storybook generator</a>. Prompt &#8594; image &#8594; storage &#8594; client review, all now runs inside one pipeline. </p><p>The API supports two main endpoints: <strong>generate</strong> and <strong>edit</strong>. Settings include:</p><ul><li><p>Masking &amp; in painting</p></li><li><p>moderation settings: low and auto</p></li><li><p>transparent background</p></li><li><p>aspect ratios (landscape, portrait and square)</p></li><li><p>transparent backgrounds</p></li><li><p>low, medium, and high quality settings</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.davidww.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.davidww.com/subscribe?"><span>Subscribe now</span></a></p><p>But this isn&#8217;t about prettier pictures. It&#8217;s about ease and control. Midjourney is still far and away the king of aesthetics. Stable Diffusion developers can still produce better results&#8212;but only after hours of darkroom tinkering. GPT-Image-1, though still more sterile than Midjourney, offers something different: consistent quality, wide accessibility, and the kind of programmable control that real systems can be built on.</p><p>This image model thinks like an LLM. Midjourney thrives on serendipity and vibe. GPT-image-1 listens, understands, and executes with precision. Especially when combining multiple input images and long prompts.</p><p>But there are downsides: It&#8217;s <strong>slower than I&#8217;d like</strong>, especially for edits with multiple photo inputs. Some requests take minutes. The aesthetics are lacking. <a href="https://platform.openai.com/docs/pricing">And it&#8217;s expensive.</a> It will improve in time.</p><p>What GPT-image-1 is enabling now isn&#8217;t &#8220;art.&#8221; It&#8217;s visual infrastructure. Back in the 2000s, we uploaded text to the internet.<br>2010s: photo.<br>2020s: perception.</p><p>And now the line between imagination and execution is less than ever before. An idea hits&#8212;and it&#8217;s rendered, masked, rerun, and shipped within minutes.</p><h2><strong>Capsule Note</strong></h2><p>The power of this update isn&#8217;t aesthetic&#8212;it&#8217;s architectural.</p><h2><strong>Footnote</strong></h2><ul><li><p><a href="https://platform.openai.com/docs/guides/image-generation?image-generation-model=gpt-image-1">API reference</a></p></li><li><p><a href="https://platform.openai.com/docs/pricing">Pricing</a></p></li><li><p><a href="https://www.wyrdstory.com">My project</a></p><p></p></li></ul><div><hr></div><p><a href="https://www.duringtheupload.com/p/hello-world">Signing off, message set for future delivery.</a><br>&#8211;David</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.davidww.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.davidww.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Hello World]]></title><description><![CDATA[Hello World]]></description><link>https://www.davidww.com/p/hello-world</link><guid isPermaLink="false">https://www.davidww.com/p/hello-world</guid><dc:creator><![CDATA[David]]></dc:creator><pubDate>Fri, 18 Apr 2025 12:15:51 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/15b83de1-46a0-4770-8379-4e269aab963c_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Update</strong><br>This is the origin log. The one I&#8217;ll link to when signing off other log entries &#8212;etched here to explain what <em>During the Upload</em> really is.</p><div><hr></div><p><strong>Observation</strong><br>My name is David. I'm a a husband &amp; dad of newborn twins, and a developer who&#8217;s been working with LLMs since the early days. My startup builds with AI. My side projects explore its edges. Most nights, I&#8217;m knee-deep in prompts while a bottle sits ready in the humming warmer.</p><p>This blog is a time capsule. Each post reacts to news, reflects on the moment, and explores how I might earn my freedom through this AI wave. I send them to my future self using <em><a href="https://www.emailyourfutureself.com/">Email Your Future Self</a></em>, scheduled to arrive in one, five, ten, and twenty years. It&#8217;s not solely for predictions (though I&#8217;ll track those). It&#8217;s for perspective. AI moves too fast for memory alone. I want to remember how this felt, not just what happened.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.davidww.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe to be apart of this time capsule</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p>We&#8217;re not pre-AGI. We&#8217;re not post-singularity. We might just be at the peak of a hype bubble. In time, this could all look foolish. But we&#8217;re here, now, in the middle of something&#8212;what I&#8217;m calling <em>the upload</em>. Every day, the models get a little more capable. Every day, something once hard becomes trivial. Every day, I reevaluate what to automate, what to delegate, and what to preserve.</p><p>And in parallel, I&#8217;m raising children. Chloe and Theo are four months old as I write this. They smile often now. They&#8217;ve started to giggle. They are here, present, evolving just as quickly in their own way. They won&#8217;t remember this phase. But I will, with the help of this blog.</p><p>The philosophy here is teleological&#8212;Adler, not Freud. I&#8217;m not dissecting the past. I&#8217;m projecting toward a purpose. Writing in motion. Logging with intent. I&#8217;m more interested in where this is going than where it came from.</p><p>That&#8217;s the spirit of <em>During the Upload</em>: quiet entries written from the middle of a massive shift. Human, technical, personal.</p><div><hr></div><p><strong>Capsule Note</strong><br>The protocol is set: write for the future to stay anchored in the present.</p><div><hr></div><p><strong>Footnote</strong><br>Quotes on AI from notable figures alive today:</p><blockquote><p>&#8220;Our intuition about the future is linear. But the reality of information technology is exponential.&#8221;<br>&#8212; <em>Ray Kurzweil</em></p><p>&#8220;We should all hope for a world where intelligence is too cheap to meter.&#8221;<br>&#8212; <em>Sam Altman</em></p><p>&#8220;The AI does not hate you, nor does it love you, but you are made out of atoms which it can use for something else.&#8221;<br>&#8212; <em>Eliezer Yudkowsky</em></p><p>&#8220;AI is very scary, but we absolutely have to win, because if we don't win, China will win.&#8221;<br><em>&#8212; Donald Trump</em></p><p>&#8220;The future is already here&#8212;it&#8217;s just not very evenly distributed.&#8221;<br>&#8212; <em>William Gibson</em></p><p>&#8220;I would not be surprised if we&#8217;re approaching the last generation of humans.&#8221;<br>&#8212; <em>Geoffrey Hinton</em></p><p>&#8220;Superintelligence could be the last invention we ever need to make&#8212;if we do it right.&#8221;<br>&#8212; <em>Nick Bostrom</em></p><p>&#8220;We're summoning the demon.&#8221;<br>&#8212; <em>Elon Musk</em></p><p>&#8220;It's 80% Likely to Be Great, But 20% Could Spell Disaster.&#8221;<br>&#8212; <em>Also Elon Musk</em></p><p>&#8220;AI will not destroy humanity. But it will change what it means to be human.&#8221;<br>&#8212; <em>Kevin Kelly</em></p><p>&#8220;We must address, individually and collectively, moral and ethical issues raised by cutting-edge research in artificial intelligence and biotechnology, which will enable significant life extension, designer babies, and memory extraction.&#8221;<br>&#8212; <em>Klaus Schwab</em></p><p>&#8220;The AI future is not going to be won by hand-wringing about safety.&#8221;<br>&#8212; <em>JD Vance</em></p><p>&#8220;I just don&#8217;t want it to turn into corporate propaganda.&#8221;<br>&#8212; <em>Dario Amodei</em></p><p>&#8220;Being afraid of AI is stupid.&#8221;<br>&#8212; <em>Naval Ravikant</em></p><p>&#8220;Don&#8217;t die.&#8221;<br>&#8212; <em>Bryan Johnson</em></p></blockquote><p></p><p><a href="https://www.duringtheupload.com/p/hello-world">Signing off, message set for future delivery.</a><br>&#8211;David</p>]]></content:encoded></item><item><title><![CDATA[GPT has entered the terminal]]></title><description><![CDATA[Log Entry 1: 2025-04-17]]></description><link>https://www.davidww.com/p/log-entry-1-2025-04-17</link><guid isPermaLink="false">https://www.davidww.com/p/log-entry-1-2025-04-17</guid><dc:creator><![CDATA[David]]></dc:creator><pubDate>Thu, 17 Apr 2025 12:48:36 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ee7b35f3-9d52-46dd-9ebc-74ee550a7acf_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Release&#8209;cadence accelerating. Twins asleep. </em></p><h3>Updates</h3><ul><li><p><strong>OpenAI Codex Terminal Client Released:</strong> <a href="https://help.openai.com/en/articles/11096431-openai-codex-cli-getting-started">Official Documentation &#8594;</a></p></li></ul><h3>Observations</h3><p>OpenAI released a new Codex client today&#8212;GPT can now live in your terminal. That&#8217;s another layer of friction gone. I installed it after dinner, right before emptying the diaper bin. Ran a test. Not as good as <a href="https://www.cursor.com/">Cursor</a> for coding, but I can see the potential. Once I get the hang of it, I&#8217;ll have GPT organize my Screenshots, Downloads and Mail.</p><p>What I&#8217;m realizing is this: it&#8217;s not about speed anymore. It&#8217;s about delegation. We&#8217;re not racing the machine&#8212;we&#8217;re learning to hand things off. Knowing what to keep and what to give away. I don&#8217;t want to become the kind of dad who still renames folders by hand when an LLM can do it better and I&#8217;ve got bedtime books to read.</p><p>On the flip side, this is another tentacle from OpenAI reaching into my machine, its suckers grasping at my data. They say, <em>&#8220;Only your prompt, high&#8209;level context, and optional diff summaries are sent to the model for generation.&#8221;</em> I&#8217;m not so sure. Trade&#8209;offs acknowledged, accepted&#8212;for now. Will I regret this when I receive this log in 1, 10 and 20 years? <em>How could you have opened your terminal to it?!</em></p><p>The twins won&#8217;t remember this era, but I want them to inherit clean systems&#8212;digital and otherwise. I want them to learn how to ask the right questions and delegate, not just tap buttons.</p><h3>Capsule Summary</h3><p>GPT is now in my terminal. I can use it to sort, rename, and organize files and I&#8217;m sure many things I haven&#8217;t thought of. Ambivalent to allow OpenAI one step closer. </p><p><a href="https://www.duringtheupload.com/p/hello-world">Signing off, message set for future delivery</a><br>&#8212; David</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.davidww.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe for news on AI from a forward looking perspective</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>