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

Собрали в одном месте самые важные ссылки
консультируем про IT, Python

     24.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Советы по настройке uWSGI в производственной среде

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

     24.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Как сжать модель fastText в 100 раз

Модель fastText — одно из самых эффективных векторных представлений слов для русского языка. Однако её прикладная польза страдает из-за внушительных (несколько гигабайт) размеров модели. В этой статье мы показываем, как можно уменьшить модель fastText с 2.7 гигабайт до 28 мегабайт, не слишком потеряв в её качестве (3-4%). Спойлер: квантизация и отбор признаков работают хорошо, а матричные разложения — не очень. Также мы публикуем пакет на Python для этого сжатия и примеры компактной модели для русских слов.

     23.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Сдруживаем Python и Bash: библиотеки smart-env и python-shell

На сегодняшний день Python является одним из наиболее используемых языков в сфере создания не только непосредственно программных продуктов, но также обеспечения их инфраструктуры. Вследствие этого многим девопсам, по их воле или против оной, пришлось учить новый язык для последующего использования в качестве дополнения к старым добрым Bash-скриптам. Однако Bash и Python исповедуют различные подходы к написанию кода и имеют определенные особенности, в виду чего портирование Bash-скриптов на «змеиный язык» иногда оказывается ёмкой и далеко не тривиальной задачей.

Чтобы упростить жизнь девопсам, создано и продолжает создаваться много полезных библиотек и утилит на Python. Данная статья описывает сразу две новых библиотеки, созданные автором сего поста — smart-env и python-shell — и призванные избавить девопса от необходимости уделять много внимания тонкостям работы с Python, оставляя простор для более интересных задач. Сфера деятельности библиотек — переменные окружения и запуск внешних утилит.

     23.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Простой мессенджер на tkinter, socket и threading

В этой статье я бы хотел показать как написать простое приложение мессенджер менее чем в 150 строк.

     23.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Hack The Box — прохождение Zetta. FXP, IPv6, rsync, Postgres и SQLi

Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье узнаем IPv6 адрес сервера с помощью FXP, поработаем с rsync, а также запишем ssh-ключ используя SQL-инъекцию при обработке журналов логов в Postgres.

Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)

     23.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи
     20.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Как в Python реализованы очень длинные числа типа integer?

Когда вы пишете на низкоуровневом языке, таком как С, вы беспокоитесь о выборе правильного типа данных и спецификаторах для ваших целых чисел, на каждом шаге анализируете достаточно ли будет использовать просто int или нужно добавить long или даже long double. Однако при написании кода на Python вам не нужно беспокоиться об этих «незначительных» вещах, потому что Python может работать с числами типа integer любого размера.

В С, если вы попытаетесь вычислить 2^20000 с помощью встроенной функции powl, то на выходе получите inf.

     20.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Добавление своих полей в отчет Pytest

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

     19.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи
     19.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Ансамбли нейронных сетей с PyTorch и Sklearn

Нейронные сети довольно популярны. Их главное преимущество в том, что они способны обобщать довольно сложные данные, на которых другие алгоритмы показывают низкое качество. Но что делать, если качество нейронной сети все еще неудовлетворительное?

 

И тут на помощь приходят ансамбли...

     19.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Невероятная производительность ввода-вывода с параллельным Apache Parquet на Python

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

     18.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Меню консольных команд на python

Очень часто во время работы над каким-либо проектом возникают задачи решение которых требует ввода в консоль нескольких команд, такие как, например, пересборка фронтенда, запуск/остановка нескольких docker-контейнеров, развертывание окружения на новом девелоперском компе и тому подобные вещи.

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

     18.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи
     18.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Использование faiss для поиска по многомерным пространствам

Осенью 2019 мы запустили сервис поиска похожих изображений на основе библиотеки faiss. Он помогает нам понимать, что фотографии уже встречались в другом объявлении, даже если они достаточно серьёзно искажены: размыты, обрезаны и тому подобное. Так мы определяем потенциально фейковые публикации.

 

Мне бы хотелось рассказать о тех проблемах, с которыми мы столкнулись в процессе создания этого сервиса, и наших подходах к их решению.

     18.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Настройка функции потерь для нейронной сети на данных сейсморазведки

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

Рассмотрены 2 базовых класса функций – Binary cross entropy и Intersection over Union – в 6-ти вариантах с подбором параметров, а также комбинации функций разных классов. Дополнительно рассмотрена регуляризация функции потерь.

Спойлер: удалось существенно улучшить качество прогноза сети.

     18.02.2020       Выпуск 322 (17.02.2020 - 23.02.2020)       Статьи

Как проверить навыки программирования на Python? Задачи от Яндекса

В 2019 году нам потребовалось автоматизированно проверить умение писать Python-код у сотен разработчиков. Так мы отбирали будущих студентов для Школы бэкенд-разработки. Это не то же самое, что предложить решить задачу на листе бумаги, как на собеседовании. С другой стороны, мы также не могли переиспользовать условия задач, уже подготовленные для наших соревнований по программированию. Дело в том, что соревнования с целью определить лучших из лучших — это одно, а отбор специалистов с небольшим опытом в школу — совсем другое. Нам требовались задачи, по решению которых было бы видно, обладает ли разработчик базовыми навыками написания кода и умением грамотно использовать память и время. Вот какие условия мы составили.