<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: tylerhou</title><link>https://news.ycombinator.com/user?id=tylerhou</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 08 Apr 2026 00:18:48 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=tylerhou" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by tylerhou in "False claims in a widely-cited paper"]]></title><description><![CDATA[
<p>Graduate students! Hah! ML researchers can only hope their papers at ICLR/ICML/NeurIPs are reviewed by graduate students!</p>
]]></description><pubDate>Thu, 26 Mar 2026 03:44:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47526417</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=47526417</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47526417</guid></item><item><title><![CDATA[New comment by tylerhou in "The great computer science exodus (and where students are going instead)"]]></title><description><![CDATA[
<p>This article is missing (extremely important) context that CS enrollment at Berkeley was restricted significantly. Many students at Berkeley want to major in CS, but can’t.</p>
]]></description><pubDate>Mon, 16 Feb 2026 00:20:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47029300</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=47029300</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47029300</guid></item><item><title><![CDATA[New comment by tylerhou in "Founding is a snowball"]]></title><description><![CDATA[
<p>The art’s aesthetic, which resembles Calvin and Hobbes, is disrespectful to its creator, Bill Watterson’s.<p>Bill spent a lot of energy fighting commercialization of his work, arguing that it would devalue his characters and their personalities. I don’t know what is cheaper than using an AI model to instantly generate similar art, for free.</p>
]]></description><pubDate>Mon, 02 Feb 2026 07:25:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=46853383</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=46853383</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46853383</guid></item><item><title><![CDATA[New comment by tylerhou in "Vitamin D supplements cut heart attack risk by 52%. Why?"]]></title><description><![CDATA[
<p>A big problem is that the range that we have decided to call “normal” might not actually be a normal range.<p>For example, 50% of surfers were found to have insufficient vitamin D in one study. <a href="https://pubmed.ncbi.nlm.nih.gov/17426097/" rel="nofollow">https://pubmed.ncbi.nlm.nih.gov/17426097/</a><p>There are at least two possible conclusions that you could draw. One conclusion is that we all need vitamin D supplementation regardless of how much sun exposure we receive.<p>Another conclusion is that we might want to reevaluate what we consider the normal range to be, especially when we are deciding a range for a specific individual.</p>
]]></description><pubDate>Sat, 31 Jan 2026 00:42:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=46831988</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=46831988</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46831988</guid></item><item><title><![CDATA[New comment by tylerhou in "Show HN: A small programming language where everything is pass-by-value"]]></title><description><![CDATA[
<p>You should check out Perceus! <a href="https://www.microsoft.com/en-us/research/wp-content/uploads/2020/11/perceus-tr-v1.pdf" rel="nofollow">https://www.microsoft.com/en-us/research/wp-content/uploads/...</a></p>
]]></description><pubDate>Mon, 26 Jan 2026 06:08:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=46762369</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=46762369</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46762369</guid></item><item><title><![CDATA[New comment by tylerhou in "A “frozen” dictionary for Python"]]></title><description><![CDATA[
<p>Basically, a proxy. You don't need to deep copy; you just need to return a proxy object that falls back to the original dict if the key you are requesting has not been found or modified.<p>Functional data structures essentially create a proxy on every write. This can be inefficient if you make writes in batches, and you only need immutability between batches.</p>
]]></description><pubDate>Thu, 11 Dec 2025 23:21:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=46238746</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=46238746</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46238746</guid></item><item><title><![CDATA[New comment by tylerhou in "Zig's new plan for asynchronous programs"]]></title><description><![CDATA[
<p>Monads do not need to build up a computation. The identity functor is a monad.</p>
]]></description><pubDate>Wed, 03 Dec 2025 22:21:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=46141059</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=46141059</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46141059</guid></item><item><title><![CDATA[New comment by tylerhou in "Zig's new plan for asynchronous programs"]]></title><description><![CDATA[
<p>Yes.</p>
]]></description><pubDate>Tue, 02 Dec 2025 22:21:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46127745</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=46127745</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46127745</guid></item><item><title><![CDATA[New comment by tylerhou in "Datacenters in space aren't going to work"]]></title><description><![CDATA[
<p>The sun’s radiation hitting earth is 44,000 terawatts. I think we’re fine with an “extra” terawatt. (It’s not even extra, because it would be derived from the sun’s existing energy.)<p><a href="https://www.nasa.gov/wp-content/uploads/2015/03/135642main_balance_trifold21.pdf?emrc=5b9a71" rel="nofollow">https://www.nasa.gov/wp-content/uploads/2015/03/135642main_b...</a></p>
]]></description><pubDate>Sun, 30 Nov 2025 05:04:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46093939</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=46093939</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46093939</guid></item><item><title><![CDATA[New comment by tylerhou in "Emily Riehl is rewriting the foundations of higher category theory (2020)"]]></title><description><![CDATA[
<p>> I would like to learn category theory properly one day, at least to that kind of "advance undergraduate" level she mentions.<p>As someone who tried to learn category theory, and then did a mathematics degree, I think anyone who wants to properly learn category theory would benefit greatly from learning the surrounding mathematics first. The nontrivial examples in category theory come from group theory, ring theory, linear algebra, algebraic topology, etc.<p>For example, Set/Group/Ring have initial and final objects, but Field does not. Why? Really understanding requires at least some knowledge of ring/field theory.<p>What is an example of a nontrivial functor? The fundamental group is one. But appreciating the fundamental group requires ~3 semesters of math (analysis, topology, group theory, algebraic topology).<p>Why are opposite categories useful? They can greatly simplify arguments. For example, in linear algebra, it is easier to show that the row rank and column rank of a matrix are equal by showing that the dual/transpose operator is a functor from the opposite category.</p>
]]></description><pubDate>Tue, 28 Oct 2025 20:26:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=45738669</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=45738669</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45738669</guid></item><item><title><![CDATA[New comment by tylerhou in "Severe performance penalty found in VSCode rendering loop"]]></title><description><![CDATA[
<p>No, sorting 50/2ish things 50 times allegedly takes 1-2ms. Which is only slightly more believable.</p>
]]></description><pubDate>Mon, 27 Oct 2025 04:46:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=45717488</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=45717488</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45717488</guid></item><item><title><![CDATA[New comment by tylerhou in "Why SSA?"]]></title><description><![CDATA[
<p>It is not critical for register assignment -- in fact, SSA makes register assignment more difficult (see the swap problem; the lost copy problem).<p>Lifetime analysis is important for register assignment, and SSA can make lifetime analysis easier, but plenty of non-SSA compilers (lower-tier JIT compilers often do not use SSA because SSA is heavyweight) are able to register allocate just fine without it.</p>
]]></description><pubDate>Wed, 22 Oct 2025 23:08:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=45676308</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=45676308</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45676308</guid></item><item><title><![CDATA[New comment by tylerhou in "Why SSA?"]]></title><description><![CDATA[
<p>Here's a concise explanation of SSA. Regular (imperative) code is hard to optimize because in general statements are not <i>pure</i> -- if a statement has side effects, then it might not preserve the behavior to optimize that statement by, for example:<p>1. Removing that statement (dead code elimination)<p>2. Deduplicating that statement (available expressions)<p>3. Reordering that statement with other statements (hoisting; loop-invariant code motion)<p>4. <i>Duplicating</i> that statement (can be useful to enable other optimizations)<p>All of the above optimizations are very important in compilers, and they are much, much easier to implement if you don't have to worry about preserving side effects while manipulating the program.<p>So the point of SSA is to translate a program into an equivalent program whose statements have <i>as few side effects as possible.</i> The result is often something that looks like a functional program. (See: <a href="https://www.cs.princeton.edu/~appel/papers/ssafun.pdf" rel="nofollow">https://www.cs.princeton.edu/~appel/papers/ssafun.pdf</a>, which is famous in the compilers community.) In fact, if you view basic blocks themselves as a function, phi nodes "declare" the arguments of the basic block, and branches correspond to tailcalling the next basic block with corresponding values. This has motivated <i>basic block arguments</i> in MLIR.<p>The "combinatorial circuit" metaphor is slightly wrong, because most SSA implementations <i>do</i> need to consider state for loads and stores into arbitrary memory, or arbitrary function calls. Also, it's not easy to model a loop of arbitrary length as a (finite) combinatorial circuit. Given that the author works at an AI accelerator company, I can see why he leaned towards that metaphor, though.</p>
]]></description><pubDate>Wed, 22 Oct 2025 23:01:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=45676248</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=45676248</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45676248</guid></item><item><title><![CDATA[New comment by tylerhou in "Apple M5 chip"]]></title><description><![CDATA[
<p>> M5 is 4-6x more powerful than M4<p>In GPU performance (probably measured on a specific set of tasks).</p>
]]></description><pubDate>Wed, 15 Oct 2025 16:22:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=45594879</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=45594879</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45594879</guid></item><item><title><![CDATA[New comment by tylerhou in "Without data centers, GDP growth was 0.1% in the first half of 2025"]]></title><description><![CDATA[
<p>Money circulates but resources do not. A human hour spent constructing a data center can’t then be used to build an apartment building.</p>
]]></description><pubDate>Wed, 08 Oct 2025 12:11:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=45515272</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=45515272</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45515272</guid></item><item><title><![CDATA[New comment by tylerhou in "Still Asking: How Good Are Query Optimizers, Really? [pdf]"]]></title><description><![CDATA[
<p>WCOJs guarantee an (asymptotic) upper bound on join complexity, but often with the right join plan and appropriate cardinality estimations, you can do much better than WCOJ.<p>The runtime of WCOJs algorithms are even more dependent on good cardinality estimation. For instance, in VAAT, the main difficulty to find an appropriate variable ordering, which relies on knowledge about cardinalities conditioned on particular variables having particular values. If you have the wrong ordering, you still achieve worst case optimal, but you could have done far better in some cases with other algorithms (e.g. Yannakakis algorithm for acyclic queries). And as far as I know, many DBMSes do not keep track of this type of conditional cardinality, so it is unlikely that existing WCOJ will be faster in practice.<p>The new hotness is "instance optimal" joins...</p>
]]></description><pubDate>Wed, 03 Sep 2025 05:35:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=45112524</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=45112524</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45112524</guid></item><item><title><![CDATA[New comment by tylerhou in "Python has had async for 10 years – why isn't it more popular?"]]></title><description><![CDATA[
<p>> You can end up writing nearly the exact same code twice because one needs to be async to handle an async function argument, even if the real functionality of the wrapper isn't async.<p>Sorry for the possibly naive question. If I need to call a synchronous function from an async function, why can't I just call await on the async argument?<p><pre><code>    def foo(bar: str, baz: int):
      # some synchronous work
      pass
    
    async def other(bar: Awaitable[str]):
      foo(await bar, 0)</code></pre></p>
]]></description><pubDate>Tue, 02 Sep 2025 23:00:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=45110231</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=45110231</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45110231</guid></item><item><title><![CDATA[New comment by tylerhou in "AI models need a virtual machine"]]></title><description><![CDATA[
<p>There are many comments that don't see the point of the article. For example, why not just use the tools the operating system provides for sandboxing? This article seems to be directed at people familiar with the state of programming languages research (SIGPLAN is the Special Interest Group on Programming LANguages) and so I think it's understandable that it seems vague if one is missing the broader context. However, for people familiar with the state of the field, the main idea is fairly clear.<p>An operating system (or sandbox, or whatever) <i>is</i> a very large virtual machine, where the "instructions" are the normal CPU instructions plus the set of syscalls. Unfortunately, operating systems today are complicated, hard to understand, and (relatively) hard to modify. For example, there are many different ways to sandbox file system access (chmod, containers, chroot, sandbox-exec on macOS etc.) and they each have bugs that have turned into "features" or subtle semantics. Plus, they are not available on all operating systems or even on all distributions of the same operating system. And then -- how do filesystem permissions and network permissions interact? Even of both of their semantics are "safe," is the composition of the two safe?<p>The assumption is: because operating systems are so complex, large, and underspecified, it probably is dangerous for LLMs to interact directly with the underlying operating system. We have observed this empirically: through CVEs in C and C++ code, we know that subtle errors or small differences in semantics can cascade into huge security vulnerabilities.<p>To address this, the authors propose that LLMs instead interact with a virtual machine where, for example, the semantics of permissions and/or capabilities is well-defined and standardized across different implementations or operating systems. (This is why they mention Java as an analogy -- the JVM gave developers the ability to write code for a vast array of architectures and operating systems without having to think about the underlying implementations.) This standardization makes it easier to understand how exactly an LLM would be allowed to interact with the outside world.<p>Besides semantic understanding and clarity, there are more benefits to designing a new virtual machine.<p>- Standardization across multiple model providers (mentioned).<p>- Better RLHF / constrained generation opportunity than general Bash output.<p>- Can incorporate advances in programming language theory and design.<p>For an example of the last point, in recent years, there has been a ton of research  on <i>information flow</i> for security and privacy (mentioned in the article). In a programming language that is aware of information flow, I can mark my bank account password as "secret" and the input to all HTTP calls as "public." The type system or some other static analysis can verify that my password cannot possibly affect the input to any HTTP call. This is harder than you think because it depends on control flow! For example, the following program indirectly exfiltrates information about my password:<p><pre><code>    if (password.startsWith("hackernews")) {
      fetch("https://example.com/a");
    } else {
      fetch("https://example.com/b");
    }
</code></pre>
Obviously, nobody would write that code, but people do write similar code with bugs in e.g. timing attacks.</p>
]]></description><pubDate>Sat, 30 Aug 2025 21:28:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45078158</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=45078158</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45078158</guid></item><item><title><![CDATA[New comment by tylerhou in "AGI Overhyped?"]]></title><description><![CDATA[
<p>Sorry, you're right that the chart on the home page does not have human performance. The leaderboard chart does: <a href="https://arcprize.org/leaderboard" rel="nofollow">https://arcprize.org/leaderboard</a>. And the leaderboard by default shows scores for ARC-AGI 1 and 2. The models are much worse at 2 than 1; the best performing model scores around 15% (Grok 4, thinking), while humans are at ~100%.</p>
]]></description><pubDate>Thu, 28 Aug 2025 08:42:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=45049888</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=45049888</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45049888</guid></item><item><title><![CDATA[New comment by tylerhou in "AGI Overhyped?"]]></title><description><![CDATA[
<p>> AI already blows most people out of an IQ test at a fraction of the computational power of a brain<p>AFAIK, IQ tests used in psychological evaluations do not contain any randomness so exact answers are almost always in distribution. I haven't seen someone compare AI to an IQ test that is not in distribution.<p>On ARC-AGI, which is mildly similar to a randomly generated IQ test, humans still are much better than LLMs. <a href="https://arcprize.org/" rel="nofollow">https://arcprize.org/</a> (scroll down for chart)</p>
]]></description><pubDate>Thu, 28 Aug 2025 07:48:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=45049563</link><dc:creator>tylerhou</dc:creator><comments>https://news.ycombinator.com/item?id=45049563</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45049563</guid></item></channel></rss>