<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: wcrichton</title><link>https://news.ycombinator.com/user?id=wcrichton</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 13 Sep 2026 07:11:42 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=wcrichton" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[A Design Space Exploration of Async/Await]]></title><description><![CDATA[
<p>Article URL: <a href="https://cel.cs.brown.edu/blog/design-space-async-await/">https://cel.cs.brown.edu/blog/design-space-async-await/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49626718">https://news.ycombinator.com/item?id=49626718</a></p>
<p>Points: 433</p>
<p># Comments: 124</p>
]]></description><pubDate>Wed, 09 Sep 2026 13:59:50 +0000</pubDate><link>https://cel.cs.brown.edu/blog/design-space-async-await/</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=49626718</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49626718</guid></item><item><title><![CDATA[CSCI 1377: Tools For Thought (Spring 2026)]]></title><description><![CDATA[
<p>Article URL: <a href="https://cel.cs.brown.edu/csci-1377-s26/">https://cel.cs.brown.edu/csci-1377-s26/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48297579">https://news.ycombinator.com/item?id=48297579</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 27 May 2026 17:32:08 +0000</pubDate><link>https://cel.cs.brown.edu/csci-1377-s26/</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=48297579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48297579</guid></item><item><title><![CDATA[New comment by wcrichton in "Flowistry: An IDE plugin for Rust that focuses on relevant code"]]></title><description><![CDATA[
<p>My personal site (<a href="https://willcrichton.net/" rel="nofollow">https://willcrichton.net/</a>), lab site (<a href="https://cel.cs.brown.edu/" rel="nofollow">https://cel.cs.brown.edu/</a>), and Mastodon page (<a href="https://mastodon.social/@tonofcrates" rel="nofollow">https://mastodon.social/@tonofcrates</a>) are all good ways to follow me!</p>
]]></description><pubDate>Sat, 18 Oct 2025 21:32:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=45630510</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=45630510</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45630510</guid></item><item><title><![CDATA[New comment by wcrichton in "Flowistry: An IDE plugin for Rust that focuses on relevant code"]]></title><description><![CDATA[
<p>(Author here) That's exactly why I built this for Rust, and why it's difficult to replicate in any other language.</p>
]]></description><pubDate>Sat, 18 Oct 2025 19:21:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=45629736</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=45629736</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45629736</guid></item><item><title><![CDATA[C++ to Rust Phrasebook]]></title><description><![CDATA[
<p>Article URL: <a href="https://cel.cs.brown.edu/crp/">https://cel.cs.brown.edu/crp/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44140349">https://news.ycombinator.com/item?id=44140349</a></p>
<p>Points: 221</p>
<p># Comments: 78</p>
]]></description><pubDate>Fri, 30 May 2025 22:18:48 +0000</pubDate><link>https://cel.cs.brown.edu/crp/</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=44140349</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44140349</guid></item><item><title><![CDATA[Evaluating Human Factors Beyond Lines of Code]]></title><description><![CDATA[
<p>Article URL: <a href="https://blog.sigplan.org/2024/11/21/evaluating-human-factors-beyond-lines-of-code/">https://blog.sigplan.org/2024/11/21/evaluating-human-factors-beyond-lines-of-code/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42984861">https://news.ycombinator.com/item?id=42984861</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 08 Feb 2025 18:12:34 +0000</pubDate><link>https://blog.sigplan.org/2024/11/21/evaluating-human-factors-beyond-lines-of-code/</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=42984861</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42984861</guid></item><item><title><![CDATA[New comment by wcrichton in "Cognitive load is what matters"]]></title><description><![CDATA[
<p>My issue is that this article is trying to use cognitive load in its specific, academic meaning. It says:<p>> The average person can hold roughly four such chunks in working memory. Once the cognitive load reaches this threshold, it becomes much harder to understand things.<p>This is a paraphrase of the scientific meaning. "Intrinsic" and "extrinsic" cognitive load are also terms of art coined by John Sweller in his studies of working memory in education.<p>I agree the article isn't designed to be peer-reviewed science. And I agree the article has real insights that resonate with working developers. But I'm also a fan of honesty in scientific communication. When we say "vaccines prevent disease", that's based on both an enormous amount of data as well as a relatively precise theory of how vaccines work biologically. But if we say "composition reduces cognitive load", that's just based on personal experience. I think it's valuable to separate out the strength of the evidence for these claims.</p>
]]></description><pubDate>Wed, 25 Dec 2024 23:51:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=42512047</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=42512047</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42512047</guid></item><item><title><![CDATA[New comment by wcrichton in "Cognitive load is what matters"]]></title><description><![CDATA[
<p>I'm not saying that the <i>conclusions</i> in the article are false. As a programmer, I prefer composition to inheritance, too. I'm saying that the <i>justifications</i> are presented using a scientific term of art (cognitive load), but the scientific evidence regarding cognitive load isn't sufficient to justify these claims.</p>
]]></description><pubDate>Wed, 25 Dec 2024 23:05:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=42511803</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=42511803</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42511803</guid></item><item><title><![CDATA[New comment by wcrichton in "Cognitive load is what matters"]]></title><description><![CDATA[
<p>The article is attempting to use a scientific term of art, "cognitive load", to justify claims about programming. Those claim cannot be justified given the existing evidence about cognitive load. As I explain in my linked response, I nonetheless agree with many of the claims, but they're best understood as folk theories than scientific theories.<p>And I don't think condescension will make this a productive discussion!</p>
]]></description><pubDate>Wed, 25 Dec 2024 23:02:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=42511790</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=42511790</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42511790</guid></item><item><title><![CDATA[New comment by wcrichton in "Cognitive load is what matters"]]></title><description><![CDATA[
<p>I did my PhD at Stanford about the cognitive aspects of programming, including studies of cognitive load. This article uses pseudoscience to justify folk theories about programming. I would encourage readers to take everything with a grain of salt, and do not wave this article around as a "scientific" justification for anything.<p>I laid out my objections to the article last year when it first circulated: <a href="https://github.com/zakirullin/cognitive-load/issues/22">https://github.com/zakirullin/cognitive-load/issues/22</a></p>
]]></description><pubDate>Wed, 25 Dec 2024 20:28:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=42510962</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=42510962</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42510962</guid></item><item><title><![CDATA[New comment by wcrichton in "Rethinking Text Resizing on Web"]]></title><description><![CDATA[
<p>Do you believe that you could implement the Airbnb interface without any CSS or Javascript?</p>
]]></description><pubDate>Mon, 20 May 2024 20:23:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=40419862</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=40419862</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40419862</guid></item><item><title><![CDATA[New comment by wcrichton in "Nota is a language for writing documents, like academic papers and blog posts"]]></title><description><![CDATA[
<p>Hi, Nota creator here. A high-level comment:<p>After developing the initial prototype you see in the webpage, I've since gone back to the drawing board. I'm working on developing a firmer foundation for issues like:<p>- How do you interleave content and computation? See: <a href="https://arxiv.org/abs/2310.04368" rel="nofollow noreferrer">https://arxiv.org/abs/2310.04368</a><p>- How do different syntaxes make different document tasks easy, hard, or impossible? See: <a href="https://github.com/cognitive-engineering-lab/doclang-benchmark">https://github.com/cognitive-engineering-lab/doclang-benchma...</a><p>I still very much believe in the high-level philosophy, but Nota will look very different within ~6 months. In the meantime, the single coolest development in the document language space is Typst, which I encourage you to check out: <a href="https://typst.app/" rel="nofollow noreferrer">https://typst.app/</a><p>Also: the next version of Nota will be written 99% in Rust :-)</p>
]]></description><pubDate>Fri, 20 Oct 2023 05:10:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=37952566</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=37952566</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37952566</guid></item><item><title><![CDATA[New comment by wcrichton in "The Overflowing Brain: Information overload and the limits of working memory"]]></title><description><![CDATA[
<p>Yes, this was my first and probably last experiment using participants from Mechanical Turk. Just too unpredictable.</p>
]]></description><pubDate>Thu, 06 Jul 2023 18:45:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=36620844</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=36620844</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36620844</guid></item><item><title><![CDATA[New comment by wcrichton in "The Overflowing Brain: Information overload and the limits of working memory"]]></title><description><![CDATA[
<p>For the curious, I have done some experiments on working memory and programming: <a href="https://arxiv.org/abs/2101.06305" rel="nofollow noreferrer">https://arxiv.org/abs/2101.06305</a><p>> Program tracing, or mentally simulating a program on concrete inputs, is an important part of general program comprehension. Programs involve many kinds of virtual state that must be held in memory, such as variable/value pairs and a call stack. In this work, we examine the influence of short-term working memory (WM) on a person's ability to remember program state during tracing. [...]</p>
]]></description><pubDate>Wed, 05 Jul 2023 22:11:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=36607892</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=36607892</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36607892</guid></item><item><title><![CDATA[Quizicist: AI-Powered Quiz Generation]]></title><description><![CDATA[
<p>Article URL: <a href="https://quizici.st/">https://quizici.st/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=34634855">https://news.ycombinator.com/item?id=34634855</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Thu, 02 Feb 2023 23:30:48 +0000</pubDate><link>https://quizici.st/</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=34634855</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34634855</guid></item><item><title><![CDATA[New comment by wcrichton in "Nota: A Document Language for the Browser"]]></title><description><![CDATA[
<p>Thanks for the bug report, I will fix that.</p>
]]></description><pubDate>Thu, 12 May 2022 19:11:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=31358864</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=31358864</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31358864</guid></item><item><title><![CDATA[New comment by wcrichton in "Nota: A Document Language for the Browser"]]></title><description><![CDATA[
<p>Not yet, but that is a high priority TODO. The simplest toolchain is just "Page Print > Save to PDF", but I need to first improve the printer-oriented CSS.<p>There's a broader issue of layout, like if you want to print a Nota document and a figure is split across two pages. I'm not sure how to handle that, or if it even makes sense to. The goal of Nota is to move away from the paper document model, although people of course still like to print things and scribble on them.</p>
]]></description><pubDate>Thu, 12 May 2022 19:09:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=31358827</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=31358827</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31358827</guid></item><item><title><![CDATA[New comment by wcrichton in "Nota: A Document Language for the Browser"]]></title><description><![CDATA[
<p>Quarto is a good example where their design requires users to understand many different DSLs to achieve the end result. Just in their code sample you have:<p>* YAML for the page metadata (title: ...)<p>* Markdown (```{python}...```)<p>* Custom in-text notations (@fig-polar)<p>* Custom markdown notations (#| label: fig-polar)<p>Whereas in Nota, this would look like:<p><pre><code>    %(export let metadata = {
      title: "matplotlib demo",
      format: {html: {codeFold: true}},
      jupyter: "python3"
    })

    For a demonstration of a line plot on a polar axis, see @Ref{fig-polar}.

    @Code[language=Python][label="fig-polar"][figCap="A line plot on a polar axis"]{
      import numpy as np
      import matplotlib.pyplot as plt

      r = np.arange(0, 2, 0.01)
      theta = 2 * np.pi * r
      fig, ax = plt.subplots(
        subplot_kw = {'projection': 'polar'} 
      )
      ax.plot(theta, r)
      ax.set_rticks([0.5, 1, 1.5, 2])
      ax.grid(True)
      plt.show()
    }
</code></pre>
When code or structured data is involved, Nota is "just Javascript" (e.g. exporting metadata, specifying code literals). When text is involved, Nota provides a small core set of sigils like @Component[attr=value]{content}.<p>Note that Quarto's "#| fig-cap" annotation probably doesn't allow for rich text captions, since it only allows strings. But Nota allows deep composition, so you could do:<p><pre><code>    @Code[figCap=@{A @strong{line plot} on a @em{polar axis}}]{
      ...
    }</code></pre></p>
]]></description><pubDate>Thu, 12 May 2022 19:03:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=31358741</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=31358741</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31358741</guid></item><item><title><![CDATA[New comment by wcrichton in "Nota: A Document Language for the Browser"]]></title><description><![CDATA[
<p>AFAIK Pandoc doesn't really have a story for interaction. Like, "show a tooltip when someone clicks on this text". That's the main value add for Nota.<p>Nota doesn't require users to specify the implementations of things like footnotes. The goal is the user just says "@Footnote{content}" and the document renderer takes care of all the layout. And you can swap in different implementations of the Footnote component.</p>
]]></description><pubDate>Thu, 12 May 2022 18:54:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=31358600</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=31358600</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31358600</guid></item><item><title><![CDATA[New comment by wcrichton in "Nota: A Document Language for the Browser"]]></title><description><![CDATA[
<p>A goal for Nota is to gracefully degrade in the absence of Javascript. This already <i>mostly</i> works, since we do server-side rendering to fully generate the HTML contents of the document before providing it to the client. When you first visit nota-lang.org or willcrichton.net you are seeing the pre-rendered document.</p>
]]></description><pubDate>Thu, 12 May 2022 18:52:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=31358580</link><dc:creator>wcrichton</dc:creator><comments>https://news.ycombinator.com/item?id=31358580</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31358580</guid></item></channel></rss>