<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="https://riceball.com/wp-content/plugins/pretty-rss-feeds/xslt/pretty-feed.xsl" type="text/xsl" media="screen" ?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Uncategorized - 🍙</title>
	<atom:link href="https://riceball.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>https://riceball.com</link>
	<description></description>
	<lastBuildDate>Mon, 19 Oct 2026 08:36:04 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://riceball.com/wp-content/uploads/sites/2/2025/10/onigiri-150x150.png</url>
	<title>Uncategorized - 🍙</title>
	<link>https://riceball.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>In These Times</title>
		<link>https://riceball.com/2026/10/19/in-these-times/</link>
					<comments>https://riceball.com/2026/10/19/in-these-times/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 19 Oct 2026 08:35:24 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Progressive News]]></category>
		<guid isPermaLink="false">https://riceball.com/?p=31120</guid>

					<description><![CDATA[<p>URL: https://inthesetimes.com/ RSS:</p>
<p>The post <a href="https://riceball.com/2026/10/19/in-these-times/">In These Times</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-c020569f wp-block-group-is-layout-flex">
<p class="wp-block-paragraph"><strong>URL</strong>: <a href="https://inthesetimes.com/">https://inthesetimes.com/</a></p>



<p class="wp-block-paragraph"><strong>RSS</strong>:</p>


<div class="components-placeholder"><div class="notice notice-error">An error has occurred, which probably means the feed is down. Try again later.</div></div></div><p>The post <a href="https://riceball.com/2026/10/19/in-these-times/">In These Times</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://riceball.com/2026/10/19/in-these-times/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Left Voice</title>
		<link>https://riceball.com/2026/10/19/left-voice/</link>
					<comments>https://riceball.com/2026/10/19/left-voice/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 19 Oct 2026 08:29:43 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Progressive News]]></category>
		<guid isPermaLink="false">https://riceball.com/?p=31118</guid>

					<description><![CDATA[<p>URL: https://www.leftvoice.org/ RSS: https://www.leftvoice.org/feed</p>
<p>The post <a href="https://riceball.com/2026/10/19/left-voice/">Left Voice</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-c020569f wp-block-group-is-layout-flex">
<p class="wp-block-paragraph"><strong>URL</strong>: <a href="https://www.leftvoice.org/">https://www.leftvoice.org/</a></p>



<p class="wp-block-paragraph"><strong>RSS</strong>: <a href="https://www.leftvoice.org/feed">https://www.leftvoice.org/feed</a></p>


<ul class="wp-block-rss"><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https://www.leftvoice.org/haley-stevens-endorsement-of-republican-mike-rogers-signals-deep-divide-within-the-democratic-party/'>Haley Stevens’ Endorsement of Republican Mike Rogers Signals Deep Divide within the Democratic Party</a></div></li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https://www.leftvoice.org/gen-z-shakes-up-europe-a-portrait-of-a-generation-storming-heaven/'>Gen Z Shakes Up Europe: A Portrait of a Generation Storming Heaven</a></div></li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https://www.leftvoice.org/the-fragmentation-of-maga-and-the-crisis-of-trumpism/'>The Fragmentation of MAGA and the Crisis of Trumpism</a></div></li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https://www.leftvoice.org/sarah-dowd-reinstated/'>Nurses Fought Back and Won: Sarah Dowd Reinstated With Full Back Pay</a></div></li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https://www.leftvoice.org/ballot-questions-massachusetts-workers-democracy/'>Ballot Questions in Massachusetts Showcase Need for Workers Democracy</a></div></li></ul></div><p>The post <a href="https://riceball.com/2026/10/19/left-voice/">Left Voice</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://riceball.com/2026/10/19/left-voice/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>geese</title>
		<link>https://riceball.com/2026/10/19/geese/</link>
					<comments>https://riceball.com/2026/10/19/geese/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 19 Oct 2026 08:23:34 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Progressive News]]></category>
		<guid isPermaLink="false">https://riceball.com/?p=31116</guid>

					<description><![CDATA[<p>URL: https://geesemag.com/ RSS: https://geesemag.com/feed.xml</p>
<p>The post <a href="https://riceball.com/2026/10/19/geese/">geese</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-c020569f wp-block-group-is-layout-flex">
<p class="wp-block-paragraph"><strong>URL</strong>: <a href="https://geesemag.com/">https://geesemag.com/</a></p>



<p class="wp-block-paragraph"><strong>RSS</strong>: <a href="https://geesemag.com/feed.xml">https://geesemag.com/feed.xml</a></p>


<ul class="wp-block-rss"><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https://geesemag.com/articles/yes-communism-part-2-communism-is-more-american-than-trump'>Yes, Communism! Part II: Communism is more American than Trump </a></div></li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https://geesemag.com/articles/yes-communism-an-american-communist-talks-back'>Yes, Communism! Part I: An American Communist Talks Back</a></div></li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https://geesemag.com/articles/carceral-municipalism-and-the-socialist-lefts-rehabilitation-of-the-prison-industrial-complex-part-2'>Carceral Municipalism and the Socialist Left’s Rehabilitation of the Prison-Industrial Complex (Part 2)</a></div></li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https://geesemag.com/articles/carceral-municipalism-and-the-socialist-lefts-rehabilitation-of-the-prison-industrial-complex-part-1'>Carceral Municipalism and the Socialist Left’s Rehabilitation of the Prison-Industrial Complex (Part 1)</a></div></li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https://geesemag.com/articles/to-steal-an-election-the-war-on-mail-in-voting'>To Steal an Election: The War on Mail-In Voting</a></div></li></ul></div><p>The post <a href="https://riceball.com/2026/10/19/geese/">geese</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://riceball.com/2026/10/19/geese/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Jacobin</title>
		<link>https://riceball.com/2026/10/18/jacobin/</link>
					<comments>https://riceball.com/2026/10/18/jacobin/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sun, 18 Oct 2026 08:39:55 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Progressive News]]></category>
		<guid isPermaLink="false">https://riceball.com/?p=31111</guid>

					<description><![CDATA[<p>URL: https://jacobin.com/ RSS: https://jacobin.com/feed</p>
<p>The post <a href="https://riceball.com/2026/10/18/jacobin/">Jacobin</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-c020569f wp-block-group-is-layout-flex">
<p class="wp-block-paragraph"><strong>URL</strong>: <a href="https://jacobin.com/">https://jacobin.com/</a></p>



<p class="wp-block-paragraph"><strong>RSS</strong>: <a href="https://jacobin.com/feed">https://jacobin.com/feed</a></p>


<ul class="wp-block-rss"><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https://jacobin.com/2026/11/pakistan-climate-change-glaciers-flooding'>Life Beneath the Melting Glaciers</a></div></li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https://jacobin.com/2026/11/unions-worker-organizing-nyc-mamdani'>How Workers Can Govern in Zohran Mamdani’s New York</a></div></li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https://jacobin.com/2026/11/malm-rooney-palestine-labour-repression'>Let Andreas Malm Speak</a></div></li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https://jacobin.com/2026/11/california-seiu-state-strike-newsom'>100,000 California State Workers Struck Last Month</a></div></li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https://jacobin.com/2026/11/midterms-us-politics-elections-reform'>The US Electorate Is Permanently Mobilized and Unable to Move</a></div></li></ul></div><p>The post <a href="https://riceball.com/2026/10/18/jacobin/">Jacobin</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://riceball.com/2026/10/18/jacobin/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ChatGPT: Language Features that Help LLMs</title>
		<link>https://riceball.com/2026/09/30/chatgpt-language-features-that-help-llms/</link>
					<comments>https://riceball.com/2026/09/30/chatgpt-language-features-that-help-llms/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 30 Sep 2026 11:30:49 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://riceball.com/?p=30659</guid>

					<description><![CDATA[<p>Yes. If you&#8217;re thinking about programming-language design specifically to make LLM-generated code more likely to be correct, there is a very interesting set of features. The key idea is: Move as much of the correctness problem as possible from &#8220;the LLM has to remember to do it right&#8221; into &#8220;the language makes wrong programs difficult [&#8230;]</p>
<p>The post <a href="https://riceball.com/2026/09/30/chatgpt-language-features-that-help-llms/">ChatGPT: Language Features that Help LLMs</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">Yes. If you&#8217;re thinking about <strong>programming-language design specifically to make LLM-generated code more likely to be correct</strong>, there is a very interesting set of features. The key idea is:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Move as much of the correctness problem as possible from &#8220;the LLM has to remember to do it right&#8221; into &#8220;the language makes wrong programs difficult or impossible to express.&#8221;</strong></p>
</blockquote>



<p class="wp-block-paragraph">Recent research supports this direction: type-constrained generation, for example, has been shown to substantially reduce compilation errors in LLM-generated TypeScript and improve functional correctness. (<a href="https://doi.org/10.1145/3729274?utm_source=chatgpt.com">DOI</a>)</p>



<h3 class="wp-block-heading">Features I&#8217;d prioritize</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Language feature</th><th>What it prevents</th><th>Why it helps an LLM</th></tr></thead><tbody><tr><td><strong>Strong static types</strong></td><td>Wrong kinds of values</td><td>Compiler catches many mistakes</td></tr><tr><td><strong>Type inference</strong></td><td>Verbose annotations</td><td>Gives the LLM safety without making code cumbersome</td></tr><tr><td><strong>Algebraic data types</strong></td><td>Invalid states</td><td>Forces explicit representation of alternatives</td></tr><tr><td><strong>Exhaustive pattern matching</strong></td><td>Forgotten cases</td><td>Compiler tells the LLM what it forgot</td></tr><tr><td><strong>Option/Maybe types</strong></td><td>Null-pointer errors</td><td>Makes absence explicit</td></tr><tr><td><strong>Result/error types</strong></td><td>Ignored errors</td><td>Forces error handling</td></tr><tr><td><strong>Immutable-by-default data</strong></td><td>Accidental mutation</td><td>Reduces hidden state</td></tr><tr><td><strong>Ownership/borrowing</strong></td><td>Lifetime/aliasing bugs</td><td>Compiler handles difficult reasoning</td></tr><tr><td><strong>Effect types</strong></td><td>Hidden I/O, mutation, exceptions</td><td>Makes side effects visible</td></tr><tr><td><strong>Refinement types</strong></td><td>Invalid values</td><td>Compiler can enforce properties such as <code>x &gt; 0</code></td></tr><tr><td><strong>Contracts/pre/postconditions</strong></td><td>Violated assumptions</td><td>Converts requirements into checkable obligations</td></tr><tr><td><strong>Units/types for quantities</strong></td><td>Unit mismatches</td><td>Prevents e.g. meters + seconds</td></tr><tr><td><strong>Restricted implicit conversions</strong></td><td>Subtle coercion bugs</td><td>Makes transformations explicit</td></tr><tr><td><strong>Simple, regular syntax</strong></td><td>Syntax mistakes</td><td>Easier token prediction</td></tr><tr><td><strong>One obvious idiom</strong></td><td>API/design ambiguity</td><td>Reduces the number of plausible-but-wrong solutions</td></tr><tr><td><strong>Deterministic semantics</strong></td><td>Surprising behavior</td><td>Easier for the model to reason about</td></tr><tr><td><strong>Compile-time verification</strong></td><td>Logic errors</td><td>Gives the LLM immediate feedback</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">The really interesting ones are the last few layers.</p>



<h3 class="wp-block-heading">1. Algebraic data types + exhaustive matching</h3>



<p class="wp-block-paragraph">Instead of:</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">status = <span class="hljs-number">0</span>   <span class="hljs-comment">// maybe pending</span>
status = <span class="hljs-number">1</span>   <span class="hljs-comment">// maybe success</span>
status = <span class="hljs-number">2</span>   <span class="hljs-comment">// maybe failure</span></code></span></pre>


<p class="wp-block-paragraph">you have:</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">Status =
    | Pending
    | Success(Data)
    | Failure(<span class="hljs-built_in">Error</span>)</code></span></pre>


<p class="wp-block-paragraph">Then:</p>


<pre class="wp-block-code"><span><code class="hljs">match status:
    Pending       -&gt; ...
    Success(data) -&gt; ...
    Failure(err)  -&gt; ...</code></span></pre>


<p class="wp-block-paragraph">If the LLM adds another variant, the compiler can point out every place that needs updating.</p>



<p class="wp-block-paragraph">This creates a very useful <strong>feedback loop for an LLM</strong>:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">model makes change → compiler identifies consequences → model fixes consequences.</p>
</blockquote>



<p class="wp-block-paragraph">That is much better than expecting the model to mentally discover every consequence.</p>



<h3 class="wp-block-heading">2. Refinement types</h3>



<p class="wp-block-paragraph">This is even more powerful.</p>



<p class="wp-block-paragraph">Instead of:</p>


<pre class="wp-block-code"><span><code class="hljs language-http"><span class="hljs-attribute">age</span>: Int</code></span></pre>


<p class="wp-block-paragraph">you could have:</p>


<pre class="wp-block-code"><span><code class="hljs language-http"><span class="hljs-attribute">age</span>: Int where 0 &lt;= age &lt;= 150</code></span></pre>


<p class="wp-block-paragraph">or:</p>


<pre class="wp-block-code"><span><code class="hljs">NonZeroInt</code></span></pre>


<p class="wp-block-paragraph">or:</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">Index</span>(<span class="hljs-selector-tag">array</span><span class="hljs-selector-class">.length</span>)</code></span></pre>


<p class="wp-block-paragraph">Now the language carries some of the <em>meaning</em> of the program, rather than merely its data representation.</p>



<p class="wp-block-paragraph">Refinement types explicitly add logical predicates to ordinary types, allowing the type checker to enforce properties about values. (<a href="https://doi.org/10.1145%2F3674657?utm_source=chatgpt.com">DOI</a>)</p>



<p class="wp-block-paragraph">This is particularly attractive for LLMs because it turns:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">&#8220;Remember that this value must never be zero.&#8221;</p>
</blockquote>



<p class="wp-block-paragraph">into:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">&#8220;The compiler won&#8217;t accept a value that violates this.&#8221;</p>
</blockquote>



<h3 class="wp-block-heading">3. Contracts</h3>



<p class="wp-block-paragraph">You can go another step:</p>


<pre class="wp-block-code"><span><code class="hljs">fn divide(a: Int, b: Int) -&gt; Int
    requires b != 0
    ensures result * b == a</code></span></pre>


<p class="wp-block-paragraph">Now the LLM doesn&#8217;t have to reason solely from comments and function names.</p>



<p class="wp-block-paragraph">The <strong>interface itself describes the correctness conditions</strong>.</p>



<p class="wp-block-paragraph">Some newer language experiments explicitly combine contracts, refinement types, ADTs, and compiler verification for this purpose. (<a href="https://github.com/aallan/vera?utm_source=chatgpt.com">GitHub</a>)</p>



<h3 class="wp-block-heading">4. Explicit effects</h3>



<p class="wp-block-paragraph">This is an underrated one.</p>



<p class="wp-block-paragraph">Imagine:</p>


<pre class="wp-block-code"><span><code class="hljs">fn calculate(x: Int) -&gt; Int</code></span></pre>


<p class="wp-block-paragraph">versus:</p>


<pre class="wp-block-code"><span><code class="hljs">fn calculate(x: Int) -&gt; Int
    effects { IO, Database }</code></span></pre>


<p class="wp-block-paragraph">The second tells the LLM that calling this function isn&#8217;t just computation—it has externally visible consequences.</p>



<p class="wp-block-paragraph">You could potentially distinguish:</p>


<pre class="wp-block-code"><span><code class="hljs">pure
IO
network
filesystem
database
mutation</code></span></pre>


<p class="wp-block-paragraph">This makes <strong>action at a distance</strong> much harder.</p>



<p class="wp-block-paragraph">Several newer AI-oriented languages are explicitly experimenting with this sort of design, including explicit effects, ownership, and algebraic errors. (<a href="https://github.com/promise-language/promise?utm_source=chatgpt.com">GitHub</a>)</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">The really interesting design principle</h2>



<p class="wp-block-paragraph">I would actually organize the language around a hierarchy:</p>


<pre class="wp-block-code"><span><code class="hljs">Syntax
   ↓
Types
   ↓
Data invariants
   ↓
Resource invariants
   ↓
Effect invariants
   ↓
Behavioral contracts
   ↓
Tests / formal verification</code></span></pre>


<p class="wp-block-paragraph">At each level, the language gives the LLM <strong>more information and fewer ways to be wrong</strong>.</p>



<p class="wp-block-paragraph">For example:</p>


<pre class="wp-block-code"><span><code class="hljs">Int</code></span></pre>


<p class="wp-block-paragraph">is weak.</p>


<pre class="wp-block-code"><span><code class="hljs">NonZeroInt</code></span></pre>


<p class="wp-block-paragraph">is stronger.</p>


<pre class="wp-block-code"><span><code class="hljs">UserId</code></span></pre>


<p class="wp-block-paragraph">is stronger still.</p>


<pre class="wp-block-code"><span><code class="hljs">ExistingUserId</code></span></pre>


<p class="wp-block-paragraph">is stronger.</p>



<p class="wp-block-paragraph">And:</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">ExistingUserId</span>
    <span class="hljs-selector-tag">requires</span> <span class="hljs-selector-tag">user</span><span class="hljs-selector-class">.exists</span></code></span></pre>


<p class="wp-block-paragraph">starts getting into actual behavioral verification.</p>



<h3 class="wp-block-heading">There&#8217;s another feature I&#8217;d put unusually high on the list</h3>



<p class="wp-block-paragraph"><strong>Make the compiler&#8217;s error messages extremely machine-readable.</strong></p>



<p class="wp-block-paragraph">For an LLM, this:</p>


<pre class="wp-block-code"><span><code class="hljs language-php">error&#91;E042]:
  expected: NonEmptyList&lt;User&gt;
  found: <span class="hljs-keyword">List</span>&lt;User&gt;
  at: users&#91;<span class="hljs-number">37</span>]
  reason: <span class="hljs-keyword">list</span> may be <span class="hljs-keyword">empty</span>
  suggested fixes:
    - check <span class="hljs-keyword">for</span> <span class="hljs-keyword">empty</span> <span class="hljs-keyword">list</span>
    - <span class="hljs-keyword">use</span> `<span class="hljs-title">head</span>?`
    - <span class="hljs-title">establish</span> `<span class="hljs-title">length</span> &gt; 0`</code></span></pre>


<p class="wp-block-paragraph">is vastly more useful than:</p>


<pre class="wp-block-code"><span><code class="hljs">Type mismatch.</code></span></pre>


<p class="wp-block-paragraph">In other words, <strong>the compiler becomes part of the LLM&#8217;s reasoning system</strong>.</p>



<p class="wp-block-paragraph">That&#8217;s an important distinction. You don&#8217;t necessarily need a language where the LLM magically writes perfect code. You want a language where:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>the LLM can cheaply propose code, and the language can cheaply tell it exactly what is wrong.</strong></p>
</blockquote>



<p class="wp-block-paragraph">Research on constrained decoding is moving in essentially this direction: rather than merely asking an LLM to generate valid code probabilistically, the generation process itself can be constrained by the language&#8217;s formal rules. One 2025 study found that type-constrained decoding reduced compilation errors by more than half. (<a href="https://doi.org/10.1145/3729274?utm_source=chatgpt.com">DOI</a>)</p>



<h3 class="wp-block-heading">If I were designing an &#8220;LLM-native&#8221; language</h3>



<p class="wp-block-paragraph">I&#8217;d probably combine:</p>



<p class="wp-block-paragraph"><strong>Rust</strong></p>



<ul class="wp-block-list">
<li>ownership</li>



<li>borrowing</li>



<li>strong static types</li>
</ul>



<p class="wp-block-paragraph"><strong>Haskell/ML</strong></p>



<ul class="wp-block-list">
<li>algebraic data types</li>



<li>pattern matching</li>



<li>type inference</li>
</ul>



<p class="wp-block-paragraph"><strong>Idris/Liquid Haskell-style systems</strong></p>



<ul class="wp-block-list">
<li>dependent/refinement types</li>



<li>proofs</li>
</ul>



<p class="wp-block-paragraph"><strong>Effect systems</strong></p>



<ul class="wp-block-list">
<li>explicit side effects</li>
</ul>



<p class="wp-block-paragraph"><strong>Design by contract</strong></p>



<ul class="wp-block-list">
<li>preconditions/postconditions</li>
</ul>



<p class="wp-block-paragraph"><strong>LLM-specific additions</strong></p>



<ul class="wp-block-list">
<li>extremely regular syntax</li>



<li>minimal number of equivalent idioms</li>



<li>highly structured compiler errors</li>



<li>machine-readable AST</li>



<li>automatic test generation</li>



<li>incremental compilation</li>



<li>explicit interfaces</li>



<li>APIs whose types encode as much semantic information as possible</li>
</ul>



<p class="wp-block-paragraph">There are already projects explicitly exploring this premise—for example, <strong>Almide</strong> describes itself as a statically typed language optimized around LLM code generation, while <strong>Promise</strong> is designed around explicit ownership, effects, errors, and &#8220;one obvious way&#8221; to express things. (<a href="https://github.com/almide/almide?utm_source=chatgpt.com">GitHub</a>)</p>



<p class="wp-block-paragraph"><strong>The deeper idea is that programming languages for LLMs may want to optimize not for human typing speed, but for the ratio of <em>semantic information conveyed per token</em> and <em>incorrect programs rejected by the compiler</em>.</strong></p>



<p class="wp-block-paragraph">That&#8217;s a potentially very different programming-language design target from conventional languages.</p>



<p class="wp-block-paragraph">Yes. I’d expand the comparison to include the major mainstream languages plus several languages that are especially interesting from the <strong>“LLM-friendly language design”</strong> perspective. The 2025 Stack Overflow survey includes Python, JavaScript, SQL, Java, C++, C#, TypeScript, PHP, Rust, Go, Lua, Kotlin, Swift, Ruby, Dart, and many others among its surveyed languages. (<a href="https://survey.stackoverflow.co/2025/technology?utm_source=chatgpt.com">Stack Overflow Developer Survey</a>)</p>



<p class="wp-block-paragraph">Here is the table in the format you requested. <strong>“Has it” means the language provides the feature in a meaningful built-in language/type-system form; “doesn&#8217;t” means it lacks it or requires a library/convention rather than the language enforcing it.</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Language features</th><th>Language has it</th><th>Language doesn&#8217;t have it</th></tr></thead><tbody><tr><td>Strong static typing</td><td>Rust, C++, C#, Java, TypeScript, Go, Kotlin, Swift, Elm, Haskell, F#, OCaml, Scala, Dart, Zig</td><td>Python, JavaScript, Lua, Ruby, PHP</td></tr><tr><td>Type inference</td><td>Rust, C++, C#, Java, TypeScript, Go, Kotlin, Swift, Elm, Haskell, F#, OCaml, Scala, Dart, Zig</td><td>C, PHP, Lua, JavaScript</td></tr><tr><td>Algebraic data types</td><td>Rust, Elm, Haskell, F#, OCaml, Scala, Swift, Kotlin</td><td>C, C++, Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Exhaustive pattern matching</td><td>Rust, Elm, Haskell, F#, OCaml, Scala, Swift, Kotlin</td><td>C, C++, Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Option/Maybe type</td><td>Rust, Elm, Haskell, F#, OCaml, Scala, Swift, Kotlin, Java, C#, TypeScript</td><td>C, C++, Go, Python, JavaScript, Lua, Ruby, PHP</td></tr><tr><td>Result/error type</td><td>Rust, Elm, Haskell, F#, OCaml, Swift, Scala</td><td>C, C++, Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Null safety enforced by type system</td><td>Rust, Elm, Kotlin, Swift, Dart, C#, TypeScript*</td><td>C, C++, Java, Go, Python, JavaScript, Lua, Ruby, PHP</td></tr><tr><td>Immutable-by-default</td><td>Elm, Haskell, F#, OCaml</td><td>Rust, C++, C#, Java, TypeScript, Go, Python, JavaScript, Lua, Ruby, PHP</td></tr><tr><td>Immutable data structures built into language</td><td>Elm, Haskell, Clojure</td><td>Rust, C, C++, Java, C#, Go, Python, JavaScript, Lua, Ruby, PHP</td></tr><tr><td>Ownership system</td><td>Rust</td><td>C, C++, C#, Java, TypeScript, Go, Python, JavaScript, Lua, Ruby, PHP</td></tr><tr><td>Borrow checker</td><td>Rust</td><td>C, C++, C#, Java, TypeScript, Go, Python, JavaScript, Lua, Ruby, PHP</td></tr><tr><td>Automatic memory management</td><td>Java, C#, Go, Python, JavaScript, TypeScript, Kotlin, Swift, Dart, Ruby, PHP, Lua, Haskell, Elm, Scala, Clojure</td><td>C, C++, Rust, Zig</td></tr><tr><td>Manual memory management</td><td>C, C++, Zig</td><td>Rust, Java, C#, Go, Python, JavaScript, TypeScript, Kotlin, Swift, Dart, Ruby, PHP, Lua, Elm, Haskell</td></tr><tr><td>Compile-time bounds/safety checking</td><td>Rust, Ada, SPARK</td><td>C, C++, C#, Java, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Refinement types</td><td>Liquid Haskell, F*, Idris, Ada/SPARK</td><td>C, C++, Rust, C#, Java, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP, Elm</td></tr><tr><td>Dependent types</td><td>Idris, Agda, Lean, Coq</td><td>C, C++, Rust, C#, Java, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP, Elm</td></tr><tr><td>Design-by-contract</td><td>Eiffel, Ada/SPARK, Dafny, Whiley</td><td>C, C++, Rust, C#, Java, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP, Elm</td></tr><tr><td>Formal verification facilities</td><td>Lean, Coq, Isabelle, F*, Dafny, SPARK, Idris</td><td>C, C++, Rust, C#, Java, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP, Elm</td></tr><tr><td>Compile-time assertions</td><td>C, C++, Rust, C#, D, Swift, Zig</td><td>Python, JavaScript, TypeScript, Lua, Ruby, PHP, Java, Go</td></tr><tr><td>Unit/dimension types</td><td>F#, Ada, Haskell libraries, Rust libraries, Scala libraries</td><td>C, C++, Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP, Elm</td></tr><tr><td>Explicit effects system</td><td>Haskell, Koka, Eff, Unison, OCaml (effect handlers)</td><td>C, C++, Rust, C#, Java, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP, Elm</td></tr><tr><td>Explicit exception/effect distinction</td><td>Haskell, Koka, Eff</td><td>C, C++, Java, C#, Python, JavaScript, TypeScript, Ruby, PHP, Go, Rust</td></tr><tr><td>Pure functions encouraged/enforced</td><td>Haskell, Elm</td><td>C, C++, Rust, C#, Java, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Referential transparency</td><td>Haskell, Elm</td><td>C, C++, Rust, C#, Java, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Restricted implicit conversions</td><td>Rust, Go, Ada, Haskell, Elm</td><td>C, C++, JavaScript, PHP, Python, Ruby</td></tr><tr><td>No implicit null values</td><td>Rust, Elm</td><td>C, C++, Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Exhaustive enum handling</td><td>Rust, Swift, Kotlin, Elm, Haskell, F#, OCaml</td><td>C, C++, Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Explicit visibility/access control</td><td>C++, C#, Java, Rust, Kotlin, Swift, Go, Python, TypeScript, Ruby, PHP</td><td>Lua, JavaScript</td></tr><tr><td>Structural typing</td><td>TypeScript, Go</td><td>C, C++, Rust, Java, C#, Kotlin, Swift</td></tr><tr><td>Nominal typing</td><td>Rust, C++, Java, C#, Kotlin, Swift, Go, Haskell, Elm</td><td>TypeScript, Python, JavaScript, Lua, Ruby</td></tr><tr><td>Interfaces/traits/typeclasses</td><td>Rust, Haskell, Go, Java, C#, TypeScript, Swift, Kotlin, Scala, F#</td><td>C, C++, Python, JavaScript, Lua, Ruby, PHP</td></tr><tr><td>Generics</td><td>C++, Rust, Java, C#, Go, TypeScript, Swift, Kotlin, Scala, Haskell, F#, Dart</td><td>C, Python, JavaScript, Lua, Ruby, PHP</td></tr><tr><td>Compile-time metaprogramming</td><td>C++, Rust, Haskell, Scala, Lisp/Clojure, Nim, Zig</td><td>Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Macros</td><td>C, C++, Rust, Lisp/Clojure, Elixir, Scala, Nim</td><td>Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Hygienic macros</td><td>Rust, Scheme/Racket, Clojure, Elixir</td><td>C, C++, Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Algebraic effects</td><td>Koka, Eff, Unison, OCaml</td><td>C, C++, Rust, Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Actor/concurrency model</td><td>Erlang, Elixir, Pony, Scala/Akka</td><td>C, C++, Rust, Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Lightweight concurrency primitives</td><td>Go, Erlang, Elixir, Kotlin, Rust, C#, Java</td><td>C, C++, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Compile-time race/data-race prevention</td><td>Rust</td><td>C, C++, Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Memory safety enforced by compiler</td><td>Rust, Ada/SPARK, Swift (in significant respects)</td><td>C, C++, Go, Java, C#, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Deterministic destruction/resource management</td><td>C++, Rust, Swift</td><td>Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>RAII</td><td>C++, Rust</td><td>C, Java, C#, Go, Python, JavaScript, TypeScript, Kotlin, Swift, Lua, Ruby, PHP</td></tr><tr><td>Linear/affine types</td><td>Rust, Haskell extensions, Clean, Linear Haskell</td><td>C, C++, Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Units of ownership/resources tracked by type system</td><td>Rust, Linear Haskell, Clean</td><td>C, C++, Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>Compiler-enforced initialization</td><td>Rust, C#, Java, Kotlin, Swift, Go</td><td>C, C++, Python, JavaScript, Lua, Ruby, PHP</td></tr><tr><td>Compiler-enforced unreachable-state detection</td><td>Rust, Elm, Haskell, F#, OCaml</td><td>C, C++, Java, C#, Go, Python, JavaScript, TypeScript, Lua, Ruby, PHP</td></tr><tr><td>First-class functions</td><td>Python, JavaScript, TypeScript, Rust, C++, C#, Java, Go, Kotlin, Swift, Elm, Haskell, F#, OCaml, Scala, Ruby, Lua, PHP</td><td>C</td></tr><tr><td>Lambda expressions</td><td>C++, Rust, C#, Java, Go, Python, JavaScript, TypeScript, Kotlin, Swift, Elm, Haskell, F#, OCaml, Scala, Ruby, Lua, PHP</td><td>C</td></tr><tr><td>Simple/regular syntax</td><td>Go, Elm, Lua, Python, Haskell</td><td>C++, C, Rust, Scala, C#, Java, JavaScript, PHP</td></tr><tr><td>Single obvious idiom encouraged by language</td><td>Go, Elm, Python</td><td>C++, C, JavaScript, PHP, Perl</td></tr><tr><td>Machine-readable AST/tooling</td><td>Most modern languages</td><td>—</td></tr><tr><td>Compiler diagnostics designed for automated tooling</td><td>Rust, Elm, Haskell, TypeScript, Swift, Kotlin, modern C#/Java</td><td>Older C/C++ toolchains and many dynamically typed languages</td></tr><tr><td>Static analysis ecosystem</td><td>Rust, C++, C#, Java, TypeScript, Go, Kotlin, Swift, Python</td><td>Lua, PHP, Ruby and others have varying degrees</td></tr><tr><td>Language-server/type-aware tooling</td><td>Rust, C++, C#, Java, TypeScript, Go, Kotlin, Swift, Python, Elm</td><td>Some smaller/older languages have less mature tooling</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">* TypeScript&#8217;s <code>strictNullChecks</code> can provide strong null checking, but JavaScript interoperability and escape hatches mean it isn&#8217;t equivalent to Rust/Elm&#8217;s guarantees.</p>



<h3 class="wp-block-heading">The languages I&#8217;d include in the experiment</h3>



<p class="wp-block-paragraph">For what you&#8217;re investigating, I&#8217;d divide them into four groups:</p>



<p class="wp-block-paragraph"><strong>Mainstream languages</strong></p>



<ul class="wp-block-list">
<li>Python</li>



<li>JavaScript</li>



<li>TypeScript</li>



<li>C</li>



<li>C++</li>



<li>Java</li>



<li>C#</li>



<li>Go</li>



<li>Rust</li>



<li>Swift</li>



<li>Kotlin</li>



<li>PHP</li>



<li>Ruby</li>



<li>Dart</li>



<li>Lua</li>
</ul>



<p class="wp-block-paragraph"><strong>Functional/type-system languages</strong></p>



<ul class="wp-block-list">
<li>Elm</li>



<li>Haskell</li>



<li>F#</li>



<li>OCaml</li>



<li>Scala</li>



<li>Clojure</li>



<li>Elixir</li>



<li>Erlang</li>
</ul>



<p class="wp-block-paragraph"><strong>Systems/newer languages</strong></p>



<ul class="wp-block-list">
<li>Zig</li>



<li>Nim</li>



<li>D</li>



<li>Crystal</li>
</ul>



<p class="wp-block-paragraph"><strong>Languages specifically interesting for extreme correctness</strong></p>



<ul class="wp-block-list">
<li>Ada/SPARK</li>



<li>Idris</li>



<li>Lean</li>



<li>Coq</li>



<li>F*</li>



<li>Dafny</li>



<li>Liquid Haskell</li>



<li>Koka</li>



<li>Pony</li>
</ul>



<p class="wp-block-paragraph">The distinction is important because <strong>the most popular languages aren&#8217;t necessarily the most useful ones for investigating LLM-oriented language design</strong>. For example, Rust is especially interesting because its ownership and borrow-checking system gives the compiler substantial ability to reject incorrect programs; Stack Overflow&#8217;s 2025 survey also reports Rust as the most admired programming language. (<a href="https://survey.stackoverflow.co/2025/technology?utm_source=chatgpt.com">Stack Overflow Developer Survey</a>)</p>



<p class="wp-block-paragraph">If our ultimate goal is to answer <strong>“Which language features actually make LLM-generated programs more correct?”</strong>, I&#8217;d narrow the next table to perhaps <strong>25–30 features</strong> and put <strong>each language as a column</strong>. That would produce a much more useful matrix:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Feature</th><th>Python</th><th>Rust</th><th>C++</th><th>TypeScript</th><th>JavaScript</th><th>Elm</th><th>Go</th><th>&#8230;</th></tr></thead><tbody><tr><td>Static typing</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>—</td><td>✓</td><td>✓</td><td>&#8230;</td></tr><tr><td>Algebraic types</td><td>—</td><td>✓</td><td>—</td><td>—</td><td>—</td><td>✓</td><td>—</td><td>&#8230;</td></tr><tr><td>Exhaustive matching</td><td>—</td><td>✓</td><td>—</td><td>—</td><td>—</td><td>✓</td><td>—</td><td>&#8230;</td></tr><tr><td>Ownership</td><td>—</td><td>✓</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>&#8230;</td></tr><tr><td>Refinement types</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>&#8230;</td></tr><tr><td>Contracts</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>&#8230;</td></tr><tr><td>Effect system</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>&#8230;</td></tr><tr><td>&#8230;</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>That matrix would let us do something particularly interesting:</strong> look for combinations of features that give an LLM the strongest <em>compiler feedback loop</em> and therefore potentially make an LLM-native programming language substantially more reliable.</p><p>The post <a href="https://riceball.com/2026/09/30/chatgpt-language-features-that-help-llms/">ChatGPT: Language Features that Help LLMs</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://riceball.com/2026/09/30/chatgpt-language-features-that-help-llms/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Claude: Language features that help LLMs</title>
		<link>https://riceball.com/2026/09/30/claude-language-features-that-help-llms/</link>
					<comments>https://riceball.com/2026/09/30/claude-language-features-that-help-llms/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 30 Sep 2026 11:09:09 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://riceball.com/?p=30657</guid>

					<description><![CDATA[<p>Language features that make one-shot correctness more likely mostly do one of two things: they shrink the space of valid programs so fewer wrong ones are expressible, or they surface errors early enough that the model&#8217;s mistakes are caught by the compiler rather than at runtime. Here are the ones that matter most. Static, expressive [&#8230;]</p>
<p>The post <a href="https://riceball.com/2026/09/30/claude-language-features-that-help-llms/">Claude: Language features that help LLMs</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">Language features that make one-shot correctness more likely mostly do one of two things: they shrink the space of valid programs so fewer wrong ones are expressible, or they surface errors early enough that the model&#8217;s mistakes are caught by the compiler rather than at runtime. Here are the ones that matter most.</p>



<p class="wp-block-paragraph"><strong>Static, expressive type systems</strong></p>



<p class="wp-block-paragraph">Types act as a machine-checkable specification the model can read before writing anything. Function signatures tell the model what goes in and out, so it doesn&#8217;t have to guess. Features that help most:</p>



<ul class="wp-block-list">
<li>Sum types / tagged unions and exhaustive pattern matching (Rust, OCaml, Haskell, Swift, Kotlin sealed classes). The compiler forces every case to be handled, which is where LLMs often slip.</li>



<li>Option/Result types instead of null and exceptions. Failure paths are visible in the signature rather than implicit.</li>



<li>Generics with clear constraints, which prevent whole categories of mixing-up-types bugs.</li>
</ul>



<p class="wp-block-paragraph">Note that the type system helps twice: once as context while generating, and again as a filter afterward. In a true one-shot setting only the first benefit applies, unless you count &#8220;compiles&#8221; as part of correctness.</p>



<p class="wp-block-paragraph"><strong>Explicitness over magic</strong></p>



<p class="wp-block-paragraph">LLMs do best when the code says what it does locally. That means:</p>



<ul class="wp-block-list">
<li>Few implicit conversions and coercions (JavaScript&#8217;s <code>==</code> and Python-style truthiness are classic trip hazards).</li>



<li>Explicit imports and clear module boundaries, so the model doesn&#8217;t hallucinate where a name comes from.</li>



<li>Minimal metaprogramming, decorators that rewrite behavior, monkey-patching, and macros with surprising expansion.</li>



<li>Explicit error handling and resource management (Rust&#8217;s ownership, Go&#8217;s <code>if err != nil</code>, RAII, <code>with</code> blocks) rather than hidden control flow.</li>
</ul>



<p class="wp-block-paragraph"><strong>Immutability and controlled side effects</strong></p>



<p class="wp-block-paragraph">Immutable-by-default data (Rust, Clojure, Elm, Haskell) means the model doesn&#8217;t have to track what mutated what across a long function. Purity or effect tracking narrows the things that can go wrong to the function&#8217;s inputs and outputs, which fits neatly in what the model can hold in mind at once.</p>



<p class="wp-block-paragraph"><strong>Local reasoning and small semantic surface</strong></p>



<p class="wp-block-paragraph">Languages with fewer ways to do the same thing (Go is the archetype) produce more predictable output. If there&#8217;s one idiomatic way to loop, handle errors, or structure a package, the model&#8217;s training data converges on it and it rarely picks a wrong variant. Compare this to C++ or Perl, where the valid dialects vary widely.</p>



<p class="wp-block-paragraph"><strong>Strong conventions and standardized tooling</strong></p>



<p class="wp-block-paragraph">A single canonical formatter, package manager, and project layout (gofmt, cargo, <code>mix</code>) removes decisions the model could get wrong. Stable, well-documented standard libraries help too, since the model can rely on APIs that haven&#8217;t shifted between versions.</p>



<p class="wp-block-paragraph"><strong>Safety guarantees that remove subtle bug classes</strong></p>



<p class="wp-block-paragraph">Memory safety, no data races (Rust), bounds checking, and no undefined behavior remove errors that are hard to see by reading the code. C and C++ are the opposite: code that looks right can be wrong in ways neither the model nor a casual reviewer will notice.</p>



<p class="wp-block-paragraph"><strong>Executable specifications inside the language</strong></p>



<p class="wp-block-paragraph">Contracts, refinement types, dependent types (Idris, Lean, Liquid Haskell), and property-based testing hooks let you state what the code should do in the language itself. These are still niche, but they&#8217;re the most direct way to make &#8220;correct&#8221; checkable rather than hoped for.</p>



<p class="wp-block-paragraph"><strong>The counterweight: training data volume</strong></p>



<p class="wp-block-paragraph">All of the above competes with a practical factor. A language the model has seen enormous amounts of (Python, TypeScript, JavaScript) will often yield working code more reliably than a theoretically safer but rarer language (Haskell, Idris, newer languages). This is why TypeScript is a sweet spot: lots of training data plus a decent type system. Rust is a strong case too, though borrow-checker errors are a common first-shot failure, since lifetimes require global reasoning.</p>



<p class="wp-block-paragraph"><strong>Rough ranking of &#8220;helpfulness&#8221; by feature</strong></p>



<ol class="wp-block-list">
<li>Rich static types with exhaustive matching</li>



<li>Explicitness and lack of implicit behavior</li>



<li>Immutability and limited side effects</li>



<li>Small, conventional language surface</li>



<li>Abundant training data and stable libraries</li>
</ol>



<p class="wp-block-paragraph">If you&#8217;re choosing a language for LLM-generated code specifically, TypeScript, Go, Rust, and Kotlin tend to be good practical picks, each for different reasons. Python is very reliable for short scripts but gives up the safety net as programs grow.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Language Feature</th><th>Languages that have it</th><th>Languages that don&#8217;t</th></tr></thead><tbody><tr><td>Sum types with exhaustive pattern matching</td><td>Rust, OCaml, Haskell, Swift, Kotlin (sealed classes), Scala, F#, Java 21+ (sealed types)</td><td>C, Go, JavaScript, Python, Ruby, older Java</td></tr><tr><td>Option/Result types instead of null</td><td>Rust, Haskell, OCaml, Elm, Swift, Kotlin (nullable types)</td><td>C, Java, JavaScript, Python, Ruby, Go (uses nil)</td></tr><tr><td>Static typing with generics</td><td>Rust, TypeScript, Java, Kotlin, Swift, C#, Go (1.18+)</td><td>JavaScript, Ruby, Python (hints not enforced), C</td></tr><tr><td>No implicit type coercions</td><td>Rust, Go, Haskell, OCaml, Python (mostly)</td><td>JavaScript, PHP, Perl, C</td></tr><tr><td>Explicit imports and module boundaries</td><td>Rust, Go, Java, Python, TypeScript, Haskell</td><td>C/C++ (textual <code>#include</code>), PHP (autoloading), Ruby (global namespace), Bash</td></tr><tr><td>Minimal metaprogramming and magic</td><td>Go, Elm, Java, C</td><td>Ruby, Python (metaclasses, monkey-patching), Common Lisp, C++ (templates, macros), Rust (proc macros)</td></tr><tr><td>Explicit error handling visible in the code</td><td>Go, Rust, Zig, Swift (<code>try</code>)</td><td>Python, JavaScript, Ruby, C++ (exceptions), Java (unchecked exceptions)</td></tr><tr><td>Immutable by default</td><td>Rust, Haskell, Clojure, Elm, OCaml, Elixir, Erlang</td><td>Python, JavaScript, Java, C, C++, Go</td></tr><tr><td>Effect tracking / enforced purity</td><td>Haskell, Elm, PureScript, Koka</td><td>Nearly all mainstream languages (Python, Java, JavaScript, Go, C++, Rust)</td></tr><tr><td>Small language surface, one idiomatic way</td><td>Go, Elm, Lua, Zig</td><td>C++, Perl, Scala, Ruby</td></tr><tr><td>Canonical formatter and package manager</td><td>Go, Rust, Elm, Zig, Elixir</td><td>C/C++, Python (black/ruff, pip/poetry/uv), JavaScript (npm/yarn/pnpm), Java (Maven/Gradle)</td></tr><tr><td>Memory safety</td><td>Rust, Go, Java, C#, Python, Swift</td><td>C, C++, Objective-C, Zig (partial)</td></tr><tr><td>Compile-time data race prevention</td><td>Rust, Pony</td><td>Go, Java, C++, C#, Python</td></tr><tr><td>Bounds checking on arrays</td><td>Rust, Go, Java, Python, C#</td><td>C, C++ (<code>operator[]</code>)</td></tr><tr><td>Dependent or refinement types</td><td>Idris, Lean, Agda, Liquid Haskell, F*, Coq</td><td>Nearly all mainstream languages</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">A few caveats on the table:</p>



<ul class="wp-block-list">
<li>&#8220;Has it&#8221; is sometimes a matter of degree. Python&#8217;s <code>match</code> exists but isn&#8217;t checked for exhaustiveness, and TypeScript can approximate exhaustiveness with <code>never</code> checks but doesn&#8217;t enforce it by default.</li>



<li>Some languages appear in both columns of different rows for good reason. Rust has proc macros (so it&#8217;s listed as heavy on metaprogramming) but also excels at nearly everything else here.</li>



<li>Languages with the most checkmarks aren&#8217;t automatically best for one-shot generation, since training data volume still matters a lot.</li>
</ul><p>The post <a href="https://riceball.com/2026/09/30/claude-language-features-that-help-llms/">Claude: Language features that help LLMs</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://riceball.com/2026/09/30/claude-language-features-that-help-llms/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Proton Pricing: Mail vs. Drive</title>
		<link>https://riceball.com/2026/09/29/proton-pricing-mail-vs-drive/</link>
					<comments>https://riceball.com/2026/09/29/proton-pricing-mail-vs-drive/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 30 Sep 2026 03:11:24 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://riceball.com/?p=30705</guid>

					<description><![CDATA[<p>If you are renewing Proton, know there are two different $3.99 bundles. One is for Mail customers, and one is for Drive customers. To get the Mail offers, go to Proton Mail, and then click the &#8220;space usage&#8221; stats in the lower left corner. To get the Drive offers, go to Proton Drive, and click [&#8230;]</p>
<p>The post <a href="https://riceball.com/2026/09/29/proton-pricing-mail-vs-drive/">Proton Pricing: Mail vs. Drive</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">If you are renewing Proton, know there are two different $3.99 bundles. One is for Mail customers, and one is for Drive customers.</p>



<p class="wp-block-paragraph">To get the Mail offers, go to Proton Mail, and then click the &#8220;space usage&#8221; stats in the lower left corner.</p>



<p class="wp-block-paragraph">To get the Drive offers, go to Proton Drive, and click the space usage stats in the lower left corner.</p>



<p class="wp-block-paragraph">Here&#8217;s a peek at the two options:</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="388" height="732" data-id="30706" src="https://riceball.com/wp-content/uploads/sites/2/2026/09/Screenshot-from-2026-09-29-20-06-26.png" alt="" class="wp-image-30706" srcset="https://riceball.com/wp-content/uploads/sites/2/2026/09/Screenshot-from-2026-09-29-20-06-26.png 388w, https://riceball.com/wp-content/uploads/sites/2/2026/09/Screenshot-from-2026-09-29-20-06-26-159x300.png 159w" sizes="(max-width: 388px) 100vw, 388px" /></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="408" height="719" data-id="30707" src="https://riceball.com/wp-content/uploads/sites/2/2026/09/Screenshot-from-2026-09-29-20-06-11.png" alt="" class="wp-image-30707" srcset="https://riceball.com/wp-content/uploads/sites/2/2026/09/Screenshot-from-2026-09-29-20-06-11.png 408w, https://riceball.com/wp-content/uploads/sites/2/2026/09/Screenshot-from-2026-09-29-20-06-11-170x300.png 170w" sizes="(max-width: 408px) 100vw, 408px" /></figure>
</figure>



<p class="wp-block-paragraph">Mail Plus gets you full featured mail, but only 15GB of total storage.</p>



<p class="wp-block-paragraph">Drive Plus 200 gets you webmail-only, and 200GB of total storage.</p>



<p class="wp-block-paragraph">I&#8217;m going to get the Mail Plus package, because my personal goals include:</p>



<ul class="wp-block-list">
<li>Reducing my online footprint, to avoid risks related to having data sitting on a server.</li>



<li>Reducing how much I spend.</li>



<li>Moving email off of the online platforms when possible.</li>
</ul>



<p class="wp-block-paragraph"></p><p>The post <a href="https://riceball.com/2026/09/29/proton-pricing-mail-vs-drive/">Proton Pricing: Mail vs. Drive</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://riceball.com/2026/09/29/proton-pricing-mail-vs-drive/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Crossword Puzzle</title>
		<link>https://riceball.com/2026/09/23/crossword-puzzle/</link>
					<comments>https://riceball.com/2026/09/23/crossword-puzzle/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 23 Sep 2026 19:05:27 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Crossword]]></category>
		<guid isPermaLink="false">https://riceball.com/?p=30556</guid>

					<description><![CDATA[<p>My first try at a multilingual puzzle. I am not happy with it, but it was an interesting exercise. Most of the non-English answers are in Spanish, but I ended up mixing in other languages.</p>
<p>The post <a href="https://riceball.com/2026/09/23/crossword-puzzle/">Crossword Puzzle</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">My first try at a multilingual puzzle. I am not happy with it, but it was an interesting exercise. Most of the non-English answers are in Spanish, but I ended up mixing in other languages.</p>



        <div style="position: relative;text-align: center">
            <div class="pm-embed-div" data-id="a9778746" data-set="99d166b0d73f4c8a0794a685c31c66c23cad13aa34d273574fe031e844bd6636" data-puzzletype="crossword" data-height="700px" data-mobilemargin="10px" data-embedparams="embed=wp"></div>
            <div class="pm-attribution-div" style="font-family: sans-serif;font-size: 12px;color:#666666;padding-top: 5px;width: 100%">Made by John Kawakami with the online <a href="https://amuselabs.com/games/crossword/" target="_blank" style="color: #666666;text-decoration: underline">crossword maker</a> from Amuse Labs</div>
        </div><p>The post <a href="https://riceball.com/2026/09/23/crossword-puzzle/">Crossword Puzzle</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://riceball.com/2026/09/23/crossword-puzzle/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>2026 Dodgers, Angels, Lakers, LAFC, Galaxy, Sports Team Triggered Fast Food Deals</title>
		<link>https://riceball.com/2026/09/13/2026-dodgers-angels-lakers-lafc-galaxy-sports-team-triggered-fast-food-deals/</link>
					<comments>https://riceball.com/2026/09/13/2026-dodgers-angels-lakers-lafc-galaxy-sports-team-triggered-fast-food-deals/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sun, 13 Sep 2026 22:31:06 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://riceball.com/?p=30511</guid>

					<description><![CDATA[<p>Here are the active Dodgers food promotions you can redeem right now, based on recent game results and trigger conditions. 1. Jack in the Box – Free Jumbo Jack 2. McDonald’s – Free 6-Piece Chicken McNuggets 3. Panda Express – $7 Panda Plate 4. Habit Burger &#38; Grill – Free Double Char 5. AMPM – [&#8230;]</p>
<p>The post <a href="https://riceball.com/2026/09/13/2026-dodgers-angels-lakers-lafc-galaxy-sports-team-triggered-fast-food-deals/">2026 Dodgers, Angels, Lakers, LAFC, Galaxy, Sports Team Triggered Fast Food Deals</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph"><strong>Here are the active Dodgers food promotions you can redeem right now, based on recent game results and trigger conditions.</strong></p>



<h3 class="wp-block-heading">1. Jack in the Box – Free Jumbo Jack</h3>



<ul class="wp-block-list">
<li><strong>Trigger:</strong> Dodgers pitchers record <strong>7+ strikeouts</strong> in a game.</li>



<li><strong>Offer:</strong> Free Jumbo Jack with purchase of a large drink.</li>



<li><strong>Redemption:</strong> Use code <strong>GODODGERS26</strong> in the Jack in the Box app or at participating stores.</li>



<li><strong>Status:</strong> Active today — Dodgers struck out 9 batters in their last game <a href="https://www.bing.com/ck/a?!&amp;&amp;p=d63e35ee6873c0a66f99bfcb08a2fafcf647bc24dd60a9d891392b06b492d6eeJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9sYWhvbWV3aW4uY29tLw&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=lahomewin.com" alt="lahomewin.com">lahomewin.com</a>.</li>
</ul>



<h3 class="wp-block-heading">2. McDonald’s – Free 6-Piece Chicken McNuggets</h3>



<ul class="wp-block-list">
<li><strong>Trigger:</strong> Dodgers score <strong>6+ runs</strong> in a home game.</li>



<li><strong>Offer:</strong> Free 6-piece McNuggets with a $2 minimum purchase.</li>



<li><strong>Redemption:</strong> Look for the deal in the McDonald’s app under “Rewards &amp; Deals.”</li>



<li><strong>Status:</strong> Not active today — Dodgers scored only 3 runs in their last game <a href="https://www.bing.com/ck/a?!&amp;&amp;p=d63e35ee6873c0a66f99bfcb08a2fafcf647bc24dd60a9d891392b06b492d6eeJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9sYWhvbWV3aW4uY29tLw&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=lahomewin.com" alt="lahomewin.com">lahomewin.com</a>.</li>
</ul>



<h3 class="wp-block-heading">3. Panda Express – $7 Panda Plate</h3>



<ul class="wp-block-list">
<li><strong>Trigger:</strong> Dodgers win a home game.</li>



<li><strong>Offer:</strong> $7 two-entree Panda Plate (code <strong>DODGERSWIN</strong> in Panda Express app).</li>



<li><strong>Requirements:</strong> Panda Rewards membership; one plate per account per day.</li>



<li><strong>Status:</strong> Not active today — last triggered before a home win <a href="https://www.bing.com/ck/a?!&amp;&amp;p=d63e35ee6873c0a66f99bfcb08a2fafcf647bc24dd60a9d891392b06b492d6eeJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9sYWhvbWV3aW4uY29tLw&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=lahomewin.com" alt="lahomewin.com">lahomewin.com</a>.</li>
</ul>



<h3 class="wp-block-heading">4. Habit Burger &amp; Grill – Free Double Char</h3>



<ul class="wp-block-list">
<li><strong>Trigger:</strong> Dodgers turn a <strong>double play</strong> in a 2026 regular-season home game.</li>



<li><strong>Offer:</strong> Free Double Char with $8+ qualifying purchase.</li>



<li><strong>Redemption:</strong> Use code <strong>DODGERS26</strong> in the Habit app or MyHabit account.</li>



<li><strong>Status:</strong> Not active today — last triggered before a double play <a href="https://www.bing.com/ck/a?!&amp;&amp;p=d63e35ee6873c0a66f99bfcb08a2fafcf647bc24dd60a9d891392b06b492d6eeJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9sYWhvbWV3aW4uY29tLw&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=lahomewin.com" alt="lahomewin.com">lahomewin.com</a>.</li>
</ul>



<h3 class="wp-block-heading">5. AMPM – Free Hot Dog + Soda</h3>



<ul class="wp-block-list">
<li><strong>Trigger:</strong> Dodgers steal a base in a home game.</li>



<li><strong>Offer:</strong> Free hot dog + 16 oz Coca-Cola.</li>



<li><strong>Redemption:</strong> Through the AMPM app at participating Los Angeles County stores.</li>



<li><strong>Status:</strong> Not active today — last triggered before a stolen base <a href="https://www.bing.com/ck/a?!&amp;&amp;p=64fbce43d890da90a12c627d16a95968eaf93d3aae8f854d29c82eabec93ef90JmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9tZWFsc3RlYWxzLmNvL2RlYWxzL2RvZGdlcnMv&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=mealsteals.co" alt="mealsteals.co">mealsteals.co</a>.</li>
</ul>



<h1 class="wp-block-heading">Current Angels Food Deals</h1>



<p class="wp-block-paragraph"><strong>The Los Angeles Angels’ official partner offers are active: McDonald’s gives free medium fries after wins, and Del Taco offers free tacos after 5+ runs at home</strong> <a target="_blank" href="https://www.bing.com/ck/a?!&amp;&amp;p=f23acdd38abaee82d6b98b25e6e84fc4ac4f389ec7fde1f02596d324310e587cJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9tZWFsc3RlYWxzLmNvL2RlYWxzL2FuZ2Vscy8&amp;ntb=1" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=mealsteals.co" alt="mealsteals.co">mealsteals.co+1</a>.</p>



<h3 class="wp-block-heading">1. McDonald’s – Free Medium Fries</h3>



<ul class="wp-block-list">
<li><strong>Trigger:</strong> Angels win (home or road) <a href="https://www.bing.com/ck/a?!&amp;&amp;p=d1a9b853c4b0f088a1ec7a3089c90769f66fbb1f2cda581eca508a8e9e504509JmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly93d3cubWxiLmNvbS9hbmdlbHMvdGlja2V0cy9zcGVjaWFscy9ob21lc3RhbmQtcGFydG5lci1vZmZlcnM&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=www.mlb.com" alt="MLB">MLB</a>.</li>



<li><strong>Redemption:</strong> Next day, with a <strong>$2 minimum purchase</strong> in the <strong>McDonald’s app</strong>.</li>



<li><strong>Requirements:</strong> Must be registered in the McDonald’s Rewards program under the public Angels partner terms <a href="https://www.bing.com/ck/a?!&amp;&amp;p=f23acdd38abaee82d6b98b25e6e84fc4ac4f389ec7fde1f02596d324310e587cJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9tZWFsc3RlYWxzLmNvL2RlYWxzL2FuZ2Vscy8&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=mealsteals.co" alt="mealsteals.co">mealsteals.co+1</a>.</li>



<li><strong>Area:</strong> Greater LA/Orange County DMA.</li>



<li><strong>Tip:</strong> The offer appears in the McDonald’s app under “Rewards &amp; Deals” — no code needed.</li>
</ul>



<h3 class="wp-block-heading">2. Del Taco – Free “The Del Taco”</h3>



<ul class="wp-block-list">
<li><strong>Trigger:</strong> Angels score <strong>5+ runs</strong> in a home game <a href="https://www.bing.com/ck/a?!&amp;&amp;p=f23acdd38abaee82d6b98b25e6e84fc4ac4f389ec7fde1f02596d324310e587cJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9tZWFsc3RlYWxzLmNvL2RlYWxzL2FuZ2Vscy8&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=mealsteals.co" alt="mealsteals.co">mealsteals.co</a>.</li>



<li><strong>Redemption:</strong> Next day, with <strong>any purchase</strong> through the <strong>Del Yeah! Rewards app</strong> (no code required) <a href="https://www.bing.com/ck/a?!&amp;&amp;p=f23acdd38abaee82d6b98b25e6e84fc4ac4f389ec7fde1f02596d324310e587cJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9tZWFsc3RlYWxzLmNvL2RlYWxzL2FuZ2Vscy8&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=mealsteals.co" alt="mealsteals.co">mealsteals.co</a>.</li>



<li><strong>Area:</strong> Greater LA area (LA, Orange, Riverside, Ventura, San Bernardino counties) <a href="https://www.bing.com/ck/a?!&amp;&amp;p=816b6a18942cabafc0bcb983eaf777859384f4242e0b14f499ada144b41ca5beJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly93d3cuaXJ2aW5lc3JlYWx0b3IuY29tLzIwMjUtYW5nZWxzLWRlYWxzLWZyZWUtZm9vZC1hbmQtZGlzY291bnRzLWZvci1mYW5zLWJhc2VkLW9uLWFuZ2Vscy1nYW1lcy8&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=www.irvinesrealtor.com" alt="www.irvinesrealtor.com">www.irvinesrealtor.com</a>.</li>



<li><strong>Tip:</strong> Check the Del Taco app before ordering, as availability can change season to season.</li>
</ul>



<h3 class="wp-block-heading">3. Juice It Up! (Seasonal)</h3>



<ul class="wp-block-list">
<li><strong>Trigger:</strong> Angels record a save in a home game <a href="https://www.bing.com/ck/a?!&amp;&amp;p=816b6a18942cabafc0bcb983eaf777859384f4242e0b14f499ada144b41ca5beJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly93d3cuaXJ2aW5lc3JlYWx0b3IuY29tLzIwMjUtYW5nZWxzLWRlYWxzLWZyZWUtZm9vZC1hbmQtZGlzY291bnRzLWZvci1mYW5zLWJhc2VkLW9uLWFuZ2Vscy1nYW1lcy8&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=www.irvinesrealtor.com" alt="www.irvinesrealtor.com">www.irvinesrealtor.com+1</a>.</li>



<li><strong>Redemption:</strong> Next day, via a code in the Juice It Up! app (exclusive reward) <a href="https://www.bing.com/ck/a?!&amp;&amp;p=816b6a18942cabafc0bcb983eaf777859384f4242e0b14f499ada144b41ca5beJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly93d3cuaXJ2aW5lc3JlYWx0b3IuY29tLzIwMjUtYW5nZWxzLWRlYWxzLWZyZWUtZm9vZC1hbmQtZGlzY291bnRzLWZvci1mYW5zLWJhc2VkLW9uLWFuZ2Vscy1nYW1lcy8&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=www.irvinesrealtor.com" alt="www.irvinesrealtor.com">www.irvinesrealtor.com+1</a>.</li>



<li><strong>Area:</strong> Angel Stadium, Anaheim.</li>
</ul>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Lakers season is over, but here were the past deals</p>



<h1 class="wp-block-heading">Current Lakers Fast Food Deals</h1>



<p class="wp-block-paragraph"><strong>The Lakers’ main fast food deal right now is a Jack in the Box promotion tied to Lakers game results, with two free tacos available through the Jack in the Box app.</strong></p>



<h3 class="wp-block-heading">Active Lakers Deal</h3>



<ul class="wp-block-list">
<li><strong>Promotion:</strong> Jack in the Box – Two free tacos with any drink purchase.</li>



<li><strong>Trigger:</strong> Lakers win <strong>and</strong> opponent scores under 111 points.</li>



<li><strong>Redemption:</strong> Must use the Jack in the Box app; code may vary by season. Public posts have shown different codes in past years, so check the app before ordering <a href="https://www.bing.com/ck/a?!&amp;&amp;p=2fb2a6e554c92769bfbb2ba06722024b470c01b9532a05609d1da8880ac16249JmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9tZWFsc3RlYWxzLmNvL2RlYWxzL2xha2Vycy8&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=mealsteals.co" alt="mealsteals.co">mealsteals.co</a>.</li>



<li><strong>Frequency:</strong> In the 2025–26 regular season, this trigger happened in 25 of 82 games (30.5%), including 13 of 41 home games <a href="https://www.bing.com/ck/a?!&amp;&amp;p=2fb2a6e554c92769bfbb2ba06722024b470c01b9532a05609d1da8880ac16249JmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9tZWFsc3RlYWxzLmNvL2RlYWxzL2xha2Vycy8&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=mealsteals.co" alt="mealsteals.co">mealsteals.co</a>.</li>
</ul>



<h3 class="wp-block-heading">Other Lakers-Linked Offers</h3>



<ul class="wp-block-list">
<li><strong>DoorDash NBA50 (League-Wide):</strong> $5 off $15+ DashPass orders the day after any NBA player scores 50+ points in a regular-season game. While not Lakers-specific, it’s a common post-game option if you’re ordering Lakers tickets or snacks <a href="https://www.bing.com/ck/a?!&amp;&amp;p=2fb2a6e554c92769bfbb2ba06722024b470c01b9532a05609d1da8880ac16249JmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9tZWFsc3RlYWxzLmNvL2RlYWxzL2xha2Vycy8&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=mealsteals.co" alt="mealsteals.co">mealsteals.co</a>.</li>
</ul>



<h3 class="wp-block-heading">How to Redeem</h3>



<ol class="wp-block-list">
<li><strong>Check the Jack in the Box app</strong> for the current code and terms.</li>



<li>Ensure the Lakers have met the win + opponent score condition.</li>



<li>Order your drink and tacos through the app to claim the free items.</li>
</ol>



<h3 class="wp-block-heading">Tips</h3>



<ul class="wp-block-list">
<li>Deals are <strong>sports-triggered</strong>, so they only activate after a Lakers game ends.</li>



<li>If you’re in Rosemead, Jack in the Box locations are nearby; use the app’s map to find the closest.</li>



<li>For the best chance, watch the game and check the app right after the final buzzer.</li>
</ul>



<p class="wp-block-paragraph">If you want to be notified instantly when a Lakers deal fires, Meal Steals tracks these triggers and sends alerts without requiring a sign-up <a target="_blank" href="https://www.bing.com/ck/a?!&amp;&amp;p=a13ab36f0636ce45abcfe12e7a4ed69257fd93cc8f18143478be6518e2df8315JmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9tZWFsc3RlYWxzLmNvLw&amp;ntb=1" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=mealsteals.co" alt="mealsteals.co">mealsteals.co</a>.</p>



<p class="wp-block-paragraph"></p>



<h1 class="wp-block-heading">LAFC Fast Food Deals &amp; Promotions</h1>



<p class="wp-block-paragraph"><strong>LAFC fans can currently claim free or discounted food at Chick-fil-A SoCal and Ono Hawaiian BBQ after specific game outcomes, with redemption tied to the LAFC app or online ordering.</strong></p>



<h3 class="wp-block-heading">1. Chick-fil-A SoCal – Free Chicken Sandwich</h3>



<ul class="wp-block-list">
<li><strong>Trigger:</strong> LAFC wins a home game at BMO Stadium.</li>



<li><strong>Redemption:</strong> Claim in the Chick-fil-A app before leaving the stadium, then redeem within <strong>3 business days</strong> at a participating Los Angeles-area location <a href="https://www.bing.com/ck/a?!&amp;&amp;p=823725b0e5236274031a1059008dbd054b5ef0b4551fe54425c7a867849380aeJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly93d3cubGFmYy5jb20vY2x1Yi9wcm9tb3Rpb25zLw&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=www.lafc.com" alt="LAFC">LAFC+1</a>.</li>



<li><strong>Requirements:</strong> Must be at BMO Stadium, app open, location services enabled, and claim by 11:59 PM on game night <a href="https://www.bing.com/ck/a?!&amp;&amp;p=671b566b3355f50cb0a2230057396211f7233ba7534a8f9ec58d2c7dbbee7d4eJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9tZWFsc3RlYWxzLmNvL2RlYWxzL2xhZmMv&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=mealsteals.co" alt="mealsteals.co">mealsteals.co</a>.</li>



<li><strong>Item:</strong> Free Original or Spicy Chicken Sandwich.</li>



<li><strong>Active period:</strong> Aug 11 – Nov 7, 2026 <a href="https://www.bing.com/ck/a?!&amp;&amp;p=38f3098cba53e6c8986541af332b660e9fe5afbb44eea7f1ae042d575bc33919JmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly93d3cuZGVhbHNvbm1lYWxzLmFwcC9kZWFscy9jYS9jaGljay1maWwtYS9mcmVlLXNhbmR3aWNoLWxhZmMtd2lu&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=www.dealsonmeals.app" alt="www.dealsonmeals.app">www.dealsonmeals.app</a>.</li>



<li><strong>Tip:</strong> Check the Chick-fil-A app before the game to confirm the offer is live.</li>
</ul>



<h3 class="wp-block-heading">2. Ono Hawaiian BBQ – $5.99 Chicken Plate</h3>



<ul class="wp-block-list">
<li><strong>Trigger:</strong> LAFC scores the first goal of the first half at a home game.</li>



<li><strong>Redemption:</strong> $5.99 Chicken Plate Lunch the next business day using code <strong>LAFCSCORES</strong> via online ordering for registered users <a href="https://www.bing.com/ck/a?!&amp;&amp;p=671b566b3355f50cb0a2230057396211f7233ba7534a8f9ec58d2c7dbbee7d4eJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9tZWFsc3RlYWxzLmNvL2RlYWxzL2xhZmMv&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=mealsteals.co" alt="mealsteals.co">mealsteals.co+1</a>.</li>



<li><strong>Requirements:</strong> Must be at a participating Ono Hawaiian BBQ location in the Greater Los Angeles area.</li>



<li><strong>Note:</strong> This is a limited-time, online-only redemption.</li>
</ul>



<h3 class="wp-block-heading">3. Other LAFC Promotions</h3>



<ul class="wp-block-list">
<li><strong>Planet Fitness:</strong> Sign up for a Classic Membership for $1 down with code <strong>BLACKANDGOLD</strong> <a href="https://www.bing.com/ck/a?!&amp;&amp;p=823725b0e5236274031a1059008dbd054b5ef0b4551fe54425c7a867849380aeJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly93d3cubGFmYy5jb20vY2x1Yi9wcm9tb3Rpb25zLw&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=www.lafc.com" alt="LAFC">LAFC</a>.</li>



<li><strong>Hotel Indigo Los Angeles Downtown:</strong> Stay and Dine package with LAFC-inspired menu credit <a href="https://www.bing.com/ck/a?!&amp;&amp;p=823725b0e5236274031a1059008dbd054b5ef0b4551fe54425c7a867849380aeJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly93d3cubGFmYy5jb20vY2x1Yi9wcm9tb3Rpb25zLw&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=www.lafc.com" alt="LAFC">LAFC</a>.</li>



<li><strong>Theme Nights &amp; Giveaways:</strong> Events like Noche LÁFC and Hello Kitty Night are also part of LAFC’s promotional calendar <a href="https://www.bing.com/ck/a?!&amp;&amp;p=55d40db04fe3406aa5cc05aece20d64960fb489928402ac673155183972f50c7JmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly93d3cuZ2V0cHJvbW9uaWdodC5jb20vbWxzL2xhZmM&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=www.getpromonight.com" alt="www.getpromonight.com">www.getpromonight.com</a>.</li>
</ul>



<h3 class="wp-block-heading">How to Redeem</h3>



<ul class="wp-block-list">
<li><strong>Chick-fil-A:</strong> Use the Chick-fil-A app to claim in-stadium, then redeem at a participating restaurant.</li>



<li><strong>Ono Hawaiian BBQ:</strong> Order online with the code LAFCSCORES the next business day.</li>



<li><strong>Check before you go:</strong> Terms, codes, and app requirements can change during the season</li>
</ul>



<h1 class="wp-block-heading">LA Galaxy Fast Food Deals</h1>



<p class="wp-block-paragraph"><strong>When LA Galaxy scores at home, NORMS Rewards members can get a free stack of Buttermilk Hotcakes at participating NORMS locations</strong> <a target="_blank" href="https://www.bing.com/ck/a?!&amp;&amp;p=643dd2b18f7e94d334c058251da9193bd95cc176242cb96e57ade30e97719768JmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9zY29yZWdydWIuY29tL2xvcy1hbmdlbGVzL3RlYW1zL2dhbGF4eQ&amp;ntb=1" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=scoregrub.com" alt="scoregrub.com">scoregrub.com+1</a>.</p>



<h3 class="wp-block-heading">How the deal works</h3>



<ul class="wp-block-list">
<li><strong>Trigger:</strong> Galaxy scores at least one goal in a home match.</li>



<li><strong>Redemption:</strong> Free stack of Buttermilk Hotcakes for NORMS Rewards members.</li>



<li><strong>Window:</strong> Valid within <strong>48 hours</strong> of the goal being scored <a href="https://www.bing.com/ck/a?!&amp;&amp;p=643dd2b18f7e94d334c058251da9193bd95cc176242cb96e57ade30e97719768JmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9zY29yZWdydWIuY29tL2xvcy1hbmdlbGVzL3RlYW1zL2dhbGF4eQ&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=scoregrub.com" alt="scoregrub.com">scoregrub.com+1</a>.</li>



<li><strong>Location:</strong> Any Southern California NORMS restaurant (e.g., NORMS in Rosemead and other LA-area locations).</li>



<li><strong>Method:</strong> Redeem in-app via the NORMS Rewards app after the trigger, then dine-in or order to-go at a participating NORMS location <a href="https://www.bing.com/ck/a?!&amp;&amp;p=643dd2b18f7e94d334c058251da9193bd95cc176242cb96e57ade30e97719768JmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9zY29yZWdydWIuY29tL2xvcy1hbmdlbGVzL3RlYW1zL2dhbGF4eQ&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=scoregrub.com" alt="scoregrub.com">scoregrub.com</a>.</li>
</ul>



<h3 class="wp-block-heading">How to get the deal</h3>



<ol class="wp-block-list">
<li><strong>Download the NORMS Rewards app</strong> (Apple or Google Play).</li>



<li><strong>Check the app after a Galaxy home game</strong> to see if the offer is active.</li>



<li><strong>Redeem in-app</strong> and follow the prompts to get your free hotcakes.</li>
</ol>



<h3 class="wp-block-heading">Tips</h3>



<ul class="wp-block-list">
<li>Only available for <strong>Galaxy home games</strong> with at least one goal.</li>



<li>Must be a <strong>NORMS Rewards member</strong> to qualify.</li>



<li>Deals are <strong>time-sensitive</strong> — act quickly after the trigger.</li>



<li>If you’re in Rosemead, NORMS locations are close to the stadium and other LA-area spots.</li>
</ul>



<h1 class="wp-block-heading">Los Angeles Rams Fast Food Deals</h1>



<p class="wp-block-paragraph"><strong>The Rams have several active fast food promotions, including interception-based rewards at Carl’s Jr. and 4th-down stop perks at El Torito, plus stadium combo meal discounts.</strong></p>



<h3 class="wp-block-heading">1. Carl’s Jr. – Famous Star Picks</h3>



<ul class="wp-block-list">
<li><strong>Trigger:</strong> Rams defense records an interception during a game <a href="https://www.bing.com/ck/a?!&amp;&amp;p=1cf662495c14c285773653a1de65bc6f77549b83bc36c13242187984092b2363JmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly93d3cudGhlcmFtcy5jb20vZ2FtZS1kYXkvcHJvbW90aW9ucw&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=www.therams.com" alt="Los Angeles Rams">Los Angeles Rams+1</a>.</li>



<li><strong>Reward:</strong> Free Famous Star® (limited-time collectible) via the <strong>Carl’s Jr. app</strong>.</li>



<li><strong>Redemption:</strong> Only in the Carl’s Jr. app (online ordering or in-restaurant with My Rewards registration).</li>



<li><strong>Code unlock:</strong> 2 days after the qualifying game.</li>



<li><strong>Validity:</strong> 1 week from unlock in the app.</li>



<li><strong>Tip:</strong> Some community posts note a variant with a large drink purchase, but official terms are interception-based <a href="https://www.bing.com/ck/a?!&amp;&amp;p=d87fa8f02e29160d41ff7cb318c305fa0300f0c81d90d0060455c46ed57f650cJmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9zbGlja2RlYWxzLm5ldC9mLzE4NTg4NzE1LXJhbXMtZm9vZC1wcm9tb3Rpb24tZnJlZS1mYW1vdXMtc3Rhci13aXRoLWxhcmdlLWRyaW5rLXB1cmNoYXNlLWluLXRoZS1jYXJsLXMtanItYXBwLWF0LXBhcnRpY2lwYXRpbmctbG9zLWFuZ2VsZXMtYXJlYQ&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=slickdeals.net" alt="Slickdeals">Slickdeals</a>.</li>
</ul>



<h3 class="wp-block-heading">2. El Torito – Rampage Nachos</h3>



<ul class="wp-block-list">
<li><strong>Trigger:</strong> Rams defense stops the opponent on 4th down <a href="https://www.bing.com/ck/a?!&amp;&amp;p=60ef4bcbf4b5f3f9c5b7ac3213930c9bef947d92ae0acb03642e38fba0cbe113JmltdHM9MTc4OTI1NzYwMA&amp;ptn=3&amp;ver=2&amp;hsh=4&amp;fclid=39339326-0206-6660-1201-851d03be673b&amp;u=a1aHR0cHM6Ly9tZWFsc3RlYWxzLmNvL2RlYWxzL3JhbXMv&amp;ntb=1" target="_blank" rel="noopener"><img decoding="async" src="https://services.bingapis.com/favicon?url=mealsteals.co" alt="mealsteals.co">mealsteals.co</a>.</li>



<li><strong>Reward:</strong> Free Rampage Nachos with any food purchase.</li>



<li><strong>Redemption:</strong> Mention “RAMS NACHOS” at the El Torito location.</li>
</ul><p>The post <a href="https://riceball.com/2026/09/13/2026-dodgers-angels-lakers-lafc-galaxy-sports-team-triggered-fast-food-deals/">2026 Dodgers, Angels, Lakers, LAFC, Galaxy, Sports Team Triggered Fast Food Deals</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://riceball.com/2026/09/13/2026-dodgers-angels-lakers-lafc-galaxy-sports-team-triggered-fast-food-deals/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Obsidian Notes</title>
		<link>https://riceball.com/2026/09/06/obsidian-notes/</link>
					<comments>https://riceball.com/2026/09/06/obsidian-notes/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sun, 06 Sep 2026 18:11:51 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://riceball.com/?p=30460</guid>

					<description><![CDATA[<p>I&#8217;m using Obsidian, a lot, to read and edit Markdown files, partly for all this LLM practice. This is a document of tips and troubleshooting. Symptoms: tried to open a vault in a folder that has restricted permissions. The vault starts to open, but you get an &#8220;EACCESS permission denied&#8221; error. You cannot remove it [&#8230;]</p>
<p>The post <a href="https://riceball.com/2026/09/06/obsidian-notes/">Obsidian Notes</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">I&#8217;m using <a href="https://obsidian.md/">Obsidian</a>, a lot, to read and edit Markdown files, partly for all this LLM practice. This is a document of tips and troubleshooting.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">Symptoms: tried to open a vault in a folder that has restricted permissions. The vault starts to open, but you get an &#8220;EACCESS permission denied&#8221; error. You cannot remove it from the vault list, because the vault is partially open.</p>



<p class="wp-block-paragraph">Solution: Start up Obsidian with a special &#8220;Obsidian URI&#8221;, and it&#8217;ll start with the &#8220;open vault&#8221; dialog. </p>



<pre class="wp-block-preformatted">flatpak run md.obsidian.Obsidian %U obsidian://choose-vault</pre>



<p class="wp-block-paragraph">My command looks that way because I am running Linux MINT, and installed the Flatpak version of the program.</p>



<p class="wp-block-paragraph">From there, you can remove the vault from the vault list. You can then restart Obsidian, and it won&#8217;t try to open the problem vault.</p>



<p class="wp-block-paragraph">Ref: <a href="https://forum.obsidian.md/t/how-to-use-the-choose-vault-uri-action-in-linux/112087/5">https://forum.obsidian.md/t/how-to-use-the-choose-vault-uri-action-in-linux/112087/5</a></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">You can write your blog posts in Obsidian, and then paste them into WordPress. Here are some features that work:</p>



<p class="wp-block-paragraph">Test test. <em>One Star</em>, <strong>Two Stars</strong>, <strong><em>Three Stars</em></strong>, <a href="https://obsidian.md/" target="_blank" rel="noopener">Obsidian Link</a>.</p>



<p class="wp-block-paragraph"><code>code</code></p>


<pre class="wp-block-code"><span><code class="hljs">	code
</code></span></pre>


<p class="wp-block-paragraph">Text with footnote.<sup><a href="#fn-1">[1]</a></sup></p>



<ul class="wp-block-list">
<li>Bullet List</li>



<li>Bullet 2</li>
</ul>



<ol class="wp-block-list">
<li>Number List</li>



<li>Number 2</li>
</ol>



<ul class="wp-block-list">
<li>Task List</li>



<li>Task 2<br></li>
</ul>



<h3 class="wp-block-heading">Heading 3</h3>



<figure class="wp-block-image"><img decoding="async" src="https://riceball.com/wp-content/uploads/sites/2/2026/07/image-2.png" alt="Image"/></figure>



<p class="wp-block-paragraph">Table test</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Table</th><th>Test</th></tr></thead><tbody><tr><td>First</td><td>Second</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<ol class="wp-block-list">
<li>Footnote<a href="#fnref-1"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/21a9.png" alt="↩" class="wp-smiley" style="height: 1em; max-height: 1em;" />︎</a></li>
</ol>



<p class="wp-block-paragraph"></p><p>The post <a href="https://riceball.com/2026/09/06/obsidian-notes/">Obsidian Notes</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://riceball.com/2026/09/06/obsidian-notes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
