<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: johnnymellor</title><link>https://news.ycombinator.com/user?id=johnnymellor</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Apr 2026 17:40:39 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=johnnymellor" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by johnnymellor in "Linking to text fragments with a bookmarklet"]]></title><description><![CDATA[
<p>This would be useful in Chrome for Android (which doesn't yet have this feature built-in), but activating bookmarklets on Android (via <a href="https://paul.kinlan.me/use-bookmarklets-on-chrome-on-android/" rel="nofollow">https://paul.kinlan.me/use-bookmarklets-on-chrome-on-android...</a>) clears the text selection. So instead I've put together an alternative bookmarklet that lets you select the text to link to after activating the bookmarklet: <a href="https://gist.github.com/johnmellor/ef5ecf555f28b324b045e0c93548f0da" rel="nofollow">https://gist.github.com/johnmellor/ef5ecf555f28b324b045e0c93...</a></p>
]]></description><pubDate>Thu, 18 Sep 2025 20:17:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=45294460</link><dc:creator>johnnymellor</dc:creator><comments>https://news.ycombinator.com/item?id=45294460</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45294460</guid></item><item><title><![CDATA[New comment by johnnymellor in "Show HN: Transductive regular expressions for text editing"]]></title><description><![CDATA[
<p>If I understand correctly the following ttre expression does what you're asking for:<p><pre><code>  ":'(':(\\')|[^"'])*":'</code></pre></p>
]]></description><pubDate>Fri, 07 Feb 2025 21:47:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=42977874</link><dc:creator>johnnymellor</dc:creator><comments>https://news.ycombinator.com/item?id=42977874</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42977874</guid></item><item><title><![CDATA[New comment by johnnymellor in "Show HN: Radius – A Meetup.com alternative"]]></title><description><![CDATA[
<p>Many communities would like to have a page/ical that lists all the events going on in that community. But event organisers are often busy, and by the time they've posted on WhatsApp and Facebook and Meetup they won't necessarily bother to post here too, especially when there are multiple organisers within a community, and due to the chicken and egg problem of it only being worth posting here if all of the community's other events are also listed here.<p>What would help is if engaged community members can collaboratively list events that event organisers have posted elsewhere, so that community members can find all the community's events in one place (here) even if the event organisers don't bother to post them here themselves. This raises a few auth complications, e.g. if the event organiser wants to post their event ideally they'd be able to take ownership of the placeholder event uploaded by the community member. But if you can solve those, seeing all their events in one place might be a compelling reason for communities to organically switch over to your platform (at which point event organisers might well also follow).</p>
]]></description><pubDate>Wed, 19 Jun 2024 23:08:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=40733361</link><dc:creator>johnnymellor</dc:creator><comments>https://news.ycombinator.com/item?id=40733361</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40733361</guid></item><item><title><![CDATA[New comment by johnnymellor in "Lumiere: A space-time diffusion model for realistic video generation"]]></title><description><![CDATA[
<p>At least on Chrome for Android, you can long-press to trigger the hover effect. Works on many websites. (There are inconvenient side-effects like selecting text, but it's better than nothing.)</p>
]]></description><pubDate>Wed, 24 Jan 2024 14:35:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=39117774</link><dc:creator>johnnymellor</dc:creator><comments>https://news.ycombinator.com/item?id=39117774</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39117774</guid></item><item><title><![CDATA[New comment by johnnymellor in "CLI tools hidden in the Python standard library"]]></title><description><![CDATA[
<p>Oh, and multi-line statements will be supported from Python 3.13 (<a href="https://github.com/python/cpython/issues/103124">https://github.com/python/cpython/issues/103124</a>)</p>
]]></description><pubDate>Thu, 29 Jun 2023 18:47:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=36524937</link><dc:creator>johnnymellor</dc:creator><comments>https://news.ycombinator.com/item?id=36524937</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36524937</guid></item><item><title><![CDATA[New comment by johnnymellor in "CLI tools hidden in the Python standard library"]]></title><description><![CDATA[
<p>Not supporting multi-line statements is just because pdb doesn't bother to parse the statement to work out if it is an incomplete multi-line statement. That could be easily fixed (I have a prototype patch for that using `code.compile_command`).<p>The scope problems are more fundamental:<p>The pdb REPL calls[1] the exec builtin as `exec(code, frame.f_globals, frame.f_locals)`, which <a href="https://docs.python.org/3/library/functions.html#exec" rel="nofollow noreferrer">https://docs.python.org/3/library/functions.html#exec</a> documents as:<p><i>"If exec gets two separate objects as globals and locals, the code will be executed as if it were embedded in a class definition."</i><p>And <a href="https://docs.python.org/3/reference/executionmodel.html#resolution-of-names" rel="nofollow noreferrer">https://docs.python.org/3/reference/executionmodel.html#reso...</a> documents that:<p><i>"The scope of names defined in a class block is limited to the class block; it does not extend to the code blocks of methods - this includes comprehensions and generator expressions since they are implemented using a function scope."</i><p>This is a fundamental limitation of `exec`. You can workaround it by only passing a single namespace dictionary to exec instead of passing separate globals and locals, which is what pdb's interact command does[2], but then it's ambiguous how to map changes to that dictionary back to the separate globals and locals dictionaries (pdb's interact command just discards any changes you make to the namespace). This too could be solved, but requires either brittle ast parsing or probably a PEP to add new functionality to exec. I'll file a bug against Python soon.<p>[1]: <a href="https://github.com/python/cpython/blob/25a64fd28aaaaf2d21fae23212a0554c24fc7b20/Lib/pdb.py#L479">https://github.com/python/cpython/blob/25a64fd28aaaaf2d21fae...</a><p>[2]: <a href="https://github.com/python/cpython/blob/25a64fd28aaaaf2d21fae23212a0554c24fc7b20/Lib/pdb.py#L1584">https://github.com/python/cpython/blob/25a64fd28aaaaf2d21fae...</a></p>
]]></description><pubDate>Thu, 29 Jun 2023 15:19:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=36521574</link><dc:creator>johnnymellor</dc:creator><comments>https://news.ycombinator.com/item?id=36521574</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36521574</guid></item><item><title><![CDATA[New comment by johnnymellor in "Why do recipe writers lie about how long it takes to caramelize onions? (2012)"]]></title><description><![CDATA[
<p>Midjourney's rendering looks pretty tasty: <a href="https://pasteboard.co/NBhdMl3AsAAR.png" rel="nofollow">https://pasteboard.co/NBhdMl3AsAAR.png</a></p>
]]></description><pubDate>Tue, 23 May 2023 08:42:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=36041592</link><dc:creator>johnnymellor</dc:creator><comments>https://news.ycombinator.com/item?id=36041592</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36041592</guid></item><item><title><![CDATA[New comment by johnnymellor in "HN is up again"]]></title><description><![CDATA[
<p>You can make the omnibox forget about URLs and search terms you've used a lot by selecting them with the down key then pressing Shift+Delete (<a href="https://superuser.com/a/189334" rel="nofollow">https://superuser.com/a/189334</a>).</p>
]]></description><pubDate>Fri, 08 Jul 2022 22:04:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=32028029</link><dc:creator>johnnymellor</dc:creator><comments>https://news.ycombinator.com/item?id=32028029</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32028029</guid></item><item><title><![CDATA[New comment by johnnymellor in "We think this cool study we found is flawed. Help us reproduce it"]]></title><description><![CDATA[
<p>Yes, it's a very desirable trait in <a href="https://en.m.wikipedia.org/wiki/Quasi-Monte_Carlo_method" rel="nofollow">https://en.m.wikipedia.org/wiki/Quasi-Monte_Carlo_method</a><p>Quasi-Monte Carlo has a rate of convergence close to O(1/N), whereas the rate for the Monte Carlo method is O(N^(−0.5))<p>For such applications it's best to use quasi-random numbers (a.k.a. low-discrepancy sequences) such as the Halton sequence or the Sobol sequence instead of pseudorandom numbers.</p>
]]></description><pubDate>Sun, 01 May 2022 15:42:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=31225943</link><dc:creator>johnnymellor</dc:creator><comments>https://news.ycombinator.com/item?id=31225943</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31225943</guid></item><item><title><![CDATA[New comment by johnnymellor in "A basic introduction to NumPy's einsum"]]></title><description><![CDATA[
<p>Einops looks nice! It reminds me of <a href="https://github.com/deepmind/einshape" rel="nofollow">https://github.com/deepmind/einshape</a> which is another attempt at unifying reshape, squeeze, expand_dims, transpose, tile, flatten, etc under an einsum-inspired DSL.</p>
]]></description><pubDate>Sun, 10 Apr 2022 09:58:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=30975710</link><dc:creator>johnnymellor</dc:creator><comments>https://news.ycombinator.com/item?id=30975710</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30975710</guid></item><item><title><![CDATA[New comment by johnnymellor in "Coming to Chrome: a new way to use tabs"]]></title><description><![CDATA[
<p>For TST in Chrome I've been very happy with Tabs Outliner (<a href="https://chrome.google.com/webstore/detail/tabs-outliner/eggkanocgddhmamlbiijnphhppkpkmkl" rel="nofollow">https://chrome.google.com/webstore/detail/tabs-outliner/eggk...</a>).
As well as a great tree, you can mix live tabs/windows with frozen ones that don't consume RAM, and this is all reliably persisted across restarts.<p>Tabs Outliner is a separate window, since Chrome extensions can't add sidebars, so rather than using it as a tabbar replacement I tend to have multiple windows with less than 10 tabs, and open Tabs Outliner when I want a coherent overview (e.g. to quickly skim through my tab titles before closing them in bulk).</p>
]]></description><pubDate>Thu, 14 May 2020 09:47:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=23177506</link><dc:creator>johnnymellor</dc:creator><comments>https://news.ycombinator.com/item?id=23177506</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23177506</guid></item><item><title><![CDATA[New comment by johnnymellor in "300ms tap delay removed on Chrome for Android"]]></title><description><![CDATA[
<p>In Chrome for Android, just tick Settings > Accessibility > Force enable zoom</p>
]]></description><pubDate>Fri, 13 Dec 2013 19:02:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=6902210</link><dc:creator>johnnymellor</dc:creator><comments>https://news.ycombinator.com/item?id=6902210</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=6902210</guid></item></channel></rss>