Обновить
1024K+

Python *

Высокоуровневый язык программирования

691,53
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Управление зависимостями в Python: сравнение подходов

Время на прочтение12 мин
Охват и читатели31K
image

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

К сожалению, в Python-сообществе нет универсального понятия «хорошей архитектуры», есть только понятие «питоничности», поэтому архитектуру приходится придумывать самим. Под катом — лонгрид с размышлениями об архитектуре и в первую очередь — об управлении зависимостями применимо к Python.
Читать дальше →

Django 3.0 будет асинхронным

Время на прочтение29 мин
Охват и читатели30K

Andrew Godwin опубликовал DEP 0009: Async-capable Django 9 мая, а 21 июля он был принят техническим советом Django, так что можно надеяться, что к выходу Django 3.0 успеют сделать что-нибудь интересное. Он уже упоминался где-то в комментариях Хабра, но я решил донести эту новость до более широкой аудитории путём его перевода — в первую очередь для тех, кто, как и я, не особо следит за новостями Django.



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


По мере развития экосистемы стало очевидно, что, хотя нет насущной необходимости расширять Django для поддержки отличных от HTTP протоколов, таких как вебсокеты, поддержка асинхронности даст много преимуществ для традиционной model-view-template структуры Django.


Преимущества описаны в разделе «Мотивация» ниже, но общий вывод, к которому я пришёл, заключается в том, что мы получим так много от асинхронного Django, что это стоит того большого труда, который потребуется. Я также считаю, что очень важно делать изменения итеративным, поддерживаемым сообществом путём, который не будет зависеть от одного-двух старых контрибьюторов, которые могут выгореть.

Осваиваем компьютерное зрение — 8 основных шагов

Время на прочтение3 мин
Охват и читатели121K
Привет, читатель.

Для тебя уже не является новостью тот факт, что все на себе попробовали маски старения через приложение Face App. В свою очередь для компьютерного зрения есть задачи и поинтереснее этой. Ниже представлю 8 шагов, которые помогут освоить принципы компьютерного зрения.

image

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

Мелкая питонячая радость #8: мелкие удовольствия для работы с БД

Время на прочтение3 мин
Охват и читатели19K

Беглый опрос коллег на моем текущем проекте показал, что при словах "ORM и работа с БД" в подавляющем большинстве случаев звучат слова "Алхимия" и "Django ORM". Знания этих двух слов, в общем, достаточно, чтобы писать чистый, аккуратный и рабочий код. Но расширение инженерного кругозора пока еще никому не вредило, поэтому сегодня мы добавим в нашу картину мира несколько (возможно, до этого дня незнакомых) классных штук для работы с БД.


Читать дальше →

5 главных алгоритмов сэмплинга

Время на прочтение4 мин
Охват и читатели37K


Работа с данными — работа с алгоритмами обработки данных.


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


Эта статья посвящена наиболее распространённым способам сэмплинга при работе с данными.

Читать дальше →

NVIDIA Jetson Nano: тесты и первые впечатления — часть 2, тесты AI

Время на прочтение6 мин
Охват и читатели13K
Привет, Хабр.

В первой части была рассмотрена NVIDIA Jetson Nano — плата в форм-факторе Raspberry Pi, ориентированная на производительные вычисления с помощью GPU. Настала пора протестировать плату в том, для чего она создавалась — для AI-ориентированных расчетов.



Рассмотрим, как идут на плате разные задачи, вроде классификации изображений или распознавания пешеходов или котиков (куда же без них). Для всех тестов приведены исходники, которые можно запустить на десктопе, Jetson Nano или Raspberry Pi. Для тех, кому интересно, продолжение под катом.
Читать дальше →

Математическое расследование, как подделывали выборы губернатора в Приморье 16 сентября 2018 года

Время на прочтение19 мин
Охват и читатели98K
Во втором туре выборов губернатора Приморского края 16 сентября 2018 года встречались действующий и.о. губернатора Андрей Тарасенко и занявший второе место в первом туре коммунист Андрей Ищенко. В ходе подсчета голосов на сайте ЦИК РФ отображалась информационная панель с растущим числом обработанных протоколов и голосов за кандидатов.

Публикация подробных данных по участкам на официальном сайте ЦИК www.izbirkom.ru замерла после ввода 1484 (95.74%) протоколов и не возобновлялась до самого конца. Поэтому когда в трансляции лидер голосования вдруг поменялся с Ищенко на Тарасенко, было неясно, как именно это могло произойти. В СМИ просто писали «после обработки 99,03% протоколов лидер сменился».

