<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: bfgeek</title><link>https://news.ycombinator.com/user?id=bfgeek</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 29 Sep 2026 12:06:26 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=bfgeek" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by bfgeek in "Debian votes to allow "responsible use of generative AI""]]></title><description><![CDATA[
<p>The issue that open source projects are facing at the moment is that it takes significantly less effort to submit a patch for review.<p>A lot of developers who are submitting these AI patches don't necessarily understand the patch, so the onus is on the reviewer/code-owner.<p>The reviewers are getting swamped (some reviewers are receiving 100s or patches per month). If feedback is provided at lot of the time the patch author will just copy paste from an LLM, so the reviewer is essentially just coding with an LLM with more steps.<p>Prior to LLMs reviewing code was a mentorship experience, the patch author would likely learn a bunch afterwards. Now less so.<p>As a result a lot of projects are closing to external contributors.<p>I'm not sure what the answer is, LLM are great at speeding up coding/understanding/etc, but the valuable/expensive piece of work has shifted to reviewing.</p>
]]></description><pubDate>Sat, 29 Aug 2026 16:53:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=49491403</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=49491403</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49491403</guid></item><item><title><![CDATA[New comment by bfgeek in "Meta’s renewed commitment to jemalloc"]]></title><description><![CDATA[
<p>One has to wonder if this due to the global memory shortage. ("Oh - changing our memory allocator to be more efficient will yield $XXM dollar savings over the next year").</p>
]]></description><pubDate>Mon, 16 Mar 2026 18:43:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47403015</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=47403015</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47403015</guid></item><item><title><![CDATA[New comment by bfgeek in "Overlapping Markup"]]></title><description><![CDATA[
<p>HTML parsing supports some of this, e.g:<p><pre><code>  text <b>bold <i>bold-italic</b> italic</i></code></pre></p>
]]></description><pubDate>Sun, 18 Jan 2026 19:55:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=46671522</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=46671522</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46671522</guid></item><item><title><![CDATA[New comment by bfgeek in "Text rendering hates you (2019)"]]></title><description><![CDATA[
<p>We found it was roughly on par performance wise for simple text (latin), and faster for more complex scripts (thai, hindi, etc). It also is more correct when there is kerning across spaces, hyphenation, etc.<p>For the word-by-word approach to be performant you need a cache for each word you encounter. The shape-by-paragraph approach we found was faster for cold-start (e.g. the first time you visit a webpage). But this is also more difficult to show in standard benchmarks as benchmarks typically reuse the same renderer process.</p>
]]></description><pubDate>Sun, 28 Dec 2025 03:08:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=46408007</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=46408007</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46408007</guid></item><item><title><![CDATA[New comment by bfgeek in "Text rendering hates you (2019)"]]></title><description><![CDATA[
<p>Blink's (Chromium) text layout engine works the following way.<p>1. Layout the entire paragraph of text as a single line.<p>2. If this doesn't fit into the available width, bisect to the nearest line-break opportunity which might fit.<p>3. Reshape the text up until this line-break opportunity.<p>4. If it fits great! If not goto 2.<p>This converges as it always steps backwards, and avoids the contradictory situations.<p>Harfbuzz also provides points along the section of text which is safe to reuse, so reshaping typically involes only a small portion of text at the end of the line, if any.
<a href="https://github.com/harfbuzz/harfbuzz/issues/224" rel="nofollow">https://github.com/harfbuzz/harfbuzz/issues/224</a><p>This approach is different to how many text layout engines approach this problem e.g. by adding "one word at a time" to the line, and checking at each stage if it fits.</p>
]]></description><pubDate>Sun, 28 Dec 2025 01:35:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=46407514</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=46407514</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46407514</guid></item><item><title><![CDATA[New comment by bfgeek in "CSS Grid Lanes"]]></title><description><![CDATA[
<p>You can exploit flexbox for this type of layout:
<a href="https://bfgeek.com/flexbox-image-gallery/" rel="nofollow">https://bfgeek.com/flexbox-image-gallery/</a></p>
]]></description><pubDate>Sat, 20 Dec 2025 17:38:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46337916</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=46337916</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46337916</guid></item><item><title><![CDATA[New comment by bfgeek in "Passwords and Power Drills"]]></title><description><![CDATA[
<p>> "At this point, the engineers in Australia decided that a brute-force approach to their safe problem was warranted and applied a power drill to the task. An hour later, the safe was open—but even the newly retrieved cards triggered the same error message."<p>What happened here (from what I recall) was far funnier than this does it credit.<p>The SREs first attempted to use a mallet (hammer) on the safe (which they had to first buy from the local hardware store - don't worry  it got expensed later), then after multiple rounds of "persuasion" they eventually called in a professional  (aka. a locksmith) who used a drill+crowbar to finally liberate the keycard.<p>The postmortem had fun step by step photos of the safe in various stages of disassembly.</p>
]]></description><pubDate>Sat, 25 Oct 2025 21:16:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=45707040</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=45707040</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45707040</guid></item><item><title><![CDATA[New comment by bfgeek in "Modern Font Stacks"]]></title><description><![CDATA[
<p>One thing to keep in mind when developing these large lists of fonts is that they are generally terrible for performance if the appropriate glyphs for what you are trying to display aren't present in the first font (and the font is available - this isn't an issue if the font isn't available at all).<p>This is generally more of an issue with non-latin scripts (or when emoji is present for example), and developers adding a font which doesn't have glyph coverage - or sparse glyph coverage.<p>Chrome/Firefox devtools both have a section "Rendered Fonts"/"Used Fonts" which show which gylphs are used from which font.<p>Additionally if you are showing non-latin, make sure to language tag your markup:
<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/lang" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...</a><p>`font-family: sans-serif` if not language tagged with incur a similar fallback perfromance penalty (the browser will have to change the "english" sans-serif font, find no glyphs, then use the "other-lang" sans-serfic font).</p>
]]></description><pubDate>Fri, 03 Oct 2025 18:03:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=45465850</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=45465850</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45465850</guid></item><item><title><![CDATA[New comment by bfgeek in "Liquid Glass in the Browser: Refraction with CSS and SVG"]]></title><description><![CDATA[
<p>> which are more powerful and is out-of-spec<p>These are in the specification here:
<a href="https://drafts.fxtf.org/filter-effects-1/#typedef-filter-url" rel="nofollow">https://drafts.fxtf.org/filter-effects-1/#typedef-filter-url</a><p>And used by backdrop-filter here:
<a href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty" rel="nofollow">https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProp...</a></p>
]]></description><pubDate>Tue, 09 Sep 2025 13:41:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=45181787</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=45181787</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45181787</guid></item><item><title><![CDATA[New comment by bfgeek in "It is worth it to buy the fast CPU"]]></title><description><![CDATA[
<p>My biggest pet peeve is designers using high end apple displays.<p>You've average consumer is using a ultra cheap LCD panel that has no where near the contrast ratio that you are designing your mocks on, all of your subtle tints get saturated out.<p>This is similar to good audio engineers back in the day wiring up a dirt cheap car speaker to mix albums.</p>
]]></description><pubDate>Sun, 24 Aug 2025 19:23:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=45006904</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=45006904</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45006904</guid></item><item><title><![CDATA[New comment by bfgeek in "Don't animate height"]]></title><description><![CDATA[
<p>This likely more effective quite a few years ago, but not particularly important today.<p>Changing height typically only shifts elements, and browser engines typically wont relayout them due to position changes.<p>"overflow: clip" is also much more lightweight than "overflow: hidden"</p>
]]></description><pubDate>Tue, 22 Jul 2025 21:42:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=44653329</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=44653329</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44653329</guid></item><item><title><![CDATA[New comment by bfgeek in "Minding the gaps: A new way to draw separators in CSS"]]></title><description><![CDATA[
<p>Part of the design constraint here is to reuse the existing properties that exist for multi-column layout which have existed for a long time - <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/column-rule" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/CSS/column-rule</a><p>This proposal extends this mechanism to be more general.</p>
]]></description><pubDate>Thu, 20 Mar 2025 14:06:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=43423681</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=43423681</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43423681</guid></item><item><title><![CDATA[New comment by bfgeek in "Styling an HTML dialog modal to take the full height of the viewport"]]></title><description><![CDATA[
<p>Yeah - this was arguably mostly my fault (sorry!).<p>There's quite a bit of history here, but the abbreviated version is that the dialog element was originally added as a replacement for window.alert(), and there were a libraries polyfilling dialog and being surprisingly widely used.<p>The mechanism which dialog was originally positioned was relatively complex, and slightly hacky (magic values for the insets).<p>Changing the behaviour basically meant that we had to add "overflow:auto", and some form of "max-height"/"max-width" to ensure that the content within the dialog was actually reachable.<p>The better solution to this was to add "max-height:stretch", "max-width:stretch".
You can see the discussion for this here:
<a href="https://github.com/whatwg/html/pull/5936#discussion_r513642207" rel="nofollow">https://github.com/whatwg/html/pull/5936#discussion_r5136422...</a><p>The problem is that no browser had (and still has) shipped the "stretch" keyword. (Blink likely will "soon" - <a href="https://groups.google.com/a/chromium.org/g/blink-dev/c/SiZ2nDt3B9E/m/kP_rKOaDAgAJ" rel="nofollow">https://groups.google.com/a/chromium.org/g/blink-dev/c/SiZ2n...</a> )<p>However this was pushed back against as this had to go in a specification - and nobody implemented it ("-webit-fill-available" would have been an acceptable substitute in Blink but other browsers didn't have this working the same yet).<p>Hence the calc() variant. (Primarily because of "box-sizing:content-box" being the default, and pre-existing border/padding styles on dialog that we didn't want to touch).<p>One thing to keep in mind is that any changes that changes web behaviour is under some time pressure. If you leave something too long, sites will start relying on the previous behaviour - so it would have been arguably worse not to have done anything.<p>It may still be possible to change to the stretch variant, however likely some sites are relying on the extra "space" around dialogs now, and would be mad if we changed it again. This might still be a net-positive however given how much this confuses web-developers (future looking cost), vs. the pain (cost) of breaking existing sites.<p>Sorry!</p>
]]></description><pubDate>Sun, 16 Mar 2025 16:15:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=43380129</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=43380129</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43380129</guid></item><item><title><![CDATA[New comment by bfgeek in "Dust from car brakes more harmful than exhaust, study finds"]]></title><description><![CDATA[
<p>The point I was after to make is that you can't assume that road wear scales the same way as tyre wear (I was assuming same material fwiw, just different loads). They are being worn under very different modes/scenarios.</p>
]]></description><pubDate>Sat, 15 Feb 2025 18:47:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=43061030</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=43061030</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43061030</guid></item><item><title><![CDATA[New comment by bfgeek in "Dust from car brakes more harmful than exhaust, study finds"]]></title><description><![CDATA[
<p>> I think as a starting point, I would expect that tire wear should remain roughly in proportion to road wear<p>IMO this would be a suspect assumption to make w/o data to back it up. You've got two dissimilar materials interacting (in very different modes). E.g. rolling a metal ball bearing on a wood surface would obviously cause the wood to degrade far more than the ball bearing, (and even a wooden ball rolling on a wood surface would wear substantially less due to the mode difference).<p>(If I had to guess the road has a higher wear as the surface has a tensile stress around the contact patch of the tyre, causing most of the damage, but this is just armchair engineering at this stage).</p>
]]></description><pubDate>Sat, 15 Feb 2025 17:20:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=43060231</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=43060231</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43060231</guid></item><item><title><![CDATA[New comment by bfgeek in "Dust from car brakes more harmful than exhaust, study finds"]]></title><description><![CDATA[
<p>To add to this, (from what I remember reading the study at the time) it was basically racing a car around a track (think lots of tyre squealing around corners), and found that the tyre wear was very high. I haven't seen a study which actually simulates somewhat "normal" driving (presumably because the wear is so low driving like that it's difficult to measure). Also didn't factor in a bunch of different stuff - tyres are effected by lots of things; compound, temperature, pressure, surface abrasion, etc. There might be an effect! But this study was very bad.</p>
]]></description><pubDate>Sat, 15 Feb 2025 16:20:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=43059666</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=43059666</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43059666</guid></item><item><title><![CDATA[New comment by bfgeek in "Breaking Up with Long Tasks or: how I learned to group loops and wield the yield"]]></title><description><![CDATA[
<p>You can create a new thread via. `new Worker` but using a worker requires a separate file, and lots of serialisation code as you communicate via `postMessage`. TC39 module expressions helps but not a lot of movement recently. <a href="https://github.com/tc39/proposal-module-expressions?tab=readme-ov-file#problem-space">https://github.com/tc39/proposal-module-expressions?tab=read...</a></p>
]]></description><pubDate>Sun, 05 Jan 2025 18:17:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=42603722</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=42603722</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42603722</guid></item><item><title><![CDATA[New comment by bfgeek in "A 15-minute intro to involute gears"]]></title><description><![CDATA[
<p>A fun simple gear related concept is "hunting tooth".<p><a href="https://en.wikipedia.org/wiki/Gear_train#Hunting_and_non-hunting_gear_sets" rel="nofollow">https://en.wikipedia.org/wiki/Gear_train#Hunting_and_non-hun...</a><p>Basically you don't want any common denominators in teeth count, otherwise the same sets of teeth will engage at some frequency. If there is a small imperfection on a tooth it'll wear out quicker. E.g. a set with 5:14 teeth will theoretically wear better than a set with 5:15 teeth.</p>
]]></description><pubDate>Thu, 21 Nov 2024 16:23:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=42205881</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=42205881</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42205881</guid></item><item><title><![CDATA[New comment by bfgeek in "Fixing a bug in Google Chrome as a first-time contributor"]]></title><description><![CDATA[
<p>It depends on the project, but most large scale projects require test(s) for the fix, and will block submission unless its provided.<p>These types of projects undergo constant code-change/refactoring/re-architecture etc. If you don't add a test for your specific issue, there is a non-trivial change that it'd be broken again in some future release.<p>Its somewhat worse if an issue gets fixed, and broken again, vs. it being broken the whole time. E.g. with the former users have likely started to rely on the fixed behaviour, then will experience disruption when it breaks again.</p>
]]></description><pubDate>Mon, 26 Aug 2024 18:45:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=41360331</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=41360331</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41360331</guid></item><item><title><![CDATA[New comment by bfgeek in "Fixing a bug in Google Chrome as a first-time contributor"]]></title><description><![CDATA[
<p>These names come from the html spec:
<a href="https://html.spec.whatwg.org/#workerglobalscope" rel="nofollow">https://html.spec.whatwg.org/#workerglobalscope</a>
<a href="https://html.spec.whatwg.org/#workletglobalscope" rel="nofollow">https://html.spec.whatwg.org/#workletglobalscope</a><p>Chromium (and most other browser engines) will use the specification names for things like this. E.g. equivalent code in WebKit, and Gecko:
<a href="https://github.com/WebKit/WebKit/blob/80c1e6d05e4679c08e3a6e16b61ca8059bd39245/Source/WebCore/worklets/WorkletGlobalScope.h#L54">https://github.com/WebKit/WebKit/blob/80c1e6d05e4679c08e3a6e...</a>
<a href="https://searchfox.org/mozilla-central/source/dom/worklet/WorkletGlobalScope.h#46" rel="nofollow">https://searchfox.org/mozilla-central/source/dom/worklet/Wor...</a></p>
]]></description><pubDate>Mon, 26 Aug 2024 17:26:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=41359484</link><dc:creator>bfgeek</dc:creator><comments>https://news.ycombinator.com/item?id=41359484</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41359484</guid></item></channel></rss>