<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: Dr_Emann</title><link>https://news.ycombinator.com/user?id=Dr_Emann</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 25 Sep 2026 00:58:17 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=Dr_Emann" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by Dr_Emann in "Fearless SIMD v1.0"]]></title><description><![CDATA[
<p>Have been really happy with Fearless simd, I used it to write [memchr-n][1], which searches for instances of an arbitrary set of bytes, with simd, which actually tends to [outperform][2] the rust memchr crate, even for sets of 1-3 bytes (what's supported by memchr)<p>[1]: <a href="https://github.com/Dr-Emann/memchr_n#performance" rel="nofollow">https://github.com/Dr-Emann/memchr_n#performance</a>
[2]: <a href="https://github.com/BurntSushi/memchr/pull/241" rel="nofollow">https://github.com/BurntSushi/memchr/pull/241</a></p>
]]></description><pubDate>Thu, 24 Sep 2026 20:57:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=49836633</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=49836633</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49836633</guid></item><item><title><![CDATA[New comment by Dr_Emann in "Improving Heuristics for A* Pathfinding"]]></title><description><![CDATA[
<p>It's a little unclear, but it's a live updating number, if you follow the directions, you'll see the second number decrease.</p>
]]></description><pubDate>Sun, 09 Aug 2026 00:33:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=49227225</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=49227225</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49227225</guid></item><item><title><![CDATA[The Java Story, the Official Documentary]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.youtube.com/watch?v=ZqGSg4b_cZA">https://www.youtube.com/watch?v=ZqGSg4b_cZA</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48961352">https://news.ycombinator.com/item?id=48961352</a></p>
<p>Points: 7</p>
<p># Comments: 1</p>
]]></description><pubDate>Sat, 18 Jul 2026 19:23:52 +0000</pubDate><link>https://www.youtube.com/watch?v=ZqGSg4b_cZA</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=48961352</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48961352</guid></item><item><title><![CDATA[New comment by Dr_Emann in "County with 37 Data Centers Asks Schools to 'Conserve Electricity'"]]></title><description><![CDATA[
<p>I don't think so, "while vacant" is an infinite amount of time, if you look infinitely far into the future.</p>
]]></description><pubDate>Tue, 30 Jun 2026 17:14:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48735884</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=48735884</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48735884</guid></item><item><title><![CDATA[New comment by Dr_Emann in "Cannabis and driving? Studies reveal big risks"]]></title><description><![CDATA[
<p>"Participants got behind the wheel of a driving simulator equipped with everything you’d find in a real car – from the steering wheel to the pedals and dashboard. A large touchscreen, similar to those found in newer vehicles, allows for music to play and text messages to come through. Three oversized monitors provide 180 degrees of visual coverage to create a realistic, immersive driving environment."<p>Seems pretty clearly a simulator, they use that word several times.</p>
]]></description><pubDate>Fri, 15 May 2026 00:59:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48143219</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=48143219</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48143219</guid></item><item><title><![CDATA[New comment by Dr_Emann in "Bugs Rust won't catch"]]></title><description><![CDATA[
<p>To be even fair-er, it wasn't actually memory unsafety, it was "just" unsoundness, there was a type, that IF you gave it an io reader implementation that was weird, that implementation could see uninit data, or expose uninit data elsewhere, but the only readers actually used were well behaved readers.</p>
]]></description><pubDate>Wed, 29 Apr 2026 06:20:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47944768</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=47944768</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47944768</guid></item><item><title><![CDATA[New comment by Dr_Emann in "Upcoming Rust language features for kernel development"]]></title><description><![CDATA[
<p>Thats kinda the problem, there are concepts in rust that don't have equivalents in other common languages. In this case, rust's type system models data-race-safety: it prevents data races at compile time in a way unlike what you can do in c or c++. It will prevent getting mutable access (with a compile time error) to a value across threads unless that access is syncronized (atomics, locks, etc)</p>
]]></description><pubDate>Thu, 16 Oct 2025 13:44:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=45605267</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=45605267</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45605267</guid></item><item><title><![CDATA[New comment by Dr_Emann in "DARPA project for automated translation from C to Rust (2024)"]]></title><description><![CDATA[
<p>Rust has access control. Fields are private by default.</p>
]]></description><pubDate>Thu, 02 Oct 2025 01:38:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=45445577</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=45445577</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45445577</guid></item><item><title><![CDATA[New comment by Dr_Emann in "Speeding up C++ code with template lambdas"]]></title><description><![CDATA[
<p>Wow the comments are.. Bad. Not all single instruction operations are the same.</p>
]]></description><pubDate>Sun, 16 Mar 2025 21:40:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=43382639</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=43382639</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43382639</guid></item><item><title><![CDATA[New comment by Dr_Emann in "Asahi Linux lead developer Hector Martin resigns from Linux kernel"]]></title><description><![CDATA[
<p>"The common ground is that I have absolutely no interest in helping to spread a multi-language code base. I absolutely support using Rust in new codebase, but I do not at all in Linux." <a href="https://lwn.net/ml/all/20250204052916.GA28741@lst.de/" rel="nofollow">https://lwn.net/ml/all/20250204052916.GA28741@lst.de/</a><p>That doesn't sound like he's only talking about in his area to me</p>
]]></description><pubDate>Fri, 07 Feb 2025 13:36:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=42972351</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=42972351</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42972351</guid></item><item><title><![CDATA[Show HN: One Million Sliders]]></title><description><![CDATA[
<p>Inspired by onemillioncheckboxes.com, I made my own version, where everyone shares 1 million sliders, setting one to a value sets it for everyone.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=40944633">https://news.ycombinator.com/item?id=40944633</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 12 Jul 2024 11:42:09 +0000</pubDate><link>https://onemillionsliders.com</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=40944633</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40944633</guid></item><item><title><![CDATA[New comment by Dr_Emann in "Mojo vs. Rust: is Mojo faster than Rust?"]]></title><description><![CDATA[
<p>Hi, I think even the remaining benchmark isn't showing what you're trying to show:<p><a href="https://rust.godbolt.org/z/r9rP6xohb" rel="nofollow">https://rust.godbolt.org/z/r9rP6xohb</a><p>Rust realizes the vector is never used, and so never does any allocation, or recursion, it just turns into a loop to count up to 999_999_999.<p>And some back of the napkin math says there's no way either benchmark is actually allocating anything. Even if malloc took 1 nanosecond (it _doesn't_), 999_999_999 nanoseconds is 0.999999999 seconds.<p>It _is_ somewhat surprising that rust doesn't realize the loop can be completely optimized away, like it does without the unused Vec, but this benchmark still isn't showing what you're trying to show.</p>
]]></description><pubDate>Thu, 15 Feb 2024 16:20:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=39384567</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=39384567</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39384567</guid></item><item><title><![CDATA[New comment by Dr_Emann in "Mojo vs. Rust: is Mojo faster than Rust?"]]></title><description><![CDATA[
<p>Rust optimizes factorial to be iterative, not using recursion (tail or otherwise) at all, and it turns `factorial(15, 1)` into `1307674368000`: <a href="https://rust.godbolt.org/z/bGrWfYKrP" rel="nofollow">https://rust.godbolt.org/z/bGrWfYKrP</a>. As has been pointed out a few times, you're benchmarking `criterion::black_box` vs `benchmark.keep` (try the newer `std::hint::black_box`, which is built into the compiler and should have lower overhead)<p>And no: in the example with `&String` and `usize`, the stack isn't growing:
<a href="https://rust.godbolt.org/z/6zW6WfGE7" rel="nofollow">https://rust.godbolt.org/z/6zW6WfGE7</a></p>
]]></description><pubDate>Tue, 13 Feb 2024 16:40:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=39359519</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=39359519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39359519</guid></item><item><title><![CDATA[New comment by Dr_Emann in "A byte string library for Rust"]]></title><description><![CDATA[
<p>Honestly feels like a very, very different use case from utf8-ish strings, at a quick read?</p>
]]></description><pubDate>Thu, 08 Sep 2022 12:05:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=32764307</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=32764307</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32764307</guid></item><item><title><![CDATA[New comment by Dr_Emann in "The Bourne shell lets you set variables in if expressions"]]></title><description><![CDATA[
<p>For simple cases, I'll do that, but for longer commands, I've taken to doing<p>rc=0
long command || rc = $?
if (( rc == 0 ))...</p>
]]></description><pubDate>Sat, 15 May 2021 12:13:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=27164503</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=27164503</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27164503</guid></item><item><title><![CDATA[New comment by Dr_Emann in "Rust in the Linux Kernel (Android Security Blog)"]]></title><description><![CDATA[
<p>Literally every file operation HAS to go through the kernel. This is implementing "what does it mean to read/write this special device file"</p>
]]></description><pubDate>Thu, 15 Apr 2021 12:50:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=26819807</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=26819807</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26819807</guid></item><item><title><![CDATA[New comment by Dr_Emann in "Why asynchronous Rust doesn't work"]]></title><description><![CDATA[
<p>I believe they're asking for "this function returns a function of the same type (Fn/FnMut/FnOnce) as its first argument, but with different arguments. A generic way to write something like `fn bind<T, F: Fn(T,...) >(f: F, arg: T) -> Fn(...)`</p>
]]></description><pubDate>Wed, 10 Mar 2021 12:36:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=26410585</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=26410585</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26410585</guid></item><item><title><![CDATA[New comment by Dr_Emann in "Go is not an easy language"]]></title><description><![CDATA[
<p>Yes it does exactly that. It returns an iterator over the removed items, but when that iterator is dropped, it modifies the collection. See <a href="https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=207a1c4de84ed43608ab774c15c8e5db" rel="nofollow">https://play.rust-lang.org/?version=stable&mode=debug&editio...</a></p>
]]></description><pubDate>Tue, 23 Feb 2021 15:05:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=26238078</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=26238078</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26238078</guid></item><item><title><![CDATA[New comment by Dr_Emann in "Go is not an easy language"]]></title><description><![CDATA[
<p>And for move to front, why not `a[..i+1].rotate_right(1);`, rather than moving to the back and then shifting everything?</p>
]]></description><pubDate>Mon, 22 Feb 2021 16:00:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=26225998</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=26225998</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26225998</guid></item><item><title><![CDATA[New comment by Dr_Emann in "Go is not an easy language"]]></title><description><![CDATA[
<p>Expand does actually exist in the standard library, but it's a bit of a strange incantation...<p><pre><code>    vec.splice(i..i, std::iter::repeat(0).take(length));
</code></pre>
This replaces the values in range `i..i` (an empty range starting at i) with `length` copies of `0`.</p>
]]></description><pubDate>Mon, 22 Feb 2021 15:43:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=26225767</link><dc:creator>Dr_Emann</dc:creator><comments>https://news.ycombinator.com/item?id=26225767</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26225767</guid></item></channel></rss>