Обновить
512K+

Python *

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

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

SOLID на котиках

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


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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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 мин
Охват и читатели12K

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

Плюс в резюме: оркестрация масштабных приложений для Python-разработчиков

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

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

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

Читать далее