Все потоки
Поиск
Написать публикацию
Обновить
424.19

Python *

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

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

Сага о моделировании бизнес-процессов на базе конечного автомата (fsm)

Время на прочтение9 мин
Количество просмотров7.1K

Про конечные автоматы (finite state machine, fsm) много кто слышал, но используют их явно в реальных проектах редко. Чаще встречаются конструкции, которые поведением напоминают КА, но ими не являются.
Почему же автоматы обходят стороной и/или изобретают велосипеды, превращая код в спагетти?
По-моему, тут дело в стереотипе: мол, автоматы — это что-то сложное из теоретической математики и к реальной жизни не относится. А применять их можно только в лексических анализаторах или еще чем-нибудь специфичном.


На самом деле, область применения КА куда шире и понятнее. Давайте разберем на примере автоматизации процессов в любимом кровавом enterprise.


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

Как прогнозировать временные ряды с ETNA

Время на прочтение7 мин
Количество просмотров16K

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

[Под катом много картинок и GIF]

Читать далее

Что лучше: Spark Structured Streaming или полное прекращение работы прода?

Время на прочтение9 мин
Количество просмотров12K

Правильное построение ETL-процессов (преобразования данных) — сложная задача, а при большом объёме обрабатываемых данных неизбежно возникают проблемы с ресурсами. Поэтому нам требуется выискивать новые архитектурные решения, способные обеспечить стабильность расчётов и доступность данных, а при необходимости и масштабируемость — с минимальными усилиями.

Когда я пришел в Ozon, мне пришлось столкнуться с огромным количеством ETL-джоб. Прежде чем применить модель машинного обучения, сырые данные проходят множество этапов обработки. А само применение модели (то, ради чего существует команда) занимает всего 5% времени.

Читать далее

C/C++ из Python (Kivy, ctypes) на Android

Время на прочтение11 мин
Количество просмотров6.8K
main

Ранее я писал статью C/C++ из Python (ctypes), в ней описывается процесс запуска на Linux. На этот раз мне понадобилось повторить это уже на Android. В этой статье речь пойдет о сборке, необходимых инструментах, механизмах отладки и установки.

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

Проверка ценников в магазине с помощью YOLOv4-Tiny+EasyOCR

Время на прочтение10 мин
Количество просмотров11K

Привет всем читателям Хабра! Нас зовут Сергей и Павел, мы студенты Томского государственного университета систем управления и радиоэлектроники (ТУСУР). В прошлом году мы победили в треке “Искусственный интеллект” IV Межвузовского конкурса выпускных проектов «‎IT Академии Samsung»‎. Там мы представили проект, использующий нейронные сети для анализа информации на ценниках.

Мы распознавали ценники сети магазинов “Лента” при помощи нейронных сетей для сегментации и OCR и теперь хотим рассказать о том, как проходила работа над проектом и что мы узнали за это время.

Читать далее

Визуализация данных с помощью веб-фреймворка Dash (часть 2)

Время на прочтение3 мин
Количество просмотров5.2K

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

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

Читать далее

Разбираем алгоритмы компьютерной графики. Часть 4 – Анимация «Салют»

Время на прочтение7 мин
Количество просмотров9.2K

Еще немного в копилку красивых эффектов и алгоритмов.

Вы в своей жизни наверняка видели салют, когда в ночном небе взрывает огненный шар и от него во все стороны медленно разлетаются огни.

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

Читать далее

Профилирование Python-программ и анализ их производительности

Время на прочтение14 мин
Количество просмотров33K

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

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

Читать далее

Платим пользователям, не платим за рекламу, или подключение системы вознаграждений на сайт в 3 простых шага

Время на прочтение5 мин
Количество просмотров2.8K

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

Читать далее

Парсинг сайта с помощью PYTHON + SELENIUM

Время на прочтение5 мин
Количество просмотров78K

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

Читать далее

NODE: Нейро-ансамбли решений с забыванием для глубокого обучения по табличным данным

Время на прочтение25 мин
Количество просмотров2.4K

Аннотация

