<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: brasetvik</title><link>https://news.ycombinator.com/user?id=brasetvik</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 26 Apr 2026 10:20:19 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=brasetvik" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by brasetvik in "Show HN: Tolaria – Open-source macOS app to manage Markdown knowledge bases"]]></title><description><![CDATA[
<p>Atomic looks quite interesting, and the "wiki synthesis" is particularly interesting:<p>I've been working on a suite of skills and a tiny MCP (also SQLite + SQLite-vec based) where the focus is on making it easy to produce "atoms" from quick brain dumps.<p>The chunking problem is "bypassed" by declaring each section a chunk, and having the LLMs rewrite drafts to sections that chunk well. That means lots of redundancy, and no "As explained above".<p>The intended reader isn't a human, but rather agents that generate human-friendlier prose, for different target audiences. By assuming the reader is an "expert", the idea is that it's much cheaper to mass-produce reviewed "atoms".<p>Itching to try that workflow with Atomic or Tolaria.</p>
]]></description><pubDate>Fri, 24 Apr 2026 13:59:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47890425</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=47890425</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47890425</guid></item><item><title><![CDATA[New comment by brasetvik in "The Internals of PostgreSQL"]]></title><description><![CDATA[
<p>Also recommend this free book: <a href="https://postgrespro.com/community/books/internals" rel="nofollow">https://postgrespro.com/community/books/internals</a></p>
]]></description><pubDate>Mon, 03 Mar 2025 14:43:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=43242210</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=43242210</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43242210</guid></item><item><title><![CDATA[New comment by brasetvik in "Postgres 17: Streaming I/O for sequential scans and ANALYZE"]]></title><description><![CDATA[
<p>pganalyze's blog is a goldmine of Postgres tidbits, a lot of which is recapped in their YouTube channel: <a href="https://www.youtube.com/@pganalyze6516" rel="nofollow">https://www.youtube.com/@pganalyze6516</a><p>I'm not at all affiliated, just a happy consumer of their material.</p>
]]></description><pubDate>Thu, 13 Jun 2024 17:10:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=40672115</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=40672115</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40672115</guid></item><item><title><![CDATA[Postgres Can Do That?]]></title><description><![CDATA[
<p>Article URL: <a href="https://medium.com/cognite/postgres-can-do-that-f221a8046e">https://medium.com/cognite/postgres-can-do-that-f221a8046e</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=39279121">https://news.ycombinator.com/item?id=39279121</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 06 Feb 2024 19:17:28 +0000</pubDate><link>https://medium.com/cognite/postgres-can-do-that-f221a8046e</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=39279121</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39279121</guid></item><item><title><![CDATA[New comment by brasetvik in "Transaction Isolation in Postgres"]]></title><description><![CDATA[
<p>Or from the other perspective of the trade-off: One caveat with MSSQL is that ALL concurrent transactions must pay the overhead if _some_ transactions need serializable guarantees?</p>
]]></description><pubDate>Mon, 18 Dec 2023 17:30:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=38685507</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=38685507</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38685507</guid></item><item><title><![CDATA[New comment by brasetvik in "Scrambling eggs for Spotify with Knuth's Fibonacci hashing"]]></title><description><![CDATA[
<p>A bit of birthday paradox too? :)</p>
]]></description><pubDate>Sat, 09 Dec 2023 19:25:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=38585000</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=38585000</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38585000</guid></item><item><title><![CDATA[New comment by brasetvik in "Show HN: Light implementation of Event Sourcing using PostgreSQL as event store"]]></title><description><![CDATA[
<p>Nice job, eugene-khyst. Looks very comprehensive from an initial skim.<p>I've worked on something in the same space, with a focus on reliable but flexible synchronization to many consumers, where logical replication gets impractical.<p>I have a mind to do a proper writeup, but at least there is code at <a href="https://github.com/cognitedata/txid-syncing">https://github.com/cognitedata/txid-syncing</a> (MIT-licensed) and a presentation at <a href="https://vimeo.com/747697698" rel="nofollow noreferrer">https://vimeo.com/747697698</a><p>The README mentions …<p>> A long-running transaction in the same database will effectively "pause" all event handlers.<p>… as the approach is based on the xmin-horizon.<p>My linked code works with involving the MVCC snapshot's xip_list as well, to avoid this gotcha.<p>Also, note that when doing a logical restore of a database, you're working with different physical txids, which complicates recovery. (So my approach relies on offsetting the txid and making sure the offset is properly maintained)</p>
]]></description><pubDate>Tue, 31 Oct 2023 16:44:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=38087645</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=38087645</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38087645</guid></item><item><title><![CDATA[New comment by brasetvik in "When URL parsers disagree"]]></title><description><![CDATA[
<p>This is also a pretty cool presentation on the topic: <a href="https://www.blackhat.com/docs/us-17/thursday/us-17-Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-Languages.pdf" rel="nofollow noreferrer">https://www.blackhat.com/docs/us-17/thursday/us-17-Tsai-A-Ne...</a></p>
]]></description><pubDate>Thu, 07 Sep 2023 13:32:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=37418678</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=37418678</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37418678</guid></item><item><title><![CDATA[New comment by brasetvik in "Lesser Known Postgres Features (2021)"]]></title><description><![CDATA[
<p>Some overlap, but my similar post mentions a few other things too, with a lot of links to sources to learn more :)<p><a href="https://medium.com/cognite/postgres-can-do-that-f221a8046e" rel="nofollow noreferrer">https://medium.com/cognite/postgres-can-do-that-f221a8046e</a></p>
]]></description><pubDate>Tue, 29 Aug 2023 17:22:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=37311033</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=37311033</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37311033</guid></item><item><title><![CDATA[New comment by brasetvik in "PyPI new user and new project registrations temporarily suspended"]]></title><description><![CDATA[
<p>Reading that thread it doesn't seem like the official image shipped with any cryptominer at any point, and that it's more likely that the container got compromised in other ways. (A compromised [superuser connection to Postgres can execute shell code](<a href="https://medium.com/r3d-buck3t/command-execution-with-postgresql-copy-command-a79aef9c2767" rel="nofollow">https://medium.com/r3d-buck3t/command-execution-with-postgre...</a>), so that seems more likely than the image shipping with a miner)</p>
]]></description><pubDate>Sat, 20 May 2023 21:42:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=36015882</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=36015882</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36015882</guid></item><item><title><![CDATA[New comment by brasetvik in "SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a Postgres Queue"]]></title><description><![CDATA[
<p>Advisory locks are purely in-memory locks, while row locks might ultimately hit disk.<p>The memory space reserved for locks is finite, so if you were to have workers claim too many queue items simultaneously, you might get "out of memory for locks" errors all over the place.<p>> Both advisory locks and regular locks are stored in a shared memory pool whose size is defined by the configuration variables max_locks_per_transaction and max_connections. Care must be taken not to exhaust this memory or the server will be unable to grant any locks at all. This imposes an upper limit on the number of advisory locks grantable by the server, typically in the tens to hundreds of thousands depending on how the server is configured.<p>– <a href="https://www.postgresql.org/docs/current/explicit-locking.html" rel="nofollow">https://www.postgresql.org/docs/current/explicit-locking.htm...</a></p>
]]></description><pubDate>Tue, 11 Apr 2023 17:27:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=35528269</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=35528269</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35528269</guid></item><item><title><![CDATA[New comment by brasetvik in "Wat [video] (2012)"]]></title><description><![CDATA[
<p>It’s the wat I’ve seen have the most security impact.<p>Deep merging two JSON parsed objects is innocuous enough everywhere else that most don’t think twice about doing it. Lots of widely used libraries that provide deep merging utilities have had security vulnerabilities because of this.<p>I guess you could argue that the wat is that objects coming out of JSON.parse don’t have null as its prototype.</p>
]]></description><pubDate>Thu, 30 Mar 2023 00:22:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=35365957</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=35365957</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35365957</guid></item><item><title><![CDATA[New comment by brasetvik in "Wat [video] (2012)"]]></title><description><![CDATA[
<p><p><pre><code>  >> JSON.parse("{}")["__proto__"]["A"] = "T"
  "T"
  >> W = {}
  Object {  }
  >> W.A
  "T"</code></pre></p>
]]></description><pubDate>Wed, 29 Mar 2023 23:04:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=35365153</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=35365153</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35365153</guid></item><item><title><![CDATA[PostgreSQL 14 Internals]]></title><description><![CDATA[
<p>Article URL: <a href="https://postgrespro.com/blog/pgsql/5969985">https://postgrespro.com/blog/pgsql/5969985</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=35141155">https://news.ycombinator.com/item?id=35141155</a></p>
<p>Points: 174</p>
<p># Comments: 24</p>
]]></description><pubDate>Mon, 13 Mar 2023 19:29:37 +0000</pubDate><link>https://postgrespro.com/blog/pgsql/5969985</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=35141155</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35141155</guid></item><item><title><![CDATA[New comment by brasetvik in "ReDoS “vulnerabilities” and misaligned incentives"]]></title><description><![CDATA[
<p>I’d agree that ReDoS is a repeat offender in having overblown severity in vulnerability reports, and prototype pollution reports have contributed to a fair bit of noise when popping up in dev-tools and such, but prototype pollution can be quite significant.<p>Java has its “gadget chain” class of vulnerabilities, where the presence of certain jars can turn object deserialisation into RCEs. I’d argue that Javascript has “pollution gadgets”.<p>Some years ago I struggled making lodash – which almost any non-trivially sized Javascript project has at least a transitive dependency on (possibly multiple versions of) – fix its “gadget” in its template function. It’s since been patched, and the conversation unfortunately deleted - <a href="https://github.com/lodash/lodash/pull/4518">https://github.com/lodash/lodash/pull/4518</a><p>Here’s two real world examples of turning a prototype pollution into an RCE: <a href="https://hackerone.com/reports/852613" rel="nofollow">https://hackerone.com/reports/852613</a> and <a href="https://hackerone.com/reports/861744" rel="nofollow">https://hackerone.com/reports/861744</a><p>(If you’re unfamiliar with prototype pollution: This is possibly a security bug in Javascript: `obj[a][b] = c` if a user controls a, b and c.)</p>
]]></description><pubDate>Thu, 29 Dec 2022 19:22:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=34176706</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=34176706</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34176706</guid></item><item><title><![CDATA[New comment by brasetvik in "Postgres Tips and Tricks"]]></title><description><![CDATA[
<p>I made a similar resource (and a talk) with different kinds of tips, that also has a lot of links to learning more about the different topics: <a href="https://medium.com/cognite/postgres-can-do-that-f221a8046e" rel="nofollow">https://medium.com/cognite/postgres-can-do-that-f221a8046e</a></p>
]]></description><pubDate>Tue, 06 Dec 2022 21:29:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=33887330</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=33887330</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33887330</guid></item><item><title><![CDATA[New comment by brasetvik in "Awesome Node-Based UIs"]]></title><description><![CDATA[
<p>I think Blender is worth an honerable mention. :)<p>Geometry nodes, part of «everything Nodes», is pretty interesting: <a href="https://youtu.be/kMDB7c0ZiKA" rel="nofollow">https://youtu.be/kMDB7c0ZiKA</a></p>
]]></description><pubDate>Thu, 17 Nov 2022 15:44:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=33640554</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=33640554</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33640554</guid></item><item><title><![CDATA[New comment by brasetvik in "Ask HN: What piece of code/codebase blew your mind when you saw it?"]]></title><description><![CDATA[
<p>It has long since been cleaned up, but the history of Lucene's Levenshtein automatons are a fascinating mix of pragmatism, hackery, grit, and engineering. Using a Python library to generate crazy-looking Java code, which you can't (yet) understand, but whose tests pass and benchmarks look amazing.<p>- <a href="https://blog.mikemccandless.com/2011/03/lucenes-fuzzyquery-is-100-times-faster.html" rel="nofollow">https://blog.mikemccandless.com/2011/03/lucenes-fuzzyquery-i...</a>
- <a href="https://www.youtube.com/watch?v=4AbcvHKX8Ow" rel="nofollow">https://www.youtube.com/watch?v=4AbcvHKX8Ow</a><p>(Levenshtein distances are used as a measure between fuzzy/misspelled matches, and was ironically misspelled initially - <a href="https://lucene.apache.org/core/7_4_0/suggest/org/apache/lucene/search/spell/LevensteinDistance.html" rel="nofollow">https://lucene.apache.org/core/7_4_0/suggest/org/apache/luce...</a>)</p>
]]></description><pubDate>Mon, 31 Oct 2022 23:10:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=33414647</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=33414647</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33414647</guid></item><item><title><![CDATA[New comment by brasetvik in "$100M ARR in 18 months: Wiz becomes the fastest-growing software company ever"]]></title><description><![CDATA[
<p>I don't know anything about their product, but their security team has been publishing high quality research, e.g. <a href="https://www.wiz.io/blog/the-cloud-has-an-isolation-problem-postgresql-vulnerabilities" rel="nofollow">https://www.wiz.io/blog/the-cloud-has-an-isolation-problem-p...</a> and <a href="https://www.wiz.io/blog/chaosdb-explained-azures-cosmos-db-vulnerability-walkthrough" rel="nofollow">https://www.wiz.io/blog/chaosdb-explained-azures-cosmos-db-v...</a></p>
]]></description><pubDate>Mon, 15 Aug 2022 12:30:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=32468825</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=32468825</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32468825</guid></item><item><title><![CDATA[New comment by brasetvik in "Git In Two Minutes (updated after 8 years)"]]></title><description><![CDATA[
<p>It's not a single digit minute read, but to me "Git from the Bottom Up" was what really made me understand git a long time ago.<p><a href="https://jwiegley.github.io/git-from-the-bottom-up/" rel="nofollow">https://jwiegley.github.io/git-from-the-bottom-up/</a><p>git's the kind of tool where understanding how your commands operate on the underlying data structures will probably make it a lot easier to use efficiently. (And they're beautifully simple despite how powerful and flexible they are)<p>As a tool you might be using for hours per week for a few more decades, it's worth the investment going beyond the "in x minutes". I tend to provide both to juniors.<p>Obligatory: <a href="https://xkcd.com/1597/" rel="nofollow">https://xkcd.com/1597/</a></p>
]]></description><pubDate>Sat, 06 Aug 2022 23:07:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=32372412</link><dc:creator>brasetvik</dc:creator><comments>https://news.ycombinator.com/item?id=32372412</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32372412</guid></item></channel></rss>