HN user

dperfect

3,066 karma

kind.lamp5744@fastmail.com

Posts15
Comments399
View on HN
Midjourney Medical 1 month ago

Overdiagnosis can be a problem. On the flip side, I wonder if adding the time dimension to the data (i.e., you could realistically have scans from every few weeks over the course of years) could significantly change that.

Instead of looking at a single snapshot of a person, you're now looking at trends over time. We probably don't have the analytical tools to effectively evaluate medical imaging with that time dimension at such scale (because I assume it would be rare for someone to get MRIs so frequently), but maybe with more data and study, we'll be able to more definitively distinguish benign quirks from real concerns.

Rather than a human comparing a couple of scans five years apart, you're talking about computationally identifying outlying regions in the data (a motion picture of the entire body) that are trending towards areas of concern.

I love my X1C. It's way ahead of any other 3D printer I've owned or built. I stuck it in a VLAN from day 1. Have had it in LAN-only mode for years. Works great. I haven't followed the company's PR statements, but seems a little strange that they would tell people not to get a Bambu Lab printer for any reason.

I'm sorry your experience has been so terrible or that you thought you were buying an open-ecosystem printer. I never got that impression, so I never expected it.

And in 2026, I wouldn't trust access controls on their own even if Bambu Lab did keep them enabled in this situation (who's to say they don't include a back door of their own?). I prefer security at the network level, enforcing access controls before any untrusted hosts can even see a machine that I want to protect on the network.

It sounds like they're doing what people want. People seem to be ascribing a lot of mal-intent to actions that don't seem malicious to me.

completely exposes your printer by removing existing access controls

If these printers are in LAN-only mode and you want to point 3rd-party software at them, don't you kind of expect the existing access controls (which are probably at least in part tied to cloud services) to be removed? Behind a LAN with developer mode on, you're generally going to (1) not be exposed to the internet anyway, and (2) probably know what you're doing and would be implementing access controls yourself anyway.

If you want a completely open (hardware and software) 3D printer, don't get a Bambu Lab machine I guess? A big part of the value of their printers is that they've managed to make everything so seamless. Some of that relies on a somewhat closed ecosystem. They're the Apple of 3D printers, but everyone keeps expecting them to be the Linux, just because their slicer (or parts of it anyway) is open-source. If openness is more important to you than those conveniences, go with a different brand. It's a good thing we have choices as consumers :)

they're deliberately working towards removing any other form of access to our hardware

Maybe I'm mistaken, but I don't think that's what is happening. They aren't doing anything to block OrcaSlicer or any fork from working with the printer using LAN-only mode. It's only if you want to use Bambu Lab's servers for essentially a remote-access solution (which, by the way, kind of defeats the privacy-oriented purpose of running some of these forks) that they're saying you should use their own software.

Thought experiment: the core of macOS (Darwin) is open source. Does that mean everyone running Darwin or a fork of it should be able to use iCloud services for free?

All this outrage essentially sounds like "since Bambu Lab's slicer is open-source, the open-source community should be able to point any slicer at Bambu Lab's servers to get free remote monitoring services". And I don't think that's right.

Bambu Lab has made plenty of mistakes, but I don't think this is one of them. And I'm a big supporter of open-source software.

Their cloud infrastructure obviously has real costs associate with running it, and I don't understand why any software other than their own should be entitled to use those resources.

If you buy something and then significantly modify it, you generally tend to void the warranty - and that's not because companies are just greedy; there are real limitations when it comes to a company's ability to support the endless ways a product could be modified.

Publishing something as open-source does not imply that you must operate an optional-but-complementary service at a loss for charity.

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 any content in the file because it cannot be read.

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.

The phrase "correcting similar OCR'd PDFs" should have been "correcting similar OCR'd base 64 representations of PDFs".

It looks like this does make some things easier, but I'm not sure if it's actually better.

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.

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.

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 always 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.

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.

Any real-world value given to Bitcoin is secondary and only 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.

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 have to take days to process a transaction - they could process transactions as fast as (actually faster than) a blockchain. But I imagine most banks would point to regulation as a reason for the delays, and they might be right.

So what are stablecoins really trying to do? Circumvent regulation? Implement something the banks just aren't willing to do themselves?

Exactly. The only way for this to deliver on its goals would be for it to not 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.

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).

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.

This is a really good point.

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 (https://en.wikipedia.org/wiki/Flicker_fusion_threshold). 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.

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 - over time - 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).

Denoising algorithms that operate on individual frames don't have that context, so they will 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.

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:

a) Compressed original with significant artifacts from the codec trying to represent original grain

b) A denoised version with fewer compression artifacts, but looks "smoothed" by the denoising

c) A denoised version with synthesized grain that looks almost as good as the original, though the grain doesn't exactly match

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.

In an ideal world where we can deliver full, uncompressed video to everyone, then obviously - don't mess with it at all!

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.

That's not to say that all noise and grain is good. It can be unavoidable, due to inferior technology, or a result of poor creative choices. It can even be distracting. But the alternative where everything 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.

both it and the synthesized grain image look noticeably less sharp than the source

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.

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.

I should have worded it like this: I prefer to watch movies in UHD, even though they're usually also HDR.

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.

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.

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 vast majority 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.

I don't think the video is arguing against wider gamut or even higher dynamic range as options; modern displays are 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 worse 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.

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 :)

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:

- It was clearly a mistake to define HDR transfer functions using absolute luminance values. That mistake has created a cascade of additional problems

- 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

- 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

- 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

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).

Awesome to see supabase constantly improving. Been using supabase for the past few weeks and have really enjoyed it!

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.

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.

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).

Anyway, just a suggestion. Keep up the great work!

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?

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.

Apple Music Sing 4 years ago

Maybe it's licensing? I can imagine copyright holders being squeamish about Apple processing, permanently storing, and serving 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.

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.

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.

[1] https://kirkville.com/apples-new-proraw-photo-format-is-neit...

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.

I recently faced this same challenge and solved it using Amazon SQS, a simple Lambda function, and a corresponding SQS consumer/relay service running inside the private LAN.

Essentially GitHub's webhook is configured to hit the Lambda function, which authenticates the request and adds the data to an SQS queue. The internal relay service watches that queue and passes requests to the private Jenkins server.

The architecture is similar to this[1] project, but since the public-facing piece runs on Lambda, it costs almost nothing to run.

[1] https://github.com/osbuild/webhook-relay

Does Time Exist? 4 years ago

For more on this topic, I recommend Carlo Rovelli's The Order of Time. The book is very accessible to non-experts in the field (like me), and it opened my eyes to some super interesting and unintuitive ideas about time.

I've shared this before, but this has happened to me - 3 times - with different sites I created. One was very similar in nature to OP's (essentially a specialized tool/calculator with affiliate links to the products), and another was a very detailed guide for making a DIY electronics product. It was "creative" enough to be featured on the front page of hackaday.com, but I guess not enough for Amazon's affiliate program.

Traffic also wasn't a problem - in one case they pulled my program membership only after I had generated hundreds of dollars in referred sales (of course they didn't pay the commission). Needless to say, it has left a bad taste in my mouth ever since. In my opinion, if they have such a narrow interpretation of what "original" or "creative" means (applying only to blog-style content, or who knows what), then I frankly don't care to do anything more with their affiliate program or drive sales to them.

Output: Digital services, site subscriptions, digital assets, in-game items, NFT's representing real world assets held by trusted companies (wine, event tickets, tokenized securities).

None of this requires oracles and exists today.

While I only mentioned oracles specifically, I should have clarified: I'm referring both to oracles (making queries to external data sources and providing the results to the blockchain), and to external code that interprets data stored on the blockchain and acts on it. I'm not sure if there's a name for it in common use (I'd call it something like a "performer"). Either way, the issue is the same as that with oracles; whatever decentralization or smart contract guarantees you had on the blockchain disappear as soon as you have external code interpreting blockchain data to then make decisions in external systems (digital services, site subscriptions, digital assets, in-game items, NFT's, etc). If oracles provide inputs to the blockchain, these non-blockchain pieces of code provide the real-world outputs.

Example: even if somewhere in the blockchain I can prove that I should own something in the real world, it's still up to your site/service/app/whatever to honor that through external code. If it doesn't honor it, I'm stuck relying on traditional legal means to intervene, just as with any other standard contract. That legal system – as flawed as it is – tends to work for contracts written on the back of a napkin, stored in a SQL database, or coded in a smart contract (though that's probably the most questionable at the moment).

If I'm wrong, please correct me, but I've been interested in this stuff for a while, and I haven't found anything that actually solves the fundamental problem of oracles and the interpretation of blockchain data. That problem is important because it undermines many of the primary selling points of smart contracts.

Your mistake is thinking that just because the base layer is decentralised that we're somehow not allowed to connect to companies we choose to trust

So, honest question: why care about the base layer being decentralized if in the end, you choose to trust those companies? What did the decentralization do for you in that interaction?

I completely agree with the author. I've been reading a lot about the EVM, and while there's some interesting technology involved, it feels unlikely to be able to support any worthwhile applications outside of blockchain finance or moving $ around the world[0] (since the code can really only directly reference the blockchain itself).

It's a bit like playing with a programming language in a sandbox that has (1) has no I/O functions[1], and (2) has enormous costs associated with even the most basic of computations. Ok, it's not like that; it is exactly that.

Sure, you could build a crypto toy and convince some suckers to transfer some of their wealth to you, but calling it an app platform or the next evolution of the web is definitely a stretch. I sincerely wish that wasn't the case (I'd love to find an exception), but that's what I've come to conclude.

[0] Don't get me wrong, there's tremendous value in being able to move money around the world without the blessing of governments and central banks!

[1] Any interaction with entities outside the blockchain require oracles, and at that point, you might as well throw away the other benefits of being on a blockchain.