Джеймс Хоган — «Звёзды в наследство»
Вообще это пенталогия, на русском вышли три книги, я прочитал все три, особенно мне понравилась первая, но и остальные достойные. Я вам как-то писал, что авторы нередко умеют придумывать интересные миры, но сюжет остаётся довольно простым и посредственным. Так вот, тут — обратная ситуация. Очень интересный сюжет, подобного которому я особо не встречал. Я бы сказал, что «Звёзды в наследство» — это научный детектив. Человечество в недалёком будущем сталкивается с необъяснимым феноменом: на Луне находят труп в скафандре, которому пятьдесят тысяч лет. И учёные с помощью научных методов разгадывают эту загадку.
При этом сама вселенная мне показалась не слишком правдоподобной. У автора в будущем царит всеобщий мир, дружба и демилитаризация, а ля «Полдень», но при этом сохранилась капиталистическая экономика, а государства заказывают у корпораций за деньги разного вида работу и технологии. Если у Стругацких мир на Земле неизбежно связан с коммунизмом и оценкой работы в терминах блага для общества, то здесь капитализм, в основе которого лежит конкуренция. Это и само по себе не вяжется, и по непонятной причине не привело в книге к росту влияния корпораций, подобно более классическим антиутопиям. Отдельно современному читателю будет заметна глубоко второстепенная роль женщин в сюжете. Для американца семидесятых это нормально, но сейчас странно читать про общество будущего, где абсолютно все учёные, руководители и инженеры мужчины, а женщины — просто красивые секретарши.
Однако, сюжет интересный и затягивает, если вы фанат всякого наукообразного и непротиворечивого. Точнее так: выкладки, связанные с программированием и работой ИИ (из второй и третьей книги) показались мне наивными, как специалисту. Но выкладки по теории эволюции очень зашли: например, автор одной небольшой эволюционной деталью показал, как гипотетически могло бы образоваться общество, в котором нет войн. Возможно, профессиональный антрополог кривился бы, а я прям кайфанул.
История появления первой книги тоже очень любопытная: Хоган работал продавцом электроники и жаловался коллегам на концовку фильма «Космическая одиссея 2001» и рассказов Артура Кларка, которые легли в основу (я согласен, концовка очень плохая). На что коллеги сказали ему, дескать, возьми и попробуй сам написать роман и сделать концовку лучше. Он и написал, роман стал супер популярным, и позже даже Артур Кларк при встрече признал, что концовка у Хогана получилась лучше. Впрочем, он добавил, что его «Одиссея» заработала больше денег. Типичные американцы.
Рекомендовать трилогию однозначно могу. #fiction
https://docs.python.org/3/library/asyncio-task.html#asyncio.run_coroutine_threadsafe
#asyncio.run_coroutine_threadsafe(coro, loop)
Submit a coroutine object to a given event loop.
Return a concurrent.futures.Future to access the result.
https://docs.python.org/3/library/asyncio-eventloop.html
The event loop is the central execution device provided by #asyncio. It provides multiple facilities, including:
Registering, executing and cancelling delayed calls (timeouts).
Creating client and server transports for various kinds of communication.
Launching subprocesses and the associated transports for communication with an external program.
Delegating costly function calls to a pool of threads.
http://blog.povilasb.com/posts/python-asyncio-vs-nginx-performance/
While I was playing with Python #asyncio I got interested in how well it performs serving data over TLS compared to #Nginx. So I implemented a small HTTPS server with asyncio:
https://glyph.twistedmatrix.com/2014/02/unyielding.html
As we know, #threads are a bad idea, (for most purposes). Threads make local reasoning difficult, and local reasoning is perhaps the most important thing in software development.
With the word “threads”, I am referring to shared-state multithreading, despite the fact that there are languages, like Erlang and Haskell which refer to concurrent processes – those which do not implicitly share state, and require explicit coordination – as “threads”.
#asyncio
http://programtalk.com/python-examples/aiohttp.web.Application/?ipage=1
Here are the examples of the python api #aiohttp.web.Application taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
#asyncio#learn
https://pawelmhm.github.io/asyncio/python/aiohttp/2016/04/22/asyncio-aiohttp.html
👌Making 1 million requests with python -#aiohttp
Apr 22, 2016 - by Paweł Miech - about: #asyncio, aiohttp, #python
In this post I’d like to test limits of python aiohttp and check its performance in terms of requests per minute. Everyone knows that asynchronous code performs better when applied to network operations, but it’s still interesting to check this assumption and understand how exactly it is better and why it’s is better. I’m going to check it by trying to make 1 million #requests with aiohttp client. How many requests per minute will aiohttp make? What kind of exceptions and crashes can you expect when you try to make such volume of requests with very primitive scripts? What are main gotchas that you need to think about when trying to make such volume of requests?
https://github.com/aio-libs/aiobotocore
Async client for amazon services using #botocore and #aiohttp/#asyncio.
Main purpose of this library to support amazon s3 api, but other services should work (may be with minor fixes). For now we have tested only upload/download api for s3, other users report that SQS and Dynamo services work also. More tests coming soon.
https://docs.python.org/3/library/asyncio.html
#asyncio
#Asynchronous programming is more complex than classical “#sequential” programming: see the Develop with asyncio page which lists common traps and explains how to avoid them. Enable the debug mode during development to detect common issues.
http://stackoverflow.com/questions/32054066/python-how-to-run-multiple-coroutines-concurrently-using-asyncio
how to run multiple #coroutines#concurrently using #asyncio?
You can use #asyncio.async() to run as many #coroutines as you want, before executing blocking call for starting event loop.