Как стать автором
Обновить
344.65

Python *

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

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

Моделирование движения космических тел

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 324

В этой статье я подробно объясню и покажу, как написать на Python простой симулятор движения космических тел и что для этого не нужно знать.

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

Читать далее
Всего голосов 2: ↑0 и ↓2 -2
Комментарии 1

Новости

YOLO-NAS Pose: прорыв в технологии оценки позы

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 171

Модели YOLO-NAS Pose это последний вклад в область оценки позы. Ранее в этом году Deci получила широкое признание за свою новаторскую базовую модель обнаружения объектов YOLO-NAS. Основываясь на успехе YOLO-NAS, компания представила YOLO-NAS Pose в качестве своего аналога в оценке позы. Эта модель обеспечивает превосходный баланс между задержкой и точностью.

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

мониторинг движений пациентов в медицинских учреждениях,

анализ результатов спортсменов в спорте,

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

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Разработка task manager при помощи библиотек Flask и psycopg2

Уровень сложности Средний
Время на прочтение 18 мин
Количество просмотров 503

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

На связи участник профессионального сообщества NTA Владислав Рулев.

Это первый пост в серии, где я буду рассказывать, как создавал свой собственный task manager. В настоящее время используются различные инструменты для управления задачами, от электронной почты и Excel‑таблиц до специальных программ. Первый подход — письма и таблички, затрудняет отслеживание статуса задач, распределение ресурсов и общую координацию работ. Второй — готовое решение, имеет как плюсы, так и минусы.

Я же решил взять всё в свои руки и разработать task‑manager самостоятельно. Что у меня получилось — под катом.

Что же у меня получилось
Всего голосов 2: ↑0 и ↓2 -2
Комментарии 0

Как управлять состоянием телеграм-бота

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

Привет!

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

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

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

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

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 0

Истории

«Иногда лучше написать велосипед»: как тестировать кластеры Kubernetes с помощью Python

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

Сегодня Kubernetes — это основное средство для оркестрации контейнеров на рынке, поэтому их тестирование занимает особую позицию в перечне задач. Большинство тривиальных тестов можно запустить через команду kubectl, либо фреймворк Sonobuoy для тестирования сертификации версий.

Однако для сложных интеграционных тестов, которые завязаны на Kubernetes API, необходимо реализовать что-то свое. Я воспользовался клиентской библиотекой Python для Kubernetes, которая позволяет работать со всеми прелестями его интерфейса, соединил ее с PyTest и API нашего продукта — Managed Kubernetes. Что из этого вышло, показываю в статье.
Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 4

Исследование режима Copy-on-Write в pandas. Часть 2

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 1.1K

В первом материале из этой серии была объяснена работа механизма Copy‑on‑Write (CoW, копирование при записи). Там были упомянуты некоторые ситуации, в которых при выполнении кода осуществляется копирование данных. В этой статье речь пойдёт об оптимизации, направленной на то, чтобы копирование не ухудшило бы средних показателей скорости работы кода.

Мы используем подход, применяемый внутри pandas для того, чтобы избежать копирования всего объекта DataFrame в тех случаях, когда это не нужно. Этот подход позволяет повысить производительность системы.

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 1

Как улучшить тестируемость кода на примере Dependency Injection в Python

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 2.6K

В данной статьей вы узнаете о важности отделения операций ввода-вывода (т.е. сетевых запросов, обращений к базе данных и т.д.) от основной логики кода, особенностях использования Dependency Injection (внедрения зависимостей) для написания более тестируемого кода с примерами модульных тестов.

Run ►
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 0

I2C датчик INA219 + Python + Repka Pi: измеряем ток, напряжение и мощность во встраиваемых системах управления

Уровень сложности Средний
Время на прочтение 31 мин
Количество просмотров 4.7K

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

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

В этой статье мы расскажем об использовании для контроля напряжения, тока и мощности недорогого модуля GY-219 с интерфейсом I2C и чипом INA219. Вы сможете подключить его практически к любому микрокомпьютеру, где есть такой интерфейс.

В статье будет описано подключение GY-219 к отечественному микрокомпьютеру Repka PI, однако все будет работать и с Raspberry Pi. В интернете вы найдете руководства, как подключить GY-219 к любому другому микрокомпьютеру или микроконтроллеру с интерфейсом I2C.

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 15

