<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: ddulaney</title><link>https://news.ycombinator.com/user?id=ddulaney</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 08 Jun 2026 01:15:15 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=ddulaney" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by ddulaney in "France's homegrown open source online office suite"]]></title><description><![CDATA[
<p>There are definitely some benefits! Installation and updates become trivial. Also, collaboration is generally easier, because all you have to do is send a link.<p>These are the same reasons Google Docs took off, and they are real advantages.</p>
]]></description><pubDate>Sat, 07 Feb 2026 14:25:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=46924150</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=46924150</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46924150</guid></item><item><title><![CDATA[New comment by ddulaney in "Active listening: the Swiss Army Knife of communication"]]></title><description><![CDATA[
<p>Although, “let’s flush this out” is also a hunting idiom, as in flushing out game. So that may be part of the confusion.</p>
]]></description><pubDate>Sat, 01 Nov 2025 14:52:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=45782066</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=45782066</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45782066</guid></item><item><title><![CDATA[New comment by ddulaney in "Sometimes CPU cores are odd"]]></title><description><![CDATA[
<p>Can I ask what hardware you’re using? I’ve heard similar things on the internet generally, but I’m on a several-years-old phone and it took under a second. Is the interstitial really that slow on some setups?</p>
]]></description><pubDate>Thu, 28 Aug 2025 23:26:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=45058164</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=45058164</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45058164</guid></item><item><title><![CDATA[New comment by ddulaney in "The Conquest of Hell Gate [pdf]"]]></title><description><![CDATA[
<p>It’s fascinating to me what a different view of risk we had in the past.<p>The no damage being caused on the surface was a “new fact”. That would never fly today, for better or for worse.</p>
]]></description><pubDate>Sun, 18 May 2025 15:17:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=44022006</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=44022006</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44022006</guid></item><item><title><![CDATA[New comment by ddulaney in "Initialization in C++ is bonkers (2017)"]]></title><description><![CDATA[
<p>The general cost over a several large codebases has been observed to be minimal. Yet, there are specific scenarios where the costs are real and observable. For those rare cases, an explicit opt-in to risky behavior makes sense.</p>
]]></description><pubDate>Fri, 16 May 2025 13:15:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=44005116</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=44005116</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44005116</guid></item><item><title><![CDATA[New comment by ddulaney in "Docs like code in basic terms"]]></title><description><![CDATA[
<p>Yeah, exactly. If you're a developer, it can take a little bit to figure out that "docs like code" is a really strange concept to lots of non-developers.<p>The idea of using the same tools to manage your docs as you manage your code only makes sense if you understand what tools you use to manage code! If you don't -- if your main experience with documentation tooling is Word, or maybe MadCap stuff -- that's a really huge leap to make.</p>
]]></description><pubDate>Thu, 08 May 2025 05:39:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=43923365</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=43923365</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43923365</guid></item><item><title><![CDATA[New comment by ddulaney in "East German Stasi Tactics – Zersetzung (2021)"]]></title><description><![CDATA[
<p>This system absolutely sucks.<p>If you ever find yourself on the wrong end of it, read this article for advice but also explanations: <a href="https://www.kalzumeus.com/2017/09/09/identity-theft-credit-reports/" rel="nofollow">https://www.kalzumeus.com/2017/09/09/identity-theft-credit-r...</a><p>Understanding how the system works, which buttons work and which don’t is half the battle.</p>
]]></description><pubDate>Mon, 28 Apr 2025 06:31:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=43818241</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=43818241</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43818241</guid></item><item><title><![CDATA[New comment by ddulaney in "Pitfalls of Safe Rust"]]></title><description><![CDATA[
<p>Rust’s Optional does close this altogether, yes. All (non-unsafe) users of Optional are required to have some defined behavior in both cases. This is enforced by the language in the match statement, and most of the “member functions” on Optional use match under the hood.<p>This is an issue with the C++ standardization process as much as with the language itself. AIUI when std::optional (and std::variant, which has similar issues) were defined, there was a push to get new syntax into the language itself that would’ve been similar to Rust’s match statement.<p>However, that never made it through the standardization process, so we ended up with “library variants” that are not safe in all circumstances.<p>Here’s one of the papers from that time, though there are many others arguing different sides: <a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0095r0.html" rel="nofollow">https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p00...</a></p>
]]></description><pubDate>Sun, 06 Apr 2025 23:46:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=43606020</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=43606020</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43606020</guid></item><item><title><![CDATA[New comment by ddulaney in "Pitfalls of Safe Rust"]]></title><description><![CDATA[
<p>Unfortunately, operator[] on std::vector is inherently unsafe. You can potentially try to ban it (using at() instead), but that has its own problems.<p>There’s a great talk by Louis Brandy called “Curiously Recurring C++ Bugs at Facebook” [0] that covers this really well, along with std::map’s operator[] and some more tricky bugs. An interesting question to ask if you try to watch that talk is: How does Rust design around those bugs, and what trade offs does it make?<p>[0]: <a href="https://m.youtube.com/watch?v=lkgszkPnV8g" rel="nofollow">https://m.youtube.com/watch?v=lkgszkPnV8g</a></p>
]]></description><pubDate>Sun, 06 Apr 2025 20:54:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=43604887</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=43604887</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43604887</guid></item><item><title><![CDATA[New comment by ddulaney in "Utah becomes first US state to ban fluoride in its water"]]></title><description><![CDATA[
<p>The map is drawing Germany and Czechia both with the same white color as the border.<p>Unfortunate that the color scheme is confusing, but not any weird borders.<p>You can see the uncolored map here: <a href="https://en.m.wikipedia.org/wiki/File:BlankMap-World6-Equirectangular.svg" rel="nofollow">https://en.m.wikipedia.org/wiki/File:BlankMap-World6-Equirec...</a></p>
]]></description><pubDate>Sun, 30 Mar 2025 04:38:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=43521391</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=43521391</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43521391</guid></item><item><title><![CDATA[New comment by ddulaney in "A love letter to the CSV format"]]></title><description><![CDATA[
<p>I think the issue is that CSV parsing is really easy to screw up. You mentioned delimiter choice and escaping, and I’d add header presence/absence to that list.<p>There are at least 3 knobs to turn every time you want to parse a CSV file. There’s reasonably good tooling around this (for example, Python’s CSV module has 8 parser parameters that let you select stuff), but the fact that you have to worry about these details is itself a problem.<p>You said “handling data is complicated as much as the world itself is”, and I 100% agree. But the really hard part is understanding what the data <i>means</i>, what it <i>describes</i>. Every second spent on figuring out which CSV parsing option I have to change could be better spent actually thinking about the data.</p>
]]></description><pubDate>Thu, 27 Mar 2025 02:40:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=43489876</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=43489876</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43489876</guid></item><item><title><![CDATA[New comment by ddulaney in "The earliest versions of the first C compiler known to exist"]]></title><description><![CDATA[
<p>If you even can with ASLR. Most modern boxes would disable stuff like this.</p>
]]></description><pubDate>Mon, 24 Mar 2025 19:36:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=43464648</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=43464648</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43464648</guid></item><item><title><![CDATA[New comment by ddulaney in "Oxidizing Ubuntu: adopting Rust utilities by default"]]></title><description><![CDATA[
<p>They just wanted the CLA to support the (paid) relicensing.<p>I think the reasoning (as it was explained to me) was that when people made their original contributions, they were agreeing to the license at that time (in this case GPL, but for other projects MIT). But the other contributors never agreed that the main maintainer could relicense their contributions for a fee.<p>The upshot was that we went with an in-house fully-proprietary alternative. More expensive, probably lower quality.</p>
]]></description><pubDate>Sun, 23 Mar 2025 17:29:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=43454361</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=43454361</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43454361</guid></item><item><title><![CDATA[New comment by ddulaney in "Oxidizing Ubuntu: adopting Rust utilities by default"]]></title><description><![CDATA[
<p>I don’t think it would’ve in our case, at least. I actually quite like our OSS policy: basically, we don’t want to be in the business of maintaining forks, so all changes should try to get upstreamed if at all possible. It‘s good client service as well: when our clients ask about the libraries we use, we’d much rather be able to tell them “the latest public version” than “here’s our fork”.<p>We also want to engage with and donate to the projects we use, mostly out of risk management: if they go unmaintained that’s bad for us.</p>
]]></description><pubDate>Sat, 22 Mar 2025 04:44:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=43443634</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=43443634</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43443634</guid></item><item><title><![CDATA[New comment by ddulaney in "Oxidizing Ubuntu: adopting Rust utilities by default"]]></title><description><![CDATA[
<p>We (engineers) actually wanted to for another GPL’d project! But because they didn’t have a CLA, the lawyers wouldn’t sign off on it — they decided that the main/current maintainer didn’t have the rights to relicense it for us.<p>We probably would’ve for LZO too; not sure why that fell through.</p>
]]></description><pubDate>Sat, 22 Mar 2025 04:38:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=43443585</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=43443585</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43443585</guid></item><item><title><![CDATA[New comment by ddulaney in "Oxidizing Ubuntu: adopting Rust utilities by default"]]></title><description><![CDATA[
<p>The last 2 paragraphs of this interview with David Chisnall really made me think differently about that: <a href="https://lobste.rs/s/ttr8op/lobsters_interview_with_david_chisnall" rel="nofollow">https://lobste.rs/s/ttr8op/lobsters_interview_with_david_chi...</a><p>In particular:<p>> I think the GPL has led to fairly noticeable increase in the amount of proprietary software in the world as companies that would happily adopt a BSDL component decide to create an in-house proprietary version rather than adopt a GPL’d component.<p>It also aligns with my experience: my company couldn’t find an LZO compression library that wasn’t GPL’d, so the decision was between implementing one in-house or cutting the feature. We ended up restricting use of the feature to in-house use only, but opening up our core source code was never an option.<p>If there had been a permissive license option available, we would’ve likely donated (as we do to several other dependencies), and would’ve contributed any fixes back (because that’s easier to explain to customers than “here’s our patched version”).</p>
]]></description><pubDate>Sat, 22 Mar 2025 00:04:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=43442022</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=43442022</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43442022</guid></item><item><title><![CDATA[New comment by ddulaney in "HTTP/3 is everywhere but nowhere"]]></title><description><![CDATA[
<p>There's also a sort-of informal "standard library" of C libraries that have super-stable ABI's that we can generally assume are either present on the system or easy to install. Zlib is another one that comes immediately to mind, but there are others as well.</p>
]]></description><pubDate>Mon, 17 Mar 2025 19:13:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=43391815</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=43391815</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43391815</guid></item><item><title><![CDATA[New comment by ddulaney in "HTTP/3 is everywhere but nowhere"]]></title><description><![CDATA[
<p>I’m not OP, but at $WORK we sell a C++ library. We want to make it as easy as possible for clients to integrate it into their existing binaries. We need to be able to integrate with CMake, Meson, vcxproj, and hand-written Makefiles. We’re not the only vendor: if another vendor is using a specific cURL version, you better <i>hope</i> we work with it too, otherwise integration is almost impossible.<p>You could imagine us shipping our library as a DLL/.so and static-linking libcurl, but that comes with a bunch of its own problems.</p>
]]></description><pubDate>Mon, 17 Mar 2025 13:53:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=43388631</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=43388631</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43388631</guid></item><item><title><![CDATA[New comment by ddulaney in "I Built a Mechanical Calculator [video]"]]></title><description><![CDATA[
<p>It doesn’t help that they made an absolute ton of them: something like 140,000! That means that they’re not particularly rare, and it holds the price down.<p>Add in the fact that authenticity is part of the appeal, plus the fairly expensive process to make a decent replica, it’s not shocking that no replicas have emerged, even though cheap-ish CNCs mean it’s probably easier to do than it ever has been.</p>
]]></description><pubDate>Wed, 12 Mar 2025 23:11:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=43348697</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=43348697</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43348697</guid></item><item><title><![CDATA[New comment by ddulaney in "Passing the Buck: The story of the 2022 Wings Over Dallas air show collision"]]></title><description><![CDATA[
<p>The podcast is super fun! It takes the “Engineering Podcast with Slides” model that WTYP originated, but instead of having one knowledgeable person and two comedians, all 3 know different parts of the industry.</p>
]]></description><pubDate>Sun, 02 Mar 2025 17:55:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=43233041</link><dc:creator>ddulaney</dc:creator><comments>https://news.ycombinator.com/item?id=43233041</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43233041</guid></item></channel></rss>