onMessage callback was reverted
… Promise support was reverted because devtools extensions using the polyfill unexpectedly broke because the devtools APIs do not support promises.
… Promise support was reverted because devtools extensions using the polyfill unexpectedly broke because the devtools APIs do not support promises.
Another thread I was following closely, is an open source alternative to Kindle’s whispersync. Combination of Audiobookshelf + Kobo reader can give you the same experience provided there is a sync service between them :)
And it was implemented recently, and is actively maintained still!
https://github.com/advplyr/audiobookshelf/issues/189#issuecomment-3575012992
I enjoy following threads on bug trackers, here is one that got fixed recently :)
this was possible in FF but not in Chrome until recently.
chrome.runtime.onMessage.addListener(async (msg) => {
const res = await someAsyncFunction();
return res;
});
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessage
https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.EventLoop
An alias to the most efficient available subclass of
AbstractEventLoopfor the given platform.
Before 3.13 can be implemented with:
import asyncio
import selectors
loop = asyncio.SelectorEventLoop(selectors.SelectSelector())
EventLoop came with deprecation of the policy based event loop selection: https://docs.python.org/3/library/asyncio-policy.html#asyncio-policies
while True:
breakpoint()
await asyncio.sleep(1)
re-enter into debugger after giving asyncio time to execute tasks.
Other discussions:
However, there are two ways of interacting with an abstraction layer: as shorthand for an understanding of what it is doing on your behalf, or as a black box. I think engineers are most capable and most effective when abstraction layers serve as shorthand rather than a black box.
For instance, sometimes we create abstraction layers that allow people to create things on top of them explicitly without having to understand anything beneath them. We call those “platforms.” The expectation is that when we create abstraction layers like that, we should see an explosion of creativity
As we’ve made it easier to build games, we have certainly seen more of them. But the number of highly rated games (in this case as recorded by metacritic) does not seem to be increasing over time.
I think we can only truly create when we truly understand what we have to create with.
The qualities that make a good engineer are often the same ones that create a good engineering organization. Both start with deep understanding as the basis for innovation – cultivating the curiosity to look inside the black boxes.
A separate thread is spawned to ingest data into the pool, but it doesn’t stop to wait until the tasks are processed. Therefore, if task definitions consume substantial amount of memory it can lead to OOM kill.
If you’re using
multiprocessing.Pool, consider upgrading toconcurrent.futures.process.ProcessPoolExecutor, because it handles killed workers better. It doesn’t affect the problem described in this question.

a quiz question would be to expand the abbreviation.
list of timezone names: https://www.timeanddate.com/time/zones/
When saving an image from the graph-driver store, a new archive is created containing the uncompressed layers; saving/loading will produce the same layers as were pulled, but the save/load won’t include information about their compressed digests, because this information cannot be verified without the actual compressed artifacts (as pulled from the registry). Reconstructing the compressed layers is not possible due to compression algorithms not being 100% reproducible (they may be most of the time, but various factors, including CPU load, and CPU optimizations during compression can cause their checksum to differ).