Обновить
785.27

Python *

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

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

Как мы в МТС создали библиотеку для работы с графовыми нейронными сетями

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

Привет, Хабр! Меня зовут Диана Павликова, я работаю ML-инженером. Часто к нам приходят задачи, когда нужно повысить качество работы модели там, где обычными способами это сделать уже не получается. Мы решили применить что-то новое, поэтому обратились к теории графов и написали CoolGraph — open source библиотеку для работы с графовыми нейронными сетями. В этой статье я расскажу, как мы пришли к идее ее создания, как графы помогают улучшить результат, какую архитектуру мы выбрали и для каких задач подойдет этот инструмент. Все подробности — под катом. 

Читать далее

SOLID на котиках

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


Каждый программист хоть раз слышал о принципах SOLID. На собеседованиях и экзаменах в вузах многие из нас пытались вспомнить, о чем же был тот самый принцип Лисков. Однако вряд ли цель преподавателей и интервьюеров — заставить нас заучивать строчки из учебников. SOLID действительно помогает писать качественный код, когда во всем разберешься! Если вы этого еще не сделали, добро пожаловать под кат. Еще раз взглянем на то, как устроены всем известные принципы. Обещаю — без духоты, все рассмотрим на примерах с котиками.
Читать дальше →

Кратко про библиотеку mlfinlab: инструмент для финансового ML

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели2.1K

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

Сегодня мы рассмотрим такую замечательную библиотеку как mlfinlab.

Если вы пытались применить методы машинного обучения к финансовым данным, то наверняка сталкивались с массой подводных камней: от шумных данных до проблем с автокорреляцией. mlfinlab — это библиотека, которая реализует передовые техники из книги Маркоса Лопеса де Прадо "Advances in Financial Machine Learning". Она позволяет не изобретать велосипед, а использовать проверенные временем методы для решения сложных задач финансового ML.

Читать далее

Кластеры и мир: хроника высокодоступного Pub/Sub в Redis

Уровень сложностиПростой
Время на прочтение22 мин
Охват и читатели7.2K

В статье рассматриваются основные принципы и особенности использования Redis в режиме Pub/Sub для масштабируемых и высоконагруженных приложений. Описаны два подхода к обеспечению высокой доступности — Redis Sentinel и Redis Cluster, их преимущества, ограничения и примеры настройки. Приведены примеры использования Pub/Sub в реальных системах, а также практические конфигурации и код для настройки отказоустойчивого кластера Redis. Статья предназначена для разработчиков, которые ищут решения для создания надежных систем обмена сообщениями с высокой производительностью и отказоустойчивостью.

Читать далее

Предиктивная аналитика политических кризисов с помощью machine learning (на исторических данных)

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели2.2K

Допустим, вы инвестор-финансист, покупающий государственные облигации банановой республики или акции компании по выращиванию и поставке бананов или даже правитель бананового рая – всегда необходимо учитывать не только финансовые, но и политические риски в развитии страны. Представим, что наша основная задача - оценить риски. Просто, цинично, в стиле real politic без всякой душеспасительности и ... котиков.

Читать далее

PinkHash: Незабываемые розовые хеши

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели1.7K

Розовый хеш — это как розовый слон, только хеш.

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

К эндокринологам и многомерным антихристам

WorkStarter: утилита для автоматизации запуска программ при старте Windows

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

Привет, Хабр! 👋 Хочу поделиться небольшим проектом, который я разработал для решения личной задачи. Возможно, кому-то он тоже пригодится.

Что это такое?

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

Основные возможности
- 🖥️ Автоматический запуск программ
- 🌐 Открытие веб-сайтов
- ⏱️ Настройка задержки для каждой задачи
- 🎨 Графический интерфейс для управления задачами
- 🔧 Хранение конфигурации в JSON-формате

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

WorkStarter состоит из двух основных компонентов:

1. WorkStarter Configuration - графический интерфейс для настройки задач.
2. WorkStarterAgent - фоновый процесс, который запускается при старте системы и выполняет настроенные задачи.

Конфигурация хранится в файле config.json в пользовательской директории приложения.

Технические детали

Проект написан на Python с использованием следующих библиотек:
- PyQt6 для создания графического интерфейса
- asyncio для асинхронного выполнения задач
- appdirs для управления директориями приложения

Установка и использование

1. ⬇️ Скачайте последнюю версию WorkStarter
2. Запустите установщик и следуйте инструкциям
3. После установки запустите "WorkStarter Configuration" из меню "Пуск"
4. Добавьте нужные задачи через графический интерфейс
5. WorkStarterAgent будет автоматически запускаться при старте системы

Ограничения и планы на будущее

На данный момент утилита работает только на Windows и имеет ограниченный функционал. В будущем планируется:

Читать далее

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

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели5.5K

В этой небольшой статье мы научим нейросеть решать задачу умножения перестановок длины 5 (группа S_5) и визуализируем результаты обучения с помощью методов проекции t-SNE (с понижением размерности PCA) и алгоритма UMAP. Мы убедимся в том, что даже элементарная модель может "неосознанно" провести бинарную классификацию перестановок.

Читать далее

Сложность алгоритмов и типичные ошибки в Python

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели8.8K