Hidden Gem — LLava 1.5

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

Вероятно лучшая опенсурс модель для Captioning, VQA, QA и прочих задач требующих ответить на вопросы опираясь на изображения. От читателя ожидается что он знает чем отличается alpaca от vicuna и почему VIT это круто.

Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Комментарии 1

Mimesis: идеальное решение для генерации данных

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 3.5K

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

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

Читать далее
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 2

Реверс мобильных приложений на cocos2dx

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 1.6K

Хочу поделиться своим опытом в реверс инженеринге приложения на lua cocos2d-x. Файлы приложения зашифрованы xxtea, а ключи шифрования находятся в .so файле внутри приложения.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 3

Архитектуры RL: DDPG иPPO

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

Привет, уважаемые читатели Хабра!

В RL существует множество алгоритмов, каждый из которых имеет свои преимущества и недостатки.

DDPG (Deep Deterministic Policy Gradients) - это алгоритм, объединяющий в себе идеи из двух областей: DPG (Deterministic Policy Gradients) и DQN (Deep Q-Network). DDPG подходит для задач с непрерывным действием, и он стал основой к примеру для управления роботами и автономному вождению.

PPO (Proximal Policy Optimization) - это алгоритм, который сосредотачивается на обучении стратегии (policy) с учетом границ для обновлений. PPO стал популярным выбором благодаря своей стабильности и хорошей производительности в различных средах. Он также широко используется в научном обучение, ИИ героев в играх и в других областях.

Читать далее
Всего голосов 18: ↑14 и ↓4 +10
Комментарии 1

Прогнозирование временных рядов с помощью библиотеки Skforecast

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


В открытом доступе существует огромное число библиотек для построения моделей машинного обучения в Python. Самые популярные — scikit-learn, XGBoost, LightGBM, Catboost, PyTorch. Каждая из них позволяет построить регрессионную модель для прогнозирования на временных рядах, но для этого требуется преобразование данных и создание новых фичей (feature engineering).

Кроме того, временные ряды требуют своих подходов в оценивании моделей машинного обучения, так как стандартная кросс-валидация не подходит для временных данных. В этой статье мы (я + я) рассмотрим нюансы прогнозирования на практике и с помощью библиотеки skforecast.
Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 3

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

Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
HolyJS
Дата 2 – 12 ноября
Время 15:00 – 19:00
Место Санкт-Петербург Онлайн
IT Recruiting – HR Forum 2023
Дата 8 – 10 ноября
Время 9:00 – 18:00
Место Москва
HR Форум РБК
Дата 9 ноября
Время 10:00 – 16:45
Место Москва
Яндекс Backend Tour
Дата 13 – 26 ноября
Время 18:00 – 23:00
Место Москва Нижний Новгород Екатеринбург Новосибирск Санкт-Петербург Онлайн
Национальный рекламный форум
Дата 15 – 17 ноября
Время 10:00 – 19:30
Место Москва
Онлайн IT HR-конференция HR42
Дата 17 – 18 ноября
Время 10:00 – 14:00
Место Онлайн
Импульс Т1
Дата 17 ноября
Время 13:00
Место Иннополис Онлайн
HighLoad++ 2023
Дата 27 – 28 ноября
Время 9:00 – 20:00
Место Москва Онлайн
Импульс Т1
Дата 1 декабря
Время 12:30
Место Москва Онлайн

Регулярные выражения — это не трудно

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

Регулярные выражения имеют дурную славу из-за присущей им сложности. Это справедливо, но я также считаю, что если сосредоточиться на определенном ключевом подмножестве регулярных выражений, то это не так уж и сложно. Большая часть трудностей возникает из-за различных «шорткатов», которые трудно запомнить. Если не обращать на них внимания, то сам язык достаточно мал и хорошо переносится из одного языка программирования в другой.

Знать regex стоит потому, что с его помощью можно добиться очень многого, используя очень мало кода. Если я пытаюсь с помощью обычного процедурного кода воспроизвести то, что делает моё выражение, то код часто получается очень пространным, полным багов и тормознутым. Могут потребоваться часы или дни, чтобы найти альтернативное решение, а ведь можно было за пару минут написать regex.
Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Комментарии 20

Автоматизация выявления вредоноса в реестре Windows

Уровень сложности Средний
Время на прочтение 28 мин
Количество просмотров 6.7K

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

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 1

