<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: dolai</title>
    <description>The latest articles on DEV Community by dolai (@dolaiart).</description>
    <link>https://dev.to/dolaiart</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4210690%2F9489da1b-9cc2-4ffb-8006-667f16f1512b.png</url>
      <title>DEV Community: dolai</title>
      <link>https://dev.to/dolaiart</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dolaiart"/>
    <language>en</language>
    <item>
      <title>A daily word ladder is a graph problem wearing a cozy sweater</title>
      <dc:creator>dolai</dc:creator>
      <pubDate>Thu, 29 Oct 2026 09:30:19 +0000</pubDate>
      <link>https://dev.to/dolaiart/a-daily-word-ladder-is-a-graph-problem-wearing-a-cozy-sweater-29l3</link>
      <guid>https://dev.to/dolaiart/a-daily-word-ladder-is-a-graph-problem-wearing-a-cozy-sweater-29l3</guid>
      <description>&lt;p&gt;A word ladder looks like a party trick: start on one four-letter word, change one letter per step, and land on a target. Underneath it is a shortest-path problem on a graph where the nodes are words and the edges are single-letter substitutions. Building one for a real audience made that abstraction concrete, so here is what the graph actually implies.&lt;/p&gt;

&lt;h2&gt;
  
  
  The edges are the whole product
&lt;/h2&gt;

&lt;p&gt;Take a dictionary of four-letter words. For every word, generate the neighbors that differ in exactly one position. A naive implementation compares every pair, which is quadratic and pointless: with 2,586 valid words you can instead bucket by wildcard patterns (&lt;code&gt;_eet&lt;/code&gt;, &lt;code&gt;f_et&lt;/code&gt;, &lt;code&gt;fe_t&lt;/code&gt;, &lt;code&gt;fee_&lt;/code&gt;) and only compare words inside a bucket. Bucket size stays small, and the neighbor list comes out in linear time.&lt;/p&gt;

&lt;p&gt;That neighbor list is the graph. Par is then a breadth-first search from the starting word to the target, run once at build time and stored with the puzzle. If the BFS never reaches the target, the starting word is invalid and should not be scheduled.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scheduling is where the honesty lives
&lt;/h2&gt;

&lt;p&gt;A daily puzzle site has one commitment that matters: a past puzzle must keep its original meaning. That means the dictionary, the schedule and the par value all have to be frozen together. If you ship v1 with 2,586 words and later prune or add a word, an old ladder can silently become unsolvable or easier than the par it shipped with. Pinning the word list per version, and storing the computed par next to the puzzle rather than recalculating it on request, avoids that whole class of bug.&lt;/p&gt;

&lt;p&gt;I applied this to &lt;a href="https://feetlegame.com/" rel="noopener noreferrer"&gt;feetle game&lt;/a&gt;, a free daily four-letter ladder where the target is always FEET. The same dictionary feeds the solver, the past-answer archive and the par calculation, so a route found today still validates tomorrow. Progress lives in local storage instead of an account table, which keeps the backend down to static files and a frozen schedule.&lt;/p&gt;

&lt;h2&gt;
  
  
  Small lessons worth keeping
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Compute heavy invariants at build time. Par is cheap to store and expensive to recompute under load.&lt;/li&gt;
&lt;li&gt;Freeze inputs, not just outputs. A versioned word list is what makes an archive trustworthy.&lt;/li&gt;
&lt;li&gt;Let the UI stay boring. A keyboard-first board, a countdown to 08:00 UTC, and one shared ladder per day is enough structure for a daily habit.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The interesting part of a word puzzle turned out not to be the words at all; it was deciding what to freeze so the puzzle stays fair across months.&lt;/p&gt;

</description>
      <category>javascript</category>
    </item>
    <item>
      <title>Genie 4 explained: what DeepMind's natively multimodal world model actually changes</title>
      <dc:creator>dolai</dc:creator>
      <pubDate>Thu, 29 Oct 2026 04:22:26 +0000</pubDate>
      <link>https://dev.to/dolaiart/genie-4-explained-what-deepminds-natively-multimodal-world-model-actually-changes-46hj</link>
      <guid>https://dev.to/dolaiart/genie-4-explained-what-deepminds-natively-multimodal-world-model-actually-changes-46hj</guid>
      <description>&lt;p&gt;DeepMind announced Genie 4 on October 27, 2026, and within a day the phrase "world model" had been stretched in every direction. Reading the announcement itself, the interesting shift is not image quality. It is that Genie 4 is natively multimodal and agent-driven: Gemini Omni grounds the visuals, a Gemini 3.8 Flash loop observes, plans and replans in real time, and audio plus dialogue come out of the same pass as the picture.&lt;/p&gt;

&lt;p&gt;What that changes in practice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You steer a running scene instead of regenerating a clip. Weather, camera position, objects and characters can all be changed mid-session.&lt;/li&gt;
&lt;li&gt;Physics and human behaviour are simulated rather than styled. The marble-bust-on-watermelon clip is the one worth watching, because contact physics is where generated video usually falls apart.&lt;/li&gt;
&lt;li&gt;SynthID watermarking is on every generated frame and audio track, which matters if a clip is going anywhere near production.&lt;/li&gt;
&lt;li&gt;Access is staged: trusted testers first, then Google AI Ultra subscribers via Project Genie, plus Gemini API and AI Studio partners.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What DeepMind has not published: frame rate, output resolution, model size and pricing. Any exact number you see quoted elsewhere is guesswork, which is a good reminder to check the source before repeating it.&lt;/p&gt;

&lt;p&gt;The comparison that actually helps is Genie 4 vs Genie 3, run on the same dressing-room scene. One year apart, same prompt, visibly different handling of consistency and audio.&lt;/p&gt;

&lt;p&gt;If you want the side-by-side table, the original demo clips and a walkthrough of how access is staged, I keep a longer, source-linked breakdown at &lt;a href="https://genie4.art" rel="noopener noreferrer"&gt;genie4&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
    <item>
      <title>Turning a prompt or a still image into a short video: a hands-on look at dolai</title>
      <dc:creator>dolai</dc:creator>
      <pubDate>Tue, 27 Oct 2026 10:58:58 +0000</pubDate>
      <link>https://dev.to/dolaiart/turning-a-prompt-or-a-still-image-into-a-short-video-a-hands-on-look-at-dolai-2jme</link>
      <guid>https://dev.to/dolaiart/turning-a-prompt-or-a-still-image-into-a-short-video-a-hands-on-look-at-dolai-2jme</guid>
      <description>&lt;p&gt;Most of the "AI video" tooling I tried in the last year asked for a credit card before showing anything useful, so I keep an eye out for browser-first options that let you judge the output first. &lt;a href="https://dolai.art/" rel="noopener noreferrer"&gt;dolai&lt;/a&gt; is one of those: you sign up, get free credits, pick a video model, and generate clips from either a text prompt or a still image you already have.&lt;/p&gt;

&lt;p&gt;What I found useful in a quick test:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Text-to-video and image-to-video live in the same flow, so I could storyboard a still in the image generator and animate it without exporting between tools.&lt;/li&gt;
&lt;li&gt;Model choice is explicit instead of hidden behind "smart" defaults, which matters when one model is better at camera moves and another at keeping a character consistent.&lt;/li&gt;
&lt;li&gt;Clips download directly, no watermark negotiation, so they drop straight into an editor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For side projects the free credits are enough to evaluate whether the output style fits; heavier use means paid credits. If you are scripting a launch video or a week of social clips and do not want to install anything, it is worth a test run.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
  </channel>
</rss>
