Обновить
829.42

Python *

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

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

wxpython. Доступность еще доступнее

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

Хотя многие приложения все больше переходят в разряд WEB, я хочу в данной статье поднять тему о прикладном ПО.

А точнее о замечательной библиотеке GUI wxpython, которая является оберткой над WX Widgets.

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

А самое главное — она самая доступная в плане accessibility.

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

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

10 полезных практик для ML-разработчиков на Питоне

Время на прочтение7 мин
Охват и читатели5.8K
Порой, будучи дата саентистами, мы забываем за что нам платят. А платят нам за то, что мы в первую очередь разработчики, потом исследователи и, возможно, математики. Наша основная обязанность при этом состоит в том, чтобы быстро создавать работоспособные решения для бизнеса.

Тот факт что мы создаем модели не делает нас особенными. Это не дает нам права писать плохой код.

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

Змеиный сахар или пишем свой range в JavaScript

Время на прочтение2 мин
Охват и читатели6.7K
Многие любят Python… Новички восщищаются отсутствием точек с запятой, а продвинутые радуются действительной простотой. Сегодня речь и пойдет о том, как в JavaScript реализовать подобие той самой простоты Python, а конкретно функцию range.

В Python по функции range можно итерировать или, например, преобразовать в массив — list(range(begin, end)).

Но вопрос в том, можно ли мощностями JavaScript создать что-то подобное и при этом, чтобы решение выглядело нативным и простым?

Первое, что приходит в голову — написать подобный класс:

function range(from, to, step = 1){
    this.current = from
    this.to = to
    this.step = step

    this.next = () => (this.current += step) % to
}
Читать дальше →

Django: один пользователь для всего

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

Проблема


Всем привет. При разработке API для очередного веб-портала я взял свой привычный стек:


  • Django
  • django-rest-framework

Но в этот раз стояла довольно непривычная задача — сделать одну User модель, которая может иметь несколько разных профилей (Исполнитель, Заказчик). И наличие каждого из профилей дает разные полномочия на работу с одними и теми же ресурсами.


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


Итак, опишем возникшие перед нами проблемы:


  1. Один пользователь – несколько профилей.
  2. Как организовать права каждого из профилей.
  3. Доступ к одним тем же ресурсам от разных профилей.

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

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

Вставить массив numpy в базу данных MySQL через Python

Время на прочтение2 мин
Охват и читатели5.6K
Если Вы столкнулись с проблемой, что не можете нормально сохранить массив numpy в базу данных MySQL, то эта заметка для Вас! Оригинал поста опубликован в моем блоге.

Я выбрал для себя способ сохранения через модуль pickle. С помощью него Вы спокойно сохраните массив numpy любой размерности в blob-е базы MySQL.
Читать дальше →

Как выбрать лучший инструмент автоматизации для вашей работы в Revit. Дизайнеры против программистов

Время на прочтение3 мин
Охват и читатели13K
Новые средства автоматизации выводят планирование на новый уровень развития.

Какой инструмент позволит нам сэкономить тысячи часов за счет автоматизации процессов BIM в Revit?


На данный момент у нас есть 4 варианта для автоматизации работы в Autodesk Revit:



  • Dynamo (графическое программирование с открытым исходным кодом)
  • Rhino.Inside (бета-версия, с Кузнечиком это как Динамо)
  • PythonShell или pyRevit (Python с Revit API)
  • C # (C # с Revit API)

На графике я собрал свои мысли на эту тему:



Эта диаграмма может помочь вам объяснить менеджерам, в каких случаях и что необходимо применять при автоматизации планирования учитывая параметры скорость_работы/размер_задачи/наличие_визуализации.
Читать дальше →

3D ML. Часть 2: функции потерь в задачах 3D ML

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


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


В этой заметке мы поговорим о том, какие функции ошибки (Loss functions) алгоритмов используются в 3D ML, какие из них можно использовать в качеств метрик качества (metrics), а какие — в качестве регуляризаторов (regularizers).

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

Жесткий цигун с условными знаками или зачем нужен geometry generator

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


Требования заказчика к условным обозначениям на картах кажутся вам нереальными? Дальше вы узнаете, как с помощью geometry generator, QGIS и Python сделать так, чтобы ваши условники были лучше всех.

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

Книга «Генеративное глубокое обучение. Творческий потенциал нейронных сетей»

Время на прочтение5 мин
Охват и читатели7.5K
image Привет, Хаброжители! Генеративное моделирование — одна из самых обсуждаемых тем в области искусственного интеллекта. Машины можно научить рисовать, писать и сочинять музыку. Вы сами можете посадить искусственный интеллект за парту или мольберт, для этого достаточно познакомиться с самыми актуальными примерами генеративных моделей глубокого обучения: вариационные автокодировщики, генеративно-состязательные сети, модели типа кодер-декодер и многое другое.

Дэвид Фостер делает понятными и доступными архитектуру и методы генеративного моделирования, его советы и подсказки сделают ваши модели более творческими и эффективными в обучении. Вы начнете с основ глубокого обучения на базе Keras, а затем перейдете к самым передовым алгоритмам.

  • Разберитесь с тем, как вариационные автокодировщики меняют эмоции на фотографиях.
  • Создайте сеть GAN с нуля.
  • Освойте работу с генеративными моделями генерации текста.
  • Узнайте, как генеративные модели помогают агентам выполнять задачи в рамках обучения с подкреплением.
  • Изучите BERT, GPT-2, ProGAN, StyleGAN и многое другое.
