<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: mhandley</title><link>https://news.ycombinator.com/user?id=mhandley</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 25 Apr 2026 09:05:16 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mhandley" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mhandley in "All phones sold in the EU to have replaceable batteries from 2027"]]></title><description><![CDATA[
<p>Back when replaceable batteries were the norm, I had two Blackberries that survived going through the washer and dryer.</p>
]]></description><pubDate>Tue, 21 Apr 2026 00:30:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47843082</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=47843082</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47843082</guid></item><item><title><![CDATA[New comment by mhandley in "The Last Quiet Thing"]]></title><description><![CDATA[
<p>Agree about the watch - I wear a Casio LCW-M100TSE, which is also very robust (titanium case, saphire glass), never needs the battery changing and never needs setting (except for travel).  But most importantly, it does what it does really well and never bugs me about anything.  Downtime is important.</p>
]]></description><pubDate>Tue, 07 Apr 2026 10:06:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47672873</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=47672873</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47672873</guid></item><item><title><![CDATA[New comment by mhandley in "The Physics and Economics of Moving 44 Tonnes at 56mph"]]></title><description><![CDATA[
<p>It seems like trucks are a use case where battery swapping would make a lot of sense.  Unlike with cars, the battery doesn't need to be a structural element, and there's much less need for it to be a strange shape, as in some cars.</p>
]]></description><pubDate>Thu, 26 Feb 2026 23:53:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47174112</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=47174112</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47174112</guid></item><item><title><![CDATA[New comment by mhandley in "Mac mini will be made at a new facility in Houston"]]></title><description><![CDATA[
<p>I don't see her later on in the news article - just in the video.  Did Apple remove the picture after you pointed it out?</p>
]]></description><pubDate>Wed, 25 Feb 2026 02:10:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=47146419</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=47146419</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47146419</guid></item><item><title><![CDATA[New comment by mhandley in "Is particle physics dead, dying, or just hard?"]]></title><description><![CDATA[
<p>Neutrino mass is another anomaly, which is at least slightly easier to probe than quantum gravity: <a href="https://cerncourier.com/a/the-neutrino-mass-puzzle/" rel="nofollow">https://cerncourier.com/a/the-neutrino-mass-puzzle/</a></p>
]]></description><pubDate>Tue, 10 Feb 2026 01:13:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46954027</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=46954027</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46954027</guid></item><item><title><![CDATA[New comment by mhandley in "Is particle physics dead, dying, or just hard?"]]></title><description><![CDATA[
<p>One interesting gap in the standard model is why neutrinos have mass:  <a href="https://cerncourier.com/a/the-neutrino-mass-puzzle/" rel="nofollow">https://cerncourier.com/a/the-neutrino-mass-puzzle/</a></p>
]]></description><pubDate>Tue, 10 Feb 2026 01:10:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=46954009</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=46954009</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46954009</guid></item><item><title><![CDATA[New comment by mhandley in "Canada's Carney called out for 'utilizing' British spelling"]]></title><description><![CDATA[
<p>I'm British, but when submitting papers for blind review, always use American spelling for obvious reasons.  I suppose I could change it after acceptance, but that would just be pretentious.</p>
]]></description><pubDate>Tue, 16 Dec 2025 20:09:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=46293721</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=46293721</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46293721</guid></item><item><title><![CDATA[New comment by mhandley in "When would you ever want bubblesort? (2023)"]]></title><description><![CDATA[
<p>I've used bubblesort when simulating LEO satellite constellations, calculating which satellite is closest to a location.  I used one single backwards pass of bubblesort, so O(n) every k timesteps to bring the closest to the head of the array, then every timestep just do one backwards bubblesort pass over the first few in the array.  Given satellites move smoothly, if you initialize right (a few full passes at the start to get the closest few at the front) and get the constants right so a satellite outside the front few in the array can't have moved far enough to become closest without being promoted to the front few by a periodic full pass, then you always maintain the closest at the front of the array very cheaply.  And this has the advantage of also being very simple to code.</p>
]]></description><pubDate>Wed, 10 Dec 2025 23:15:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=46225392</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=46225392</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46225392</guid></item><item><title><![CDATA[New comment by mhandley in "Offline card payments should be possible no later than 1 July 2026"]]></title><description><![CDATA[
<p>And if you do get one somehow, it's really hard to spend. Many places won't accept them.</p>
]]></description><pubDate>Fri, 03 Oct 2025 23:58:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=45469147</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=45469147</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45469147</guid></item><item><title><![CDATA[New comment by mhandley in "How to Give a Good Talk"]]></title><description><![CDATA[
<p>It's definitely possible to break the rules.  In fact, to give a truly outstanding talk that everyone remembers, you probably have to break the rules (speaking as someone who coded an entire Sigcomm presentation in a 3d game engine). But most early career researchers, for whom this advice is presumably intended, are not good enough at giving talks for that to be a good idea. In fact most tenured professors aren't too.  If you do break the rules, you need to have a very clear idea in your head as to how you're going to pull it off, and a good idea of who your audience is and how they'll perceive it, and those are both hard to achieve without a lot of experience.</p>
]]></description><pubDate>Wed, 03 Sep 2025 11:46:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=45114626</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=45114626</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45114626</guid></item><item><title><![CDATA[macOS/iOS security update – may have been exploited in targeted attack]]></title><description><![CDATA[
<p>Article URL: <a href="https://support.apple.com/en-gb/124927">https://support.apple.com/en-gb/124927</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44979206">https://news.ycombinator.com/item?id=44979206</a></p>
<p>Points: 4</p>
<p># Comments: 1</p>
]]></description><pubDate>Thu, 21 Aug 2025 23:03:29 +0000</pubDate><link>https://support.apple.com/en-gb/124927</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=44979206</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44979206</guid></item><item><title><![CDATA[New comment by mhandley in "Deep-Sea Desalination Pulls Fresh Water from the Depths"]]></title><description><![CDATA[
<p>If you have two pipes of the same height, one filled with fresh water and one with salt water, the pressure will be greater at the bottom of the salt-water pipe because salt-water is denser.  Connect them at the bottom with a pipe and water will flow from salt to fresh until the pressures equalize.  But connect them with a membrane, and this is countered by the osmotic pressure of fresh water trying to get to salt water, so you don't get any magic flow for free.  You have however got a pressure gradient for free - just not enough to desalinate.<p>If you put this in the ocean, you can remove the salt pipe and get the same effect.  But if you want continuous fresh water, you need to further increase the pressure difference across the membrane by continuously lowering the height of the fresh-water column by pumping water up and out of the top.  That takes energy,  but not as much as it would take if we had to raise the pressure on the salt-water side.</p>
]]></description><pubDate>Sat, 16 Aug 2025 18:10:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=44925677</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=44925677</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44925677</guid></item><item><title><![CDATA[New comment by mhandley in "Private Welsh island with 19th century fort goes on the market"]]></title><description><![CDATA[
<p>The listing mentions a 30,000 gallon reservior, so I imagine rainwater collecion from the "parade ground".</p>
]]></description><pubDate>Sat, 09 Aug 2025 13:11:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=44846209</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=44846209</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44846209</guid></item><item><title><![CDATA[New comment by mhandley in "We'd be better off with 9-bit bytes"]]></title><description><![CDATA[
<p>If we had 9-bit bytes and 36-bit words, then for the same hardware budget, we'd have 12.5% fewer bytes/words of memory.  It seems likely that despite the examples in the article, in most cases we'd very likely not make use of the extra range as 8/32 is enough for most common cases.  And so in all those cases where 8/32 is enough, the tradeoff isn't actually an advantage but instead is a disadvantage - 9/36 gives less addressable memory, with the upper bits generally unused.</p>
]]></description><pubDate>Wed, 06 Aug 2025 23:56:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=44819235</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=44819235</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44819235</guid></item><item><title><![CDATA[New comment by mhandley in "JOVE – Jonathan’s Own Version of Emacs (1983)"]]></title><description><![CDATA[
<p>I also started using Jove back when 30 of us shared one PDP 11/44 running BSD Unix, and it was antisocial to use something as heavyweight as Emacs.  40 years later, I'm still using UNIX and Emacs.</p>
]]></description><pubDate>Sun, 20 Jul 2025 22:19:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=44629904</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=44629904</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44629904</guid></item><item><title><![CDATA[New comment by mhandley in "Writing Code Was Never the Bottleneck"]]></title><description><![CDATA[
<p>I've spent the last few weeks writing a non-trivial distributed system using Codex (OpenAI's agentic coding system).  I started by writing a design brief, and iterated with o3 to refine it so it was more complete and less ambiguous.  Then I asked it to write a spec of all the messages - didn't like its first attempt, but iterated on it til I did like it.  Then got it to write a project plan, and iterated on that.  Only then did I start on the code.  The purpose of all this is to provide it some context.<p>It generated around 13K lines of Go for me in just over two weeks.  I didn't previously speak Go, but its not hard to skimread to get the gist of its approach.  I probably wrote about 100 lines, though I added and removed a lot of logging at various times to understand what was actually happening.  I got it to write a <i>lot</i> of unit tests, so that coverage testing is very good.  But I didn't actually pay a lot of attention to most of those tests on the first pass, because it generally got all the fine detail stuff exactly right on the first pass.  So why all the tests?  First, if something seems off, I have a place to start a deep dive.  Second, it pins down the architecture so that functionality can't creep without me noticing that it is needing to change the unit tests.<p>Some observations.<p>- Coding this way is very effective - the new models almost never make fine detail mistakes. But I want to step it through chunks of new functionality at a size that I can at least skim and understand.  So that 13K LoC is about 300 PRs.  Otherwise I lose track of the big picture, and in this world, the big picture is <i>my</i> task.<p>- Normally the big design decisions are separated by days of fine detail coding.  Using codex means I get to make all those decisions nearly back-to-back.  This is both good and bad.  The experience is quite intense - mostly I found the fine-detail coding to be "therapeutic", but I don't get that anymore.  But not needing to pay attention to the fine detail (at least most of the time), means I think I have a better picture in my head of the overall code structure.  We only have so much attention at any time, and if I don't have to hold the details, I can pay attention to the more important things.<p>- It's very good at writing integration tests quickly, so I write a lot more of them.  These I do pay a <i>lot</i> of attention to.  Its these tests that tell me if I got the design right, and if not, these are the place I start digging to understand what I need to change.<p>- Because it takes 10-30m to come back with a response, I try to keep it working on around three tasks at a time.  That takes some effort, as it does require come context switching, and effort to give it tasks that won't result in large merge conflicts.  If it was faster, I would not bother to set multiple tasks in parallel.<p>- Codex allows you to ask for multiple solutions.  For simpler stuff, I've found asking for one is fine.  For slightly more open questions, it's good to ask for multiple solutions, review them and decide which you prefer.<p>- Just prompting it with "find a bug and suggest a fix" every now and then often shows up real bugs.  Mostly they tend to be some form if internal inconsistency, where I'd changed my mind about part of the code, and the something elsewhere needed to be changed to be consistent.<p>- I learned a lot about Go from it.  If I'd been writing myself, my Go would have looked more like C++ which I'm very familiar with.  But it wrote more idiomatic Go from the start, and I've learned along the way.<p>- Any stock algorithm stuff it will one-shot.  "Load this set of network links, build a graph from them, run dijkstra over the graph from this node, and tell me the histogram of how many equal-cost shortest paths there are to every other node."  That sort of stuff it will one-shot.<p>- It's much better than me about reasoning about concurrency.  Though of course this is also one of Go's strengths.<p>Now I don't have any experience of how good it would be for maintaining a much larger codebase, but for this sort of scale of utility, I'm very impressed with how effective it has been.<p>Disclaimer: I work at OpenAI, but on networks, not AI.</p>
]]></description><pubDate>Thu, 03 Jul 2025 18:25:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=44457868</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=44457868</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44457868</guid></item><item><title><![CDATA[New comment by mhandley in "Cloudflare to introduce pay-per-crawl for AI bots"]]></title><description><![CDATA[
<p>That sounds reasonable for access to actual content, but it produces a huge new incentive to constantly produce vast amounts of AI-generated slop served via Cloudflare.  Is there a way to disincentivize this?</p>
]]></description><pubDate>Tue, 01 Jul 2025 12:22:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=44433170</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=44433170</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44433170</guid></item><item><title><![CDATA[New comment by mhandley in "Ask HN: In 15 years, what will a gas station visit look like?"]]></title><description><![CDATA[
<p>The ones in towns will mostly disappear.  There will be enough chargers at supermarkets, malls, restaurants, anywhere people actually want to go, and most people will charge at home or work.  The remaining business won't be enough to keep in-town gas stations in business.  Range anxiety will become more of an issue for gas cars.<p>On highways, it will be a different situation.  There will be plenty of gas and diesel still available, as the remaining business from towns becomes more concentrated.  You won't find a gas station without a restaurant attached though. Fast chargers will be common, but ultra-fast ones won't be as common as we'd like, as they will want to keep you just long enough to buy a meal, etc.</p>
]]></description><pubDate>Mon, 09 Jun 2025 01:38:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=44220745</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=44220745</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44220745</guid></item><item><title><![CDATA[New comment by mhandley in "Joining Apple Computer (2018)"]]></title><description><![CDATA[
<p>I came of age in the 8-bit era of the early 80s, rode the Internet wave of the 90s and early 2000s, kind of missed the mobile wave but spent that time developing ideas that would eventually turn out to be useful for AI, and now I'm having great fun on the AI wave.  I'm happy to have grown up and lived when I did, but I feel that each era of my life has had its own unique opportunities, excitement and really interesting technical problems to work on. And perhaps most importantly, great people to work with.</p>
]]></description><pubDate>Sun, 08 Jun 2025 16:39:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=44217995</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=44217995</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44217995</guid></item><item><title><![CDATA[New comment by mhandley in "Coventry Very Light Rail"]]></title><description><![CDATA[
<p>If it's really just 1m behind, it doesn't need to respond individually to anything except pedestrians.  And you can solve that with some extensible tapes that actually do connect the vehicles to prevent pedestrians walking between them.</p>
]]></description><pubDate>Sun, 08 Jun 2025 09:08:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=44215723</link><dc:creator>mhandley</dc:creator><comments>https://news.ycombinator.com/item?id=44215723</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44215723</guid></item></channel></rss>