<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: hadley</title><link>https://news.ycombinator.com/user?id=hadley</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Apr 2026 16:49:48 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=hadley" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by hadley in "ggsql: A Grammar of Graphics for SQL"]]></title><description><![CDATA[
<p>You’ll be able to adjust plots. But you have to do it with code, not UI.</p>
]]></description><pubDate>Tue, 21 Apr 2026 02:45:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47843915</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=47843915</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47843915</guid></item><item><title><![CDATA[New comment by hadley in "Nano Banana 2: Google's latest AI image generation model"]]></title><description><![CDATA[
<p>Let alone that Nano Banana 2 is Gemini Image 3.1</p>
]]></description><pubDate>Thu, 26 Feb 2026 22:28:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47172906</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=47172906</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47172906</guid></item><item><title><![CDATA[Bluffbench: Effective agents need to prioritize evidence over preconceptions]]></title><description><![CDATA[
<p>Article URL: <a href="https://simonpcouch.github.io/bluffbench/">https://simonpcouch.github.io/bluffbench/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45917921">https://news.ycombinator.com/item?id=45917921</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 13 Nov 2025 17:41:54 +0000</pubDate><link>https://simonpcouch.github.io/bluffbench/</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=45917921</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45917921</guid></item><item><title><![CDATA[New comment by hadley in "Positron – A next-generation data science IDE"]]></title><description><![CDATA[
<p>Students also pay :)</p>
]]></description><pubDate>Fri, 25 Jul 2025 11:19:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=44681916</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=44681916</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44681916</guid></item><item><title><![CDATA[New comment by hadley in "Positron – A next-generation data science IDE"]]></title><description><![CDATA[
<p>We're working on this! Education is really important to us so this is 100% a problem we want to solve.</p>
]]></description><pubDate>Fri, 25 Jul 2025 11:18:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=44681914</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=44681914</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44681914</guid></item><item><title><![CDATA[New comment by hadley in "Positron – A next-generation data science IDE"]]></title><description><![CDATA[
<p>We do discount heavily for academia: get 50% off for research and 100% off (i.e. free) for teaching. But I do get that our pro products largely solve problems that folks encounter in larger enterprises, and you may not see the value inside an academic department. I'm also always happy to learn how we could do better, please feel free to reach out to hadley@posit.co.</p>
]]></description><pubDate>Fri, 25 Jul 2025 10:58:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=44681797</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=44681797</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44681797</guid></item><item><title><![CDATA[New comment by hadley in "Big Book of R"]]></title><description><![CDATA[
<p>You might be interested in <a href="https://github.com/posit-dev/plumber2">https://github.com/posit-dev/plumber2</a></p>
]]></description><pubDate>Fri, 11 Apr 2025 16:50:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=43655889</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=43655889</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43655889</guid></item><item><title><![CDATA[New comment by hadley in "Big Book of R"]]></title><description><![CDATA[
<p>I've wrapped a bunch of providers with ellmer: <a href="https://ellmer.tidyverse.org" rel="nofollow">https://ellmer.tidyverse.org</a></p>
]]></description><pubDate>Thu, 10 Apr 2025 20:16:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=43647659</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=43647659</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43647659</guid></item><item><title><![CDATA[New comment by hadley in "Show HN: Create Music with R"]]></title><description><![CDATA[
<p>That’s exactly how ggplot (not 2!) worked: <a href="https://github.com/hadley/ggplot1">https://github.com/hadley/ggplot1</a></p>
]]></description><pubDate>Sat, 13 Jul 2024 18:28:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=40955850</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=40955850</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40955850</guid></item><item><title><![CDATA[New comment by hadley in "Generalizing Support for Functional OOP in R"]]></title><description><![CDATA[
<p>Why is that disappointing?</p>
]]></description><pubDate>Tue, 28 May 2024 22:51:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=40506437</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=40506437</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40506437</guid></item><item><title><![CDATA[New comment by hadley in "The design philosophy of Great Tables"]]></title><description><![CDATA[
<p>You should check out <a href="https://siuba.org" rel="nofollow">https://siuba.org</a> and <a href="https://plotnine.org" rel="nofollow">https://plotnine.org</a> :)</p>
]]></description><pubDate>Thu, 04 Apr 2024 18:46:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=39934305</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=39934305</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39934305</guid></item><item><title><![CDATA[New comment by hadley in "R: Introduction to Data Science (2019)"]]></title><description><![CDATA[
<p>Hmmmm, I think that's something we could probably help with in dbplyr by providing something like `last_sql()` that would return the most recent SQL sent to the database. (By analogy to ggplot2::last_plot() and httr2::last_request()/last_response()).<p>I filed an issue so I don't forget about this: <a href="https://github.com/tidyverse/dbplyr/issues/1471">https://github.com/tidyverse/dbplyr/issues/1471</a></p>
]]></description><pubDate>Sat, 02 Mar 2024 23:36:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=39576865</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=39576865</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39576865</guid></item><item><title><![CDATA[New comment by hadley in "R: Introduction to Data Science (2019)"]]></title><description><![CDATA[
<p>I love this framing :)</p>
]]></description><pubDate>Sat, 02 Mar 2024 23:35:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=39576855</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=39576855</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39576855</guid></item><item><title><![CDATA[New comment by hadley in "R: Introduction to Data Science (2019)"]]></title><description><![CDATA[
<p>For the most common cases, the tidyverse now only requires {{ }}. This allows you to tell tidyeval functions that you have the name of a df-var stored in an env-var. Do you have specific cases that you find frustrating?</p>
]]></description><pubDate>Sat, 02 Mar 2024 23:34:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=39576848</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=39576848</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39576848</guid></item><item><title><![CDATA[New comment by hadley in "R: Introduction to Data Science (2019)"]]></title><description><![CDATA[
<p>Oh, you mean the pro drivers? Unfortunately we can't give those away because we have to pay several $100k a year just to get access for our customers. Most of the pro drivers do have equivalent open source versions that you should be able to use instead.<p>Hmmm, I'd still try generating the table with quarto (since you can output word documents), or try gt (<a href="https://gt.rstudio.com" rel="nofollow">https://gt.rstudio.com</a>), which I know has much greater control over output, and supports RTF output (<a href="https://gt.rstudio.com/reference/as_rtf.html" rel="nofollow">https://gt.rstudio.com/reference/as_rtf.html</a>) which should import cleanly into word.</p>
]]></description><pubDate>Sat, 02 Mar 2024 23:33:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=39576838</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=39576838</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39576838</guid></item><item><title><![CDATA[New comment by hadley in "R: Introduction to Data Science (2019)"]]></title><description><![CDATA[
<p>(1) You might want to check out <a href="https://github.com/t-kalinowski/Rapp">https://github.com/t-kalinowski/Rapp</a> by my colleague Tomasz<p>(2) I think part of that is in scope for strict (<a href="https://github.com/hadley/strict">https://github.com/hadley/strict</a>). You might also be well served by adopting some more data validation tooling, e.g. pointblank (<a href="https://rstudio.github.io/pointblank/" rel="nofollow">https://rstudio.github.io/pointblank/</a>).</p>
]]></description><pubDate>Sat, 02 Mar 2024 23:31:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=39576816</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=39576816</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39576816</guid></item><item><title><![CDATA[New comment by hadley in "R: Introduction to Data Science (2019)"]]></title><description><![CDATA[
<p>I'd highly encourage you to look into shiny more. No, it's not django, but it's a much richer framework than dash, and you can always bring your own HTML if what it generates for you isn't sufficient.</p>
]]></description><pubDate>Sat, 02 Mar 2024 23:28:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=39576792</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=39576792</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39576792</guid></item><item><title><![CDATA[New comment by hadley in "R: Introduction to Data Science (2019)"]]></title><description><![CDATA[
<p>R definitely has its warts, but I strongly believe that underneath them lies a beautiful and quite elegant language that's extremely well suited to the challenges of data analysis. If you're already a programmer, you might find something like Advanced R (<a href="https://adv-r.hadley.nz" rel="nofollow">https://adv-r.hadley.nz</a>) to be useful to get a sense of what R really is as a programming language.</p>
]]></description><pubDate>Sat, 02 Mar 2024 18:19:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=39574524</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=39574524</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39574524</guid></item><item><title><![CDATA[New comment by hadley in "R: Introduction to Data Science (2019)"]]></title><description><![CDATA[
<p>We now provide snapshotted CRAN binaries (for many platforms) at  <a href="https://packagemanager.posit.co" rel="nofollow">https://packagemanager.posit.co</a>.</p>
]]></description><pubDate>Sat, 02 Mar 2024 17:57:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=39574321</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=39574321</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39574321</guid></item><item><title><![CDATA[New comment by hadley in "R: Introduction to Data Science (2019)"]]></title><description><![CDATA[
<p>I'd love to hear more about this because from my perspective renv does seem to solve 95% of the challenges the folks face in practice. I wonder what makes your situation different? What are we missing in renv?</p>
]]></description><pubDate>Sat, 02 Mar 2024 17:57:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=39574311</link><dc:creator>hadley</dc:creator><comments>https://news.ycombinator.com/item?id=39574311</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39574311</guid></item></channel></rss>