Собрали в одном месте самые важные ссылки
читайте авторский блог
Formatting and concatenating query result columns on the PostgreSQL side and then parsing them in Python might sometimes be faster than fetching the columns as separate values.
(11.04.2022 - 17.04.2022)
Мы продолжаем нашу серию статей, связанных с байесовскими методами, один из которых — Байесовские Сети Доверия (БСД). Теоретическую основу БСД вы можете найти в этойстатье.
В этой статье мы сначала вкратце вспомним теорию. Дальше будет, что называется, только хардкор: на примере данных “Титаника” мы будем строить БСД.
Table of Contents Understanding a Real-Time Object Detection Network: You Only Look Once (YOLOv1)
В один прекрасный весенний вечер мне в голову пришла прекрасная идея - попробовать зареверсить приватный API одного из самых крупных шерингов самокатов в РФ. Сразу скажу что на публикацию этого материала мне дал разрешение лично директор компании, но попросил не называть имена и название сервиса. Так же скажу что это не инструкция к действию, ведь уязвимость уже исправили и смысла пытаться её воспроизвести нет.
В предыдущей статье я рассказал о том, как получить данные о персональных тренировках из набора FIT-файлов, которые создаются при использовании носимых устройств (фитнес-браслеты, часы, смартфоны, велокомпьютеры).
В задачах распознаваниях речи при переводе аудио в текст есть дополнительные этапы, делающие этот текст более человекочитаемым. Например, предложение "привет хабр сегодня мы сделаем двадцать шесть моделей по распознаванию голоса" будет выглядеть лучше в таком виде: "Привет, хабр. Сегодня мы сделаем 26 моделей по распознаванию голоса". Другими словами, сегодня мы поговорим про то, как автоматически восстановить пунктуацию и капитализацию (сделать нужные буквы заглавными). Также упомянем денормализацию текста (при этом числа обретут свою цифровую форму обратно, эту задачу еще называют inverse text normalization).
Согласно заявлению Python Software Foundation (PSF), Python 3.11 сейчас находится в альфа-ревизии и планируется к релизу в Октябре 2022. Какие изменения ожидают нас в следующей версии?
В данной статье мы рассмотрим, как можно быстро доказать следующие утверждения, смотря на один и тот же источник данных:
Лошади бегают по часовой стрелке быстрее чем против.
Лошади бегают против часовой стрелки быстрее чем по часовой.
Лошади бегают на более дальние дистанции быстрее (с большей скоростью), чем на короткие.
Лошади бегают на более дальние дистанции медленнее (с меньшей скоростью), чем на короткие.
Это продолжение статьи Ирина — опенсорс русский голосовой помощник. Offline-ready. Расскажу, что поменялось за два месяца с момента прошлой статьи.
Как театр начинается с вешалки, так анализ начинается с данных. Во многих науках существуют уже готовые датасеты, однако урбанистике с этим повезло меньше остальных. Современный человек утолил свой голод, излечился от болезней, познал тайны атомного ядра и вселенной - пора наверно и обустроить городское пространство вокруг себя? Но для начала его следует изучить.
Финансовая отчетность (ФО) — штука предельно ответственная. Получаемая от бизнеса ФО постоянно нужна банку для организации повседневной деятельности. Но процесс получения важной для нас отчётности омрачается тем, что работа с ФО — это монотонный неэффективный конвейер, на поддержание которого банковские служащие тратят тысячи человекочасов. ВТБ использует электронные инструменты получения ФО, такие как: ФНС, 1С, Коробочное решение распознавания. Это основные направления развития, но сегодня они не покрывают всю потребность в клиентской ФО.
В 2015 году, когда я пришёл на своё текущее место работы, мне было непривычно от необыкновенной свободы действий. Буквально, на новом месте можно было проявить весь творческий потенциал как DevOps-евангелиста. Мне нравилось выстраивать процессы, автоматизировать рутину, делать разработку удобной. Больше всего я люблю оптимизации, а больше всего ненавижу - рутину.
Эта история одной боли и попытке не просто "принять обезболивающее", а реально излечить её. Поэтому готовьтесь переварить лонгрид.
Некоторое время назад я писал про альтернативные возможности, как можно добавить в django асинхронность (есть официальный подход, изложенный в DEP-09). С тех пор у меня получилось оформить свои идеи в нечто относительно цельное, что вылилось в vinyl project. Описание проекта читайте на гитхабе, здесь же я хочу рассказать о его интересных особенностях.
Для работы HFT необходимы очень маленькие задержки. Поэтому при внедрении ML модели нужно учитывать ограничения на время расчёта признаков. Есть много докладов и статей на тему ускорения расчётов на pandas. Сюда можно отнести и pandarallel, и dask, и polars. Ребята из Intel даже рассказывали на прошлом PyCon-е про modin. Все эти инструменты работают при больших объемах данных. Но что делать, если количество строк меньше 1000 или даже 100? В данном докладе хочу осветить несколько тем: Почему так важна низкая задержка при hft Какие возможны оптимизации для снижения количества расчетов Numpy Structured arrays как замена Pandas DataFrame Вспоминаем математику и ещё немного сокращаем количество операций.
Вы уверены, что приходящие к вам данные соответствуют вашим ожиданиям? Добавим немного определённости в нашу жизнь с помощью Pydantic. В своём докладе я расскажу о том, как сериализовать и валидировать данные и почему это важно. Поделюсь тем, как мы значительно упростили процесс поддержки и парсинг параметров production приложения. И как использование Pydantic помогло нам: улучшить структурированность параметров, настроить версионирование и проверку в CI текущей схемы на наличие изменений, получить автоматическое построение документации параметров минимальными усилиями. И в целом расскажу о преимуществах, недостатках и полезных особенностях Pydantic. Как уйти от работы со словарями к классам. А также затрону нетривиальные возможности и случаи использования.
Рекомендации Авито — это первое, что видит пользователь, когда попадает на главную страницу. Нагрузка на наш основной сервис — порядка 200 тысяч запросов в минуту. За последние два года мы сильно улучшили качество рекомендаций, но сильно проиграли в latency. Главным врагом производительности и latency стало добавление ML модели второго уровня на основе CatBoost для ранжирования объявлений от базовых ML моделей первого уровня в реалтайм. В докладе я расскажу: Как мы приняли решение переписать все на Go, перед этим мы выжали из Python все, что смогли; Как подружили CatBoost с Go и стали использовать ML модель на основе CatBoost в Go; Что получили по latency и потреблению memory/cpu.
Все мы привыкли, что Redis простой инструмент, который прекрасно подходит для кеширования в формате Key-Value. Однако в нём есть более весёлые структуры данных, которые могут сделать нашу жизнь веселее и приятнее. Залезем в кроличью нору и найдём в документации списки, хеши, множества и другие структуры. Покажу несколько кейсов из реального продакшена, где эти структуры полезны и как использовать их особенности себе на пользу. Строим свой велосипед на двух колёсах.
Доклад поможет раскрыть несколько важных моментов, которые помогут написать тесты дешево, быстро и правильно: Общая архитектура приложения, при которой удобно использовать интеграционные тесты Общая архитектура тестов Использование pytest и mocker На реальном примере покроем приложение сначала юнит-тестами и убедимся, что такой подход к тестированию не совсем корректный и в итоге пропускает ошибки в функционале. Параллельно посмотрим, что наличие исключительно интеграционных тестов тоже несет не всегда позитивные последствия. На примере доклада рассмотрим подход к разработке, который находится между TDD и "разработал и после покрыл тестами". Помимо всего прочего, сможем посмотреть, как можно тестировать код на максимальную глубину, даже захватывая базовые классы Слушатели смогут убедиться, что высокий процент покрытия тестами — это не всегда хорошо. А так же смогут понять, что разработка и параллельное тестирование собственного кода — это сбалансированный подход в плане качества кода, стоимости разработки. Мы сможем посмотреть на реальном примере, что писать тесты с хорошей архитектурой не так сложно и долго.
На питоне можно писать так и эдак, но когда ты в команде, кто-то "старший" решает, как лучше это делать. Вы могли слышать, что "этот код не питонячий", "так на питоне не пишут". Стоит разобраться почему. Я совсем недавно открыл для себя функциональное программирование, и мне понравился этот стиль. В основном композиция функций на языке Хаскель. Так как мой основной стек это Python, я предполагал, что такое можно сделать и на нем. Но почему все используют императивный подход в разработке и внедрить в свой рабочий проект новые идеи очень сложно. Если все таки захотим использовать функциональный стиль, с какими проблемами можем столкнуться? Если честно, в питоне мало фичей для ФП, но можно использовать диалекты, с помощью которых ваш код будет декларативным и более читаемым для людей. Но есть свои недостатки, которые нельзя игнорировать. В своем докладе я предлагаю познакомиться с этой темой и, возможно, вы отметите для себя что-то интересное.
Как разработать систему распознавания рыб на конвейерной ленте, имея на руках только видеозаписи рыб с ленты, raspberry pi и python. При этом хотим близкое к real-time быстродействие системы на rpi и не сойти с ума. Требования к модели: уметь отличать рыбу от остальных предметов, определять вид рыбы, положение рыбы на ленте (головой в сторону движения или хвостом, хребтом вправо или влево), брак. В данном докладе хотелось бы рассказать слушателям про путь в данной задаче: Поиск похожих решений: их достоинства и недостатки, Как формировали собственное решение: Детекция - Сегментация - Выбор моделей, Разметка, Обучение, Первые попытки и интеграции, Попытки обучить «легкие» модели и переразметка имеющихся данных.
Speeding Up Data Retrieval From PostgreSQL With Psycopg
Миф о чистых данных: почему ваш аналитик похож на сапёра
Участвуем в онлайн розыгрышах. Уровень: программист
Talk Python to Me: #487: Building Rust Extensions for Python
Сводка от pythonz 24.11.2024 — 01.12.2024
AJAX-запросы в Django на примере простейшего приложения сбора и показа сообщений
moka-py - эффективное кэширование с помощью Rust
django-github-app - toolkit for GitHub App
Squashing Django Migrations Easily
The Practical Guide to Scaling Django