Looks very well designed. As someone new to asynchronous programming in python, I have been using asyncio.to_thread in a task. Although the best way to manage things is to use a thread pool executor
When you are doing parallelism, don't forget to protect the 'entry point' of the program by using "if __name__ == '__main__'", and also avoid the __main__.py file [1]
# this file isn't `__main__.py` !
from asyncpal import ProcessPool
def square(x):
return x**2
if __name__ == "__main__": # very important !
with ProcessPool(4) as pool:
numbers = range(1000)
# note that 'map_all' isn't lazy
iterator = pool.map(square, numbers) # map is lazy
result = tuple(iterator)
assert result == tuple(map(square, numbers))
Hey, good work. One small feedback, after logging in (from mobile) it took me to the profile section rather than listing problems. I was expecting it to redirect to the problems section. From there, it was tough to find the section. That displays problems.
The cost of getting the asteroid to orbit, transportation (back and forth), and mining it would be too much. Even if we do this, keeping in mind that we can find some elements that we are aware of, I think it is way more important for humanity overall to execute this mission because there is always an upside that we can discover something that is much more valuable just like the company can sell the piece of just an asteroid as a souvenir.
One way of thinking is that the rules are designed by humans. The game is not a game until we establish the rules. At any point in time in this realm of life, if we try to establish some control, or try to create a frame of "simple" rules around it, it becomes complex.
So it doesn't matter if the ChatGPT is designed by simple rules, the minute we try to control the randomness, it becomes complex.