IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте нас в Twitter

     03.07.2020       Выпуск 341 (29.06.2020 - 05.07.2020)       Статьи

Введение в асинхронное программирование на Python

Асинхронное программирование – это вид параллельного программирования, в котором какая-либо единица работы может выполняться отдельно от основного потока выполнения приложения. Когда работа завершается, основной поток получает уведомление о завершении рабочего потока или произошедшей ошибке. У такого подхода есть множество преимуществ, таких как повышение производительности приложений и повышение скорости отклика.
 

     03.07.2020       Выпуск 341 (29.06.2020 - 05.07.2020)       Статьи

А вы можете решить эти три (обманчиво) простые задачи на Python?

С самого начала своего пути как разработчика программного обеспечения я очень любил копаться во внутренностях языков программирования. Мне всегда было интересно, как устроена та или иная конструкция, как работает та или иная команда, что под капотом у синтаксического сахара и т.п. Недавно мне на глаза попалась интересная статья с примерами того, как не всегда очевидно работают mutable- и immutable-объекты в Python. На мой взгляд, ключевое — это то, как меняется поведение кода в зависимости от используемого типа данных, при сохранении идентичной семантики и используемых языковых конструкциях. Это отличный пример того, что думать надо не только при написании, но и при использовании. Предлагаю всем желающим ознакомиться с переводом.

     03.07.2020       Выпуск 341 (29.06.2020 - 05.07.2020)       Статьи

MLOps — Cook book, chapter 1

Я CV-разработчик в КРОК. Уже 3 года мы реализуем проекты в области CV. За это время чего мы только не делали, например: мониторили водителей, чтобы во время движения они не пили, не курили, по телефону не разговаривали, смотрели на дорогу, а не сны или в облака; фиксировали любителей ездить по выделенным полосам и занимать несколько мест на парковке; следили за тем, чтобы работники носили каски, перчатки и т.п.; идентифицировали сотрудника, который хочет пройти на объект; подсчитывали всё, что только можно.

     03.07.2020       Выпуск 341 (29.06.2020 - 05.07.2020)       Статьи

Восходящая сортировка кучей

Это заключительная статья из серии про сортировки кучей. В предыдущих лекциях мы рассмотрели весьма разнообразные кучные структуры, показывающих отличные результаты по скорости. Напрашивается вопрос: а какая куча наиболее эффективна, если речь идёт о сортировке? Ответ таков: та, которую мы рассмотрим сегодня.

     02.07.2020       Выпуск 341 (29.06.2020 - 05.07.2020)       Статьи

Функциональные тесты в Циан

Наша команда занимается разработкой инструментов для продуктовых разработчиков. Это и библиотеки: HTTP-клиент, веб-сервер, библиотеки доступа к базам данных, и средства мониторинга микросервисов и сайта в целом, и интеграция с CI/CD и многое другое.

 

Сегодня я расскажу про новый инструмент, который мы не так давно разработали — фреймворк для функциональных тестов.

     02.07.2020       Выпуск 341 (29.06.2020 - 05.07.2020)       Статьи

Ищем фильмы, книги и подкасты с помощью Python

Apple не особо афиширует, что у iTunes Store и других каталогов есть кривенькое, но простое поисковое API — поэтому я решил о нём написать. Из этой заметки вы узнаете, что API умеет и как его использовать.

     02.07.2020       Выпуск 341 (29.06.2020 - 05.07.2020)       Статьи

FAISS: Быстрый поиск лиц и клонов на многомиллионных данных

Однажды в преддверии клиентской конференции, которуюежегодно проводит группа DAN, мы размышляли над тем, что интересного можно придумать, чтобы у наших партнеров и клиентов остались приятные впечатления и воспоминания о мероприятии. Мы решили разобрать архив из тысяч фотографий с этой конференции и нескольких прошлых (а всего их к тому моменту было 18): человек отправляет нам свою фотографию, а мы ему через пару секунд отправляем подборку фотографий с ним за несколько лет из наших архивов.

Велосипед мы не придумывали, взяли всем известную библиотеку dlib и получили эмбеддинги (векторные представления) каждого лица. 

     01.07.2020       Выпуск 341 (29.06.2020 - 05.07.2020)       Статьи

Пара слов об именовании переменных и методов

В этой статье мы будем говорить о коде, являющимся полной противоположностью описанного выше — о коде, к написанию которого подходили второпях, безответственно и невдумчиво. Эта статья небольшая исповедь, ведь и мне, как и любому другому программисту так же доводилось писать подобный код. В этом нет ничего ужасного до тех пор, пока мы понимаем, что это плохо и над этим нужно работать.

     01.07.2020       Выпуск 341 (29.06.2020 - 05.07.2020)       Статьи

Полный список вопросов с собеседований по Python для дата-сайентистов и инженеров

Бывает, что компания ищет дата-сайентиста, а на самом деле ей нужен Python-разработчик. Поэтому при подготовке к собеседованию есть смысл освежить в памяти информацию по Python, а не только штудировать алгоритмы.

     30.06.2020       Выпуск 341 (29.06.2020 - 05.07.2020)       Статьи

О сложностях менторства новичков в программировании

