Можно много за что ругать корпорации и современное устройство различных продуктов и сервисов, но важно понимать, что они — победители эволюционной гонки. Если вас удивляет, почему какой-то замечательный продукт не сделан, то варианта два:
1. Вы открыли совершенно новую идею, которая не пришла в голову ни единому человеку до вас;
2. Это никому не нужно.
Угадайте, какой случай вероятнее. Условного Инстаграма без рекламы не существует не из-за того, что его никто не может сделать, а из-за того, что за него никто не станет платить. Почему-то так вышло, что мусор в информационно-визуальном поле для большинства людей является меньшей проблемой, тем потеря нескольких долларов в месяц (сколько стоила бы платная подписка, чтобы компенсировать отсутствие заработка на рекламе).
Каждый раз, когда вы встречаете плохой продукт (забитую говном соцсеть, урезанный по функциям гаджет, скучный фильм с одними эффектами, скам-дрочилью без геймплея), который можно было бы сделать лучше, задайте себе вопрос: "Сколько людей захотят за это платить?".
#life#web
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://wla.berkeley.edu/~cs61a/fa11/lectures/streams.html
In this chapter, we continue our discussion of real-world applications by developing new tools to process #sequential#data. In Chapter 2, we introduced a sequence interface, implemented in Python by built-in data types such as #tuple and #list. #Sequences supported two operations: querying their length and accessing an element by index. In Chapter 3, we developed a user-defined implementations of the sequence interface, the Rlist class for representing recursive lists. These sequence types proved effective for representing and accessing a wide variety of sequential #datasets.