<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: RaisingSpear</title><link>https://news.ycombinator.com/user?id=RaisingSpear</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 23 Oct 2026 12:23:47 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=RaisingSpear" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by RaisingSpear in "Orange Pi RV2 is a single-board PC with an 8-core RISC-V processor"]]></title><description><![CDATA[
<p>From memory, the SpacemiT K1 doesn't support extensions like Zvkt?<p>EDIT: okay, looks like the official documentation lists it, but many places I looked didn't.  Maybe it wasn't being detected in cpuinfo?</p>
]]></description><pubDate>Tue, 11 Mar 2025 08:55:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=43330507</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=43330507</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43330507</guid></item><item><title><![CDATA[New comment by RaisingSpear in "Dividing unsigned 8-bit numbers"]]></title><description><![CDATA[
<p>If you scale up the multipliers, you should be able to eliminate the variable shift, which would reduce the lookup table to 512 bytes.</p>
]]></description><pubDate>Mon, 23 Dec 2024 09:14:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=42493018</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=42493018</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42493018</guid></item><item><title><![CDATA[New comment by RaisingSpear in "Dividing unsigned 8-bit numbers"]]></title><description><![CDATA[
<p>For CPUs that support AVX-512 VBMI, there's a faster reciprocal-based approach: <a href="https://avereniect.github.io/2023/04/29/uint8_division_using_avx512.html" rel="nofollow">https://avereniect.github.io/2023/04/29/uint8_division_using...</a><p>A VBMI2 example implementation can be found in the function named divide_with_lookup_16b: <a href="https://godbolt.org/z/xdE1dx5Pj" rel="nofollow">https://godbolt.org/z/xdE1dx5Pj</a></p>
]]></description><pubDate>Sun, 22 Dec 2024 11:31:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=42485731</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=42485731</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42485731</guid></item><item><title><![CDATA[New comment by RaisingSpear in "Why those particular integer multiplies?"]]></title><description><![CDATA[
<p>I suspect Intel uses 32x32b multipliers instead of his theorised 16x16b, just that it only has one every second lane.  
It lines up more closely with VPMULLQ, and it seems odd that PMULUDQ would be one uOp vs PMULLD's two.<p>PMULLD is probably just doing 2x PMULUDQ and discarding the high bits.<p>(I tried commenting on his blog but it's awaiting moderation - I don't know if that's ever checked, or just sits in the queue forever)</p>
]]></description><pubDate>Sat, 26 Oct 2024 13:30:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=41954630</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=41954630</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41954630</guid></item><item><title><![CDATA[New comment by RaisingSpear in "The problem with new URL(), and how URL.parse() fixes that"]]></title><description><![CDATA[
<p>> Does every dev need to write the same line now?<p>Yes.<p>> Or should your one-liner be a library?<p>Definitely not.<p>Particularly if I can write the one-liner faster than it takes one to search, check, include and install the library.</p>
]]></description><pubDate>Mon, 20 May 2024 09:38:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=40413766</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=40413766</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40413766</guid></item><item><title><![CDATA[New comment by RaisingSpear in "The problem with new URL(), and how URL.parse() fixes that"]]></title><description><![CDATA[
<p>Yeah, you can write it in less than a minute:<p>const tryNew = (f, ...a) => {<p><pre><code>  try {

   return new f(...a);

  } catch(x) {

   return undefined;

  }

 };
</code></pre>
const myUrl = tryNew(URL, '<a href="http://example.com/" rel="nofollow">http://example.com/</a>');<p>I don't get why JS devs like to whinge about the smallest things.  And we get stuff like leftPad because of huge aversion to writing utility functions.</p>
]]></description><pubDate>Mon, 20 May 2024 04:08:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=40412180</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=40412180</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40412180</guid></item><item><title><![CDATA[New comment by RaisingSpear in "SearXNG is a free internet metasearch engine"]]></title><description><![CDATA[
<p>Search engines: they scrape the web, but get narky when scraped themselves.</p>
]]></description><pubDate>Sat, 06 Apr 2024 04:05:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=39949849</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=39949849</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39949849</guid></item><item><title><![CDATA[New comment by RaisingSpear in "Xz: Can you spot the single character that disabled Linux landlock?"]]></title><description><![CDATA[
<p>Tangentially related, but I've had a case where GCC 9.4.0 shipped a broken arm_acle.h header [<a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100985" rel="nofollow">https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100985</a>] - code which includes the header would always fail to compile.<p>Since users could be trying to compile it on GCC 9.4.0, and as the functionality dependent on the header isn't critical to the application, if the build detects the header is broken, it just disables the functionality and emits a warning.<p>Back to xz: If security isn't your top priority, it seems reasonable to just ignore the failure of an optional feature and just move along.  Of course, in hindsight, it's easy to point fingers, but without that, it doesn't sound completely unreasonable to me.</p>
]]></description><pubDate>Sun, 31 Mar 2024 10:49:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=39883102</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=39883102</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39883102</guid></item><item><title><![CDATA[New comment by RaisingSpear in "Backdoor in upstream xz/liblzma leading to SSH server compromise"]]></title><description><![CDATA[
<p>I think we're talking past each other a bit here.<p>If I were trying to phish someone, I wouldn't attack the public key crypto part, so how domains come into play during authentication doesn't matter.  I'd just grab the "unencrypted" session token at the end of the exchange.<p>Even if you somehow protected the session token (sounds dubious), there's still plenty a phisher could do, since it has full MITM capability.</p>
]]></description><pubDate>Sun, 31 Mar 2024 10:25:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=39882981</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=39882981</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39882981</guid></item><item><title><![CDATA[New comment by RaisingSpear in "Backdoor in upstream xz/liblzma leading to SSH server compromise"]]></title><description><![CDATA[
<p>From my understanding, FIDO isn't MFA though (the authenticator may present its own local challenge, but I don't think the remote party can mandate it).<p>There's also the issue of how many sites actually use it, as well as how it handles the loss of or inability to access private keys etc.  I generally see stuff like 'recovery keys' being a solution, but now you're just back to a password, just with extra steps.</p>
]]></description><pubDate>Sun, 31 Mar 2024 10:22:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=39882969</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=39882969</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39882969</guid></item><item><title><![CDATA[New comment by RaisingSpear in "Backdoor in upstream xz/liblzma leading to SSH server compromise"]]></title><description><![CDATA[
<p>The phisher can just pass on whatever you sign, and capture the token the server sends back.<p>Sure, you can probably come up with some non-HTTPS scheme that can address this, but I don't see any site actually doing this, so you're back to the unrealistic scenario.</p>
]]></description><pubDate>Sat, 30 Mar 2024 12:54:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=39874395</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=39874395</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39874395</guid></item><item><title><![CDATA[New comment by RaisingSpear in "Backdoor in upstream xz/liblzma leading to SSH server compromise"]]></title><description><![CDATA[
<p>> That's why I qualified it with "certificate-based". The private key never leaves the device<p>Except that phishing doesn't require the private key - it just needs to echo back the generated token.  And even if that isn't possible, what stops it obtaining the session token that's sent back?</p>
]]></description><pubDate>Sat, 30 Mar 2024 11:54:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=39873986</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=39873986</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39873986</guid></item><item><title><![CDATA[New comment by RaisingSpear in "Backdoor in upstream xz/liblzma leading to SSH server compromise"]]></title><description><![CDATA[
<p>> I don't think phishing is such an obscure scenario.<p>For a typical person, maybe, but for a tech-minded individual who understands security, data entropy and what /dev/random is?<p>And I don't see how MFA stops phishing - it can get you to enter a token like it can get you to enter a password.<p>I'm also looking at this from the perspective of an individual, not a service provider, so the activities of the greater percentage of users is of little interest to me.</p>
]]></description><pubDate>Sat, 30 Mar 2024 11:30:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=39873841</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=39873841</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39873841</guid></item><item><title><![CDATA[New comment by RaisingSpear in "Backdoor in upstream xz/liblzma leading to SSH server compromise"]]></title><description><![CDATA[
<p>But password managers typically don't send keyboard commands to fill in a password, so a physical device would be useless.<p>> There are plenty of scenarios where MFA is more secure than just a strong password.<p>And how realistic are they?  Or are they just highly specific scenarios where all the stars must align, and are almost never going to happen?</p>
]]></description><pubDate>Sat, 30 Mar 2024 08:52:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=39873030</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=39873030</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39873030</guid></item><item><title><![CDATA[New comment by RaisingSpear in "Z85: Format for representing binary data as printable text"]]></title><description><![CDATA[
<p>I don't quite understand what you're saying, but it should be possible to infer the length from the number of bytes received.<p>Assuming n is an integer:<p><pre><code>  * 5n bytes received = 4n bytes data
  * 5n+1 bytes received is [invalid]
  * 5n+2 bytes received = 4n+1 bytes data
  * 5n+3 bytes received = 4n+2 bytes data
  * 5n+4 bytes received = 4n+3 bytes data
</code></pre>
This is like <i>modified Base64</i>, which doesn't need any padding.</p>
]]></description><pubDate>Mon, 18 Mar 2024 11:09:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=39742481</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=39742481</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39742481</guid></item><item><title><![CDATA[New comment by RaisingSpear in "Z85: Format for representing binary data as printable text"]]></title><description><![CDATA[
<p>Padding is actually not really necessary in base64, as you can infer the length from the number of characters received.<p>Unfortunately for Z85, they made the highly questionable decision to use big-endian, which means it can't take base64's route.  You could probably define an incomplete group at the end to be right-aligned or similar, but you may as well be sensible and just go little-endian.</p>
]]></description><pubDate>Mon, 18 Mar 2024 09:42:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=39741929</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=39741929</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39741929</guid></item><item><title><![CDATA[New comment by RaisingSpear in "Z85: Format for representing binary data as printable text"]]></title><description><![CDATA[
<p>> The four octets SHALL be treated as an unsigned 32-bit integer in network byte order (big endian). The five characters SHALL be output from most significant to least significant (big endian).<p>Why oh why??!<p>If it were little endian, you could probably skip the "must be multiple of 5 chars/4 bytes" requirement, not to mention that 99.9999% of processors out there are running in little-endian mode.<p>There is nothing "envious" about network byte order.</p>
]]></description><pubDate>Mon, 18 Mar 2024 09:36:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=39741900</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=39741900</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39741900</guid></item><item><title><![CDATA[New comment by RaisingSpear in "1BRC merykitty's magic SWAR: 8 lines of code explained in 3k words"]]></title><description><![CDATA[
<p>Did the challenge limit submissions to only using SSE2?  Seems odd, given the prevalence of SSE4.2 support.<p>PMULUDQ is in SSE2, though I haven't checked if that's usable for the problem here.  There's also PMULLD in SSE4.1 if you only need a 32-bit result.  But for summing digits, perhaps SSE2's PMADDWD could be sufficient?</p>
]]></description><pubDate>Sun, 10 Mar 2024 02:36:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=39656316</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=39656316</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39656316</guid></item><item><title><![CDATA[New comment by RaisingSpear in "Iterating over bit sets quickly"]]></title><description><![CDATA[
<p>POPCNT doesn't exist in AVX prior to Icelake, so using other techniques there is sensible.  Also, that's POPCNT, not LZCNT.</p>
]]></description><pubDate>Mon, 26 Feb 2024 08:32:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=39508837</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=39508837</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39508837</guid></item><item><title><![CDATA[New comment by RaisingSpear in "Iterating over bit sets quickly"]]></title><description><![CDATA[
<p>> There are some times when you're doing these operations in large vector types (like AVX), in parallel, when falling back to the SWAR techniques can actually be faster because of limited bandwidth on the port for micro ops in popcnt or clz.<p>I'm doubtful of this in general.  Some older processors did have a very slow BSF/BSR implementation, so it may be the case there, but I wouldn't generally stick with that assumption these days. (and it's most certainly not the case on AMD Zen, given all its ALUs can do these bit ops)<p>AVX doesn't have lzcnt prior to AVX-512 CD, so it could make more sense there, though I'd imagine that abusing float conversion (convert to float, extract exponent) would still be faster.</p>
]]></description><pubDate>Sun, 25 Feb 2024 09:23:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=39499177</link><dc:creator>RaisingSpear</dc:creator><comments>https://news.ycombinator.com/item?id=39499177</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39499177</guid></item></channel></rss>