<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: IanOzsvald</title><link>https://news.ycombinator.com/user?id=IanOzsvald</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 16 Jun 2026 03:39:35 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=IanOzsvald" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by IanOzsvald in "Ask HN: What are you working on? (June 2026)"]]></title><description><![CDATA[
<p>I continue to build my London based monthly directed-exploration LLM days where we try to collaboratively push through a benchmark. We're doing ARC AGI 2026 again in a couple of weeks: <a href="https://playgroup.org.uk/" rel="nofollow">https://playgroup.org.uk/</a>
Recently we built parts of GPT2 from scratch and worked on agent based benchmarks</p>
]]></description><pubDate>Mon, 15 Jun 2026 10:00:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=48539026</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=48539026</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48539026</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Ask HN: What are you working on? (May 2026)"]]></title><description><![CDATA[
<p>I've spent 6 months building a network of curious LLM hackers in London who want to push the edge of what we can do.<p>This Friday we pull GPT apart and rebuild bits by hand. A few weeks back we tackled ARC AGI 2026. Prevoiusly we did fine tuning and making GPT funny.<p>It is a sort of a guided hackathon (generally I plan goals for the day) and collaborative study group.<p>Much fun, no money, lots of smart folk asking good questions: <a href="https://playgroup.org.uk/" rel="nofollow">https://playgroup.org.uk/</a></p>
]]></description><pubDate>Mon, 11 May 2026 17:40:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48098088</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=48098088</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48098088</guid></item><item><title><![CDATA[New comment by IanOzsvald in "An end to all this prostate trouble?"]]></title><description><![CDATA[
<p>+1 Merlin. I also stop and do a few minutes with Duolingo in the park, then take a breath and just listen to the wind and birdsong.</p>
]]></description><pubDate>Sat, 26 Apr 2025 16:03:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=43804781</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=43804781</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43804781</guid></item><item><title><![CDATA[New comment by IanOzsvald in "cuDF – GPU DataFrame Library"]]></title><description><![CDATA[
<p>There's a profiler cell magic for Notebooks which helps identify if you run out of VRAM (it says what runs on CPU and GPU). There's an open PR to turn on low-VRAM reporting as a diagnostic. 
CuDF is impressive, but getting a working setup can be a PITA (and then if you upgrade libraries...).
Personality I think it fits in the production pipeline for obvious bottlenecks on well tended configurations, using it in the r&d flow might cost diagnostic time getting and keeping it working (YMMV etc)</p>
]]></description><pubDate>Mon, 03 Jun 2024 08:28:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=40560475</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=40560475</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40560475</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Ask HN: C/C++ developer wanting to learn efficient Python"]]></title><description><![CDATA[
<p>Thanks :-) I use it for all my talks and finally decided I'd better start sharing it a bit. It really is useful to understand the memory cost of things like Pandas operations</p>
]]></description><pubDate>Wed, 10 Apr 2024 17:54:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=39993732</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=39993732</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39993732</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Ask HN: C/C++ developer wanting to learn efficient Python"]]></title><description><![CDATA[
<p>I'm the co-author of High Performance Python, Micha and I are working on the 3rd ed (for 2025). Lots of bits of the book came from my past conference talks, they're available here (and the public talks will generally be on youtube): <a href="https://speakerdeck.com/ianozsvald" rel="nofollow">https://speakerdeck.com/ianozsvald</a><p>Mostly that content has a scientific focus but the obvious thing that carries over to any part of Python is _profiling_ to figure out what's slow. Top tools I'd recommend are:<p>* <a href="https://pypi.org/project/scalene/" rel="nofollow">https://pypi.org/project/scalene/</a> combined cpu+memory+gpu profiling<p>* <a href="https://github.com/gaogaotiantian/viztracer">https://github.com/gaogaotiantian/viztracer</a> get a timeline of execution vs call-stack (great to discover what's happening deep inside pandas)<p>* my <a href="https://pypi.org/project/ipython-memory-usage/" rel="nofollow">https://pypi.org/project/ipython-memory-usage/</a> if you're in Jupyter Notebooks (built on <a href="https://github.com/pythonprofilers/memory_profiler">https://github.com/pythonprofilers/memory_profiler</a> which sadly is unmaintained)<p>* <a href="https://github.com/pyutils/line_profiler/">https://github.com/pyutils/line_profiler/</a></p>
]]></description><pubDate>Wed, 10 Apr 2024 16:06:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=39992277</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=39992277</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39992277</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Show HN: Flash Notes – Flashcards for Your Notes, LLM, iOS/macOS Sync"]]></title><description><![CDATA[
<p>@munhitsu gave me a demo at the weekend (I'm on Android and it is iPhone only), it seemed pretty slick and very easy to use, though I confess not something I personally need right now</p>
]]></description><pubDate>Mon, 08 Apr 2024 09:16:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=39967785</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=39967785</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39967785</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Nvtop: Linux Task Monitor for Nvidia, AMD and Intel GPUs"]]></title><description><![CDATA[
<p>I've just spent the morning uninstalling and reinstalling different versions of Nvidia driver (Linux) to get nvcc back for llama.cpp after Linux Mint did an update - I had CUDA 12.3 and 12.4 (5GB each), in conflict, with no guidance. 550 was the charm, not 535 that was fine in January.
This is the third time I'm going this since December.
It is painful.
I'm not in a hurry to return to my cuDF experiments as I'm pretty sure that'll be broken too (as it has been in the past).
I'm the co author of O'Reilly's High Performance Python book and this experience mirrors what I was having with pyCUDA a decade back.</p>
]]></description><pubDate>Wed, 13 Mar 2024 15:46:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=39692856</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=39692856</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39692856</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Profiling your Numba code"]]></title><description><![CDATA[
<p>Don't forget that a sequence of numpy operations will likely each allocate their own temporary memory. Numba can often fuse these together, so although the implementation behind numpy is compiled C you end up with fewer memory allocations and less memory pressure, so you still get your results even faster. Numba also offers the OpenMP parallel tools too.
I have a nice sequence of simulations in my Higher Performance Python course going from raw python through numpy then to Numba showing how this all comes together.
Just try having a function with a=np.fn1(x); b=np.fn2(a); c=np.fn3(b) etc and compile it with @jit and you should get a performance impact. Maybe you can also turn on the OpenMP parallelizer too.</p>
]]></description><pubDate>Wed, 31 Jan 2024 07:28:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=39201057</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=39201057</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39201057</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Profiling your Numba code"]]></title><description><![CDATA[
<p>Really Numba will speed up numpy and some scipy (there's partial API coverage) and math based pure python. I think it is unlikely it'd be used away from math problems. 
As another commenter mentioned it can be used to accelerate numpy-array based Pandas (but not the newer Arrow based arrays), and again that's for numeric work.</p>
]]></description><pubDate>Tue, 30 Jan 2024 21:36:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=39196199</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=39196199</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39196199</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Profiling your Numba code"]]></title><description><![CDATA[
<p>That's my book :-) Micha and I are working on the 3rd edition right now. Cheers!</p>
]]></description><pubDate>Tue, 30 Jan 2024 21:18:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=39195984</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=39195984</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39195984</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Show HN: Raiseto – Discover and Share Ideas"]]></title><description><![CDATA[
<p>How about hyperlinking each title so it can easily be opened in a new tab?</p>
]]></description><pubDate>Mon, 01 Jan 2024 11:04:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=38831035</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=38831035</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38831035</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Show HN: 80% faster, 50% less memory, 0% loss of accuracy Llama finetuning"]]></title><description><![CDATA[
<p>You may want to look sideways to companies such as hedge funds. They have DNN teams and experiment with LLMs, you may find interesting optimisation opportunities with such teams. Charge according to opportunity that you open up, not electricity saved!</p>
]]></description><pubDate>Sat, 02 Dec 2023 12:55:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=38498293</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=38498293</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38498293</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Improving sleep"]]></title><description><![CDATA[
<p>In the UK I use Redber for beans, I drink decaf (Swiss Water prices) fresh ground in the afternoon and have 2-3 caf cups in the morning. Redber had a wide selection and several roast levels. 
No caffeine after noon. I use a 2-cup espresso Bialetti stove top, the second smallest.</p>
]]></description><pubDate>Fri, 25 Aug 2023 17:36:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=37264599</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=37264599</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37264599</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Daft: A High-Performance Distributed Dataframe Library for Multimodal Data"]]></title><description><![CDATA[
<p>Indeed I was the one who got confused by the name! Thanks for attending the discussion Jay and I'm happy to see Daft being discussed here</p>
]]></description><pubDate>Wed, 07 Jun 2023 20:03:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=36232721</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=36232721</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36232721</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Proposal to Merge Pyston with Cpython"]]></title><description><![CDATA[
<p>PyPy uses a modified Mark and Sweep garbage collector, CPython uses Reference Counting. C extensions such as NumPy (and so Pandas, sklearn etc) are compiled expecting Reference Counting. A translation layer is needed for memory management from PyPy to extensions like NumPy and that introduces overhead (historically - a lot of overhead).</p>
]]></description><pubDate>Tue, 28 Feb 2023 15:38:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=34970473</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=34970473</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34970473</guid></item><item><title><![CDATA[New comment by IanOzsvald in "I bought a CO2 monitor and it broke me"]]></title><description><![CDATA[
<p>I use a FLIR One on Android. I've charted internal leaks (where cold air blows in through cracks) and external (where heat escapes through eg old windows). 
Wait for a cold day (eg 0C), heat the house, investigate everything you can. My 1930s London house has SO many leaks, I've spent 3 years slowly fixing them.
I have a talk I should give on using 12 Govee hygrometers to back-calculate moisture (absolute humidity) coherent per room, as I was charting moisture loss to trace air leaks.</p>
]]></description><pubDate>Sat, 04 Feb 2023 09:35:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=34653121</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=34653121</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34653121</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Modern Polars: A comparison of the Polars and Pandas dataframe libraries"]]></title><description><![CDATA[
<p>Hey Ritchie. Re legacy I'm thinking about wider teams in large organisations (eg SWEng system support teams) and IT mandating library upgrade frequency - switching to new libraries can have widespread impacts and the cost can be high. Polars (and Vaex) are definitely here to stay, but I think integration to existing teams may take a while.
I followed the PRs around numpy data sharing but I wasn't sure on the end result. Is the data sharing copy-free (always?)? I wasn't sure what the impact was if Rust and NumPy are utilising the same bytes (or even if that was possible). Can you share some detail?
Edit - reading the updated thread I your reply <a href="https://news.ycombinator.com/item?id=34298023" rel="nofollow">https://news.ycombinator.com/item?id=34298023</a> which says "1D often no copy", can you add any colour to when a 1D no copy can't happen and whether 2D no copy is an option?</p>
]]></description><pubDate>Mon, 09 Jan 2023 08:49:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=34308180</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=34308180</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34308180</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Modern Polars: A comparison of the Polars and Pandas dataframe libraries"]]></title><description><![CDATA[
<p>This <a href="https://docs.dask.org/en/stable/spark.html" rel="nofollow">https://docs.dask.org/en/stable/spark.html</a> notes
"However, Dask is able to easily represent far more complex algorithms and expose the creation of these algorithms to normal users [compared to spark]" linking to:
<a href="http://matthewrocklin.com/blog/work/2015/06/26/Complex-Graphs" rel="nofollow">http://matthewrocklin.com/blog/work/2015/06/26/Complex-Graph...</a></p>
]]></description><pubDate>Sun, 08 Jan 2023 21:12:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=34303181</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=34303181</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34303181</guid></item><item><title><![CDATA[New comment by IanOzsvald in "Modern Polars: A comparison of the Polars and Pandas dataframe libraries"]]></title><description><![CDATA[
<p>I'd argue a little differently. I'm co-author of O'Reilly's High Performance Python book and I've been teaching a course around this for years, often to quants.<p>1. Pandas if you stay in RAM, if the team and org already know this, but learn about reduced-ram types (eg float32 rather than float64, categorical for strings and dt if low cardinality, new Arrow strings in place of default Object str). Pandas 1.5 has an experimental copy-on-write option for more predictable (but probably still not "predictable") memory usage, try to use a subset of team-agreed functions (eg merge over join) due to varied defaults that'll confuse colleagues (eg inner Vs left and other differences). Buying more ram is normally a cheap (if inelegant) fix.<p>2. Dask as it is an easy transition from Pandas (and it scales numpy math, arbitrary python non-math functions and lots more), lots of cloud scaling options too. Stays within Python ecosystem for reduced cognitive load. It is probably less resource efficient than Vaex/Polars<p>3. Ignore Dask and stick with Spark if your team already uses it, as it'll scale to larger workloads and you've taken the cognitive and engineering hit (pragmatism over purity)<p>Vaex and Polars are definitely interesting (hi Ritchie!), and great if you're doing research and are comfortable with potentially changing APIs but you have no legacy systems to worry about. You might buy yourself a lot of future manoeuvring room. You'll find fewer clues to tricky problems in SO than for Pandas, and have a harder time hiring experienced help.</p>
]]></description><pubDate>Sun, 08 Jan 2023 11:57:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=34298343</link><dc:creator>IanOzsvald</dc:creator><comments>https://news.ycombinator.com/item?id=34298343</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34298343</guid></item></channel></rss>