concurrent.futures в Python

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

Привет, Хабр! Сегодня мы взглянем на одну из самых интересных библиотек в Python для работы с параллельным выполнением задач - concurrent.futures.

Каждый разработчик сталкивается с ситуациями, когда необходимо выполнять задачи параллельно. Это может быть I/O-операции, которые блокируют основной поток, или вычисления, требующие большого объема процессорных ресурсов. Здесь на помощь приходит concurrent.futures - модуль, предоставляющий высокоуровневый интерфейс для асинхронного и параллельного выполнения задач.

Какие преимущества предоставляет этот модуль?

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 3

Gryffine — история одного пет-проекта

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

Как-то раз один знакомый сисадмин пожаловался мне на жизнь суровую. Он рассказал об одном инциденте в его конторе. Стоит оговориться, что контора небольшая и такой сущности как отдельный специалист по информационной безопасности там нет. Инцидент стандартный до банальности. Случайно заметили аномальную активность на линуксовых серверах. Подозрения сразу же подтвердились выводом команды who, который показал подключение по ssh с прокси-сервера с IP одной маленькой, но очень гордой страны. Дальше было то, что и положено в таких ситуациях, а именно: сменить доступы, понять откуда зараза по сети пошла, и что именно она делала. Доступы сменили, а вот когда полезли в логи, с удивлением обнаружил, что они уже несколько дней как пишутся в /dev/null, то есть у злоумышленника на сервере был root-доступ. Позже выяснили, что причиной была утечка пароля от аккаунта одного из сотрудников с доступом к sudo.

История, в общем-то, типичная, тысячи таких. Но меня она зацепила и побудила задаться вопросом: а как, собственно поймать хакера в тот самый момент, когда он попал на сервер впервые и пытается там закрепиться? Возможно, существуют enterprise-решения аудита и мониторинга входа на удалённую машину, но даже крупный бизнес с неохотой тратится на инфобез. Не говоря уже о небольших конторах с IT-отделом в 3,5 человека. Будем делать всё сами, благо в линуксах требуемая функциональность есть практически из коробки.

Читать далее
Всего голосов 25: ↑25 и ↓0 +25
Комментарии 9

Как не программист, вероятно, написал самую быструю библиотеку в мире

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

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

Что же за библиотека и зачем нужна?

Она преобразует xlsx в csv. Причём данная библиотека является совместимой с JS/TS, в ближайшее время портирую на питон.

Зачем нужна? Всё на деле просто - понадобилось мне работать с таблицами Excel. Выбор, казалось бы, очевиден - пандас. Вещь мощная, но есть у неё проблема - очень медленная. На то, чтобы открыть xlsx файл размером 600 кбайт, ничего с ним не делая, уходит порядка 0.2 секунды.

Читать далее
Всего голосов 111: ↑33 и ↓78 -45
Комментарии 152

Применение архитектурных шаблонов в машинном обучении: разбор Gradient Boosting

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 1.5K

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

Архитектурные шаблоны в машинном обучении представляют собой общие структуры и методологии, которые позволяют разработчикам более эффективно решать задачи. Они представляют собой набор bewährte Lösungen, то есть "проверенных решений", которые могут быть адаптированы к конкретным задачам и данным. Использование архитектурных шаблонов позволяет сэкономить время и ресурсы при разработке моделей машинного обучения.

Gradient Boosting – это один из наиболее мощных и гибких архитектурных шаблонов в машинном обучении. Он позволяет строить ансамбли моделей, комбинируя слабые ученики в сильную модель, способную решать разнообразные задачи классификации и регрессии. Этот метод обрел популярность благодаря своей способности обучаться на ошибках предыдущих моделей, постепенно улучшая свои прогнозы.

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

Читать далее
Всего голосов 13: ↑10 и ↓3 +7
Комментарии 2

Поможем Ходору найти новых друзей с помощью графов

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

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

На связи участник профессионального сообщества NTA Кухтенко Андрей.

В интернете постоянно что-то рекомендуют: посмотреть новое видео, добавить друга или купить товар. Как работают эти алгоритмы, расскажу в посте ниже и реализую рекомендательную систему с помощью графов.

Помочь Ходору найти друзей
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 2

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

Работа

Python разработчик
145 вакансий
Data Scientist
105 вакансий