<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: matthberg</title><link>https://news.ycombinator.com/user?id=matthberg</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 23 May 2026 02:19:44 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=matthberg" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Wikidata for Developers]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.wikidata.org/wiki/Wikidata:For_developers">https://www.wikidata.org/wiki/Wikidata:For_developers</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47634095">https://news.ycombinator.com/item?id=47634095</a></p>
<p>Points: 10</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 04 Apr 2026 00:15:50 +0000</pubDate><link>https://www.wikidata.org/wiki/Wikidata:For_developers</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=47634095</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47634095</guid></item><item><title><![CDATA[Mapterhorn]]></title><description><![CDATA[
<p>Article URL: <a href="https://mapterhorn.com/">https://mapterhorn.com/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47527216">https://news.ycombinator.com/item?id=47527216</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 26 Mar 2026 06:27:31 +0000</pubDate><link>https://mapterhorn.com/</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=47527216</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47527216</guid></item><item><title><![CDATA[Saulala]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.saulala.com/">https://www.saulala.com/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47283541">https://news.ycombinator.com/item?id=47283541</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 07 Mar 2026 01:46:17 +0000</pubDate><link>https://www.saulala.com/</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=47283541</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47283541</guid></item><item><title><![CDATA[New comment by matthberg in "Show HN: Streaming gigabyte medical images from S3 without downloading them"]]></title><description><![CDATA[
<p>Seems very similar to how maps work on the web these days, in particular protomap files [0]. I wonder if you could view the medical images in leaflet or another frontend map library with the addition of a shim layer? Cool work!<p>0: <a href="https://protomaps.com/" rel="nofollow">https://protomaps.com/</a></p>
]]></description><pubDate>Sat, 17 Jan 2026 10:10:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=46656821</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=46656821</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46656821</guid></item><item><title><![CDATA[Compressing Cellular Automata Images (2017)]]></title><description><![CDATA[
<p>Article URL: <a href="https://cloudinary.com/blog/compressing_cellular_automata">https://cloudinary.com/blog/compressing_cellular_automata</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46654619">https://news.ycombinator.com/item?id=46654619</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 17 Jan 2026 02:10:28 +0000</pubDate><link>https://cloudinary.com/blog/compressing_cellular_automata</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=46654619</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46654619</guid></item><item><title><![CDATA[New comment by matthberg in "1970 Paris, cut into a grid and photographed"]]></title><description><![CDATA[
<p>Quick summary for those confused:<p>In 1970 a massive project crowdsourced thousands of photographs of everywhere in Paris (nearly every single grid square on each letter sized page, a rare few have no photos).<p>To see the photos, click on a map section to go to the subgrid page. Then find the square grid number that corresponds to where you want to see and click the corresponding numbered link from the list at the top.<p>Some cool example locations:<p>By the Eiffel Tower: <a href="https://paris1970.jeantho.eu/carres/718.html" rel="nofollow">https://paris1970.jeantho.eu/carres/718.html</a><p>The Arc de Triomphe: <a href="https://paris1970.jeantho.eu/carres/427.html" rel="nofollow">https://paris1970.jeantho.eu/carres/427.html</a><p>Gare du Nord (urban area train station, less touristy): <a href="https://paris1970.jeantho.eu/carres/268.html" rel="nofollow">https://paris1970.jeantho.eu/carres/268.html</a><p>Random southern Paris neighborhood (many photos of streets, people, more suburban): <a href="https://paris1970.jeantho.eu/carres/1296.html" rel="nofollow">https://paris1970.jeantho.eu/carres/1296.html</a><p>Random central Paris neighborhood (lots of photos, mainly of the urban architecture): <a href="https://paris1970.jeantho.eu/carres/507.html" rel="nofollow">https://paris1970.jeantho.eu/carres/507.html</a></p>
]]></description><pubDate>Sun, 11 Jan 2026 03:30:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46572458</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=46572458</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46572458</guid></item><item><title><![CDATA[New comment by matthberg in "Tiled Art"]]></title><description><![CDATA[
<p>Cool site, I especially appreciate the detailed about page [1] including the libraries used for the graphics (paperjs + GSAP) and the bloopers section [2], covering interesting glitches from development.<p>1: <a href="https://tiled.art/en/about/#thanks" rel="nofollow">https://tiled.art/en/about/#thanks</a><p>2: <a href="https://tiled.art/en/bloopers/" rel="nofollow">https://tiled.art/en/bloopers/</a></p>
]]></description><pubDate>Fri, 26 Dec 2025 12:11:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=46391332</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=46391332</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46391332</guid></item><item><title><![CDATA[New comment by matthberg in "The Ultimate Windows Utility (2022)"]]></title><description><![CDATA[
<p>Don't know if 2022 is needed since this seems to be an evergreen page for an actively developed tool (last update was 3 weeks ago).<p><a href="https://github.com/ChrisTitusTech/winutil/releases/tag/25.12.01" rel="nofollow">https://github.com/ChrisTitusTech/winutil/releases/tag/25.12...</a></p>
]]></description><pubDate>Wed, 24 Dec 2025 11:16:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46374579</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=46374579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46374579</guid></item><item><title><![CDATA[New comment by matthberg in "How to Design Programs 2nd Ed (2024)"]]></title><description><![CDATA[
<p>He's also the person behind Practical Typography [0], a great reference/guide for essential typography and layout concepts and terms. It has opinionated recommendations covering nearly everything you'll need to make beautiful documents like this one.<p>Particularly helpful is the practical advice: how to get the desired results in Word, Pages, or with HTML/CSS; not just high-level abstract guidelines. There's everything from keyboard shortcuts for inserting different dashes (to accompany the explanation on when to use each type) [1] to guidance on page margins in print and on the web [2].<p>0: <a href="https://practicaltypography.com/" rel="nofollow">https://practicaltypography.com/</a><p>1: <a href="https://practicaltypography.com/hyphens-and-dashes.html" rel="nofollow">https://practicaltypography.com/hyphens-and-dashes.html</a><p>2: <a href="https://practicaltypography.com/page-margins.html" rel="nofollow">https://practicaltypography.com/page-margins.html</a></p>
]]></description><pubDate>Fri, 20 Jun 2025 22:09:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=44332579</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=44332579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44332579</guid></item><item><title><![CDATA[New comment by matthberg in "Tell HN: Help restore the tax deduction for software dev in the US (Section 174)"]]></title><description><![CDATA[
<p>Exactly, this letter refers to the "reconciliation bill" without mentioning the better known (and more notorious) monikers "Big Beautiful Bill" or "One Big Ugly Bill".<p>There are so many horrific things in it, the bill must be fully opposed, not endorsed with minor changes.</p>
]]></description><pubDate>Tue, 10 Jun 2025 03:15:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=44232104</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=44232104</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44232104</guid></item><item><title><![CDATA[New comment by matthberg in "Tell HN: Help restore the tax deduction for software dev in the US (Section 174)"]]></title><description><![CDATA[
<p>Note that this letter's requests DO NOT include voting against the reconciliation bill, just modifying it to add a carve-out to fix Section 174. While I agree that Section 174 desperately needs reform and is harmful to the tech industry, the bill as a whole must be opposed, not tweaked.<p>There are many, many things wrong with the "Big Beautiful Bill", too many to fix through piecemeal efforts like this. It must be resolutely opposed, not endorsed with minor changes.</p>
]]></description><pubDate>Tue, 10 Jun 2025 03:10:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=44232079</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=44232079</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44232079</guid></item><item><title><![CDATA[New comment by matthberg in "Covert web-to-app tracking via localhost on Android"]]></title><description><![CDATA[
<p>I agree, yet at least you can kind of see where they're coming from.<p>I guess a better example would be the automatic hardware detection Lenovo Support offers [0] by pinging a local app (with some clear confirmation dialogs first). Asus seems to do the same thing.<p>uBlock Origin has a fair few explicit exceptions made [1] for cases like those (and other reasons) in their filter list to avoid breakages (notably Intel domains, the official Judiciary of Germany [2] (???), `figma.com`, `foldingathome.org`, etc).<p>0: <a href="https://pcsupport.lenovo.com/" rel="nofollow">https://pcsupport.lenovo.com/</a><p>1: <a href="https://github.com/uBlockOrigin/uAssets/blob/master/filters/lan-block.txt">https://github.com/uBlockOrigin/uAssets/blob/master/filters/...</a><p>2: <a href="https://github.com/uBlockOrigin/uAssets/issues/23388">https://github.com/uBlockOrigin/uAssets/issues/23388</a> and <a href="https://www.bundesjustizamt.de/EN/Home/Home_node.html" rel="nofollow">https://www.bundesjustizamt.de/EN/Home/Home_node.html</a> (they're trying to talk to a local identity verification app seems like, yet I find it quite funny)</p>
]]></description><pubDate>Tue, 03 Jun 2025 15:20:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=44171030</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=44171030</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44171030</guid></item><item><title><![CDATA[New comment by matthberg in "Covert web-to-app tracking via localhost on Android"]]></title><description><![CDATA[
<p>Yep! Unfortunately its main method (as far as I remember from when I first read the proposal at least, it may do more) is adding preflight requests and headers to opt-in, which works for most cases yet doesn't block behind-the-lines collaborating apps like mentioned in the main article. If there's a listening app (like Meta was caught doing) that's expecting the requests, this doesn't do much to protect you.<p>EDIT: Looks like it does mention integrating into the permissions system [0], I guess I missed that. Glad they covered that consideration, then!<p>0: <a href="https://wicg.github.io/private-network-access/#integration-permissions" rel="nofollow">https://wicg.github.io/private-network-access/#integration-p...</a></p>
]]></description><pubDate>Tue, 03 Jun 2025 14:17:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=44170426</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=44170426</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44170426</guid></item><item><title><![CDATA[New comment by matthberg in "Covert web-to-app tracking via localhost on Android"]]></title><description><![CDATA[
<p>If I recall correctly Figma uses it to connect to the locally installed app, and Discord definitely uses it to check if its desktop app is installed by scanning ports (6463-6472).<p>I'm aware of two blockers for LAN intrusions from public internet domains, uBlock Origin has a filter list called "Block Outsider Intrusion into LAN" [0] under the "Privacy" filters, and there's a cool Firefox extension called Port Authority [1][2] that does pretty much the same thing yet more specifically targeted and without the exclusions allowed by the uBlock filterlist (stuff like Figma's use is allowed through, as you can see in [0]). I've contributed some to Port Authority, too :)<p>0: <a href="https://github.com/uBlockOrigin/uAssets/blob/master/filters/lan-block.txt">https://github.com/uBlockOrigin/uAssets/blob/master/filters/...</a><p>1: <a href="https://addons.mozilla.org/firefox/addon/port-authority" rel="nofollow">https://addons.mozilla.org/firefox/addon/port-authority</a><p>2: <a href="https://github.com/ACK-J/Port_Authority">https://github.com/ACK-J/Port_Authority</a></p>
]]></description><pubDate>Tue, 03 Jun 2025 13:58:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=44170252</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=44170252</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44170252</guid></item><item><title><![CDATA[New comment by matthberg in "Covert web-to-app tracking via localhost on Android"]]></title><description><![CDATA[
<p>A comment I wrote in another HN thread [0] covering this issue:<p>Web apps talking to LAN resources is an attack vector which is surprisingly still left wide open by browsers these days. uBlock Origin has a filter list that prevents this called "Block Outsider Intrusion into LAN" under the "Privacy" filters [1], but it isn't enabled on a fresh install, it has to be opted into explicitly. It also has some built-in exemptions (visible in [1]) for domains like `figma.com` or `pcsupport.lenovo.com`.<p>There are some semi-legitimate uses, like Discord using it to check if the app is installed by scanning some high-number ports (6463-6472), but mainly it's used for fingerprinting by malicious actors like shown in the article.<p>Ebay for example uses port-scanning via a LexisNexis script for fingerprinting (they did in 2020 at least, unsure if they still do), allegedly for fraud prevention reasons [2].<p>I've contributed some to a cool Firefox extension called Port Authority [3][4] that's explicitly for blocking LAN intruding web requests that shows the portscan attempts it blocks. You can get practically the same results from just the uBlock Origin filter list, but I find it interesting to see blocked attempts at a more granular level too.<p>That said, both uBlock and Port Authority use WebExtensions' `webRequest` [5] API for filtering HTTP[S]/WS[S] requests. I'm unsure as to how the arcane webRTC tricks mentioned specifically relate to requests exposed to this API; it's possible they might circumvent the reach of available WebExtensions blocking methods, which wouldn't be good.<p>0: <a href="https://news.ycombinator.com/item?id=44170099">https://news.ycombinator.com/item?id=44170099</a><p>1: <a href="https://github.com/uBlockOrigin/uAssets/blob/master/filters/lan-block.txt">https://github.com/uBlockOrigin/uAssets/blob/master/filters/...</a><p>2: <a href="https://nullsweep.com/why-is-this-website-port-scanning-me/" rel="nofollow">https://nullsweep.com/why-is-this-website-port-scanning-me/</a><p>3: <a href="https://addons.mozilla.org/firefox/addon/port-authority" rel="nofollow">https://addons.mozilla.org/firefox/addon/port-authority</a><p>4: <a href="https://github.com/ACK-J/Port_Authority">https://github.com/ACK-J/Port_Authority</a><p>5: <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest" rel="nofollow">https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...</a></p>
]]></description><pubDate>Tue, 03 Jun 2025 13:48:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=44170126</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=44170126</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44170126</guid></item><item><title><![CDATA[New comment by matthberg in "Covert Web-to-App Tracking via Localhost on Android"]]></title><description><![CDATA[
<p>A comment I wrote in another HN thread [0] (though this one was the original):<p>Web apps talking to LAN resources is an attack vector which is surprisingly still left wide open by browsers these days. uBlock Origin has a filter list that prevents this called "Block Outsider Intrusion into LAN" under the "Privacy" filters [1], but it isn't enabled on a fresh install, it has to be opted into explicitly. It also has some built-in exemptions (visible in [1]) for domains like `figma.com` or `pcsupport.lenovo.com`.<p>There are some semi-legitimate uses, like Discord using it to check if the app is installed by scanning some high-number ports (6463-6472), but mainly it's used for fingerprinting by malicious actors like shown in the article.<p>Ebay for example uses port-scanning via a LexisNexis script for fingerprinting (they did in 2020 at least, unsure if they still do), allegedly for fraud prevention reasons [2].<p>I've contributed some to a cool Firefox extension called Port Authority [3][4] that's explicitly for blocking LAN intruding web requests that shows the portscan attempts it blocks. You can get practically the same results from just the uBlock Origin filter list, but I find it interesting to see blocked attempts at a more granular level too.<p>That said, both uBlock and Port Authority use WebExtensions' `webRequest` [5] API for filtering HTTP[S]/WS[S] requests. I'm unsure as to how the arcane webRTC tricks mentioned specifically relate to requests exposed to this API; it's possible they might circumvent the reach of available WebExtensions blocking methods, which wouldn't be good.<p>0: <a href="https://news.ycombinator.com/item?id=44170126">https://news.ycombinator.com/item?id=44170126</a><p>1: <a href="https://github.com/uBlockOrigin/uAssets/blob/master/filters/">https://github.com/uBlockOrigin/uAssets/blob/master/filters/</a>...<p>2: <a href="https://nullsweep.com/why-is-this-website-port-scanning-me/" rel="nofollow">https://nullsweep.com/why-is-this-website-port-scanning-me/</a><p>3: <a href="https://addons.mozilla.org/firefox/addon/port-authority" rel="nofollow">https://addons.mozilla.org/firefox/addon/port-authority</a><p>4: <a href="https://github.com/ACK-J/Port_Authority">https://github.com/ACK-J/Port_Authority</a><p>5: <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequestBlocking" rel="nofollow">https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...</a></p>
]]></description><pubDate>Tue, 03 Jun 2025 13:46:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=44170099</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=44170099</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44170099</guid></item><item><title><![CDATA[Scheming Reasoning Evaluations]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.apolloresearch.ai/research/scheming-reasoning-evaluations">https://www.apolloresearch.ai/research/scheming-reasoning-evaluations</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44090318">https://news.ycombinator.com/item?id=44090318</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 25 May 2025 19:27:39 +0000</pubDate><link>https://www.apolloresearch.ai/research/scheming-reasoning-evaluations</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=44090318</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44090318</guid></item><item><title><![CDATA[New comment by matthberg in "Minimal CSS-only blurry image placeholders"]]></title><description><![CDATA[
<p>Since there're independent Lightness values set for each section (I'd say quadrant but there are 6 of them), I wonder if two bits can be shaved from the `L` value from the base color. It'd take some reshuffling and might not play well with color customization in mainly flat images, but I think it could work.<p>I'm also curious to see that they're doing solely grayscale radial gradients over the base color instead of tweaking the base color's `L` value and using that as the radial gradient's center, I'd imagine you'd be doing more math that way in the OKLab colorspace which might give prettier results(?).<p>Tempted to play around with this myself, it's a really creative idea with a lot of potential. Maybe even try moving the centers (picking from a list of pre-defined options with the two bits stolen from the base color's L channel), to account for varying patterns (person portraits, quadrant-based compositions, etc).</p>
]]></description><pubDate>Thu, 03 Apr 2025 03:45:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=43564502</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=43564502</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43564502</guid></item><item><title><![CDATA[Basilisk Collection (2021)]]></title><description><![CDATA[
<p>Article URL: <a href="https://suricrasia.online/unfiction/basilisk/">https://suricrasia.online/unfiction/basilisk/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43540362">https://news.ycombinator.com/item?id=43540362</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 31 Mar 2025 21:50:00 +0000</pubDate><link>https://suricrasia.online/unfiction/basilisk/</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=43540362</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43540362</guid></item><item><title><![CDATA[Finding Threat Actor Infrastructure with SSL Certificates [video]]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.youtube.com/watch?v=MM9gKmpBOVs">https://www.youtube.com/watch?v=MM9gKmpBOVs</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43529042">https://news.ycombinator.com/item?id=43529042</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 30 Mar 2025 23:50:14 +0000</pubDate><link>https://www.youtube.com/watch?v=MM9gKmpBOVs</link><dc:creator>matthberg</dc:creator><comments>https://news.ycombinator.com/item?id=43529042</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43529042</guid></item></channel></rss>