В настоящее время глубокие нейронные сети (DNN) стали основным инструментом для решения задач машинного обучения в широком спектре областей, включая компьютерное зрение, НЛП и речевое общение. Между тем, в важном случае гетерогенных (неоднородных – как по типу, форме, так и по структуре) табличных данных преимущество DNN перед частными аналогами остается сомнительным. В частности, нет достаточных доказательств того, что механизмы глубокого обучения позволяют создавать методы, которые превосходят деревья решений с выбором по росту градиента (GBDT), которые часто являются лучшим выбором для табличных задач. В этой статье мы представляем ансамбли нейронных решений без внимания (NODE), новую архитектуру глубокого обучения, предназначенную для работы с любыми табличными данными. Кратко, предлагаемая архитектура NODE обобщает ансамбли деревьев решений с забыванием (без памяти), но извлекает выгоду как из сквозной оптимизации на основе градиентов, так и из возможностей многоуровневого обучения иерархическому представлению. Проведя обширное экспериментальное сравнение с ведущими пакетами GBDT на большом количестве табличных наборов данных, мы демонстрируем преимущество предлагаемой архитектуры NODE, которая превосходит конкурентов по большинству тестовых задач. Мы используем реализацию NODE с открытым исходным кодом PyTorch и считаем, что она станет универсальной платформой для машинного обучения на основе табличных данных.

Читать далее

Разбираем алгоритмы компьютерной графики. Часть 3 – анимация «Пламя»

Время на прочтение6 мин
Количество просмотров14K

Рассмотрим алгоритм рисования простейшего пламени. Придуман он довольно давно и использовался в огромном количестве демо и игр.

Читать далее

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

«Живые» кликабельные обои на Python'е?

Время на прочтение2 мин
Количество просмотров32K

Гуляя по обширным мусорным завалам на моём рабочем слоте, я понял что ему чего-то не хватает. Так и пришла "гениальная" мысль украсить задний фон рабочего стола хоть каким либо образом. И конечно же я решил использовать питон - легко, сердито.

Читать далее

Оптическое распознавание символов с помощью Rust и WebAssembly

Время на прочтение6 мин
Количество просмотров6.4K

После переписывания Cyberscore я захотел отправить на сайт какие-нибудь результаты. Последнее, во что я играл, это Pokémon Legends: Arceus, по которой на Cyberscore есть около 3000 таблиц результатов. Я не собирался отправлять столько рекордов вручную, поэтому начал придумывать инструмент для автоматизации этого процесса.

Эта статья посвящена двум вещам: процессу извлечения результатов из JPG с помощью Rust и встраиванию этого функционала во фронтенд Cyberscore.
Читать дальше →

Создание APP для самотестирования (Python)

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

Недавно от знакомых прилетела задачка написать программу для самотестирования. Порылся в инете, думал в лёгкую найду наработки, но ничего кроме платных и бесплатных конструкторов тестов не нашёл (может плохо искал, кто знает…). Мне показалось, что устанавливать какие-то инородные проги, а потом ещё туда все вопросы ручками забивать - совсем некрасиво. Так родилось приложение для самотестирования, написанное на Python с помощью GUI библиотеки Tkinter.

Заценим!

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 4

Время на прочтение8 мин
Количество просмотров27K

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

Выявить различные геометрические примитивы (прямые, окружности).

Превратить в цепочки точек и уже их отдельно анализировать.

Описать как граф и применять к нему алгоритмы на графах.

Продолжим изучать методы предобработки. Например, изображением можно сделать контрастным:

Читать далее

Разбираем алгоритмы компьютерной графики. Часть 2 — «Туннель из демо «Second Reality»»

Время на прочтение5 мин
Количество просмотров7.5K

В 1993 году на демопати Assembly, которая проходит в Финляндии, команда Future Crew презентовала свою новую работу «Second Reality».

(хороший разбор исходников этой демо можно найти здесь же на Хабре, по этой ссылке «Анализ кода демо Second Reality»)

Графические эффекты использованные в демо, в то время производили неизгладимое впечатление. Да и сегодня эту работу можно пересматривать с большим удовольствием. Под DosBox она запускается без каких-либо проблем. Именно это демо многие кодеры называли в качестве источника вдохновения для своих работ и толчком для них самих, чтобы начать заниматься компьютерной графикой.

Сегодня мы попробуем воспроизвести один из эффектов демонстрируемых в этом демо, а именно эффект плавающего туннеля.

Читать далее

Баги в Hello World

Время на прочтение3 мин
Количество просмотров10K

Hello World, должно быть, самая часто создаваемая компьютерная программа. Уже десятилетия это первая программа, которую пишут люди, когда начинают изучение нового языка программирования.

Конечно же эта простая программа не должна иметь баги. Верно?

Читать далее

Телеграм как инструмент для оценки стоимости предметов

Время на прочтение5 мин
Количество просмотров4.7K

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

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

Пример работы этого бота можно увидеть здесь.

Читать далее

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