Читать дальше →

PyTrace — Time Travel Debugger для Python

Время на прочтение2 мин
Охват и читатели7.2K
Мне часто приходится сталкиваться с отладкой.

Иногда я ставлю точку останова, но понимаю что уже слишком поздно, и надо начинать все сначала.

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

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

Возможно ли лучше понимать запутанный код? А что, если мы сможем понимать такой код, быстрее чем тот, кто его написал?

Встречайте,

PyTrace — это трейсер с возможностями Time-Travel Debugging-а

image

Эволюция монолитного приложения в микросервисы

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

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


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


  • В первой части будет рассмотрено монолитное приложение на веб-фреймворке Dash, т.е. генерация данных и их отображение будут находиться в одном месте.
  • Вторая часть посвящена разложению монолитного приложения на микросервисы, т.е. генерацией данных будет заниматься один сервис, отображением другой, а связь между ними будет налажена через брокер сообщений Kafka.
  • В третьей части микросервисы будут "упакованы" в Docker контейнеры.

Конечное приложение будет выглядеть, как показано на диаграмме снизу.


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

Простое распознавание лица «на лету» в Django

Время на прочтение2 мин
Охват и читатели6.1K
Доброго дня!

Меня зовут Соболев Андрей и сегодня мы с вами создадим простую «плюшку» к Django, которая будет проверять, что на фотографии именно лицо человека (что бывает полезно в куче ситуаций).

Для этого нам понадобится OpenCV и 5 минут свободного времени. Поехали.
Читать дальше →

Детектор приседаний на OpenCV и Tensorflow

Время на прочтение5 мин
Охват и читатели11K
В эпоху заточения хорошо заниматься физкультурой, но вот беда — не все домашние с этим согласны, так что приходилось прикладывать некоторые усилия. Работать надзирателем однако хотелось не очень, потому как надо было собственно работать, а пущеный на самотек спортивный процесс, наблюдаемый в лучшем случае одним глазом, заимел тенденцию скатываться в халяву.

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

Начать было решено с приседаний. Фундаментальное движение, с явными состояниями, большой амплитудой, в общем, идеальный выбор.
Читать дальше →

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

Анализируем шедевры живописи с помощью классического ML

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


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

Вооружившись самодельным парсером под покровом ночи я ворвался в онлайн галерею и вынес оттуда почти 50 тысяч картин. Давайте разберем, что интересного с этим можно сделать, используя только классические ML инструменты (осторожно, трафик).
Читать дальше →

Стажировка аналитиком в Яндексе: разбор тестовых задач

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


Привет, Хабр!

Однажды, штудируя очередную книгу по пресловутой Data Science, я пришел к мысли, что пора бы применить накопленные знания на практике и увидеть жизнь отдела аналитики своими глазами. К моему счастью, Яндекс запустил отбор на полугодичную стажировку по соответствующему направлению, и я не мог пройти мимо. Приём заявок 2020 уже закончился, поэтому в этой статье я с чистой совестью разберу задачи, которые Яндекс предлагал решить соискателям на первом этапе. Будет и код на Python. Спойлер: сложно, но интересно.
Читать дальше →

Zero Inbox. Гайд по наведению порядка в почте

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

Моему почтовому ящику на gmail много лет. Более десяти лет самостоятельного существования, а также в нем лежат архивы из других почтовых систем. Все эти годы я использовал его так как и нужно использовать умные продукты:


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

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


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


gmail inbox
^^ Это не настоящий скрин моей почты. Просто картинка для превью.

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

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

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



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

Краткий обзор NLP библиотеки SpaСy

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

Обработка естественного языка(Natural Language Processing — NLP) сегодня становится очень востребованной, так как людям несомненно проще общаться с машинами также, как они общаются с людьми.


image


Поэтому сейчас, вместе с быстрым развитием этой области, всё больше сервисов используют NLP: чат-боты, в которых больше не нужно выбирать готовые ответы, голосовые ассистенты, электронная почта, чтобы автоматически сортировать письма и так далее. В этом посте я хочу рассказать об относительно новой Python библиотеке SpaCy, которая стала, если не индустриальным стандартом, как кричат заявляют сами создатели на сайте библиотеки: https://spacy.io/, то как минимум одним из самых популярных и удобных решений. Приятного чтения!

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

Как мужик квазигруппы искал (или Учи Python, а то будешь руками работать)

Время на прочтение4 мин
Охват и читатели4.2K
Совсем немного теории

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

$A$ $B$ $C$
$B$ $C$ $A$
$C$ $A$ $B$

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

Что посмотреть на карантине? Подборка материалов от Технострима (часть 6)

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

Продолжаем нашу подборку интересных материалов (1, 2, 3, 4, 5). На этот раз предлагаем послушать курс о введении в анализ данных и новый выпуск ток-шоу для айтишников «Oh, my code» с Павлом Dzirtik Щербининым.

Вклад авторов