<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: EvilTerran</title><link>https://news.ycombinator.com/user?id=EvilTerran</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 02 May 2026 10:27:39 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=EvilTerran" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by EvilTerran in "Making Firefox's right-click not suck with about:config"]]></title><description><![CDATA[
<p>You can add a screenshot button to the toolbar from the "Customise Toolbar" screen, does the exact same thing as that context menu item.</p>
]]></description><pubDate>Wed, 04 Mar 2026 19:46:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47252821</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=47252821</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47252821</guid></item><item><title><![CDATA[New comment by EvilTerran in "Tech terms I was pronouncing wrong"]]></title><description><![CDATA[
<p>Same!<p>I also enjoy reading SciPy as "skippy".</p>
]]></description><pubDate>Fri, 21 Mar 2025 21:23:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=43440958</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=43440958</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43440958</guid></item><item><title><![CDATA[New comment by EvilTerran in "AutoHotkey v2 Official Release Announcement"]]></title><description><![CDATA[
<p>Back when I played Minecraft, I wrote one I was pretty pleased with:<p>If you have a stack of items, you can pick up half of them by right-clicking on it, which is very convenient when you're dividing out a stack on the crafting grid to make many copies of a recipe that needs that item in 2 or 4 slots; but for some recipes, you need to put the same item in 3 or 6 slots, and there's no built-in way to divide a stack into thirds.<p>So I made an AHK script that, when I held down a key, would<p>- pick up half of the items in the stack I'm pointing at (right-click)
- move the mouse one inventory space to the right
- put them down (left-click)
- pick up half of them again
- move back one inventory space left
- put them down, adding them back to the original stack
- and repeat<p>and it would only stop after one of the "pick up" steps; so, after a few iterations, you'd be left with the stack divided into equal thirds, two in your inventory & one on the mouse.<p>Eg, starting with a stack of 60, it goes 30/30, 45/15, 22/38, 41/19, 20/40, 40/20, 20/40, 40/20... then release the key, and you've got three stacks of 20.</p>
]]></description><pubDate>Sun, 29 Jan 2023 12:45:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=34567584</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=34567584</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34567584</guid></item><item><title><![CDATA[New comment by EvilTerran in "A little bit of plain JavaScript can do a lot"]]></title><description><![CDATA[
<p>Others have already mentioned that you can replace "for (const k in props) elem[k] = props[k]" with "Object.assign(elem, props)"; further to that, in modern browsers, you can replace "for (const kid of kids) elem.appendChild(kid)" with just "elem.append(...kids)" - with the added benefit that plain strings passed to .append() get turned into text nodes automatically, so you probably wouldn't need $T any more:<p><a href="https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/append" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/...</a></p>
]]></description><pubDate>Sun, 21 Jun 2020 16:47:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=23593161</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=23593161</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23593161</guid></item><item><title><![CDATA[New comment by EvilTerran in "SQLite as an Application File Format (2014)"]]></title><description><![CDATA[
<p>I guess you could send changes to the DB on-the-fly inside a transaction, so when the user clicks "save" it's just a matter of running COMMIT? Not sure what effect that would have on performance as the transaction grows, though.</p>
]]></description><pubDate>Sat, 13 Jun 2020 16:28:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=23510567</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=23510567</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23510567</guid></item><item><title><![CDATA[New comment by EvilTerran in "Firefox extensions to make remote work and school a little better"]]></title><description><![CDATA[
<p>I believe you're thinking of the "Facebook Container" addon - it's "official", in that it's made by people at Mozilla & has their corporate blessing, but it's not installed by default.<p>AIUI, the only "container" functionality built-in to the browser is... infrastructure, I guess you'd call it: Firefox provides all the tools for addons to do stuff with containers, but doesn't actually do anything with them itself.</p>
]]></description><pubDate>Fri, 22 May 2020 08:57:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=23269991</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=23269991</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23269991</guid></item><item><title><![CDATA[New comment by EvilTerran in "Firefox extensions to make remote work and school a little better"]]></title><description><![CDATA[
<p>Could you not use permissions.request() [0] to ask for access to a given site on-the-fly, when the user actually visits it? That seems to be how, for example, Reddit Enhancement Suite goes about getting perms for all the various sites it supports embedding content from (imgur, twitter etc) - you get a prompt when you click to open an embed for a site you haven't granted the permission for already.<p>[0] <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/permissions/request" rel="nofollow">https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...</a></p>
]]></description><pubDate>Fri, 22 May 2020 08:49:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=23269943</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=23269943</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23269943</guid></item><item><title><![CDATA[New comment by EvilTerran in "Port knocking"]]></title><description><![CDATA[
<p><i>Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize.</i><p><a href="https://news.ycombinator.com/newsguidelines.html" rel="nofollow">https://news.ycombinator.com/newsguidelines.html</a></p>
]]></description><pubDate>Fri, 15 May 2020 08:20:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=23190051</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=23190051</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23190051</guid></item><item><title><![CDATA[New comment by EvilTerran in "Incremental Regular Expressions (2012)"]]></title><description><![CDATA[
<p>I find PCRE's rule easy enough: for a character you want to be taken literally, if it's punctuation backslash it, if it's not then don't; any unbackslashed punctuation (or backslashed non-punctuation) may be a metacharacter.<p>Compare to, say, POSIX or Vim[0] REs, where some punctuation characters are special with a backslash, others are special without, and I can <i>never</i> remember which is which.<p>[0] Regardless of the state of the "magic" option - the only way to get consistent behavior is to start every single RE with either \v (which works like PCRE) or \V (which works like your proposal).</p>
]]></description><pubDate>Wed, 22 Apr 2020 21:37:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=22950473</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=22950473</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22950473</guid></item><item><title><![CDATA[New comment by EvilTerran in "'Horrible hybrids': the plastic products that give recyclers nightmares"]]></title><description><![CDATA[
<p>> For instance most spray cleaners come in bottles made of high-density polyethylene, which can be readily recycled. But first consumers must remove the spraytops, as they are made from different plastics and are not recyclable. Then consumers must find a way to pry off the brightly-colored, printed plastic wraps that packagers are increasingly wrapping around bottles to make the labeling more attractive.<p>> “Who does all that? Nobody,” said Sanborn.<p>I do! It's a little fiddly, but any sharp knife with a point you can slip under the label does a good enough job of slicing those off.<p>Good to know that helps, actually - I've often wondered whether I was wasting my time bothering with it.</p>
]]></description><pubDate>Mon, 20 Apr 2020 19:56:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=22927807</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=22927807</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22927807</guid></item><item><title><![CDATA[New comment by EvilTerran in "In space, no one can hear you kernel panic"]]></title><description><![CDATA[
<p>This post was your 22nd submission in the space of about an hour, in which time there were only 37 submissions from everyone else put together. One point in the new queue features six of your submissions in a consecutive row.<p>Per the Guidelines, <a href="https://news.ycombinator.com/newsguidelines.html" rel="nofollow">https://news.ycombinator.com/newsguidelines.html</a>:<p><i>Please don't submit so many links at once that the new page is dominated by your submissions.</i></p>
]]></description><pubDate>Sat, 18 Apr 2020 21:27:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=22911236</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=22911236</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22911236</guid></item><item><title><![CDATA[New comment by EvilTerran in "Confessions of a Used Programming Language Salesman (2007)"]]></title><description><![CDATA[
<p>> python came up without a platform to support it<p>What about numpy (+ its ecosystem, scipy/pandas/etc)? I get the impression that's contributed a <i>lot</i> to Python's growth over the years.</p>
]]></description><pubDate>Mon, 13 Apr 2020 14:04:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=22855902</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=22855902</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22855902</guid></item><item><title><![CDATA[New comment by EvilTerran in "When debugging, attitude matters"]]></title><description><![CDATA[
<p><i>So I changed the z-index of Div A to be 5 or something. But it didn’t work! In Firefox, div A was on top, but in Chrome, Div B was on top. Argh! Why?</i><p>... why indeed? I can't think of any (presumably fairly simple) scenario where that would happen.</p>
]]></description><pubDate>Sun, 05 Apr 2020 20:45:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=22788570</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=22788570</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22788570</guid></item><item><title><![CDATA[New comment by EvilTerran in "Secure Rust Guidelines"]]></title><description><![CDATA[
<p>Sure, I don't disagree - I meant only to add context for anyone reading who was unfamiliar with Haskell, lest they come away with the impression that the lack of a .get()-equivalent was some kind of egregious oversight.</p>
]]></description><pubDate>Sun, 22 Mar 2020 09:26:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=22653778</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=22653778</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22653778</guid></item><item><title><![CDATA[New comment by EvilTerran in "Secure Rust Guidelines"]]></title><description><![CDATA[
<p>> Hoogle doesn't seem to find me a function like Rust's .get() in the standard library<p>In practice, you don't really need one - the safe alternative to "xs !! n" is pattern-matching on the result of "drop n xs", as that's [] if xs has ≤n elements:<p><a href="https://www.haskell.org/onlinereport/standard-prelude.html#$vdrop" rel="nofollow">https://www.haskell.org/onlinereport/standard-prelude.html#$...</a></p>
]]></description><pubDate>Sat, 21 Mar 2020 15:07:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=22646985</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=22646985</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22646985</guid></item><item><title><![CDATA[New comment by EvilTerran in "It never makes sense to use foldl on lists in Haskell (2019)"]]></title><description><![CDATA[
<p>> if you're reducing the list to a scalar, you lose all the benefits this article wants to claim.<p>Not quite - for example, these both benefit from foldr, despite each producing a scalar:<p><pre><code>  and, or :: [Bool] -> Bool
  and = foldr (&&) True
  or = foldr (||) False
</code></pre>
... as they can both "bail out early" without evaluating the entire list (if they find a False or a True, respectively).<p>The distinction lies not so much in "are you reducing to a scalar?" as "can your binary operation be productive without evaluating its second parameter?" - or, if you prefer, "is it ever lazy in its second parameter?". If so, then foldr may be appropriate.</p>
]]></description><pubDate>Sat, 21 Mar 2020 09:32:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=22645483</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=22645483</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22645483</guid></item><item><title><![CDATA[New comment by EvilTerran in "Awesome-ld-preload: List of resources related to LD_PRELOAD"]]></title><description><![CDATA[
<p>Neat! I can see myself using several of these.<p>Erratum: the link meant for "openssl-hook" actually takes you to "otherport".</p>
]]></description><pubDate>Sun, 26 Jan 2020 09:32:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=22151261</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=22151261</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22151261</guid></item><item><title><![CDATA[New comment by EvilTerran in "Kill Sticky Headers (2013)"]]></title><description><![CDATA[
<p>Speaking of "concise", in modern browsers you can replace el.parentNode.removeChild(el) with just el.remove():<p><a href="https://developer.mozilla.org/en-US/docs/Web/API/ChildNode/remove" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/API/ChildNode/r...</a></p>
]]></description><pubDate>Fri, 06 Dec 2019 09:33:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=21720317</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=21720317</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21720317</guid></item><item><title><![CDATA[New comment by EvilTerran in "Dark matter nightmare: What if we are just using the wrong equations?"]]></title><description><![CDATA[
<p>The point, as I understand it, is that we've found cases of galaxies that <i>look</i> like they should be about the same mass as each other based on the light they're putting out themselves, but gravitational lensing measurements indicate a significant mass discrepancy. <i>That's</i> what's hard to explain without "maybe there's a bunch of matter we can't see" - if it was more of a "maybe gravity just works differently at galactic scales" situation, that scenario would be impossible.</p>
]]></description><pubDate>Thu, 17 Oct 2019 08:36:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=21280032</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=21280032</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21280032</guid></item><item><title><![CDATA[New comment by EvilTerran in "Ask HN: Searching for Functions via Type Signatures"]]></title><description><![CDATA[
<p>There's Hoogle, for Haskell: <a href="https://hoogle.haskell.org/" rel="nofollow">https://hoogle.haskell.org/</a><p>I don't know if it implements any techniques from that paper, but it does let you search for definitions by type signature. Of note, it also does a pretty good job of finding results with different-but-compatible types, which is very valuable in a Haskell context given all the polymorphism.</p>
]]></description><pubDate>Sun, 29 Sep 2019 16:48:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=21108085</link><dc:creator>EvilTerran</dc:creator><comments>https://news.ycombinator.com/item?id=21108085</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21108085</guid></item></channel></rss>