<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>furidamu</title><link>https://www.julian.ac</link><description></description><lastBuildDate>Sat, 25 Jul 2026 02:48:53 +0000</lastBuildDate><item><title>The New Left Behind</title><link>https://www.julian.ac/blog/2026/06/09/the-new-left-behind/</link><description><![CDATA[<p><a href="https://metr.org/time-horizons/">Frontier LLMs continue</a> to get more and more powerful, exactly <a href="https://www.julian.ac/blog/2025/09/27/failing-to-understand-the-exponential-again/">as expected</a>. Yet despite their increased usefulness, a camp of AI skeptics and never-LLMers is emerging - Zig goes as far as a <a href="https://ziglang.org/code-of-conduct/">Strict No LLM / No AI Policy</a>!</p>
<p>There was some merit to this, early LLMs genuinely needed close supervision and technical expertise to produce high-quality code, and overly enthusiastic early adopters produced a lot of slop and spam. However this is increasingly not the case anymore with current models, just as these policies and ideas are becoming more popular.</p>
<p>Instead, the correct move with LLMs <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2026/06/09/the-new-left-behind/</guid><pubDate>Tue, 9 Jun 2026 21:23:00 +0000</pubDate></item><item><title>AlphaProof Paper</title><link>https://www.julian.ac/blog/2025/11/13/alphaproof-paper/</link><description><![CDATA[<p>I'm very excited to finally be able to share more details about how AlphaProof works! AlphaProof is the system that we used to discover the <a href="https://deepmind.google/discover/blog/ai-solves-imo-problems-at-silver-medal-level/">Lean proofs for the International Mathematical Olympiad 2024</a>, reaching silver medal performance. Our full paper <a href="https://www.nature.com/articles/s41586-025-09833-y">Olympiad-Level Formal Mathematical Reasoning with Reinforcement Learning</a> has now been published in Nature.</p>
<p>: The work described was done from the beginning of 2022 to July 2024, while I was still at Google DeepMind.</p>
<h3>The International Mathematical Olympiad</h3>
<p>The International Mathematical Olympiad, or IMO for short, is a yearly contest in mathematics amongst the 6 <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2025/11/13/alphaproof-paper/</guid><pubDate>Thu, 13 Nov 2025 16:00:00 +0000</pubDate></item><item><title>MAD Podcast</title><link>https://www.julian.ac/blog/2025/10/25/mad-podcast/</link><description><![CDATA[<p>This week I had the pleasure of chatting with <a href="https://www.mattturck.com/">Matt Turck</a> from the <a href="https://www.youtube.com/c/DataDrivenNYC">MAD Podcast</a>, and it was a fun one! We talked trends in AI, RL and why it unlocks Agents, scaling and so much more.</p>
<p>You can find the episode on your podcast app of choice, or on YouTube:</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/gTlxCrsUcFM?si=mOmISZMsn0zpL_ml" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
<p>For the curious, some links to what we talked about, and further reading:</p>
<ul>
<li>my recent blog post, <a href="/blog/2025/09/27/failing-to-understand-the-exponential-again/">Failing to Understand the Exponential</a></li>
<li>Move 37, as <span class="more">...</span></li>
</ul>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2025/10/25/mad-podcast/</guid><pubDate>Sat, 25 Oct 2025 09:16:00 +0000</pubDate></item><item><title>Python 3.14 - Threading Unbound</title><link>https://www.julian.ac/blog/2025/10/08/python-314--threading-unbound/</link><description><![CDATA[<p><a href="https://www.python.org/downloads/release/python-3140/">Python 3.14 is released</a> and I’m extremely exited that free-threading is now officially supported! Finally no more GIL, finally able to use all the hundreds of cores on modern servers! Or at least in theory, we'll see how it holds up in practice.</p>
<p>I'm also quite excited for <a href="https://docs.python.org/3.14/whatsnew/3.14.html#whatsnew314-template-string-literals">template string literals</a> (t-strings). Better HTML templates? Direct SQL interpolation? I'm looking forward to what the community comes up with.</p>
<p>Many packages already <a href="https://hugovk.github.io/free-threaded-wheels/">provide free-threaded wheels</a>, including core ML libraries such as numpy, jax and torch. This means it's now easy to parallelize your data pipeline, without any multiprocessing!</p>
<p><span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2025/10/08/python-314--threading-unbound/</guid><pubDate>Wed, 8 Oct 2025 22:50:00 +0000</pubDate></item><item><title>Failing to Understand the Exponential, Again</title><link>https://www.julian.ac/blog/2025/09/27/failing-to-understand-the-exponential-again/</link><description><![CDATA[<p>The current discourse around AI progress and a <a href="https://www.wsj.com/tech/ai/ai-bubble-building-spree-55ee6128">supposed</a> “<a href="https://www.reuters.com/commentary/breakingviews/ai-investment-bubble-inflated-by-trio-dilemmas-2025-09-25/">bubble</a>” reminds me a lot of the early weeks of the Covid-19 pandemic. Long after the timing and scale of the coming global pandemic was obvious from extrapolating the exponential trends, politicians, journalists and most public commentators kept treating it as a remote possibility or a localized phenomenon.</p>
<p>Something similarly bizarre is happening with AI capabilities and further progress. People notice that while AI can now write programs, design websites, etc, it still often makes mistakes or goes in a wrong direction, and then they somehow jump to the conclusion <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2025/09/27/failing-to-understand-the-exponential-again/</guid><pubDate>Sat, 27 Sep 2025 19:33:00 +0000</pubDate></item><item><title>Giving Advice</title><link>https://www.julian.ac/blog/2025/09/27/giving-advice/</link><description><![CDATA[<p>Good advice should rule out large parts of the possibility space - if you don't find yourself disagreeing with the advice or changing what you are doing, then the advice is just generic fluff.</p>
<p>Advice should be based on experience. Not necessarily your own, observing others can also make good advice, and it scales a lot better.</p>
<p>Good advice is contentious or not widely known. If everyone agrees with it already it’s just common sense.</p>
<p>It's often easier to give advice on what <em>not</em> to do, rather than on what you should do. It's less useful, but <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2025/09/27/giving-advice/</guid><pubDate>Sat, 27 Sep 2025 17:04:00 +0000</pubDate></item><item><title>Disconnect on Holiday</title><link>https://www.julian.ac/blog/2025/09/10/disconnect-on-holiday/</link><description><![CDATA[<p>A timely topic, as I'm writing this on the plane back from my latest trip: When you go on holiday, don’t check your work email, disable all notifications, just disconnect completely. Not just for your own mental health - many people have covered that extensively - but also to test the resilience of your work projects.</p>
<p>It’s easy to argue about <a href="https://en.wikipedia.org/wiki/Bus_factor">bus factors</a>, but nothing clarifies the situation better than going off grid for two weeks. Can your colleagues add new features, fix bugs with ease? Or do they start wishing for you to come back, try to contact <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2025/09/10/disconnect-on-holiday/</guid><pubDate>Wed, 10 Sep 2025 13:18:00 +0000</pubDate></item><item><title>New Domain</title><link>https://www.julian.ac/blog/2025/08/13/new-domain/</link><description><![CDATA[<p>After almost 18 years with my old domain (<a href="https://who.is/whois/furidamu.org">furidamu.org</a>, acquired August 2007!), I found a new domain that should be easier to remember and spell: <a href="https://www.julian.ac/">julian.ac</a></p>
<p>I've migrated my blog to the new domain, but I plan to keep the old domain and URLs active indefinitely, with redirects to the corresponding new address. Please let me know if you run into any issues!</p>
<p>I was also tempted by a second domain, <a href="https://www.julian.photo/">julian.photo</a>, to finally get more serious about editing and sharing my travel and animal photos. This project is still very much work in progress, I'm experimenting <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2025/08/13/new-domain/</guid><pubDate>Wed, 13 Aug 2025 14:31:00 +0000</pubDate></item><item><title>Serverless Comments</title><link>https://www.julian.ac/blog/2025/08/09/serverless-comments/</link><description><![CDATA[<p>While migrating my blog to my new domain (<a href="https://www.julian.ac">julian.ac</a>!), I realized that the service I had been using for <a href="https://commento.io/">comments</a> had not been maintained in a while, and did not support easy migration to a new domain.</p>
<p>I've been very impressed with the simplicity and reliability of S3 in the &gt;10 years I've been using it to host this blog, so why not use the same setup for comments? It's not like I need to support massive write throughput or millions of comments, so a very simple system is sufficient:</p>
<ul>
<li>All comments for a post are stored <span class="more">...</span></li>
</ul>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2025/08/09/serverless-comments/</guid><pubDate>Sat, 9 Aug 2025 18:44:00 +0000</pubDate></item><item><title>Slimming Down</title><link>https://www.julian.ac/blog/2025/07/20/slimming-down/</link><description><![CDATA[<p>This morning I got <a href="https://xkcd.com/356/">nerd-sniped</a> by <a href="https://endtimes.dev/why-your-website-should-be-under-14kb-in-size/">Why your website should be under 14kB in size</a>. I had already optimized my blog several times previously, most recently writing my own <a href="/blog/2024/09/12/custom-static-site-generator/">static site generator in Rust</a>, but according to the <a href="https://radar.cloudflare.com/scan">Cloudflare URL Scanner</a> my front page was still a shocking <a href="https://radar.cloudflare.com/scan/54458872-5b14-4c99-aa04-4fc525767ca6/summary">242 kB</a>!</p>
<p>How could this be? Turns out 124 kB were consumed just by <a href="https://highlightjs.org/">highlight.js</a>, and a further 75 kB by a single screenshot from one of my posts. And this wasn't even counting another 258 kB from <a href="https://katex.org/">KaTeX</a>, which <a href="https://radar.cloudflare.com/scan/54458872-5b14-4c99-aa04-4fc525767ca6/security">failed to load in the Cloudflare scanner</a> due to the CORS <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2025/07/20/slimming-down/</guid><pubDate>Sun, 20 Jul 2025 14:54:00 +0000</pubDate></item><item><title>HDR Photography</title><link>https://www.julian.ac/blog/2025/05/26/hdr-photography/</link><description><![CDATA[<p>Estimates for the dynamic range (the maximum perceivable contrast between light and dark) of human eyes vary depending on the source, from <a href="https://en.wikipedia.org/wiki/Human_eye#Dynamic_range">1:100</a> to <a href="https://www.cambridgeincolour.com/tutorials/cameras-vs-human-eye.htm#sensitivity">1:1000</a> or more for static contrast. Dynamic contrast, where the eye moves around the scene and the iris adjusts in size is many orders of magnitude larger - with sufficient adaption time we can switch between bright daylight (<math display="inline"><msup><mn>10</mn><mn>8</mn></msup><mi>c</mi><mi>d</mi><mo>/</mo><msup><mi>m</mi><mn>2</mn></msup></math>) and faint starlight (<math display="inline"><msup><mn>10</mn><mrow><mi>−</mi><mn>6</mn></mrow></msup><mi>c</mi><mi>d</mi><mo>/</mo><msup><mi>m</mi><mn>2</mn></msup></math>), a range of <math display="inline"><msup><mn>10</mn><mrow><mn>14</mn></mrow></msup></math>!</p>
<p>In comparison, standard computer screens display images encoded using 8-bit color channels, for a <a href="https://en.wikipedia.org/wiki/Standard-dynamic-range_video#Dynamic_range">maximum of 256 brightness levels</a>. This is why photos of very vivid <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2025/05/26/hdr-photography/</guid><pubDate>Mon, 26 May 2025 12:23:00 +0000</pubDate></item><item><title>Free-threading Update - 3.14.0a7</title><link>https://www.julian.ac/blog/2025/05/05/freethreading-update--3140a7/</link><description><![CDATA[<p>I mentioned in my <a href="/blog/2025/05/04/experimenting-with-free-threaded-python/">previous post</a> a lock contention issue when accessing the same list from different threads, leading to worse performance the more threads were used. Turns out this is fixed in Python 3.14.0a7 already!</p>
<p>Unfortunately this version doesn't (yet) seem available from <code class="inline-code">uv</code> (which is why I hadn't originally tried it), but it can be downloaded and installed manually from the <a href="https://www.python.org/downloads/release/python-3140a7/">Python website</a> (click Customize at the installation step and check the free-threading box). On Mac OS, the interpreter binaries can then be found at:</p>
<ul>
<li><code class="inline-code">/Library/Frameworks/Python.framework/Versions/3.14/bin/python3</code></li>
<li><code class="inline-code">/Library/Frameworks/PythonT.framework/Versions/3.14/bin/python3t</code></li>
</ul>
<p>With this version we observe much <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2025/05/05/freethreading-update--3140a7/</guid><pubDate>Mon, 5 May 2025 20:48:00 +0000</pubDate></item><item><title>Experimenting with free threaded Python</title><link>https://www.julian.ac/blog/2025/05/04/experimenting-with-free-threaded-python/</link><description><![CDATA[<p>As of version 3.13, Python is finally getting support for real multi-threading that is not hobbled by the <a href="https://en.wikipedia.org/wiki/Global_interpreter_lock">GIL</a>: <a href="https://docs.python.org/3/howto/free-threading-python.html">experimental support for free threading</a>! This means multiple Python threads can now execute at the same time, without needing to compete for the global interpreter lock. In <a href="https://cloud.google.com/compute/docs/general-purpose-machines#c4d_machine_types">modern machines with hundreds of cores</a> this can speed up CPU-bound programs by two orders of magnitude! Even in ML workloads that only use Python as a DSL with all heavy computation in numpy, JAX etc it is very easy to accidentally be Python interpreter bound - especially in RL algorithms that require more <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2025/05/04/experimenting-with-free-threaded-python/</guid><pubDate>Sun, 4 May 2025 18:41:00 +0000</pubDate></item><item><title>Claude Code and Rust</title><link>https://www.julian.ac/blog/2025/05/03/claude-code-and-rust/</link><description><![CDATA[<p>After 10 years of writing C++ while at Google, I’ve really enjoyed writing Rust over the last <a href="/blog/2024/10/28/joining-anthropic/">6 months at Anthropic</a>. It’s truly a breath of fresh air - modern APIs, confidence that if my code compiles it will work as expected, easy dependency management, a great linter. I say that as someone deeply familiar with modern high-performance C++, having touched <a href="/blog/2024/09/13/being-productive/">around 1 million lines of C++</a> in various RL and distributed systems projects. <a href="https://github.com/google/sanitizers">Sanitizers</a> and <a href="https://abseil.io/docs/cpp/guides/synchronization#thread-annotations">absl threading annotations</a> are great, but categorically preventing memory and concurrency bugs from compiling is even better.</p>
<p>One of the most important <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2025/05/03/claude-code-and-rust/</guid><pubDate>Sat, 3 May 2025 18:22:00 +0000</pubDate></item><item><title>Joining Anthropic</title><link>https://www.julian.ac/blog/2024/10/28/joining-anthropic/</link><description><![CDATA[<p>I'm excited to announce that I'm joining <a href="https://www.anthropic.com/">Anthropic</a>, starting this week! I'm honoured to be joining such a capable and kind group of people, who I've long admired - <a href="https://claude.ai/">Claude</a> was the first LLM that I found myself consistently using. Recently I've been really blown away by <a href="https://www.zdnet.com/article/why-claudes-artifacts-is-the-coolest-feature-ive-seen-in-generative-ai-so-far/">Artifacts</a> and <a href="https://www.anthropic.com/news/3-5-models-and-computer-use">Computer Use</a>, and the consistent improvements in Claude's skills.</p>
<p>I've also been incredibly lucky to be part of an amazing journey at Google DeepMind for the past 10 years, where I got to work on more exciting projects than I would have ever dreamed of: the saga from <a href="/blog/2016/03/15/alphago--lee-sedol/">AlphaGo</a> to <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2024/10/28/joining-anthropic/</guid><pubDate>Mon, 28 Oct 2024 13:37:00 +0000</pubDate></item><item><title>SSD NAS</title><link>https://www.julian.ac/blog/2024/10/22/ssd-nas/</link><description><![CDATA[<p>Recently I decided to build a NAS to store my RAW photos as well as video content, and to use as a backup target for my MacBook. I wanted something that I could use directly with low latency for interactive editing over 10 GBit ethernet, so spinning disks were out.</p>
<p>However, building an all SSD solution turned out to be surprisingly tricky - the old SATA standard is much too slow for modern SSDs, but getting more than a few PCIe NVMe ports on a consumer mainboard is quite difficult (I wanted to avoid server boards to minimize power <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2024/10/22/ssd-nas/</guid><pubDate>Tue, 22 Oct 2024 14:49:00 +0000</pubDate></item><item><title>Being Productive</title><link>https://www.julian.ac/blog/2024/09/13/being-productive/</link><description><![CDATA[<p>Recently I was asked which habits and practices were the secret to my productivity. I figured my answers might be of wider interest. Let me know what works for you!</p>
<p>Why should you listen to my advice? Aside from my <a href="/papers/">papers</a>, in each year of the past decade I've authored ~1k pull requests with ~200k LoC of deltas, with a similar number reviewed:</p>
<p><img src="/images/2024-09-13-being-productive-activity-small.webp" alt="commit activity" /></p>
<p>You can tell when I'm on holiday :)</p>
<h3>Learning</h3>
<p>My first recommendation is to learn as much as possible, about the entire stack you work with - in AI, <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2024/09/13/being-productive/</guid><pubDate>Fri, 13 Sep 2024 12:57:00 +0000</pubDate></item><item><title>Questions about AlphaGo Development</title><link>https://www.julian.ac/blog/2024/09/13/questions-about-alphago-development/</link><description><![CDATA[<p>I was asked some questions about the development of AlphaGo and figured my answers might be of wider interest, so here we go:</p>
<h3>How low-level does the code need to be in order to get the maximum performance both in training and, possibly, live game?</h3>
<p>To maximize playing strength it is necessary to balance maximum utilization of the accelerators (GPUs or TPUs) and focusing on exploring and evaluating the most promising line of play. Unfortunately there are several conflicting tendencies:</p>
<ul>
<li>The more board positions we can evaluate the better our estimates of how good each <span class="more">...</span></li>
</ul>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2024/09/13/questions-about-alphago-development/</guid><pubDate>Fri, 13 Sep 2024 10:25:00 +0000</pubDate></item><item><title>Custom Static Site Generator</title><link>https://www.julian.ac/blog/2024/09/12/custom-static-site-generator/</link><description><![CDATA[<p>Once again I've migrated this blog to a new backend - originally I had been using Octopress, then later I <a href="/blog/2013/10/07/new-backend-new-style">migrated to Pelican</a> after I got fed up with the complicated setup and dependencies. Well, recently I had issues getting Pelican to work after some updates, so I decided to bite the bullet and write my own small static site generator: <a href="https://github.com/Mononofu/kaihan">開板</a>.</p>
<p>Really it's just an excuse to play around with Rust and make it easier to customize my site, but if it means no more painful upgrades that's a nice side effect :D It also gave me a <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2024/09/12/custom-static-site-generator/</guid><pubDate>Thu, 12 Sep 2024 16:57:00 +0000</pubDate></item><item><title>The Strong Turing Test</title><link>https://www.julian.ac/blog/2024/02/08/the-strong-turing-test/</link><description><![CDATA[<p>In the conventional <a href="https://en.wikipedia.org/wiki/Turing_test">Turing test</a> (aka imitation game), an investigator tries to distinguish between a human and a computer solely by interacting with them.</p>
<p>This is an interesting setup and has inspired much research, but it doesn't immediately translate into practical usefulness - a computer system may pass as human, but may still not be able to help me accomplish any task.</p>
<p>Instead, I find I'm mostly interested in a stricter variety: in each interaction the investigator chooses a preferred response; the goal of the computer system is to be chosen as the preferred side as many times <span class="more">...</span></p>
]]></description><author>Julian Schrittwieser</author><guid>https://www.julian.ac/blog/2024/02/08/the-strong-turing-test/</guid><pubDate>Thu, 8 Feb 2024 15:26:00 +0000</pubDate></item></channel></rss>