Собрали в одном месте самые важные ссылки
и сделали Тренажер IT-инцидентов для DevOps/SRE
Библиотека реализована на threading и multiprocessing
from streampie import *
ints = [2498834631017, 14536621517459, 6528633441793, 1941760544137, 7311548077279,
8567757849149, 5012823744127, 806981130983, 15687248010773, 7750678781801,
2703878052163, 3581512537619, 12656415588017, 468180585877, 19268446801283,
5719647740869, 11493581481859, 366611086739]
def factor(n):
result = set()
for i in range(1, int(n ** 0.5) + 1):
div, mod = divmod(n, i)
if mod == 0:
result |= {i, div}
return sorted(list(result))[:-1]
def do_work(wid, items):
for i in items:
yield factor(i)
print ints >> ProcessPool(do_work, poolsize=8) >> list
В этой статье я хочу рассмотреть один из наиболее известных примеров парадокса Симпсона, попутно немного рассказав о MultiIndex в Pandas.
Обо всем по порядку.
Распределенная очередь задач. Изменения описаны по ссылке https://allmychanges.com/p/python/celery/#2.5. Скачать можно по ссылке: http://pypi.python.org/pypi/celery/
Система контроля и управления процессами. Изменения описаны по ссылке https://allmychanges.com/p/python/supervisor/#3.2.3. Скачать можно по ссылке: http://pypi.python.org/pypi/supervisor/
Генераторы могут быть переданы функции, и затем использоваться в пределах этих функций. Что это дает - читайте по ссылке.
Новый PyCharm уже доступен.
Начиная с этой версии PyCharm меняет версионирование. Теперь версии будут иметь названия в формате YYYY.R
Статья описывает опыт профилирования кода прям в продакшене. Автору удалось сократить потребление CPU на 80%
Есть отличный инструмент для обучения/отчётов/написания умных книг про код — Jupyter Notebook. Если отчёт или книга, например, пишутся на кириллице, а нужно быстро сделать из этого PDF с красивыми формулами и тире правильной длины, то сразу обнаруживается проблема: в стандартном шаблоне, который Jupyter использует для конвертации блокнотов в PDF через LaTeX, нет подключения нужных пакетов с нужными параметрами, поэтому LaTeX просто не компилируется и PDF не получить.
Простой мощный инструмент тестирования в Python. Изменения описаны по ссылке https://allmychanges.com/p/python/pytest/#2.9.1. Скачать можно по ссылке: http://pypi.python.org/pypi/pytest/
“Absolute statements are the root of all evil.
The key is balance. There are no answers, only questions.”
????
Когда говорят про оптимизацию в контектсте программного обеспечения, то при этом часто подразумевают оптимизацию производительности программиста и/или оптимизацию самого программного обеспечения.
Исходя из YAGNI принципа, Python позволяет программисту сосредоточиться на реализации ПО, избавив его от необходимости заботиться о низкоуровневых вещах таких как регионых памяти, в которых выделяются объекты, об её освобождении или о соглашениях о вызовах.
На обратную проблему в одной из его лекций о Haskell указал Саймон Джонс. У него был слайд, на котором была нарисована стрелка, закрашенная градиентом: в начале было написано “no types”, посередине — “Haskell”, в конце — “Coq”. При этом, когда он указал на Coq, он сказал такую фразу: “This stresses power over usability. Right?! You need a PhD here!”[1]. Несмотря на то, что это была шутка, мантара Python – одна из любимых программистами особенностей этого языка. И из моего опыта, это то, что позволяет выпускать готовый продукт несколько быстрее.