Однако, располагая промежуточными суммарными данными из информационной панели, с помощью простой математики и программирования можно подробно установить, что именно происходило с протоколами в ночь после выборов. Используем Python, Colab от Google и Z3 theorem prover от Microsoft Research. Ну и добьём всё обычной дедукцией.


И что же там можно расследовать?

Получить выписку из Росреестра через ФГИС ЕГРН и python. Часть 1

Время на прочтение4 мин
Охват и читатели16K

Дешевые выписки, что может быть лучше ?


У Романа Андреевича Карцева есть неплохой монолог про раков вчерашних по 5 руб. и сегодняшних по 3-и. Будем считать, что прошлый пост был про раков по 5 руб. Так как выписка из ЕГРН по 300 руб., хоть и автоматизированная не каждому по карману, если речь идет о массовых запросах.

В этот раз рассмотрим как получить тот же результат, потратив 400 руб. за 100 выписок из ЕГРН. Наша программа будет выполнять нехитрые манипуляции, заходить на сайт, заполнять за нас все необходимые поля при подаче запроса в Росреестр. Как и в прошлый раз мы не будет использовать api Росреестра.

О декораторах в Python

Время на прочтение3 мин
Охват и читатели18K

Всем привет!


Перевод статьи подготовлен для студентов курса «Web-разработчик на Python». Интересно развиваться в данном направлении? Запишитесь на День Открытых Дверей курса и пообщайтесь вживую с преподавателем: онлайн-трансляция 23 июля в 20:00 по мск.!



Когда вы упражнялись в программировании на языке Python, вы, должно быть сталкивались с таким понятием, как декораторы. Они являются одним из самых элегантных и часто используемых инструментов в современных библиотеках и фреймворках. Декораторы — хороший способ инкапсулировать множество деталей реализации, оставляя на поверхности простой интерфейс.

Читать дальше →

Деплоим ML проект, используя Flask как REST API, и делаем доступным через приложение на Flutter

Время на прочтение5 мин
Охват и читатели11K


Введение


Машинное обучение уже везде и, пожалуй, почти невозможно найти софт, не использующий его прямо или косвенно. Давайте создадим небольшое приложение, способное загружать изображения на сервер для последующего распознавания с помощью ML. А после сделаем их доступными через мобильное приложение с текстовым поиском по содержимому.


Мы будем использовать Flask для нашего REST API, Flutter для мобильного приложения и Keras для машинного обучения. В качестве базы данных для хранения информации о содержимом изображений используем MongoDB, а для получения информации возьмём уже натренированную модель ResNet50. При необходимости мы сможем заменить модель, используя методы save_model() и load_model(), доступные в Keras. Последний потребует около 100 Мб при первоначальной загрузке модели. Почитать о других доступных моделях можно в документации.

Читать дальше →

Отчет с PyDaCon meetup в Mail.ru Group, 22 июня

Время на прочтение3 мин
Охват и читатели4.3K


В конце июня, в московском офисе прошел митап на котором собрали 2 секции: доклады по Python, состав которого был сформирован на основе общего списка докладов к PyCon Russia и PyData-трек от PyData Moscow meetup. Под катом собрали презентации, записи докладов и небольшие комментарии.

Подборка рабочих примеров обработки данных

Время на прочтение4 мин
Охват и читатели14K
Привет, читатель.

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

Схема работы с текущим постом унаследуется от моего поста про лучшие блокноты по ML и DS, а именно — сохранил в закладки → передал коллеге.

+ бонус в конце статьи — крутой курс от ФПМИ МФТИ.

image

Итак, давайте приступим.

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


Suicide Rates Overview 1985 to 2016 — сравнение социально-экономической информации с показателями самоубийств по годам и странам.

Примеры обработки:

Читать дальше →

Простое шифрование текста — кортежем цифр, с регулированием сложности

Время на прочтение1 мин
Охват и читатели4.8K

Github


https://github.com/denisxab/SHISH

Захотелось сделать очень простое криптографическое приложение для текста, вдруг будет такая необходимость.

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

Сам ключ храниться в .json поэтому отправить, посмотреть, редактировать его просто.

Как это работает ?


  1. Создать ключ.
  2. Поделиться ключом.
  3. Написать текст в окно «Закодировать» нажать на кнопку.
  4. Отправить текст из окна «Декодировать».

Из за особенности tkinter он отвечает не list а обычным str и поэтому каждый отступ в окне «Декодировать» важен.
Пример

