<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: atrettel</title><link>https://news.ycombinator.com/user?id=atrettel</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 15 Nov 2026 07:38:46 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=atrettel" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by atrettel in "Ask HN: Who wants to be hired? (November 2026)"]]></title><description><![CDATA[
<p>Location: Maryland, United States<p>Remote: Open to remote, hybrid, and in person<p>Willing to relocate: Yes<p>Technologies: C, C++, Fortran, Java, Message Passing Interface (MPI), OpenMP, Python (Matplotlib, Numpy, Pandas, Scipy), SQL (especially SQLite)<p>Résumé/CV: Available upon request<p>Email: <a href="https://www.andrewtrettel.com/hnjobs.png" rel="nofollow">https://www.andrewtrettel.com/hnjobs.png</a> (to prevent spam, my email address is in the linked image)<p>GitHub: <a href="https://github.com/atrettel" rel="nofollow">https://github.com/atrettel</a><p>Website: <a href="https://www.andrewtrettel.com/" rel="nofollow">https://www.andrewtrettel.com/</a><p>Hi, I'm Andrew Trettel. I'm a scientist with a PhD in mechanical engineering looking for any potential opportunities outside of academia and research labs.<p>I am open to many different roles, including being a software developer or data scientist. I have over a decade of experience in scientific research, especially on the numerical side. I have years of experience in writing software for and running large simulations on high-performance computing (HPC) systems. I have also developed software for non-scientific purposes, like creating user interfaces for desktop applications and writing command-line tools.  I have extensive experience using commercial and noncommerical computational fluid dynamics (CFD) codes. I have years of experience working with large datasets, including the tasks of calculating statistics and developing hypotheses/models/theories from data.<p>I've worn many hats over the years and love learning new and interesting topics.</p>
]]></description><pubDate>Mon, 02 Nov 2026 17:40:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=50340498</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=50340498</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50340498</guid></item><item><title><![CDATA[New comment by atrettel in "Grieving the loss of details"]]></title><description><![CDATA[
<p>I wish that I could agree with you that "There is always room for people who know what they are talking about."  I think that you are right in the long term.  Eventually we will return to a world that values people who know what they are talking about.<p>In the short term, I have seen a lot of managers and other higher-ups talk about how we do not need to worry about low-level details anymore.  In their minds, we are now all designers and architects, so we do not think about the small implementation details that ultimately do matter for performance and reliability.<p>People who know what they are talking about worry about all of the details from the big picture down to the small scales.  We can still operate using abstractions like designers and architects, but we must know enough to choose the right abstractions that account for the concrete details properly.  I've discussed this point earlier this year [1] using the tree swing diagram [2].<p>[1] <a href="https://news.ycombinator.com/item?id=46422597">https://news.ycombinator.com/item?id=46422597</a><p>[2] <a href="https://en.wikipedia.org/wiki/Tree_swing_cartoon" rel="nofollow">https://en.wikipedia.org/wiki/Tree_swing_cartoon</a></p>
]]></description><pubDate>Sat, 10 Oct 2026 17:38:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=50035215</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=50035215</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50035215</guid></item><item><title><![CDATA[New comment by atrettel in "Incentives in Academic Research"]]></title><description><![CDATA[
<p>What you wrote reminds me of the controversy around Robert Millikan's oil drop experiment [1].  It measured the charge of an electron.  Later experiments confirmed the real value was slightly higher than Millikan reported.  Many researchers who could not replicate Millikan's value just assumed that they did something wrong rather than questioning Millikan's value.  It took a few decades, but fortunately science caught up with this.  I often think about this when I see a colleague struggling to replicate something.<p>[1] <a href="https://en.wikipedia.org/wiki/Oil_drop_experiment#Millikan's_experiment_as_an_example_of_psychological_effects_in_scientific_methodology" rel="nofollow">https://en.wikipedia.org/wiki/Oil_drop_experiment#Millikan's...</a></p>
]]></description><pubDate>Tue, 06 Oct 2026 01:05:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=49972895</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=49972895</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49972895</guid></item><item><title><![CDATA[New comment by atrettel in "Incentives in Academic Research"]]></title><description><![CDATA[
<p>I agree.  I would have thought that the author would have discussed the incentives and then show how changing the incentives would lead to a better outcome.  Instead the article just ends nebulously by saying "I am not sure how to fix this problem".  I find that pretty confusing as a reader.  The first sentence of the article implies a particular kind of solution, so it would at least make sense to discuss how changing the incentives might help.  I am no fan of "publish or perish", so I would have loved to read about some alternatives.</p>
]]></description><pubDate>Mon, 05 Oct 2026 01:17:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=49959679</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=49959679</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49959679</guid></item><item><title><![CDATA[New comment by atrettel in "Switching to electric stoves can dramatically cut indoor air pollution (2025)"]]></title><description><![CDATA[
<p>And induction gets hot immediately.  And it is easier to clean.  And it is less likely to cause fires.  It's just a better technology all around when compared to gas stoves.  The only issue I personally have with it is that it is not compatible with all cookware.</p>
]]></description><pubDate>Sun, 09 Aug 2026 15:16:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=49232203</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=49232203</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49232203</guid></item><item><title><![CDATA[New comment by atrettel in "Old and new apps, via modern coding agents"]]></title><description><![CDATA[
<p>I agree that visualization does not need to be perfect.  One issue is that "correct visual output" depends on your expertise level.  A visualization that is good to teach undergrads may be frustratingly bad to experts and researchers.  Standards like "looking right" depend on the audience's ability to spot nuances and how focused they are on the fine details.  If you want a visualization to work for the range of people from beginners to experts, you do need to focus a bit more on what it means for something to "look right" for multiple audiences, since the errors in the fine details may hinder a visualization's usefulness for more advanced audiences.</p>
]]></description><pubDate>Sun, 12 Jul 2026 16:48:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48882505</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=48882505</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48882505</guid></item><item><title><![CDATA[New comment by atrettel in "Rayfish, Peer-to-peer mesh VPN with no server to trust"]]></title><description><![CDATA[
<p>I get what you are saying, but my issue is not that it runs a script.  My issue is that curl piped into a shell does not verify that the download is from the original source before running the script.<p>A .deb file has many advantages over curl piped into a shell.  You can check the contents before installation, you can potentially verify the authenticity of the .deb file, and dpkg makes it possible to uninstall the package later since it keeps track of what it installed in an organized manner.<p>I won't say that I would feel safer with a .deb file.  That depends on the source, what the package does, and other factors.  Security is about tradeoffs.  I personally find the tradeoffs associated with a .deb file better than the tradeoffs of curl piped into a shell, but I myself do not install .deb files in the first place since I get almost everything that I need from package repositories.</p>
]]></description><pubDate>Sun, 05 Jul 2026 20:36:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=48797721</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=48797721</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48797721</guid></item><item><title><![CDATA[New comment by atrettel in "Rayfish, Peer-to-peer mesh VPN with no server to trust"]]></title><description><![CDATA[
<p>You raise a good point.  This is why people sign the checksums.  The signature confirms that authenticity of the checksums.  That somewhat moves the goalpost, though, since it then depends on where you got the source's public key, but it is still a more secure practice overall.  The advantage of having the public key is that you only need to get it once and you can check many downloads later.<p>It is also possible to have a signed file that you can use to check the authenticity of a downloaded file directly without having to use checksums.  Rust [1] does it that way for its other installation methods.<p>[1] <a href="https://forge.rust-lang.org/infra/other-installation-methods.html" rel="nofollow">https://forge.rust-lang.org/infra/other-installation-methods...</a></p>
]]></description><pubDate>Sun, 05 Jul 2026 20:20:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48797620</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=48797620</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48797620</guid></item><item><title><![CDATA[New comment by atrettel in "Rayfish, Peer-to-peer mesh VPN with no server to trust"]]></title><description><![CDATA[
<p>Curl does verify certificates [1].  That does confirm that your connection is to the right server, but it does not confirm that the files were unmodified.<p>SSL/TLS/HTTPS is more about encrypting the traffic and ensuring that there was no tampering with the file between you and the server.  The steps that I describe are more about ensuring that there was no tampering between you and the original source.  Those are two separate problems.  If you just rely on HTTPS, somebody can replace the file on the server with a modified version, and you would not know.<p>[1] <a href="https://curl.se/docs/sslcerts.html" rel="nofollow">https://curl.se/docs/sslcerts.html</a></p>
]]></description><pubDate>Sun, 05 Jul 2026 17:26:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48796031</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=48796031</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48796031</guid></item><item><title><![CDATA[New comment by atrettel in "Rayfish, Peer-to-peer mesh VPN with no server to trust"]]></title><description><![CDATA[
<p>The issue does not have to do with whether the download is a binary or source code.  It has to deal with verifying the integrity of the download before installation.<p>Curl piped into a shell command provides no means to verify that the download is uncorrupted and unmodified before running it.  For example, whenever I download software manually I check the downloaded file against the verified checksums to ensure that I have an unmodified version.  Ideally I check this with gpg --verify on the signed checksum file (against the source's public key).  This is a standard procedure for many organizations [1].  If you just download something and immediately run it without this step, you could potentially run a hacked version of the installation script.<p>[1] <a href="https://www.debian.org/CD/verify" rel="nofollow">https://www.debian.org/CD/verify</a></p>
]]></description><pubDate>Sun, 05 Jul 2026 17:07:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=48795844</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=48795844</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48795844</guid></item><item><title><![CDATA[New comment by atrettel in "Rayfish, Peer-to-peer mesh VPN with no server to trust"]]></title><description><![CDATA[
<p>I still have no comprehension of how curl piped into a shell command has become the default installation method for many projects (looking at you, Rust...).  It breaks my brain as to how potentially unsafe it is.</p>
]]></description><pubDate>Sun, 05 Jul 2026 16:38:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=48795588</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=48795588</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48795588</guid></item><item><title><![CDATA[New comment by atrettel in "Qian Xuesen: The missile genius America lost and China gained (2025)"]]></title><description><![CDATA[
<p>Von Braun was not "just lucky" to get captured by the US.  He and his immediate staff took active steps to get captured by the Americans [1].<p>[1] <a href="https://en.wikipedia.org/wiki/Wernher_von_Braun#Surrender_to_the_Americans" rel="nofollow">https://en.wikipedia.org/wiki/Wernher_von_Braun#Surrender_to...</a></p>
]]></description><pubDate>Wed, 20 May 2026 23:01:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48215490</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=48215490</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48215490</guid></item><item><title><![CDATA[New comment by atrettel in "Show HN: Red Squares – GitHub outages as contributions"]]></title><description><![CDATA[
<p>I imagine that it could be usage, but it also could be fewer people caring to report issues on the weekends too for that matter.</p>
]]></description><pubDate>Wed, 06 May 2026 14:28:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=48036699</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=48036699</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48036699</guid></item><item><title><![CDATA[New comment by atrettel in "The risk of AI isn't making us lazy, but making "lazy" look productive"]]></title><description><![CDATA[
<p>The issue, in my experience, is that there is a lot of productive work that does not look productive at first glance.  Long term work may not look productive for years until it suddenly is tremendously productive.  And there is a lot of quiet and often thankless maintenance work that goes on largely unnoticed that helps others do their jobs well.  Both have value despite superficially looking unproductive at times.  I'd argue that both look productive at long time scales but unproductive at short time scales.</p>
]]></description><pubDate>Sat, 28 Mar 2026 16:47:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=47556242</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=47556242</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47556242</guid></item><item><title><![CDATA[New comment by atrettel in "The math that explains why bell curves are everywhere"]]></title><description><![CDATA[
<p>I've often described this as a bias towards easily taught ("teachable") material over more realistic but difficult to teach material.  Sometimes teachers teach certain subjects because they fit the classroom well as a medium.  Some subjects are just hard to teach in hour-long lectures using whiteboards and slides.  They might be better suited to other media, especially self study, but that does not mean that teachers should ignore them.</p>
]]></description><pubDate>Thu, 19 Mar 2026 02:31:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47434125</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=47434125</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47434125</guid></item><item><title><![CDATA[New comment by atrettel in "Aging muscle stem cells shift from rapid repair to long-term survival"]]></title><description><![CDATA[
<p>Even if this line is true, and I am not saying that it is, running and other cardiovascular activities lower your resting heart rate [1].  So even if you believe that you only have a finite number of heart beats, running should in fact increase your lifespan.<p>[1] <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC6306777/" rel="nofollow">https://pmc.ncbi.nlm.nih.gov/articles/PMC6306777/</a></p>
]]></description><pubDate>Sun, 01 Feb 2026 20:49:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=46849239</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=46849239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46849239</guid></item><item><title><![CDATA[New comment by atrettel in "When AI 'builds a browser,' check the repo before believing the hype"]]></title><description><![CDATA[
<p>I completely agree.  The issue is that some misconceptions just never go away.  People were talking about how bad lines of code is as a metric in the 1980s [1].  Its persistence as a measure of productivity only shows to me that people feel some deep-seated need to measure developer productivity.  They would rather have a bad but readily-available metric than no measure of productivity.<p>[1] <a href="https://folklore.org/Negative_2000_Lines_Of_Code.html" rel="nofollow">https://folklore.org/Negative_2000_Lines_Of_Code.html</a></p>
]]></description><pubDate>Mon, 26 Jan 2026 19:59:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=46770708</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=46770708</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46770708</guid></item><item><title><![CDATA[New comment by atrettel in "Ask HN: Share your personal website"]]></title><description><![CDATA[
<p><a href="https://www.andrewtrettel.com/" rel="nofollow">https://www.andrewtrettel.com/</a></p>
]]></description><pubDate>Wed, 14 Jan 2026 23:54:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46625812</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=46625812</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46625812</guid></item><item><title><![CDATA[New comment by atrettel in "Ask HN: When has a "dumb" solution beaten a sophisticated one for you?"]]></title><description><![CDATA[
<p>I spent around 170 hours on this so far, with only 60% of that being coding.  The rest was mostly research or writing.</p>
]]></description><pubDate>Mon, 12 Jan 2026 15:31:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=46589782</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=46589782</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46589782</guid></item><item><title><![CDATA[New comment by atrettel in "Ask HN: When has a "dumb" solution beaten a sophisticated one for you?"]]></title><description><![CDATA[
<p>Before I started the project, I was already vaguely familiar with the notion of an inverted index [1].  That small bit of knowledge meant that I knew where to start looking for more information and saved me a ton of time.  Inverted indices form the bulk of many search engines, with the big unknown being how you implement it.  I just had to find an adequate data structure for my application.<p>To figure that out, I remember searching for articles on how to implement inverted indices.  Once I had a list of candidate strategies and data structures, I used Wikipedia supplemented by some textbooks like Skiena's [2] and occasionally some (somewhat outdated) information from NIST [3].  I found Wikipedia quite detailed for all of the data structures for this problem, so it was pretty easy to compare the tradeoffs between different design choices here.  I originally wanted to implement the inverted index as a hash table but decided to use a trie because it makes wildcard search easier to implement.<p>After I developed most of the backend, I looked for books on "information retrieval" in general.  I found a history book (Bourne and Hahn 2003) on the development of these kind of search systems [4].  I read some portions of this book, and that helped confirm many of the design choices that I made.  I actually was just doing what people traditionally did when they first built these systems in the 1960s and 1970s, albeit with more modern tools and much more information on hand.<p>The harder part of this project for me was writing the interpreter.  I actually found YouTube videos on how to write recursive descent parsers to be the most helpful there, particular this one [5].  Textbooks were too theoretical and not concrete enough, though Crafting Interpreters was sometimes helpful [6].<p>[1] <a href="https://en.wikipedia.org/wiki/Inverted_index" rel="nofollow">https://en.wikipedia.org/wiki/Inverted_index</a><p>[2] <a href="https://doi.org/10.1007/978-3-030-54256-6" rel="nofollow">https://doi.org/10.1007/978-3-030-54256-6</a><p>[3] <a href="https://xlinux.nist.gov/dads/" rel="nofollow">https://xlinux.nist.gov/dads/</a><p>[4] <a href="https://doi.org/10.7551/mitpress/3543.001.0001" rel="nofollow">https://doi.org/10.7551/mitpress/3543.001.0001</a><p>[5] <a href="https://www.youtube.com/watch?v=SToUyjAsaFk" rel="nofollow">https://www.youtube.com/watch?v=SToUyjAsaFk</a><p>[6] <a href="https://craftinginterpreters.com/" rel="nofollow">https://craftinginterpreters.com/</a></p>
]]></description><pubDate>Sun, 11 Jan 2026 19:17:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=46578852</link><dc:creator>atrettel</dc:creator><comments>https://news.ycombinator.com/item?id=46578852</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46578852</guid></item></channel></rss>