В Телеграме есть функция "Похожие каналы". Не знаю, как платформа оценивает похожесть, но, думаю, что это комбинированная метрика из подписчиков и ключевых слов.
Так вот, тёзка Denull сделал прикольный кластеризатор каналов. Я просканировал свой канал на глубину 3 и обозначил кластеры.
Какие интересные выводы из этого можно сделать:
1. Каналов про айти так много (возможно именно в ближайших к моему, но я думаю, что и в целом), что они, в свою очередь, тоже делятся на выраженные кластеры: мобилки, фронт, дизайн и т.д.
2. Больше всего айтишных каналов про ML. Это очень модно.
3. Канал ровно на серединке между "Мобильной разработкой" и "Компьютерной безопасностью" — это канал про компьютерную безопасность в мобильной разработке! Прикольно.
4. Каналы со всякими новостями практически неотделимы от каналов с политикой.
5. Если якобы тематический канал находится очень близко к кластеру "Новости и политика", то, вероятно, этот канал часто постит нетематический ширпотребный мусор для разгона трафика. То есть, я бы на такие не подписывался.
6. Вообще нет кластера по настолкам. Похоже, эта тема довольно слабо освещается в блогах.
7. Стартапы и инвестиции находятся где-то между политикой и машинным обучением. Неспроста.
#web
#Functions are first-class citizens in Python:
# They can be passed as arguments to other functions,
# returned as values from other functions, and
# assigned to variables and stored in data structures.
»> def myfunc(a, b):
... return a + b
...
»> funcs = [myfunc]
»> funcs[0]
<function myfunc at 0x107012230>
»> funcs[0](2, 3)
5
# Functions are first-class citizens in Python.
# They can be passed as arguments to other functions,
# returned as values from other #functions, and
# assigned to variables and stored in data structures.
»> def myfunc(a, b):
... return a + b
...
»> funcs = [myfunc]
»> funcs[0]
<function myfunc at 0x107012230>
»> funcs[0](2, 3)
5
https://docs.python.org/3/library/subprocess.html
The #subprocess module allows you to spawn new #processes, connect to their input/output/error pipes, and obtain their return codes. This module intends to replace several older #modules and #functions.
#python
https://docs.python.org/3/library/atexit.html
The #atexit module defines #functions to #register and #unregister cleanup functions. Functions thus registered are automatically executed upon normal interpreter termination. atexit runs these functions in the reverse order in which they were registered; if you register A, B, and C, at #interpreter#termination time they will be run in the order C, B, A.