Well, they’re userspace threads. That’s still concurrency just like kernel threads.
Also, it still uses kernel threads, just not for every single goroutine.
Well, they’re userspace threads. That’s still concurrency just like kernel threads.
Also, it still uses kernel threads, just not for every single goroutine.
I absolutely love how easy multi threading and communication between threads is made in Go. Easily one of the biggest selling points.
Still, 200 should not be returned. If you have your own codes, just return 500 alongside that custom code.
Picking emojis that make sense actually made it easy to read.
My lead dev used to pronounce it njinx and I always needed some time to realize what he’s talking about.
Technically OCR is an application of machine learning.
Not an LLM, though.
It means something else.
Would be cooler to overlay a copy of the chart onto they eye in hue mode.
Silver-cyan here
Bold of you to assume they read the book.
deleted by creator
Doesn’t GPL technically require you to attribute the upstream anyway?
The work must carry prominent notices stating that you modified it, and giving a relevant date.
If you’re using docker: change your image name from gitea to forgejo. Repull. Done. Baremetal should be just as simple. Migrations are as easy as leaving all the data in-place and changing the binary at this moment in time.
Yet the review time is exponential with the size.
You’re right, my bad.
OP’s security concern is valid. Different CAs may differ in the challenges used to verify you to be the domain owner. Using something that you could crack may lead to an attacker’s public key being certified instead.
This could for example be the case with HTTPS verification (place a file with a specific content accessible through your URL) if the website has lacking input sanitization and/or creates files with the user’s input at an unfortunate location that collides with the challenge.
This attack vector might be far-fetched, but there can certainly be differences between different signing authorities.
Do you still need help with docker?
You can actually (for now) just replace gitea with forgejo while keeping all the files in place and it just works. Really easy then using docker, cause all it takes is changing the container image.
Great details! I know the difference personally, but this is a really nice explanation for other readers.
About the last point though: I’m not sure Go always uses the maximum amount of kernel threads it is allowed to use. I read it spawns one on blocking syscalls, but I can’t confirm that. I could imagine it would make sense for it to spawn them lazily and then keep around to lessen the overhead of creating it in case it’s needed later again, but that is speculation.
Edit: I dove a bit deeper. It seems that nowadays it spawns as many kernel threads as CPU cores available plus additional ones for blocking syscalls. https://go.dev/doc/go1.5 https://docs.google.com/document/u/0/d/1At2Ls5_fhJQ59kDK2DFVhFu3g5mATSXqqV5QrxinasI/mobilebasic