SmaugPool / pool.pm

Cardano blockchain realtime visualization
https://pool.pm
Other
18 stars 8 forks source link

Bad user experience for large images #8

Closed zekeysmigz closed 2 years ago

zekeysmigz commented 3 years ago

Using pool.pm to view a wallet filled with dozens of very high resolution NFTs that don't have thumbnail metadata is an extremely slow and painful experience.

Can thumbnails be generated on the fly for sufficiently large images without thumbnail metadata?

I think that optimizing this would dramatically reduce your bandwidth costs and result in a much better user experience.

Thank you!

SmaugPool commented 3 years ago

Hi, the issue is that some creators/minting services don't follow the spec which advises for thumbnails to be < 1 MB. Creators should not put a very high resolution image in the thumbnail, but in the files property. Some do, but some put there files of tens of MB or even more in extreme cases.

Also medias are not hosted on pool.pm, they come from IPFS gateways, so creating some smaller thumbnails would add latency on pool.pm/tokens, require a lot more processing and storage resources and actually greatly increase the bandwidth needed.

For example think about CardanoCity NFTs that are each unique and 12MB. During a drop when hundreds are minted each minute, I would likely need a server fully dedicated to just handling thumbnails. I would also need theoretically infinite storage and considerable bandwidth.

So I'm still not sure how to improve the situation.

zekeysmigz commented 3 years ago

fair points yeah…. i still feel like the images should be cached by my browser… they seem to keep getting redownloaded constantly

On Sep 9, 2021, at 11:13 AM, SM₳UG @.***> wrote:

 Hi, the issue is that some creators/minting services don't follow the spec which advises for thumbnails to be < 1 MB. Creators should not put a very high resolution image in the thumbnail, but in the files property. Some do, but some put there files of tens of MB or even more in extreme cases.

Also medias are not hosted on pool.pm, they come from IPFS gateways, so creating some smaller thumbnails would add latency on pool.pm/tokens, require a lot more processing and storage resources and actually greatly increase the bandwidth needed.

For example think about CardanoCity NFTs that are each unique and 12MB. During a drop when hundreds are minted each minute, I would likely need a server fully dedicated to just handling thumbnails. I would also need theoretically infinite storage and considerable bandwidth.

So I'm still not sure how to improve the situation.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

SmaugPool commented 3 years ago

Your browser should definitely cache some of them, but I guess the cache is too quickly full (for example pool.pm/tokens could likely fill it alone).

I will investigate more and likely perform some "thumbnailing" tests.

fair points yeah…. i still feel like the images should be cached by my browser… they seem to keep getting redownloaded constantly On Sep 9, 2021, at 11:13 AM, SM₳UG @.***> wrote:  Hi, the issue is that some creators/minting services don't follow the spec which advises for thumbnails to be < 1 MB. Creators should not put a very high resolution image in the thumbnail, but in the files property. Some do, but some put there files of tens of MB or even more in extreme cases. Also medias are not hosted on pool.pm, they come from IPFS gateways, so creating some smaller thumbnails would add latency on pool.pm/tokens, require a lot more processing and storage resources and actually greatly increase the bandwidth needed. For example think about CardanoCity NFTs that are each unique and 12MB. During a drop when hundreds are minted each minute, I would likely need a server fully dedicated to just handling thumbnails. I would also need theoretically infinite storage and considerable bandwidth. So I'm still not sure how to improve the situation. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

zekeysmigz commented 3 years ago

I tried tweaking my browser's image cache parameters, to no avail....

On Thu, Sep 9, 2021 at 2:13 PM SM₳UG @.***> wrote:

Your browser should definitely cache some of them, but I guess the cache is too quickly full (for example the pool.pm/tokens could likely fill it alone).

I will investigate more and likely perform some "thumbnailing" tests.

fair points yeah…. i still feel like the images should be cached by my browser… they seem to keep getting redownloaded constantly … <#m5147481997123032424> On Sep 9, 2021, at 11:13 AM, SM₳UG @.***> wrote:  Hi, the issue is that some creators/minting services don't follow the spec which advises for thumbnails to be < 1 MB. Creators should not put a very high resolution image in the thumbnail, but in the files property. Some do, but some put there files of tens of MB or even more in extreme cases. Also medias are not hosted on pool.pm, they come from IPFS gateways, so creating some smaller thumbnails would add latency on pool.pm/tokens, require a lot more processing and storage resources and actually greatly increase the bandwidth needed. For example think about CardanoCity NFTs that are each unique and 12MB. During a drop when hundreds are minted each minute, I would likely need a server fully dedicated to just handling thumbnails. I would also need theoretically infinite storage and considerable bandwidth. So I'm still not sure how to improve the situation. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SmaugPool/pool.pm/issues/8#issuecomment-916366856, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABG3JG4QYIDU7AVIYHNMN3TUBEBPDANCNFSM5DVRR2ZQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

SmaugPool commented 3 years ago

I am experimenting with live images scaling and better caching. It is for now implemented for spacebudz feed page:

https://pool.pm/spacebudz

But it is not ready yet for deployment in wallets and tokens page.

That said I have also fixed an issue with lazy images loading that should have improved the wallets and https://pool.pm/tokens page user experience.

SmaugPool commented 2 years ago

Last update fixes that, see:

https://twitter.com/pool_pm/status/1573717444362964992?s=20&t=jrTMXkgefgeQ_C0hbLgBTA