Ещё до начала пандемии коронавируса в России мне пришла в голову мысль: "Могу ли я как-то ослабить экономические последствия эпидемии?". Идея возникла почти сразу: "Если многие люди могут потенциально потерять работу, значит, я должен им помочь с освоением новых навыков в области с большим спросом на рабочую силу". А так как я уже довольно долгое время программировал на C/C++, то решил в свободное время обучать людей программированию на...python.

     30.06.2020       Выпуск 341 (29.06.2020 - 05.07.2020)       Статьи

Что ждет строительную отрасль города Сан-Франциско в будущем. Тенденции и история развития строительной активности

Это серия статей посвящена исследованию строительной активности главного города Кремниевой Долины — Сан-Франциско. Построение графиков и расчётов проводилось в Jupyter Notebook (на платформе Kaggle.com).

     29.06.2020       Выпуск 341 (29.06.2020 - 05.07.2020)       Статьи

Как скомпилировать декоратор — C++, Python и собственная реализация. Часть 2

Декораторы — одна из самых необычных особенностей Python. Это инструмент, который полноценно может существовать только в динамически типизированном, интерпретируемом языке. В первой части статьи мой товарищ Witcher136 показал, как в С++ реализовать наиболее приближенную к эталонной (питоновской) версию декораторов.

     29.06.2020       Выпуск 341 (29.06.2020 - 05.07.2020)       Статьи

Как я получил сертификат TensorFlow-разработчика (и как его получить вам)


В начале мая я решил получить сертификат TensorFlow-разработчика. Для этого я разработал программу обучения для совершенствования своих навыков и выполнил задания сертификационного экзамена пару дней назад (3 июня). Оказалось, что я сдал экзамен успешно.

Позвольте мне рассказать вам как я это сделал, и как вам сделать то же самое.

     28.06.2020       Выпуск 340 (22.06.2020 - 28.06.2020)       Статьи

Солнечная электростанция на балконе. Личный опыт

Эта статья является продолжением экспериментов с солнечными панелями в городской квартире, первые опыты делались три года назад, но затем из-за переезда все пришлось свернуть и распродать. Однако опыт, как известно, не пропьешь, и было решено с учетом полученной практики, начать сначала.

     28.06.2020       Выпуск 340 (22.06.2020 - 28.06.2020)       Статьи

Получение данных Amplitude через API

Amplitude как инструмент продуктовой аналитики очень хорошо зарекомендовал себя благодаря несложной настройке событий и гибкости визуализаций. И нередко возникает потребность наладить собственную модель атрибуции, провести кластеризацию пользователей или построить дашборд в другой BI-системе. Выполнить подобную махинацию возможно, только имея сырые данные о событиях из Amplitude. О том, как получить эти данные с минимальными знаниями программирования — и будет в этой статье.

     26.06.2020       Выпуск 340 (22.06.2020 - 28.06.2020)       Статьи

Python и пиво — взболтать, но не смешивать

Решил описать небольшую систему автоматизации для создания чудесного напитка. Для того, чтобы пиво было вкусным важны время и температура, температура и время. Причём они настолько же необходимы, как и ингридиенты, составляющие сусло. Чтобы пройти путь до готового продукта требуется от 14 до 20 шагов с различной температурой и временем пивоварения.

     25.06.2020       Выпуск 340 (22.06.2020 - 28.06.2020)       Статьи

Я вас графония принес! Как нейросеть может улучшить разрешение в старых играх до HD

Я детстве я любил играть на компьютере. Совсем маленьким я застал несколько игра на кассетном ZS Spectrum, однако настоящим открытием стали красочные DOS игры 90x годов. Тогда же и зародилось большинство существующих жанров. Немного поностальгировав, я решил вспомнить молодость и запустить одну из старых игр на эмуляторе Dosbox и был неприятно поражен гигантскими пикселями и низким разрешением. Хотя в крупнопиксельной старой графике может быть свое очарование, многих сейчас не устраивает такое качество.

     25.06.2020       Выпуск 340 (22.06.2020 - 28.06.2020)       Статьи

Библиотека ASE для атомных симуляций: создаем наночастицы

Библиотека ASE — это python-библиотека для проведения атомных манипуляций и вычислений. В данной статье мы будем создавать наночастицы с помощью этой библиотеки.

     25.06.2020       Выпуск 340 (22.06.2020 - 28.06.2020)       Статьи

Генерируем странные кулинарные рецепты с помощью TensorFlow и рекуррентной нейронной сети (пошаговая инструкция)

Я натренировал LSTM (Long short-term memory) рекуррентную нейронную сеть (RNN) на наборе данных, состоящих из ~100k рецептов, используя TensorFlow. В итоге нейронная сеть предложила мне приготовить "Сливочную соду с луком", "Клубничный суп из слоеного теста", "Чай со вкусом цукини" и "Лососевый мусс из говядины" ‍.

     25.06.2020       Выпуск 340 (22.06.2020 - 28.06.2020)       Статьи

Интерактивные финансовые данные в 20 строках кода

Статьи на финансовые темы появляются на Хабре регулярно. Во многих из них в качестве источника первичных данных используется неофициально открытое API Yahoo finance. В этой статье я покажу три способа добыть данные (включая Yahoo) а также как напилить из них простое вэб-приложение в 20 строк и выдать его клиенту, не умеющему в CLI.