Всем привет! Я расскажу, что такое сложность алгоритмов и откуда она берётся, разберу типичные заблуждения и самые частые ошибки новичков. Материал рассчитан в первую очередь на начинающих Python-разработчиков, а также на тех, у кого Python — первый язык программирования.

Читать далее

Компьютерные курсы для подростков: 50+ бесплатных видеоуроков

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели4.6K

Хотите обучиться разработке игр, трехмерному моделированию, дизайну в веб-среде или программированию? Может, интересует создание сайтов? Готовы помочь! Если одно из данных IT-направлений интересует, рекомендуем сегодняшнюю подборку: собрали 50+ видеоуроков, которые помогут сделать первые уверенные шаги самостоятельно даже начинающему школьнику.

Какие видео нами собраны:

- Кодинг на языке «Питон» (13 роликов);

- Разработка на движке Unity (15);

- Трехмерное моделирование в программе «Блендер» (11);

- Веб-дизайн в Figma (10);

- Веб-разработка с использованием HTML, CSS и JavaScript (7).

Выбирайте интересующее вас направление и смело приступайте к просмотру видео. Обещаем, что обучение в формате самостоятельных занятий будет нескучным. Это обусловлено минимумом теории и наглядными проектами, выполненными и записанными на видео преподавателями школы Pixel. Достаточно повторять за ними, чтобы получить результат. Заинтересовали? Тогда приступим. 

Читать далее

Создаём свой реестр данных на основе ФГИС «Аршин». Часть 1 — добавляем данные в PostgreSQL и сокращаем размер БД

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели4.4K

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

Читать далее

Pydantic 2: Полное руководство для Python-разработчиков — от основ до продвинутых техник

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

Друзья, сегодня мы погрузимся в мир Pydantic 2 – мощного инструмента для валидации данных в Python! Узнаем, почему эта библиотека стала незаменимой в 30% Python-проектов и как она упрощает работу с данными. От базовых концепций до продвинутых техник – мы охватим всё, что нужно знать современному Python-разработчику. Готовьтесь к практике – ведь только так можно по-настоящему освоить Pydantic и сделать ваш код более надёжным и эффективным.

Читать далее

Встроенные механизмы безопасности фреймворков Python

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

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

Python, будучи одним из популярных языков программирования, предлагает множество фреймворков, каждый из которых должен быть защищен и иметь встроенные механизмы безопасности либо возможности для встраивания этих механизмов. В этой статье попробуем разобраться, какие возможности действительно предоставляют фреймворки, рассмотрим механизмы безопасности и способы их настройки на примере распространенных фреймворков: Django, FastAPI и Flask.

Читать далее

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

Жаль, что мы не умеем обмениваться файлами

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели3.5K

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

Читать далее

Wolfram Natural Language Understanding или спасение для студентов

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели4.2K

Wolfram — крутая штука. Сколько школьников получило из-за него пятерку, а сколько студентов зачет, не сосчитать...

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

Хоть скопируй лабораторную по физике...

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

Языковая модель (NLU) — разгадка.

Читать далее

Готовим SQLAlchemy правильно

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели5.3K

ORM были призваны восполнить пробел между объектно-ориентированными языками программирования, которые предоставляют разработчикам возможность работать с сущностями путем обращения к их интерфейсам, определяемым их чертежами (интерфейсы, классы, структуры), и процедурным подходом, реализуемым движками SQL-серверов. В некоторых случаях сюда же пытаются включить и адаптеры NoSQL хранилищ, вроде MongoDB, но конкретно с ней сильно проще, поскольку документ и так, в целом, предствляет из себя вполне себе сносно организованный объект с полями, маппинг которых в объекты языка программирования весьма тривиален, по сравнению с SQL.

Другая проблема, которую пришлось решать ORM в процессе решения первой — сформировать инструмент, который позволил бы составить правильный SQL-запрос в терминах языка программирования, при этом постараться не потерять в доступных "в сыром виде" средствах выражения на соответствующем SQL-серверу диалекте.

Читать далее

Архитектура и реализация виртуальной машины CPython

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели3.5K

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

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

Читать далее

Как настроить ежедневную сводку о работе Яндекс.Директа в Телеграм?

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели1K

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

Разберем, как автоматизировать сбор статистики и отправлять ежедневные отчеты в Telegram с помощью Python. Основная цель — помочь оперативно и точно оценивать эффективность рекламы за текущий период. Для этого мы используем средние показатели рекламы за 7, 30 и 90 дней, чтобы данные были объективны и при этом отражали общую картину.

Читать далее

Mount — ещё один способ уменьшения размера Docker-образа

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели11K

Делюсь лайфхаком по уменьшению размеров Docker-образов. Как-то нам попалась на поддержку и развитие CRM-система, написанная на Ruby...

Обновили Ruby-пакеты и под них код, написали Dockerfile. Первая сборка была удручающей: образ в 2Гб. Это нормальный размер, если ты собираешь образ с Torch и другой ML-штуковиной, но CRM - нет. В результате дальнейших действий, удалось сократить размер образа до 200Мб.

Cделали следующее, чтобы сократить размер

Как пакет с пакетами помог аналитику решить задачу для бизнеса, или keep calm and import statsmodels

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели1.3K

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

Читать далее