Hacker Newsnew | past | comments | ask | show | jobs | submit | zaphodias's commentslogin

Me too, reinforced by author's name :)


Did you read the article's section "Why I Built My Own Audio Player"?


Just to be clear, I am authenticated. Maybe they are struggling with the AI scrapers though, you're right.


isn't the whole point avoiding FOUC, while also avoiding to block the rendering for CSS network requests?


Unless you're sure that your the "non-critical" css doesn't cause layout shifts (aka, it doesn't overload any "critical" styles), you're gonna see layout shifts even on fast connections if you load some styles at the top of the document and then do a link rel at the bottom.


The critical css should cover everything above the fold to avoid that visible reflow.


Where’s the fold in a world of 000’s of viewports?


Then what does the "non-critical" css do?


The non-critical things?

I mean, i agree with you that this is insanely easy to screw up. However in most websites there is obviously css which doesn't cause reflows and is not needed for first paint. Actually separating that out correctly seems easy to mess up, but it obviously exists.


I'm doing the same, I have family plans with my friends for pretty much anything so I don't think I ever reached such high monthly costs though.

I started my home server for self hosting Immich, not only for the cost but because I like to have my images close to me.

I also recently replaced Lightroom with ON1, it's definitely not the same quality but, as hobbyist, it didn't make much sense to pay that much for me anymore. It was by far the most expensive subscription I had.


Maintenance overhead, plus:

- convenience (everyone already has a GitHub account and is familiar with the platform) - discussions platform (issues, prs, discussions) - CI (GitHub Actions)

It's already there, and it's free for the most part. Why would I bother hosting my own?


While I think you're right (generics might be useful there), it's fairly easy to wrap the `sync` primitives such as `sync.Pool` and `sync.Map` into your specific use case.

Go is pretty strict about breaking changes, so they probably won't change the current implementations; maybe we'll see a v2 version, or maybe not. The more code you have, the more code you have to maintain, and given Go's backward-compatibility promises, that's a lot of work.


Upstream thinks a type-safer `sync.Pool` is a good idea too. It's being discussed in https://go.dev/issue/71076.


> While I think you're right (generics might be useful there), it's fairly easy to wrap the `sync` primitives such as `sync.Pool` and `sync.Map` into your specific use case.

That’s not a strong argument. You can easily (but sometimes tediously) wrap any API with one that (further) restricts what types you can use with it. Generics make it possible to avoid doing that work, and code you don’t write won’t have errors.


Don't get me wrong, I agree! Especially performance-wise, I'd love to have the best primitives that let me build whatever I want and not some very generic primitives that perform a bit worse and I have to tune myself so I don't shoot myself in the foot.


Sync.map is meant to have poor performance I believe

https://github.com/golang/go/issues/21031


It depends on the use case.

From the Godoc:

> The Map type is optimized for two common use cases: (1) when the entry for a given key is only ever written once but read many times, as in caches that only grow, or (2) when multiple goroutines read, write, and overwrite entries for disjoint sets of keys. In these two cases, use of a Map may significantly reduce lock contention compared to a Go map paired with a separate Mutex or RWMutex.

Source: https://pkg.go.dev/sync#Map

And regarding slow writes, those were recently improved in Go 1.24:

> The implementation of sync.Map has been changed, improving performance, particularly for map modifications. For instance, modifications of disjoint sets of keys are much less likely to contend on larger maps, and there is no longer any ramp-up time required to achieve low-contention loads from the map.

Source: https://go.dev/doc/go1.24#minor_library_changes ("sync" section)


I assume they're referring to the fact that a Pool can hold different types instead of being a collection of items of only one homogeneous type.


Apple's Force Touch aka 3D Touch


> Who says ByBit can cover the loss?

CEO on X


When has the CEO of a cryptocurrency exchange ever lied before?

What possible motivation would he have to not tell the truth, the whole truth, and nothing but the truth?

Harumph!!!

Gentleman, please, rest your sphincters!

https://www.youtube.com/watch?v=g2Bp8SqYrnE


Right.

If you have a balance in ByBit, get it out NOW.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: