<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: ebolyen</title><link>https://news.ycombinator.com/user?id=ebolyen</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 20 May 2026 06:18:41 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=ebolyen" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by ebolyen in "Make ZIP files smaller with ZIP Shrinker"]]></title><description><![CDATA[
<p>I'm not aware of any, but it wouldn't be insane to build a seekable deflate implementation by defining offsets in a zip comment. This would leave the zip file backwards compatible to usual decompression while allowing internal seeking within an individual file if the decompressor was aware of this index.</p>
]]></description><pubDate>Tue, 19 May 2026 12:31:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48192457</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=48192457</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48192457</guid></item><item><title><![CDATA[New comment by ebolyen in "Make zip files smaller with zip shrinker"]]></title><description><![CDATA[
<p>Seems we need a .zipkeep file then.<p>Just kidding, I don't see how the overhead of the directory entry is even remotely enough to warrant removal. Most of the magic can be left to efficient DEFLATE compatible blocks and removing entries not in the central directory in the first place (ZIP files can support concatenation of new data so long as you re-write the central directory at the end of the file).</p>
]]></description><pubDate>Tue, 19 May 2026 12:28:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48192429</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=48192429</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48192429</guid></item><item><title><![CDATA[New comment by ebolyen in "A web page that shows you everything the browser told it without asking"]]></title><description><![CDATA[
<p>There's really a lot more you can look at here. Lot's a prior art on super-cookies and fingerprinting:<p><a href="https://coveryourtracks.eff.org/" rel="nofollow">https://coveryourtracks.eff.org/</a><p><a href="https://amiunique.org/" rel="nofollow">https://amiunique.org/</a></p>
]]></description><pubDate>Fri, 08 May 2026 15:02:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=48064215</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=48064215</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48064215</guid></item><item><title><![CDATA[New comment by ebolyen in "Show HN: X86CSS – An x86 CPU emulator written in CSS"]]></title><description><![CDATA[
<p>The moxy of this is inspiring.<p>I'm curious to know what you would rate as the most important features to make this work? It seems like calc+if do a lot of the heavy lifting, but the new function syntax is what makes instruction lookup tractable.</p>
]]></description><pubDate>Tue, 24 Feb 2026 11:10:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47135656</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=47135656</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47135656</guid></item><item><title><![CDATA[New comment by ebolyen in "Genomic analyses of hair from Ludwig van Beethoven (2023)"]]></title><description><![CDATA[
<p>It does seem like the state of the art differs from popular understanding. Not only is mitochondrial DNA straight forward (although not especially useful for forensics as it is maternal), but with specialized extraction it is still possible to recover nuclear DNA, just exceedingly painful to do so.<p><a href="https://www.sciencedirect.com/science/article/pii/B9780323991445000214" rel="nofollow">https://www.sciencedirect.com/science/article/pii/B978032399...</a></p>
]]></description><pubDate>Tue, 30 Sep 2025 20:17:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=45430695</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=45430695</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45430695</guid></item><item><title><![CDATA[New comment by ebolyen in "Oral Microbes Linked to 3-Fold Increased Risk of Pancreatic Cancer"]]></title><description><![CDATA[
<p>It is the initial purpose of a microbiome to be at least commensal, in that it is usually prohibitively expensive to maintain a sterile environment so the odds of a true pathogen colonizing a system is greatly reduced if you simply have a crowded space of neutral participants.<p>Once that's true it does seem there's a lot of host and microbiome interactions we've only begun to explore, but it shouldn't be surprising that co-evolution of the microbiome and host begins to take over as soon as you have one. One great example is short-chain-fatty-acid (SCFA) producing bacteria in the human gut. [1] These seem to be essential, and if there was a general takeaway to improve health, it would be to eat your roughage so they can do their job.<p>This is also why high alpha-diversity (community richness in particular) is such a dead-ringer for healthy vs diseased states. And frustratingly, is often exactly where the story ends for a lot of observational studies.<p>Also, in case you are curious, artificially sterile mice (gnotobiotic mice) tend to act differently than other mice, which is pretty odd to be honest, and why the gut-brain axis is a plausible mechanism to research further. [2]<p>[1]: <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC10180739/" rel="nofollow">https://pmc.ncbi.nlm.nih.gov/articles/PMC10180739/</a>
[2]: <a href="https://www.sciencedirect.com/science/article/pii/S0889159125003198" rel="nofollow">https://www.sciencedirect.com/science/article/pii/S088915912...</a></p>
]]></description><pubDate>Fri, 26 Sep 2025 22:38:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=45391736</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=45391736</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45391736</guid></item><item><title><![CDATA[New comment by ebolyen in "Removing newlines in FASTA file increases ZSTD compression ratio by 10x"]]></title><description><![CDATA[
<p>No, because alignment, in the general case, is O(n^2). It is ironically one of the more tractable and well solved problems in bioinformatics.</p>
]]></description><pubDate>Mon, 15 Sep 2025 17:38:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45252618</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=45252618</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45252618</guid></item><item><title><![CDATA[New comment by ebolyen in "“The Mind in the Wheel” lays out a new foundation for the science of mind"]]></title><description><![CDATA[
<p>If anyone is interested in a more formal descriptions of these control-loops, with more testable mechanisms, check out the concept of reward-taxis. Here are two neat papers that I think are more closely related than might initially appear:<p>"Is Human Behavior Just Running and Tumbling?": <a href="https://osf.io/preprints/psyarxiv/wzvn9_v1" rel="nofollow">https://osf.io/preprints/psyarxiv/wzvn9_v1</a>
(This used to be a blog post, but its down, so here's a essentially identical preprint.)
A scale-invariant control-loop such as chemotaxis may still be the root algorithm we use, just adjusted for a dopamine gradient mediated by the prefrontal cortex.<p>"Give-up-itis: Neuropathology of extremis": <a href="https://www.sciencedirect.com/science/article/abs/pii/S0306987718306145" rel="nofollow">https://www.sciencedirect.com/science/article/abs/pii/S03069...</a>
What happens when that dopamine gradient shuts down?</p>
]]></description><pubDate>Thu, 15 May 2025 20:44:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=43999158</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=43999158</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43999158</guid></item><item><title><![CDATA[New comment by ebolyen in "A Tiny Boltzmann Machine"]]></title><description><![CDATA[
<p>Not an expert, but I have a bit of formal training on Bayesian stuff which handles similar problems.<p>Usually Gibbs is used when there's no directly straight-forward gradient (or when you are interested in reproducing the distribution itself, rather than a point estimate), but you do have some marginal/conditional likelihoods which are simple to sample from.<p>Since each visible node depends on each hidden node and each hidden node effects all visible nodes, the gradient ends up being very messy, so its much simpler to use Gibbs sampling to adjust based on marginal likelihoods.</p>
]]></description><pubDate>Thu, 15 May 2025 19:23:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=43998393</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=43998393</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43998393</guid></item><item><title><![CDATA[New comment by ebolyen in "How to Average in Prolog (2017)"]]></title><description><![CDATA[
<p>It's been a long time since I took a class like this, but I definitely had a similar experience to the author.<p>Ideas like fold and map where _never_ mentioned in lisp (to exaggerate, every function had to have the recursive implementation with 5 state variables and then a simpler form for the initial call), at no point did higher-order functions or closures make an appearance while rotating a list by 1 and then 2 positions.<p>The treatment of Prolog was somehow worse. Often the code only made any sense once you reversed what the lecturer was saying, realizing the arrow meant "X given Y" not "X implies Y", at which point, if you could imagine the variables ran "backwards" (unification was not explained) the outcome might start to seem _possible_. I expect the lecturer was as baffled by their presentation as we were.<p>In general, it left the rest of the class believing quite strongly that languages other than Java were impossible to use and generally a bad move. I may have been relatively bitter in the course evaluation by the end.</p>
]]></description><pubDate>Wed, 07 May 2025 21:52:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=43920919</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=43920919</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43920919</guid></item><item><title><![CDATA[New comment by ebolyen in "Conda: A package management disaster?"]]></title><description><![CDATA[
<p>> I wish you luck with tracking down versions of software used when you're writing papers... especially if you're using multiple conda environments.<p>How would you do this otherwise? I find `conda list` to be terribly helpful.<p>As a tool developer for bioinformaticians, I can't imagine trying to work with OS package managers, so that would leave vendoring multiple languages and libraries in a home-grown scheme slightly worse and more brittle than conda.<p>I also don't think it's realistic to imagine that any single language (and thus language-specific build tools or pkg manager) is sufficient. Since we're still using fortran deep in the guts of many higher level libraries (recent tensor stuff is disrupting this a bit, but it's not like openBLAS isn't still there as a default backend).</p>
]]></description><pubDate>Fri, 20 Dec 2024 21:10:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=42475070</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=42475070</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42475070</guid></item><item><title><![CDATA[New comment by ebolyen in "World’s oldest tree? Genetic analysis traces evolution of iconic Pando forest"]]></title><description><![CDATA[
<p>This is true of corals, and they are often considered "colonial" organisms instead of an individual.<p>That said, I don't think anyone who studies biology is particularly concerned with hard-line definitions, as nature tends to eschew them every chance it has.<p>I think Pando and corals being considered "modular bodyplans/habits" is perhaps a more useful concept than individual or clone.</p>
]]></description><pubDate>Tue, 05 Nov 2024 23:20:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=42056065</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=42056065</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42056065</guid></item><item><title><![CDATA[New comment by ebolyen in "Don't DRY Your Code Prematurely"]]></title><description><![CDATA[
<p>I see, so it's a procedural language that is well understood by those who fly (not just some semi-structured data or ontology). This is a great example of the advantage of domain experience. Thanks for sharing!</p>
]]></description><pubDate>Thu, 30 May 2024 21:44:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=40529060</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=40529060</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40529060</guid></item><item><title><![CDATA[New comment by ebolyen in "Don't DRY Your Code Prematurely"]]></title><description><![CDATA[
<p>I like that approach.</p>
]]></description><pubDate>Thu, 30 May 2024 20:50:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=40528568</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=40528568</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40528568</guid></item><item><title><![CDATA[New comment by ebolyen in "Don't DRY Your Code Prematurely"]]></title><description><![CDATA[
<p>I don't know, that sounds like a complex kind of ingest which could be arbitrarily subtle and diverge over time for legal and bureaucratic reasons.<p>I would kind of appreciate having two formats, since what are the odds they would change together? While there may never be a 3rd format, a DRY importer would imply that the source generating the data is also DRY.</p>
]]></description><pubDate>Thu, 30 May 2024 20:38:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=40528380</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=40528380</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40528380</guid></item><item><title><![CDATA[New comment by ebolyen in "TypeScript: Branded Types"]]></title><description><![CDATA[
<p>Branding works on primitive types as well, which is I think the most interesting use case.<p>I would also agree that it's harder to confuse complex types as any single instance of a type is unlikely to overlap once you have a few fields.</p>
]]></description><pubDate>Wed, 24 Apr 2024 19:18:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=40148399</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=40148399</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40148399</guid></item><item><title><![CDATA[New comment by ebolyen in "Distributed Authorization"]]></title><description><![CDATA[
<p>Slightly tangential, but is there any hope of seeing Polar return as a (maintained) open source system?<p>I absolutely love the concept of using a logic language for authorization, and I think Polar's aesthetic qualities make it significantly more approachable for most people (over Prolog/Datalog).<p>But even without the authorization problem, Polar is just... really nice looking. It would be awesome to be able to use it as its own language outright.</p>
]]></description><pubDate>Tue, 16 Apr 2024 22:11:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=40057880</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=40057880</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40057880</guid></item><item><title><![CDATA[New comment by ebolyen in "Double-entry bookkeeping as a directed graph"]]></title><description><![CDATA[
<p>> You don't want negative numbers because that would require the description of a category to change based on whether it is positive or negative<p>That's actually already how it works, the kind of inverse you use depends on if the account is credit-normal or debit-normal. You end up in the same place.<p>>  Imagine showing negative revenue. That would be mostly useless.<p>Revenue is already credit instead of debit, which if you were consistent in using negative numbers, a negative revenue be completely correct (so you would want to sweat if revenue was a positive number). It's weird, but it lets your cash on hand be a positive number, which is just a necessary consequence of the system.<p>> Imagine how misleading it could be to show $0 in expenses last month, when in reality, you had $100 in expenses, but you subtracted $100 out because you returned some big purchase from last month and got a refund.<p>Wouldn't that be accurate? This would be a debit of 100 and a credit of 100 which nets a balance of 0. But individually you would see the transactions and could sum the credits and debits if you were so inclined.<p>Alternatively, contra-accounts exist if reporting these individually is material for some reason.</p>
]]></description><pubDate>Wed, 10 Apr 2024 19:02:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=39994492</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=39994492</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39994492</guid></item><item><title><![CDATA[New comment by ebolyen in "Double-entry bookkeeping as a directed graph"]]></title><description><![CDATA[
<p>I see a lot of consternation about credits and debits and the nomenclature.<p>Something that makes this simpler to think about from a modern perspective is that accounting is older than the popular use of negative numbers. By a lot. If we were to invent accounting today, we'd probably use positive and negative accounts instead of debit and credit accounts.<p>Algebra over addition is second nature to us at this point, but it would not have been obvious to the average merchant in 1604, and even then, negative numbers were viewed quite poorly.<p>What is important is that there are always two sides to a transaction and that they are inverses of each other. This is all a credit and debit are. Inverse operations on a number.<p>Therefore, we can make a rule that a transaction balances when credit = debit. (aka we didn't invent money as debit + credit = 0, but remember that we didn't like negative numbers when this system was invented, so this last fact is more of a happy coincidence that happens to ALWAYS WORK, for some reason, rather than the goal).<p>What is then reasonable is to consider literal cash on hand to be the most positive (debit) kind of account there can be, and work backwards from there. If I want to handle an expense, then I need to invert the cash account somehow (credit it) and therefore have the opposite kind of entry for where the money went (debit it). So an expense account must have a generally debit (or positive) balance.<p>But where did the cash come from? Well that comes from income and I want the cash to be debit-ey so the place it came from must be credit-ey otherwise I risk writing a transaction that doesn't balance (equal zero). So then income accounts must generally be credit accounts rather than debit account (aka they hold a typically negative balance or are "credit normal").<p>What is really killer about this system, is it just so happens that every mundane transaction you could ever write will end up as balanced transactions and each of these possible transaction accounts end up having the same usual balance of credit or debit (negative or positive). I think that is just so elegant.</p>
]]></description><pubDate>Wed, 10 Apr 2024 18:46:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=39994288</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=39994288</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39994288</guid></item><item><title><![CDATA[New comment by ebolyen in "What even is a JSON number?"]]></title><description><![CDATA[
<p>Relatedly, what about integers like 9007199254740995. Is that a legal integer since it rounds to 9007199254740996?<p>It does seem unclear what it means to exceed precision (given rounding is such an expected part of the way we use these numbers). Magnitude feels easier as at least you definitely run out of bits in the exponent.</p>
]]></description><pubDate>Mon, 01 Apr 2024 20:45:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=39899096</link><dc:creator>ebolyen</dc:creator><comments>https://news.ycombinator.com/item?id=39899096</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39899096</guid></item></channel></rss>