<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: dperfect</title><link>https://news.ycombinator.com/user?id=dperfect</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 12 Apr 2026 14:56:00 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=dperfect" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by dperfect in "Recreating Epstein PDFs from raw encoded attachments"]]></title><description><![CDATA[
<p>That's true if we're correcting OCR of actual output text. In this case, it's operating on the base 64 text, trying to produce chunks that form valid zlib streams and PDF syntax so the file can be intact enough to be opened. "Just accepting errors" would mean not seeing <i>any</i> content in the file because it cannot be read.<p>So yes, the "fixed" output has errors, but it’s not hallucinating details like an LLM, nor is it trying to produce output that conforms to any linguistic or stylistic heuristics.<p>The phrase "correcting similar OCR'd PDFs" should have been "correcting similar OCR'd base 64 representations of PDFs".</p>
]]></description><pubDate>Fri, 06 Feb 2026 20:04:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46917473</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=46917473</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46917473</guid></item><item><title><![CDATA[New comment by dperfect in "Recreating Epstein PDFs from raw encoded attachments"]]></title><description><![CDATA[
<p>Letting Claude work a little longer produced this behemoth of a script (which is supposed to be somewhat universal in correcting similar OCR'd PDFs - not yet tested on any others though):
<a href="https://pastebin.com/PsaFhSP1" rel="nofollow">https://pastebin.com/PsaFhSP1</a><p>which uses this Rust zlib stream fixer:
<a href="https://pastebin.com/iy69HWXC" rel="nofollow">https://pastebin.com/iy69HWXC</a><p>and gives the best output I've seen it produce:
<a href="https://imgur.com/itYWblh" rel="nofollow">https://imgur.com/itYWblh</a><p>This is using the same OCR'd text posted by commenter Joe.</p>
]]></description><pubDate>Fri, 06 Feb 2026 18:06:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=46916065</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=46916065</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46916065</guid></item><item><title><![CDATA[New comment by dperfect in "Recreating Epstein PDFs from raw encoded attachments"]]></title><description><![CDATA[
<p>Screenshot: <a href="https://imgur.com/eWCfYYd" rel="nofollow">https://imgur.com/eWCfYYd</a></p>
]]></description><pubDate>Fri, 06 Feb 2026 04:25:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46909104</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=46909104</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46909104</guid></item><item><title><![CDATA[New comment by dperfect in "Recreating Epstein PDFs from raw encoded attachments"]]></title><description><![CDATA[
<p>Nerdsnipe confirmed :)<p>Claude Opus came up with this script:<p><a href="https://pastebin.com/ntE50PkZ" rel="nofollow">https://pastebin.com/ntE50PkZ</a><p>It produces a somewhat-readable PDF (first page at least) with this text output:<p><a href="https://pastebin.com/SADsJZHd" rel="nofollow">https://pastebin.com/SADsJZHd</a><p>(I used the cleaned output at <a href="https://pastebin.com/UXRAJdKJ" rel="nofollow">https://pastebin.com/UXRAJdKJ</a> mentioned in a comment by Joe on the blog page)</p>
]]></description><pubDate>Fri, 06 Feb 2026 01:26:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46907841</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=46907841</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46907841</guid></item><item><title><![CDATA[New comment by dperfect in "Show HN: We built an open source, zero webhooks payment processor"]]></title><description><![CDATA[
<p>It looks like this does make some things <i>easier</i>, but I'm not sure if it's actually <i>better</i>.<p>From what I can tell, any time you use this to check something like the customer's subscription state (or anything else payment-related) - either from the front end or the back end - it's going to perform an API request to Flowglad's servers. If you care about responsiveness, I'm not sure that's a good idea. Of course, you can cache that state if you need to access it frequently, but then it kind of defeats the purpose of this layer.<p>Stripe integration can be tricky, but if you don't want to store anything locally, you might as well just hit Stripe's APIs without the middleman. For the payment systems I've worked on, having cached state in the database is actually really nice, even if it's a bit more work. Want to do a complicated query on your customers based on payment/subscription state and a bunch of other criteria? It's just a DB query. With this, I think you'll be hoping they expose an API to query what you need and how you need it. Otherwise, you'll be stuck waiting for a thousand API requests to fetch the state of each of your customers.</p>
]]></description><pubDate>Tue, 25 Nov 2025 18:29:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=46048972</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=46048972</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46048972</guid></item><item><title><![CDATA[New comment by dperfect in "Stripe Launches L1 Blockchain: Tempo"]]></title><description><![CDATA[
<p>It sounds great, but every time I see this argument, I end up going down the rabbit hole of actually studying how stablecoins operate. And every time, I come to the same conclusion: they <i>always</i> rely on trust in an off-chain oracle or custodian. At that point, a shared ledger implemented with traditional databases / protocols would be faster, easier, and more transparent.<p>Bitcoin (and possibly a few others) is one of the few uses of blockchain that actually makes sense. The blockchain serves the currency, and the currency serves the blockchain. The blockchain exists to provide consensus without needing to trust any off-chain entity, but the blockchain relies on computing infrastructure that has real-world costs. The scarcity of Bitcoin (the currency) and arguably-fictitious reward for participation in mining is the incentive for people in the real world to contribute resources required for the blockchain to function.<p>Any real-world value given to Bitcoin is secondary and <i>only</i> a result of the fact that (1) mining infrastructure has a cost, and (2) people who understand the system have realized that, unlike fiat, stablecoins, or 1000 other crypto products, Bitcoin has no reliance on trusted, off-chain entities who could manipulate it.<p>You trust your stablecoin's issuer that they hold enough fiat in reserve to match the coin? You might as well trust your bank, but while you're at it, remind them that they don't <i>have</i> to take days to process a transaction - they <i>could</i> process transactions as fast as (actually <i>faster</i> than) a blockchain. But I imagine most banks would point to regulation as a reason for the delays, and they might be right.<p>So what are stablecoins really trying to do? Circumvent regulation? Implement something the banks just aren't willing to do themselves?</p>
]]></description><pubDate>Thu, 04 Sep 2025 20:18:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=45131781</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=45131781</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45131781</guid></item><item><title><![CDATA[New comment by dperfect in "Stripe Launches L1 Blockchain: Tempo"]]></title><description><![CDATA[
<p>Exactly. The only way for this to deliver on its goals would be for it to <i>not</i> be public or permissionless. And if that's the case, then it should really just be a database and/or a shared protocol between financial institutions.<p>Once it's truly "open", you can't have any sensitive identifiers in there, so you need another protocol/system for correlating opaque identifiers with real-world entities (thus defeating the purpose).<p>And if financial institutions are involved, they'll want the ability to do what they do now: rewrite history whenever they feel the need (or are compelled by governments). Another strike against using blockchain.</p>
]]></description><pubDate>Thu, 04 Sep 2025 17:12:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=45129606</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=45129606</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45129606</guid></item><item><title><![CDATA[New comment by dperfect in "AV1@Scale: Film Grain Synthesis, The Awakening"]]></title><description><![CDATA[
<p>This is a really good point.<p>To illustrate the temporal aspect: consider a traditional film projector. Between every frame, we actually see complete darkness for a short time. We could call that darkness "noise", and if we were to linger on that moment, we'd see nothing of the original signal. But since our visual systems tend to temporally average things out to a degree, we barely even notice that flicker (<a href="https://en.wikipedia.org/wiki/Flicker_fusion_threshold" rel="nofollow">https://en.wikipedia.org/wiki/Flicker_fusion_threshold</a>). I suspect noise and grain are perceived in a similar way, where they become less pronounced compared to the stable parts of the signal/image.<p>Astrophotographers stack noisy images to obtain images with higher SNR. I think our brains do a bit of that too, and it doesn't mean we're hallucinating detail that isn't there; the recorded noise - <i>over time</i> - returns to the mean, and that mean represents a clearer representation of the actual signal (though not entirely, due to systematic/non-random noise, but that's often less significant).<p>Denoising algorithms that operate on individual frames don't have that context, so they <i>will</i> lose detail (or will try to compensate by guessing). AV1 doesn't specify a specific algorithm to use, so I suppose in theory, a smart algorithm could use the temporal context to preserve some additional detail.</p>
]]></description><pubDate>Fri, 04 Jul 2025 03:52:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=44461005</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=44461005</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44461005</guid></item><item><title><![CDATA[New comment by dperfect in "AV1@Scale: Film Grain Synthesis, The Awakening"]]></title><description><![CDATA[
<p>I agree. However, let's look at it practically. Let's assume someone is watching content streamed on a low bandwidth connection. As a content creator, what version of the compressed content would you rather your audience experience:<p>a) Compressed original with significant artifacts from the codec trying to represent original grain<p>b) A denoised version with fewer compression artifacts, but looks "smoothed" by the denoising<p>c) A denoised version with synthesized grain that looks almost as good as the original, though the grain doesn't exactly match<p>I personally think the FGS needs better grain simulation (to look more realistic), but even in its current state, I think I'd probably go with choice C. I'm all for showing the closest thing to the author's intent. We just need to remember that compression artifacts are not the author's intent.<p>In an ideal world where we can deliver full, uncompressed video to everyone, then obviously - don't mess with it at all!</p>
]]></description><pubDate>Thu, 03 Jul 2025 18:46:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=44458051</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=44458051</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44458051</guid></item><item><title><![CDATA[New comment by dperfect in "AV1@Scale: Film Grain Synthesis, The Awakening"]]></title><description><![CDATA[
<p>To the comments hating on grain: everything naturally has some amount of noise or grain - even the best digital sensors. Heck, even your eyes do. It's useful beyond just aesthetics. It tends to increase perceived sharpness and hides flaws like color banding and compression artifacts.<p>That's not to say that all noise and grain is <i>good</i>. It can be unavoidable, due to inferior technology, or a result of poor creative choices. It can even be distracting. But the alternative where <i>everything</i> undergoes denoising (which many of our cameras do by default now) is much worse in my opinion. To my eyes, the smoothing that happens with denoising often looks unrealistic and far more distracting.</p>
]]></description><pubDate>Thu, 03 Jul 2025 18:28:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=44457890</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=44457890</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44457890</guid></item><item><title><![CDATA[New comment by dperfect in "AV1@Scale: Film Grain Synthesis, The Awakening"]]></title><description><![CDATA[
<p>> both it and the synthesized grain image look noticeably less sharp than the source<p>That's true, but at a given bitrate (until you get to very high bitrates), the compressed original will usually look worse and less sharp because so many bits are spent trying to encode the original grain. As a result, that original grain tends to get "smeared" over larger areas, making it look muddy. You lose sharpness in areas of the actual scene because it's trying (and often failing) to encode sharp grains.<p>Film Grain Synthesis makes sense for streaming where bandwidth is limited, but I'll agree that in the examples, the synthesized grain doesn't look very grain-like. And, depending on the amount and method of denoising, it can definitely blur details from the scene.</p>
]]></description><pubDate>Thu, 03 Jul 2025 17:45:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=44457483</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=44457483</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44457483</guid></item><item><title><![CDATA[New comment by dperfect in "Debunking HDR [video]"]]></title><description><![CDATA[
<p>I should have worded it like this: I prefer to watch movies in UHD, even though they're usually also HDR.<p>I don't think anyone is saying HDR isn't really HDR. It obviously does support higher dynamic range, but it's kind of like giving someone directions in a language they don't speak. Technically, the spec does what it claims to do, but it adds unnecessary requirements on the display side that undermine a lot of the benefit. As a result, you have filmmakers forced to pick an arbitrary level of "scene white", which in turn means that displays aren't using their full range of brightness as effectively as they could. It also means that most TVs and projectors have to implement their own version of "tone mapping", some of which are pretty terrible to be honest. Not just terrible for HDR, but worse than SDR.</p>
]]></description><pubDate>Tue, 17 Jun 2025 14:41:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=44299862</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=44299862</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44299862</guid></item><item><title><![CDATA[New comment by dperfect in "Debunking HDR [video]"]]></title><description><![CDATA[
<p>I assume you've watched the "Wider Gamut Misinformation" portion of the video. You're correct in saying that HDR normally uses Rec. 2020 (because Rec. 2100 points to Rec. 2020's color primaries), but Steve points out that Rec. 2020 is an SDR color space which doesn't technically require HDR.<p>It's true that, given the options available today, the two usually go hand-in-hand (wider color gamut and HDR). However, one of the arguments Steve makes is that a majority of content (and a <i>vast majority</i> of the pixels in that content) doesn't use colors outside Rec. 1886's gamut. Illuminated objects (natural or manmade) almost never go outside that, so you're usually only talking about a few pixels from intensely-saturated light sources in the shot (like LEDs) that might use those colors. Even then, not a lot of filmmakers feel the need to go there, so their movies will look the same in narrow and wide gamuts.<p>I don't think the video is arguing against wider gamut or even higher dynamic range as options; modern displays <i>are</i> more capable than older ones, so we need tools to allow content creators to use that capability if they desire. The problem is that all of these things (color space, bit depth, transfer function, absolute luminance values, etc) have been lumped together under one label, "HDR", and some of the implementation details are actually <i>worse</i> than what we had with SDR. If you skip to the "Checklist Recap" portion of the video, you'll see that there are actually quite a few downsides to HDR in its current form, but since most of the standards are tightly coupled, we're kind of stuck unless we move to something better.<p>I also personally choose HDR versions when watching movies, but that's because UHD content is usually also HDR. What I really want is the higher resolution. I've never felt like I'd be missing out if it didn't have HDR because I've compared the two a lot - they're really mostly the same for the movies I watch with a properly calibrated screen. To each their own :)</p>
]]></description><pubDate>Mon, 16 Jun 2025 16:41:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=44291150</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=44291150</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44291150</guid></item><item><title><![CDATA[New comment by dperfect in "Debunking HDR [video]"]]></title><description><![CDATA[
<p>It's hard to boil it down to a simple thesis because the problem is complicated. He admits this in the presentation and points to it being part of the problem itself; there are so many technical details that have been met with marketing confusion and misunderstanding that it's almost impossible to adequately explain the problem in a concise way. Here's my takeaway:<p>- It was clearly a mistake to define HDR transfer functions using absolute luminance values. That mistake has created a cascade of additional problems<p>- HDR is not what it was marketed to be: it's not superior in many of the ways people think it is, and in some ways (like efficiency) it's actually worse than SDR<p>- The fundamental problems with HDR formats have resulted in more problems: proprietary formats like Dolby Vision attempting to patch over some of the issues (while being more closed and expensive, yet failing to fully solve the problem), consumer devices that are forced to render things worse than they might be in SDR due to the fact that it's literally impossible to implement the spec 100% (they have to make assumptions that can be very wrong), endless issues with format conversions leading to inaccurate color representation and/or color banding, and lower quality streaming at given bit rates due to HDR's reliance on higher bit depths to achieve the same tonal gradation as SDR<p>- Not only is this a problem for content delivery, but it's also challenging in the content creation phase as filmmakers and studios sometimes misunderstand the technology, changing their process for HDR in a way that makes the situation worse<p>Being somewhat of a film nerd myself and dealing with a lot of this first-hand, I completely agree with the overall sentiment and really hope it can get sorted out in the future with a more pragmatic solution that gives filmmakers the freedom to use modern displays more effectively, while not pretending that they should have control over things like the absolute brightness of a person's TV (when they have no idea what environment it might be in).</p>
]]></description><pubDate>Sun, 15 Jun 2025 04:20:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=44280501</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=44280501</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44280501</guid></item><item><title><![CDATA[New comment by dperfect in "Supabase Storage v3: Resumable Uploads with support for 50GB files"]]></title><description><![CDATA[
<p>Awesome to see supabase constantly improving. Been using supabase for the past few weeks and have really enjoyed it!<p>I was a bit surprised, however, that there's not currently a good way to reference storage objects from my postgres tables. I found that the recommended way is to store the object's path (as a string) in the database. While that works, it isn't optimal as I'd like to enforce consistency between the object and the table referencing it.<p>I've tried referencing the id of the corresponding row in the storage.objects table, but (1) apparently the schema supabase uses to manage storage.objects may change, and (2) it still requires separate (non-atomic) operations - or additional triggers - for keeping things in sync. Using buckets (corresponding to tables) and folders with ids is another way to work around it, but still feels suboptimal.<p>Not 100% sure what the best solution would look like, but ideally the supabase client could emulate storage operations for objects "attached" to a given table record, and supabase (the backend piece) could implement them as atomic operations (e.g., uploading the actual storage asset, storing the necessary metadata, and updating my table row to reference the newly-created storage object; exposing a helper function to return the URLs for any storage objects attached to a record; etc).<p>Anyway, just a suggestion. Keep up the great work!</p>
]]></description><pubDate>Wed, 12 Apr 2023 17:58:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=35543946</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=35543946</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35543946</guid></item><item><title><![CDATA[New comment by dperfect in "“Terrascope”: The possibility of using the Earth as an atmospheric lens (2019)"]]></title><description><![CDATA[
<p>Does this mean there's a location in space where – on the side of the earth opposite to the sun – the sun's light is focused into a point of extremely high intensity due to the earth's atmosphere acting like a magnifying glass?<p>If so, that could make for either a very unfortunate surprise (i.e. a spacecraft passing through that point suddenly melting to a crisp) or an interesting source of energy if it could be harnessed.</p>
]]></description><pubDate>Thu, 30 Mar 2023 04:56:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=35368192</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=35368192</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35368192</guid></item><item><title><![CDATA[New comment by dperfect in "Apple Music Sing"]]></title><description><![CDATA[
<p>Maybe it's licensing? I can imagine copyright holders being squeamish about Apple processing, <i>permanently storing</i>, and <i>serving</i> heavily altered versions of their music. The difference is silly and pedantic, but by processing it in real-time during playback, one might argue it's just a filter effect like EQ.</p>
]]></description><pubDate>Tue, 06 Dec 2022 18:40:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=33884945</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=33884945</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33884945</guid></item><item><title><![CDATA[New comment by dperfect in "iPhone 14 Pro Camera Review: Scotland"]]></title><description><![CDATA[
<p>They are DNG files, but I don't think they're truly raw like one might expect from other cameras[1]. I just downloaded the DNG posted in the article and took a look in Photoshop with all post-processing turned off. Definitely looks a bit processed in some of the background details, but I could be wrong.<p>Specifically, the out-of-focus shadow details look like a smoothing or denoising algorithm has been applied. Maybe it's just something about the optics Apple is using (e.g. different lenses can have distinct characteristics in bokeh, softening, color, distortion, etc) vs other dedicated cameras, but it's something I see in almost all photos coming from an iPhone.<p>[1] <a href="https://kirkville.com/apples-new-proraw-photo-format-is-neither-pro-nor-raw/" rel="nofollow">https://kirkville.com/apples-new-proraw-photo-format-is-neit...</a></p>
]]></description><pubDate>Thu, 15 Sep 2022 03:01:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=32846461</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=32846461</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32846461</guid></item><item><title><![CDATA[Heroku Down for Anyone Else?]]></title><description><![CDATA[
<p>Some of my Heroku apps are working, and others just stopped responding to requests. Nothing showing on https://status.heroku.com, but quite a few people on Twitter seem to be reporting issues.<p>Edit: apps appear to be coming back online now</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=32476230">https://news.ycombinator.com/item?id=32476230</a></p>
<p>Points: 15</p>
<p># Comments: 9</p>
]]></description><pubDate>Mon, 15 Aug 2022 22:20:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=32476230</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=32476230</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32476230</guid></item><item><title><![CDATA[New comment by dperfect in "This is the Way: Invisible Jenkins"]]></title><description><![CDATA[
<p>Yes, if you also need users to log into Jenkins from outside the private network (without a VPN), it sounds like OpenZiti would be a good option. In my case, Jenkins is only used from within the LAN. The SQS solution authenticates GitHub webhooks using the sha256 hmac signature (not by IP), and no inbound ports need to be open.</p>
]]></description><pubDate>Wed, 25 May 2022 16:23:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=31506713</link><dc:creator>dperfect</dc:creator><comments>https://news.ycombinator.com/item?id=31506713</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31506713</guid></item></channel></rss>