<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: mpetrovich</title><link>https://news.ycombinator.com/user?id=mpetrovich</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 10 Jun 2026 02:33:54 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mpetrovich" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mpetrovich in "The Website Specification"]]></title><description><![CDATA[
<p>I suspect they ask for email first in order to determine whether to log you in via SSO vs. require a password.</p>
]]></description><pubDate>Sun, 31 May 2026 10:58:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=48344713</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=48344713</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48344713</guid></item><item><title><![CDATA[New comment by mpetrovich in "PHP's Oddities"]]></title><description><![CDATA[
<p>I found php’s array methods lacking as well. The inconsistencies are a pain. I ended up porting many of the methods from lodash, underscore, etc. to php: <a href="https://github.com/mpetrovich/dash" rel="nofollow">https://github.com/mpetrovich/dash</a><p>Maybe you’ll find it helpful</p>
]]></description><pubDate>Sun, 24 May 2026 06:44:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48255021</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=48255021</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48255021</guid></item><item><title><![CDATA[New comment by mpetrovich in "OpenAI Adopts Google's SynthID Watermark for AI Images with Verification Tool"]]></title><description><![CDATA[
<p>Seems inferior to C2PA, which is actually an open standard: <a href="https://contentauthenticity.org/" rel="nofollow">https://contentauthenticity.org/</a></p>
]]></description><pubDate>Wed, 20 May 2026 02:37:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48202439</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=48202439</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48202439</guid></item><item><title><![CDATA[New comment by mpetrovich in "GitHub is investigating unauthorized access to their internal repositories"]]></title><description><![CDATA[
<p>If that’s true and they do intend on shredding their copy on sale, what stops GitHub from buying it back themselves? (through a proxy, obv)</p>
]]></description><pubDate>Wed, 20 May 2026 02:30:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=48202387</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=48202387</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48202387</guid></item><item><title><![CDATA[New comment by mpetrovich in "You need to calm down"]]></title><description><![CDATA[
<p>AI isn't changing the fundamentals of building software. It's changing the speed. Don't confuse the two.</p>
]]></description><pubDate>Wed, 13 May 2026 12:12:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48120896</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=48120896</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48120896</guid></item><item><title><![CDATA[You need to calm down]]></title><description><![CDATA[
<p>Article URL: <a href="https://petro.blog/you-need-to-calm-down-71a177c99c9f">https://petro.blog/you-need-to-calm-down-71a177c99c9f</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48120895">https://news.ycombinator.com/item?id=48120895</a></p>
<p>Points: 1</p>
<p># Comments: 1</p>
]]></description><pubDate>Wed, 13 May 2026 12:12:53 +0000</pubDate><link>https://petro.blog/you-need-to-calm-down-71a177c99c9f</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=48120895</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48120895</guid></item><item><title><![CDATA[New comment by mpetrovich in "Show HN: Turn any workflow diagram into compilable, running and stateful code"]]></title><description><![CDATA[
<p>Some feedback: show example input & output without requiring me to create an account.<p>Looks interesting, best of luck!</p>
]]></description><pubDate>Sun, 18 May 2025 08:01:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=44019766</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=44019766</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44019766</guid></item><item><title><![CDATA[New comment by mpetrovich in "Show HN: An API that takes a URL and returns a file with browser screenshots"]]></title><description><![CDATA[
<p>Reminds me of this open source library I wrote to do the same thing: <a href="https://github.com/nextbigsoundinc/imagely">https://github.com/nextbigsoundinc/imagely</a><p>It uses puppeteer and chrome headless behind the scenes.</p>
]]></description><pubDate>Thu, 06 Feb 2025 20:45:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=42966312</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=42966312</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42966312</guid></item><item><title><![CDATA[New comment by mpetrovich in "Show HN: AI Generated (Not-Real) User Avatar Images for Development Needs"]]></title><description><![CDATA[
<p>Good point. What if we combined the best of both: more realistic images from tpdne.com and API-accessible metadata from your site?<p>Seems like a matter of crawling the former to get all the images and then tagging them and serving them via your API.<p>Anyway, I think your approach is great and only wanted to propose a possible approach to the original feedback above :)</p>
]]></description><pubDate>Sat, 17 Feb 2024 17:10:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=39411273</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=39411273</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39411273</guid></item><item><title><![CDATA[New comment by mpetrovich in "Show HN: AI Generated (Not-Real) User Avatar Images for Development Needs"]]></title><description><![CDATA[
<p>Perhaps something powered by thispersondoesnotexist.com would better for that. That site returns completely AI-generated faces that seem much more realistic and candid.</p>
]]></description><pubDate>Sat, 17 Feb 2024 13:28:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=39409219</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=39409219</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39409219</guid></item><item><title><![CDATA[New comment by mpetrovich in "ChatGPT is now a brilliant tool for winding up telemarketers and scammers"]]></title><description><![CDATA[
<p>The demos on the Jolly Roger site are hilarious. The bot sounds so realistic, and the bot even had the audacity to ask the scammer, “Are you a real person?!”<p>“Hold on, there’s a bee on my arm”</p>
]]></description><pubDate>Sat, 01 Jul 2023 13:37:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=36549967</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=36549967</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36549967</guid></item><item><title><![CDATA[New comment by mpetrovich in "Is ORM still an anti-pattern?"]]></title><description><![CDATA[
<p>In my career, the biggest problem with ORMs I’ve used is something the author touched on:<p>They can be terribly leaky abstractions. It seems that many ORMs end up re-implementing SQL in their own domain-specific language.<p>However, an understanding of SQL is often needed to debug and optimize ORM queries.<p>So why not just use SQL directly then?</p>
]]></description><pubDate>Tue, 27 Jun 2023 20:56:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=36498526</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=36498526</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36498526</guid></item><item><title><![CDATA[New comment by mpetrovich in "The Messy Page Or: why I don't like greenfield projects"]]></title><description><![CDATA[
<p>My goodness, this describes me perfectly as well. The countless choices of a blank slate brings anxiety to a recovering perfectionist like me. Do I choose A or B or Z?<p>I prefer improving things rather than creating them from nothing. I’ve come to a similar conclusion as the author as far as how to get out of the fog of greenfield: Satisfice instead of optimize.<p>In this context, optimizing refers to choosing the best among N options. In contrast, satisficing means choosing the first option that’s good enough. Often, the opportunity cost saved from satisficing is greater than the marginal value gained from optimizing.</p>
]]></description><pubDate>Sun, 07 May 2023 15:00:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=35852189</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=35852189</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35852189</guid></item><item><title><![CDATA[New comment by mpetrovich in "U-Bahn station in Berlin is decorated with radioactive uranium glazed tiles"]]></title><description><![CDATA[
<p>No, he’s talking about the movie. You know, the one with the sub.</p>
]]></description><pubDate>Tue, 07 Feb 2023 13:07:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=34692213</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=34692213</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34692213</guid></item><item><title><![CDATA[New comment by mpetrovich in "Enabling the Future of GitHub's REST API with API Versioning"]]></title><description><![CDATA[
<p>Oh, so you’re saying that omitting the version from the header will ALWAYS return this specific version, NOT the latest version?<p>That certainly addresses the footgun I mentioned.<p>EDIT: From the docs:
Requests without the X-GitHub-Api-Version header will default to use the 2022-11-28 version.</p>
]]></description><pubDate>Tue, 29 Nov 2022 00:04:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=33781741</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=33781741</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33781741</guid></item><item><title><![CDATA[New comment by mpetrovich in "Enabling the Future of GitHub's REST API with API Versioning"]]></title><description><![CDATA[
<p>You’re saying that it’s LESS likely to specify the API path at the callsite than the HTTP header? o_O</p>
]]></description><pubDate>Mon, 28 Nov 2022 23:34:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=33781445</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=33781445</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33781445</guid></item><item><title><![CDATA[New comment by mpetrovich in "Enabling the Future of GitHub's REST API with API Versioning"]]></title><description><![CDATA[
<p>I agree with you, so then why not stick with the previous /api/v2 url approach?<p>And it would annoy me far more if my app that talks to GitHub inexplicably breaks in a few years because of a release I wasn’t aware of.<p>These changes make no sense to me.</p>
]]></description><pubDate>Mon, 28 Nov 2022 23:18:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=33781295</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=33781295</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33781295</guid></item><item><title><![CDATA[New comment by mpetrovich in "Enabling the Future of GitHub's REST API with API Versioning"]]></title><description><![CDATA[
<p>Making the version optional is a bad idea, IMO. It lets consumers use your API without versioning, which is like telling them, “here, create a time bomb that may or may not explode when the next breaking api change is released.”<p>There’s zero practical user benefit to NOT specifying the version, so why not enforce it? You’re creating a footgun otherwise.<p>Furthermore as others have pointed out, this is a purely cosmetic change. Using /api/$UNIQUE_STR in the URL vs. X-GitHub-Version: $UNIQUE_STR in the header are functionally equivalent, so…<p>Why bother making this change then? What was suboptimal about the previous way? What benefit does this bring?<p>EDIT:
Serves me right for not reading the docs more carefully. From the docs [1]:<p>Requests without the X-GitHub-Api-Version header will default to use the 2022-11-28 version.<p>See phphphphp’s reply below for context.<p>[1] <a href="https://docs.github.com/en/rest/overview/api-versions?apiVersion=2022-11-28#specifying-an-api-version" rel="nofollow">https://docs.github.com/en/rest/overview/api-versions?apiVer...</a></p>
]]></description><pubDate>Mon, 28 Nov 2022 23:02:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=33781128</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=33781128</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33781128</guid></item><item><title><![CDATA[New comment by mpetrovich in "Intentionally making close friends"]]></title><description><![CDATA[
<p>The systems angle mentioned later in the article may seem a bit …engineered, but it works!<p>I’ve moved a ton in my life, and I have an annoying habit of losing touch with friends when I move away. Out of sight, out of mind, ya know?<p>Anyway, to combat this annoying habit, I started scheduling monthly phone/video calls with each of those friends. It’s been a game changer, especially as folks have kids and busy lives.</p>
]]></description><pubDate>Mon, 28 Nov 2022 20:25:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=33779042</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=33779042</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33779042</guid></item><item><title><![CDATA[New comment by mpetrovich in "Show HN: I made a sliding puzzle game"]]></title><description><![CDATA[
<p>I hadn’t considered it since it’s mobile-first, but that’s a great idea to try!<p>I imagine that the arrow keys would control the movement of the empty space, right?</p>
]]></description><pubDate>Sat, 26 Nov 2022 17:41:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=33754782</link><dc:creator>mpetrovich</dc:creator><comments>https://news.ycombinator.com/item?id=33754782</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33754782</guid></item></channel></rss>