Constraint Programming или как решить задачу коммивояжёра, просто описав её
https://habr.com/ru/post/537492/?utm_campaign=537492&utm_source=habrahabr&utm_medium=rss
Пожалуй, наиболее популярной парадигмой программирования является императивное программирование. Но это не единственный вид программирования, широко известны функциональное и логическое программирование. Constraint Programming (Программирование в ограничениях/Ограниченное программирование) не так популярно. Но это очень мощный инструмент для решения комбинаторных задач. Вместо реализации алгоритма, который решает задачу, с последующей тратой кучи времени на его отладку, рефакторинг и оптимизацию, программирование с ограничениями позволяет вам просто описать модель в специальном синтаксисе, а особая программа (решатель - solver) найдет решение за вас (или скажет, если их нет). Впечатляет, не правда ли? Мне кажется, каждый программист должен знать о такой возможности.
https://habr.com/ru/post/537492/?utm_campaign=537492&utm_source=habrahabr&utm_medium=rss
Пожалуй, наиболее популярной парадигмой программирования является императивное программирование. Но это не единственный вид программирования, широко известны функциональное и логическое программирование. Constraint Programming (Программирование в ограничениях/Ограниченное программирование) не так популярно. Но это очень мощный инструмент для решения комбинаторных задач. Вместо реализации алгоритма, который решает задачу, с последующей тратой кучи времени на его отладку, рефакторинг и оптимизацию, программирование с ограничениями позволяет вам просто описать модель в специальном синтаксисе, а особая программа (решатель - solver) найдет решение за вас (или скажет, если их нет). Впечатляет, не правда ли? Мне кажется, каждый программист должен знать о такой возможности.
Строим надёжную конкурентность с FSP и моделированием процессов
https://habr.com/ru/post/536838/?utm_campaign=536838&utm_source=habrahabr&utm_medium=rss
Сегодня посмотрим как смоделировать программу с конкурентностью на FSP. Сначала давайте разберемся, зачем вообще нужна конкурентность. Вот что можно сделать с её помощью:
Повысить производительность многопроцессорного железа, это и называется параллелизм;
Увеличить пропускную способность приложения (вызову ввода-вывода нужно блокировать только один поток);
Сделать приложение отзывчивее за счёт выполнения основных задач параллельно фоновым (высокоприоритетный поток для запросов пользователей);
Структурировать программу, повысив её эффективность (взаимодействующие со средой программы управляют несколькими действиями и обрабатывают несколько событий).
https://habr.com/ru/post/536838/?utm_campaign=536838&utm_source=habrahabr&utm_medium=rss
Сегодня посмотрим как смоделировать программу с конкурентностью на FSP. Сначала давайте разберемся, зачем вообще нужна конкурентность. Вот что можно сделать с её помощью:
Повысить производительность многопроцессорного железа, это и называется параллелизм;
Увеличить пропускную способность приложения (вызову ввода-вывода нужно блокировать только один поток);
Сделать приложение отзывчивее за счёт выполнения основных задач параллельно фоновым (высокоприоритетный поток для запросов пользователей);
Структурировать программу, повысив её эффективность (взаимодействующие со средой программы управляют несколькими действиями и обрабатывают несколько событий).
The Real Python Podcast – Episode #43: Deep Reinforcement Learning in a Notebook With Jupylet + Gaming and Synthesis
https://realpython.com/podcasts/rpp/43/
https://realpython.com/podcasts/rpp/43/
Использование модуля tempfile в Python
https://egorovegor.ru/ispolzovanie-modulya-tempfile-v-python/
В этой статье рассмотрим модуль из стандартной библиотеки для создания временных файлов и папок в Python.
https://egorovegor.ru/ispolzovanie-modulya-tempfile-v-python/
В этой статье рассмотрим модуль из стандартной библиотеки для создания временных файлов и папок в Python.
Как определять собственные классы исключений в Python
https://habr.com/ru/post/537642/?utm_campaign=537642&utm_source=habrahabr&utm_medium=rss
Ваш интерес к новой книге "Секреты Python Pro (https://www.piter.com/collection/new/product/sekrety-python-pro)" убедил нас, что рассказ о необычностях Python заслуживает продолжения. Сегодня предлагаем почитать небольшой туториал о создании кастомных (в тексте — собственных) классах исключений. У автора получилось интересно, сложно не согласиться с ним в том, что важнейшим достоинством исключения является полнота и ясность выдаваемого сообщения об ошибке. Часть кода из оригинала — в виде картинок.
https://habr.com/ru/post/537642/?utm_campaign=537642&utm_source=habrahabr&utm_medium=rss
Ваш интерес к новой книге "Секреты Python Pro (https://www.piter.com/collection/new/product/sekrety-python-pro)" убедил нас, что рассказ о необычностях Python заслуживает продолжения. Сегодня предлагаем почитать небольшой туториал о создании кастомных (в тексте — собственных) классах исключений. У автора получилось интересно, сложно не согласиться с ним в том, что важнейшим достоинством исключения является полнота и ясность выдаваемого сообщения об ошибке. Часть кода из оригинала — в виде картинок.
[Видео] Запуск проекта на uWSGI, Django и PostgreSQL в облаке
https://pythonz.net/videos/154/
О том, как быстро создать скелет веб-проекта на Django, uWSGI и PostgreSQL, доставить его в облако и запустить там.
https://pythonz.net/videos/154/
О том, как быстро создать скелет веб-проекта на Django, uWSGI и PostgreSQL, доставить его в облако и запустить там.
StackOverflow: интересные вопросы за неделю (cclix)
http://python-weekly.blogspot.com/2021/01/cclix-stackoverflow-python-report.html
http://python-weekly.blogspot.com/2021/01/cclix-stackoverflow-python-report.html
Как быстро получить много данных от Битрикс24 через REST API
https://habr.com/ru/post/537694/?utm_campaign=537694&utm_source=habrahabr&utm_medium=rss
Нередко при работе с Bitrix24 REST API возникает необходимость быстро получить содержимое определенных полей всех элементов какого-то списка (например, лидов). Традиционный способ для этого - обращение к серверу через метод *.list (например, crm.lead.list для лидов) с параметром select, перечисляющим список требуемых полей. При этом чем больше размер списка и чем больше полей вы выгружаете, тем дольше сервер формирует ответ.
Плюс, в силу того, что информация сервером выдается постранично, существует несколько стратегий для того, чтобы получить весь список, и некоторые из них позволяют ускорять процесс на порядки по сравнению с последовательными запросами.
https://habr.com/ru/post/537694/?utm_campaign=537694&utm_source=habrahabr&utm_medium=rss
Нередко при работе с Bitrix24 REST API возникает необходимость быстро получить содержимое определенных полей всех элементов какого-то списка (например, лидов). Традиционный способ для этого - обращение к серверу через метод *.list (например, crm.lead.list для лидов) с параметром select, перечисляющим список требуемых полей. При этом чем больше размер списка и чем больше полей вы выгружаете, тем дольше сервер формирует ответ.
Плюс, в силу того, что информация сервером выдается постранично, существует несколько стратегий для того, чтобы получить весь список, и некоторые из них позволяют ускорять процесс на порядки по сравнению с последовательными запросами.
Прокачиваем скрипты симуляции HDL с помощью Python и PyTest
https://habr.com/ru/post/537704/?utm_campaign=537704&utm_source=habrahabr&utm_medium=rss
https://habr.com/ru/post/537704/?utm_campaign=537704&utm_source=habrahabr&utm_medium=rss
Нейросеть для раскрутки собачьего аккаунта в Инстаграм или робопёс в действии
https://habr.com/ru/post/537714/?utm_campaign=537714&utm_source=habrahabr&utm_medium=rss
Скрипт для раскрутки назовём для краткости "робопёс". Представим, что этот скрипт от лица собачьего аккаунта периодически собирает посты по хэштегам на собачьи темы и ставит лайки таким постам. Какая-то часть авторов этих постов заинтресуется, кто им поставил лайк, и зайдёт на страницу собачьего аккаунта. Ну а дальше, как пойдёт. Кто-то пролистает пару экранов вниз и пойдёт дальше. Кто-то поставит робопсу пару ответных лайков (что тоже неплохо, лайки увеличивают охват постов). А если аккаунт понравится (что не исключено, ибо пёс весьма харизматичен (https://www.instagram.com/g.r.o.o.o.t/)), может и подписаться.
https://habr.com/ru/post/537714/?utm_campaign=537714&utm_source=habrahabr&utm_medium=rss
Скрипт для раскрутки назовём для краткости "робопёс". Представим, что этот скрипт от лица собачьего аккаунта периодически собирает посты по хэштегам на собачьи темы и ставит лайки таким постам. Какая-то часть авторов этих постов заинтресуется, кто им поставил лайк, и зайдёт на страницу собачьего аккаунта. Ну а дальше, как пойдёт. Кто-то пролистает пару экранов вниз и пойдёт дальше. Кто-то поставит робопсу пару ответных лайков (что тоже неплохо, лайки увеличивают охват постов). А если аккаунт понравится (что не исключено, ибо пёс весьма харизматичен (https://www.instagram.com/g.r.o.o.o.t/)), может и подписаться.
Talk Python to Me: #299 Personal search engine with datasette and dogsheep
https://talkpython.fm/episodes/show/299/personal-search-engine-with-datasette-and-dogsheep
Audio
https://talkpython.fm/episodes/show/299/personal-search-engine-with-datasette-and-dogsheep
Audio
Многопоточное скачивание файлов с ftp python-скриптом
https://habr.com/ru/post/537774/?utm_campaign=537774&utm_source=habrahabr&utm_medium=rss
Однажды передо мной встала задача копирования большого количества файлов с ftp-сервера. Нужно было делать бэкап. Казалось бы, что может быть проще! Но увы, ничего готового работающего так же быстро для моих условий найти не удалось.
https://habr.com/ru/post/537774/?utm_campaign=537774&utm_source=habrahabr&utm_medium=rss
Однажды передо мной встала задача копирования большого количества файлов с ftp-сервера. Нужно было делать бэкап. Казалось бы, что может быть проще! Но увы, ничего готового работающего так же быстро для моих условий найти не удалось.
api-client 1.2.2 - гибкая библиотека для написания понятных апи клиентов
https://github.com/MikeWooster/api-client
Клиент для взаимодействия с api должен быть чистой абстракцией по сравнению с api третьей части, с которой вы общаетесь. Он должен быть простым для понимания и нести исключительную ответственность за вызов конечных точек и возврат данных. Для этого APIClient берет на себя другие (часто дублирующиеся) обязанности, такие как аутентификация и обработка ответов, перемещая этот код за пределы чистой абстракции, которую вы создали.
https://github.com/MikeWooster/api-client
Клиент для взаимодействия с api должен быть чистой абстракцией по сравнению с api третьей части, с которой вы общаетесь. Он должен быть простым для понимания и нести исключительную ответственность за вызов конечных точек и возврат данных. Для этого APIClient берет на себя другие (часто дублирующиеся) обязанности, такие как аутентификация и обработка ответов, перемещая этот код за пределы чистой абстракции, которую вы создали.
Стив пишет заклинания на Python. Обучение детей программированию в Minecraft
https://habr.com/ru/post/537202/?utm_campaign=537202&utm_source=habrahabr&utm_medium=rss
https://habr.com/ru/post/537202/?utm_campaign=537202&utm_source=habrahabr&utm_medium=rss
Миллион домашних фотографий: наводим порядок
https://habr.com/ru/post/537684/?utm_campaign=537684&utm_source=habrahabr&utm_medium=rss
После покупки цифрового фотоаппарата и рождения детей стало появляться большое количество фотографий, а учитывая, что жена с фотоаппаратом почти не расставалась и старалась запечатлеть все «важные» детские моменты, фотографий стало появляться ОЧЕНЬ много. Пришло время навести порядок.
https://habr.com/ru/post/537684/?utm_campaign=537684&utm_source=habrahabr&utm_medium=rss
После покупки цифрового фотоаппарата и рождения детей стало появляться большое количество фотографий, а учитывая, что жена с фотоаппаратом почти не расставалась и старалась запечатлеть все «важные» детские моменты, фотографий стало появляться ОЧЕНЬ много. Пришло время навести порядок.
Podcast.__init__: Driving Toward A Faster Python Interpreter With Pyston
https://www.pythonpodcast.com/pyston-fast-python-interpreter-episode-298/
Audio
https://www.pythonpodcast.com/pyston-fast-python-interpreter-episode-298/
Audio
Настройка аутентификации JWT в новом проекте Django
https://habr.com/ru/post/538040/?utm_campaign=538040&utm_source=habrahabr&utm_medium=rss
Данная статья является сборкой-компиляцией нескольких (основано на первой) статей, как результат моих изучений по теме jwt аутентификации в джанге со всем вытекающим. Так и не удалось (по крайней мере в рунете) найти нормальную статью, в которой рассказывается от этапа создания проекта, startproject, прикручивание jwt аутентификации.
https://habr.com/ru/post/538040/?utm_campaign=538040&utm_source=habrahabr&utm_medium=rss
Данная статья является сборкой-компиляцией нескольких (основано на первой) статей, как результат моих изучений по теме jwt аутентификации в джанге со всем вытекающим. Так и не удалось (по крайней мере в рунете) найти нормальную статью, в которой рассказывается от этапа создания проекта, startproject, прикручивание jwt аутентификации.
ML в реальном мире: Складская система распознавания деталей
https://habr.com/ru/post/537938/?utm_campaign=537938&utm_source=habrahabr&utm_medium=rss
Одним из проектов над которыми мне пришлось недавно поработать, стало создание складской системы для распознавания складируемых деталей. Проблема достаточно простая для понимания: на промышленном складе кладовщики, особенно новые, при поступлении новой партии, зачастую не могут с ходу понять что за детали поступили, и куда их нужно отнести.
https://habr.com/ru/post/537938/?utm_campaign=537938&utm_source=habrahabr&utm_medium=rss
Одним из проектов над которыми мне пришлось недавно поработать, стало создание складской системы для распознавания складируемых деталей. Проблема достаточно простая для понимания: на промышленном складе кладовщики, особенно новые, при поступлении новой партии, зачастую не могут с ходу понять что за детали поступили, и куда их нужно отнести.
Django 3.2 alpha 1 released
https://www.djangoproject.com/weblog/2021/jan/19/django-32-alpha-1-released/
https://www.djangoproject.com/weblog/2021/jan/19/django-32-alpha-1-released/
Есть ли жизнь без Nvidia? Запускаем TensorFlow на Radeon RX 580
https://habr.com/ru/post/538138/?utm_campaign=538138&utm_source=habrahabr&utm_medium=rss
На новом рабочем месте меня посадили за ПК, оборудованный процессором Ryzen 2600 и видеокартой Radeon RX 580. Попробовав обучать нейронные сети на процессоре, я понял, что это не дело: уж слишком медленным был процесс. После недолгих поисков я узнал, что существует как минимум 2 способа запуска современных библиотек машинного обучения на видеокартах Radeon: PlaidML и ROCm. Я попробовал оба и хочу поделиться результатами.
https://habr.com/ru/post/538138/?utm_campaign=538138&utm_source=habrahabr&utm_medium=rss
На новом рабочем месте меня посадили за ПК, оборудованный процессором Ryzen 2600 и видеокартой Radeon RX 580. Попробовав обучать нейронные сети на процессоре, я понял, что это не дело: уж слишком медленным был процесс. После недолгих поисков я узнал, что существует как минимум 2 способа запуска современных библиотек машинного обучения на видеокартах Radeon: PlaidML и ROCm. Я попробовал оба и хочу поделиться результатами.
Python Bytes: #217 Use your cloud SSD for fast, cross-process caching
https://pythonbytes.fm/episodes/show/217/use-your-cloud-ssd-for-fast-cross-process-caching
Audio
https://pythonbytes.fm/episodes/show/217/use-your-cloud-ssd-for-fast-cross-process-caching
Audio