Ближайшие события

NVIDIA Jetson Nano: тесты и первые впечатления

Время на прочтение5 мин
Охват и читатели102K
Привет, Хабр.

Относительно недавно, в этом, 2019 году, NVIDIA анонсировала одноплатный компьютер совместимого с Raspberry Pi форм-фактора, ориентированный на AI и ресурсоемкие расчеты.



После его появления в продаже, стало интересно посмотреть, как это работает и что на нем можно делать. Стандартные бенчмарки использовать не так интересно, так что придумаем свои, для всех тестов в тексте приведены исходники. Для тех, кому интересно что получилось, продолжение под катом.
Читать дальше →

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

Время на прочтение10 мин
Охват и читатели27K

Развивая тему конспектов по магистерской специальности "Communication and Signal Processing" (TU Ilmenau), продолжить хотелось бы одной из основных тем курса "Adaptive and Array Signal Processing". А именно основами адаптивной фильтрации.


Для кого в первую очередь была написана эта статья:

1) для студенческой братии родной специальности;
2) для преподавателей, которые готовят практические семинары, но ещё не определились с инструментарием — ниже будут примеры на python и Matlab/Octave;
3) для всех, кто интересуется темой фильтрации.


Что можно найти под катом:

1) сведения из теории, которые я постарался оформить максимально сжато, но, как мне кажется, информативно;
2) примеры применения фильтров: в частности, в рамках эквалайзера для антенной решетки;
3) ссылки на базисную литературу и открытые библиотеки (на python), которые могут быть полезны для исследований.


В общем, добро пожаловать и давайте разбирать всё по пунктам.


Читать дальше →

Решение задания с pwnable.kr 05 — passcode. Перезапись таблицы связей процедур через уязвимость форматной строки

Время на прочтение7 мин
Охват и читатели5.3K
image

В данной статье разберем: что такое глобальная таблица смещений, таблицей связей процедур и ее перезапись через уязвимость форматной строки. Также решим 5-е задание с сайта pwnable.kr.

Организационная информация
Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:

  • PWN;
  • криптография (Crypto);
  • cетевые технологии (Network);
  • реверс (Reverse Engineering);
  • стеганография (Stegano);
  • поиск и эксплуатация WEB-уязвимостей.

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

Вероятность того, что 2 шахтёра имеют одинаковый мир

Время на прочтение2 мин
Охват и читатели7.2K
Всем привет! Недавно меня заинтересовал вопрос: «может ли быть такое, что 2 игрока в Minecraft имеют один и тот же одиночный мир?»
Читать дальше →

Пишем простую нейронную сеть с использованием математики и Numpy

Время на прочтение8 мин
Охват и читатели35K

Зачем очередная статья про то, как писать нейронные сети с нуля? Увы, я не смог найти статьи, где были бы описаны теория и код с нуля до полностью работающей модели. Сразу предупреждаю, что тут будет много математики. Я предполагаю, что читатель знаком с основами линейной алгебры, частными производными и хотя бы частично, с теорией вероятностей, а также Python и Numpy. Будем разбираться с полносвязной нейронной сетью и MNIST.
Читать дальше →

Безумный конвертер GIF'ок в анимированные стикеры для Telegram

Время на прочтение5 мин
Охват и читатели59K
Вместо тысячи слов...


xZibit тоже рад, ведь здесь GIF вставлены в стикеры, чтобы быть вставлеными в GIF для КДПВ!

А теперь о подробностях реализации.
Читать дальше →

Kubernetes Operator на Python без фреймворков и SDK

Время на прочтение7 мин
Охват и читатели14K


Go на данный момент является монополистом среди языков программирования, которые люди выбирают для написания операторов для Kubernetes. Тому есть такие объективные причины, как:

  1. Существует мощнейший фреймворк для разработки операторов на Go — Operator SDK.
  2. На Go написаны такие «перевернувшие игру» приложения, как Docker и Kubernetes. Писать свой оператор на Go — говорить с экосистемой на одном языке.
  3. Высокая производительность приложений на Go и простые инструменты для работы с concurrency «из коробки».

NB: Кстати, как написать свой оператор на Go, мы уже описывали в одном из наших переводов зарубежных авторов.

Но что, если изучать Go вам мешает отсутствие времени или, банально, мотивации? В статье приведен пример того, как можно написать добротный оператор, используя один из самых популярных языков, который знает практически каждый DevOps-инженер, — Python.
Читать дальше →