<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>Greg Tatum</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://gregtatum.com/</id>
  <link href="https://gregtatum.com/" rel="alternate"/>
  <link href="https://gregtatum.com/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, Greg Tatum</rights>
  <subtitle>Art and Code</subtitle>
  <title>Greg Tatum</title>
  <updated>2026-07-17T23:13:16.437Z</updated>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="writing" scheme="https://gregtatum.com/category/writing/"/>
    <id>https://gregtatum.com/writing/2026/natural-language-engineering/</id>
    <link href="https://gregtatum.com/writing/2026/natural-language-engineering/"/>
    <published>2026-07-17T12:37:31.000Z</published>
    <summary>
      <![CDATA[<p>I value writing high-quality code, and I’m curious how things work. Over the past few years I’ve been experimenting with AI coding assist]]>
    </summary>
    <title>Engineering in Natural Language</title>
    <updated>2026-07-17T23:13:16.437Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="writing" scheme="https://gregtatum.com/category/writing/"/>
    <id>https://gregtatum.com/writing/2026/patterns-are-stronger-than-prompts/</id>
    <link href="https://gregtatum.com/writing/2026/patterns-are-stronger-than-prompts/"/>
    <published>2026-07-09T12:13:17.000Z</published>
    <summary>
      <![CDATA[<p>I get nervous when I pull up an <code>AGENTS.md</code> that is packed with information. How <em>weird</em> is my chat session going to be]]>
    </summary>
    <title>Patterns Are Stronger Than Prompts</title>
    <updated>2026-07-10T12:45:10.320Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="writing" scheme="https://gregtatum.com/category/writing/"/>
    <category term="writing" scheme="https://gregtatum.com/tag/writing/"/>
    <category term="programming" scheme="https://gregtatum.com/tag/programming/"/>
    <category term="code quality" scheme="https://gregtatum.com/tag/code-quality/"/>
    <category term="codegen" scheme="https://gregtatum.com/tag/codegen/"/>
    <category term="cheat proof tests" scheme="https://gregtatum.com/tag/cheat-proof-tests/"/>
    <id>https://gregtatum.com/writing/2026/tests-that-prove-something/</id>
    <link href="https://gregtatum.com/writing/2026/tests-that-prove-something/"/>
    <published>2026-07-06T19:00:00.000Z</published>
    <summary>
      <![CDATA[<p>In my work on high quality code generation, it’s more important than ever to create cheat-proof tests. Testing is the way that you can as]]>
    </summary>
    <title>Tests That Prove Something</title>
    <updated>2026-07-09T13:18:35.367Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="writing" scheme="https://gregtatum.com/category/writing/"/>
    <category term="codegen" scheme="https://gregtatum.com/tag/codegen/"/>
    <category term="automate feedback" scheme="https://gregtatum.com/tag/automate-feedback/"/>
    <id>https://gregtatum.com/writing/2026/fast-checks-for-code-generation/</id>
    <link href="https://gregtatum.com/writing/2026/fast-checks-for-code-generation/"/>
    <published>2026-06-24T19:00:00.000Z</published>
    <summary>
      <![CDATA[<p>I’ve been thinking a lot about code generation with AI agents lately, and wanted to start writing a bit about how I’m approaching the pro]]>
    </summary>
    <title>Fast Checks for Code Generation</title>
    <updated>2026-07-10T12:45:10.320Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="writing" scheme="https://gregtatum.com/category/writing/"/>
    <category term="NMT" scheme="https://gregtatum.com/tag/NMT/"/>
    <category term="translations" scheme="https://gregtatum.com/tag/translations/"/>
    <category term="deep learning" scheme="https://gregtatum.com/tag/deep-learning/"/>
    <category term="machine learning" scheme="https://gregtatum.com/tag/machine-learning/"/>
    <id>https://gregtatum.com/writing/2024/translations/</id>
    <link href="https://gregtatum.com/writing/2024/translations/"/>
    <published>2024-05-14T17:00:00.000Z</published>
    <summary>
      <![CDATA[<p>I’m currently working on <a href="https://github.com/mozilla/firefox-translations-training">training client-side translation models for F]]>
    </summary>
    <title>Datasets - How Neural Machine Translation Works</title>
    <updated>2026-06-28T19:47:07.332Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="interactive" scheme="https://gregtatum.com/category/interactive/"/>
    <category term="canvas" scheme="https://gregtatum.com/tag/canvas/"/>
    <category term="2d" scheme="https://gregtatum.com/tag/2d/"/>
    <category term="sessions" scheme="https://gregtatum.com/tag/sessions/"/>
    <id>https://gregtatum.com/interactive/2022/canvas-014-explorations/</id>
    <link href="https://gregtatum.com/interactive/2022/canvas-014-explorations/"/>
    <published>2022-09-23T22:36:34.000Z</published>
    <summary>
      <![CDATA[<p>Another exploration of a sci fi landscape. Everything is algorithmically generated.</p>
<h3 id="Credits"><a href="#Credits" class="header]]>
    </summary>
    <title>Explorations – Canvas Nº014</title>
    <updated>2026-06-28T19:47:07.314Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="interactive" scheme="https://gregtatum.com/category/interactive/"/>
    <category term="canvas" scheme="https://gregtatum.com/tag/canvas/"/>
    <category term="2d" scheme="https://gregtatum.com/tag/2d/"/>
    <category term="sessions" scheme="https://gregtatum.com/tag/sessions/"/>
    <id>https://gregtatum.com/interactive/2022/canvas-015-geo/</id>
    <link href="https://gregtatum.com/interactive/2022/canvas-015-geo/"/>
    <published>2022-09-23T22:28:31.000Z</published>
    <summary>
      <![CDATA[<p>This is another algorithmic exploration of geometry using three.js. For this one I took the time to figure out how to hack into the three]]>
    </summary>
    <title>Geo – Canvas Nº015</title>
    <updated>2026-06-28T19:47:07.314Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="sculpture" scheme="https://gregtatum.com/category/sculpture/"/>
    <category term="miniature" scheme="https://gregtatum.com/tag/miniature/"/>
    <category term="d&amp;d" scheme="https://gregtatum.com/tag/d-d/"/>
    <id>https://gregtatum.com/sculpture/2021/tavern-miniature/</id>
    <link href="https://gregtatum.com/sculpture/2021/tavern-miniature/"/>
    <published>2021-12-01T06:00:00.000Z</published>
    <summary>
      <![CDATA[<p>After watching <a href="https://www.youtube.com/c/StudsonStudio">many</a> <a href="https://www.youtube.com/c/NorthoftheBorder">wonderful<]]>
    </summary>
    <title>Tavern Miniature</title>
    <updated>2026-06-28T19:47:07.328Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="writing" scheme="https://gregtatum.com/category/writing/"/>
    <category term="writing" scheme="https://gregtatum.com/tag/writing/"/>
    <category term="programming" scheme="https://gregtatum.com/tag/programming/"/>
    <category term="internationalization" scheme="https://gregtatum.com/tag/internationalization/"/>
    <category term="i18n" scheme="https://gregtatum.com/tag/i18n/"/>
    <category term="unicode" scheme="https://gregtatum.com/tag/unicode/"/>
    <id>https://gregtatum.com/writing/2021/encoding-text-utf-8-unicode/</id>
    <link href="https://gregtatum.com/writing/2021/encoding-text-utf-8-unicode/"/>
    <published>2021-11-29T20:00:00.000Z</published>
    <summary>
      <![CDATA[<p>In <a href="/writing/2021/encoding-text-utf-32-utf-16-unicode/">part 1</a> of this article I covered the idea of creating character sets,]]>
    </summary>
    <title>Encoding Text in UTF-8 – How Unicode Works (Part 2)</title>
    <updated>2026-06-28T19:47:07.330Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="writing" scheme="https://gregtatum.com/category/writing/"/>
    <category term="writing" scheme="https://gregtatum.com/tag/writing/"/>
    <category term="programming" scheme="https://gregtatum.com/tag/programming/"/>
    <category term="internationalization" scheme="https://gregtatum.com/tag/internationalization/"/>
    <category term="i18n" scheme="https://gregtatum.com/tag/i18n/"/>
    <category term="unicode" scheme="https://gregtatum.com/tag/unicode/"/>
    <id>https://gregtatum.com/writing/2021/diacritical-marks/</id>
    <link href="https://gregtatum.com/writing/2021/diacritical-marks/"/>
    <published>2021-10-06T19:00:00.000Z</published>
    <summary>
      <![CDATA[<p>I won’t bury the lede, by the end of this article you should be able to write your name in crazy diacritics like this: Ḡ͓̟̟r̬e̱̬͔͑g̰ͮ̃͛ ̇]]>
    </summary>
    <title>Diacritical Marks in Unicode</title>
    <updated>2026-06-28T19:47:07.329Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="interactive" scheme="https://gregtatum.com/category/interactive/"/>
    <category term="canvas" scheme="https://gregtatum.com/tag/canvas/"/>
    <category term="3d" scheme="https://gregtatum.com/tag/3d/"/>
    <category term="mask" scheme="https://gregtatum.com/tag/mask/"/>
    <id>https://gregtatum.com/interactive/2021/mask-jade-one/</id>
    <link href="https://gregtatum.com/interactive/2021/mask-jade-one/"/>
    <published>2021-09-20T05:00:00.000Z</published>
    <summary>
      <![CDATA[<p>A generative piece featuring a masked one. I <a href="/interactive/2017/session-014/">rebuilt this one</a> using a new codebase.</p>]]>
    </summary>
    <title>Jade Masked One</title>
    <updated>2026-06-28T19:47:07.316Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="interactive" scheme="https://gregtatum.com/category/interactive/"/>
    <category term="canvas" scheme="https://gregtatum.com/tag/canvas/"/>
    <category term="masked one" scheme="https://gregtatum.com/tag/masked-one/"/>
    <id>https://gregtatum.com/interactive/2021/mask-horn/</id>
    <link href="https://gregtatum.com/interactive/2021/mask-horn/"/>
    <published>2021-09-18T05:00:00.000Z</published>
    <summary>
      <![CDATA[<p>A generative piece featuring a masked one.</p>]]>
    </summary>
    <title>Horn Masked One</title>
    <updated>2026-06-28T19:47:07.316Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="interactive" scheme="https://gregtatum.com/category/interactive/"/>
    <category term="canvas" scheme="https://gregtatum.com/tag/canvas/"/>
    <category term="masked one" scheme="https://gregtatum.com/tag/masked-one/"/>
    <id>https://gregtatum.com/interactive/2021/mask-sea-elder/</id>
    <link href="https://gregtatum.com/interactive/2021/mask-sea-elder/"/>
    <published>2021-09-15T05:00:00.000Z</published>
    <summary>
      <![CDATA[<p>A generative piece featuring a masked one.</p>]]>
    </summary>
    <title>The Masked Sea Elder</title>
    <updated>2026-06-28T19:47:07.316Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="interactive" scheme="https://gregtatum.com/category/interactive/"/>
    <category term="canvas" scheme="https://gregtatum.com/tag/canvas/"/>
    <category term="masked one" scheme="https://gregtatum.com/tag/masked-one/"/>
    <id>https://gregtatum.com/interactive/2021/mask-sea-youngling/</id>
    <link href="https://gregtatum.com/interactive/2021/mask-sea-youngling/"/>
    <published>2021-09-14T05:00:00.000Z</published>
    <summary>
      <![CDATA[<p>A generative piece featuring a masked one.</p>]]>
    </summary>
    <title>Sea Masked Youngling</title>
    <updated>2026-06-28T19:47:07.316Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="interactive" scheme="https://gregtatum.com/category/interactive/"/>
    <category term="canvas" scheme="https://gregtatum.com/tag/canvas/"/>
    <category term="masked one" scheme="https://gregtatum.com/tag/masked-one/"/>
    <id>https://gregtatum.com/interactive/2021/mask-sea-one/</id>
    <link href="https://gregtatum.com/interactive/2021/mask-sea-one/"/>
    <published>2021-09-13T05:00:00.000Z</published>
    <summary>
      <![CDATA[<p>A generative piece featuring a masked one.</p>]]>
    </summary>
    <title>Sea Masked One</title>
    <updated>2026-06-28T19:47:07.316Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="writing" scheme="https://gregtatum.com/category/writing/"/>
    <category term="writing" scheme="https://gregtatum.com/tag/writing/"/>
    <category term="programming" scheme="https://gregtatum.com/tag/programming/"/>
    <category term="internationalization" scheme="https://gregtatum.com/tag/internationalization/"/>
    <category term="i18n" scheme="https://gregtatum.com/tag/i18n/"/>
    <category term="unicode" scheme="https://gregtatum.com/tag/unicode/"/>
    <id>https://gregtatum.com/writing/2021/encoding-text-utf-32-utf-16-unicode/</id>
    <link href="https://gregtatum.com/writing/2021/encoding-text-utf-32-utf-16-unicode/"/>
    <published>2021-08-19T19:00:00.000Z</published>
    <summary>
      <![CDATA[<p>The standard for how to represent human writing for many years was ASCII, or American Standard Code for Information Interchange. This rep]]>
    </summary>
    <title>Encoding Text, UTF-32 and UTF-16 – How Unicode Works (Part 1)</title>
    <updated>2026-06-28T19:47:07.330Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="interactive" scheme="https://gregtatum.com/category/interactive/"/>
    <category term="canvas" scheme="https://gregtatum.com/tag/canvas/"/>
    <category term="webgl" scheme="https://gregtatum.com/tag/webgl/"/>
    <category term="2d" scheme="https://gregtatum.com/tag/2d/"/>
    <category term="sessions" scheme="https://gregtatum.com/tag/sessions/"/>
    <category term="3d" scheme="https://gregtatum.com/tag/3d/"/>
    <category term="three.js" scheme="https://gregtatum.com/tag/three-js/"/>
    <id>https://gregtatum.com/interactive/2021/canvas-013-synthwave-vibes/</id>
    <link href="https://gregtatum.com/interactive/2021/canvas-013-synthwave-vibes/"/>
    <published>2021-02-15T22:41:25.000Z</published>
    <summary>
      <![CDATA[<p>I decided I wanted to do a bit of fun 3d work. This rendering combines three.js with 2d canvas rendering.</p>
<h3 id="Credits"><a href="#]]>
    </summary>
    <title>Synthwave Vibes – Canvas Nº013</title>
    <updated>2026-06-28T19:47:07.314Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="interactive" scheme="https://gregtatum.com/category/interactive/"/>
    <category term="canvas" scheme="https://gregtatum.com/tag/canvas/"/>
    <category term="2d" scheme="https://gregtatum.com/tag/2d/"/>
    <category term="sessions" scheme="https://gregtatum.com/tag/sessions/"/>
    <id>https://gregtatum.com/interactive/2021/canvas-012-draw-walkers/</id>
    <link href="https://gregtatum.com/interactive/2021/canvas-012-draw-walkers/"/>
    <published>2021-02-15T17:28:05.000Z</published>
    <summary>
      <![CDATA[<p>This is a variant of the draw explosions sessions.</p>]]>
    </summary>
    <title>Draw Walkers – Canvas Nº012</title>
    <updated>2026-06-28T19:47:07.314Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="interactive" scheme="https://gregtatum.com/category/interactive/"/>
    <category term="canvas" scheme="https://gregtatum.com/tag/canvas/"/>
    <category term="2d" scheme="https://gregtatum.com/tag/2d/"/>
    <category term="sessions" scheme="https://gregtatum.com/tag/sessions/"/>
    <id>https://gregtatum.com/interactive/2021/canvas-011-draw-explosions/</id>
    <link href="https://gregtatum.com/interactive/2021/canvas-011-draw-explosions/"/>
    <published>2021-02-13T17:41:51.000Z</published>
    <summary>
      <![CDATA[<p>This is based off of the previous canvas session, but this time with drawn interaction.</p>]]>
    </summary>
    <title>Draw Explosions – Canvas Nº011</title>
    <updated>2026-06-28T19:47:07.313Z</updated>
  </entry>
  <entry>
    <author>
      <name>Greg Tatum</name>
    </author>
    <category term="interactive" scheme="https://gregtatum.com/category/interactive/"/>
    <category term="canvas" scheme="https://gregtatum.com/tag/canvas/"/>
    <category term="2d" scheme="https://gregtatum.com/tag/2d/"/>
    <category term="sessions" scheme="https://gregtatum.com/tag/sessions/"/>
    <id>https://gregtatum.com/interactive/2021/canvas-010-sphere-swarm/</id>
    <link href="https://gregtatum.com/interactive/2021/canvas-010-sphere-swarm/"/>
    <published>2021-02-12T03:37:36.000Z</published>
    <summary>
      <![CDATA[<p>A swarm of spheres.</p>]]>
    </summary>
    <title>Sphere Swarm – Canvas Nº010</title>
    <updated>2026-06-28T19:47:07.313Z</updated>
  </entry>
</feed>
