Обновить
615.35

Python *

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

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

Как with делает ваш Python-код безопаснее и читабельнее

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

Если вы пишете на Python хотя бы пару месяцев, вы наверняка сталкивались с конструкцией with open(...) as f:. Это как ритуал, который мы совершаем, чтобы открыть файл: удобно, понятно, и все говорят, что так надо. Мы интуитивно чувствуем, что это "правильный" способ, потому что он избавляет нас от головной боли с ручным закрытием файла через f.close().

Читать далее

Новости

Адский эксперимент: личный сайт на нищих микросервисах

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

Микросервисы тут, микросервисы там… Из каждого утюга доносится дивный сказ про прекрасный мир микросервисов. А ведь это всего лишь один вид из десятка архитектурных стилей, который имеет свои достоинства и недостатки.
В этом эксперименте мы внедрим микросервисы в личный сайт, нарушив ключевые принципы DDD. Я создам антипаттерн «бедных сервисов» (Anemic Domain Model) и покажу, чем опасен прямой доступ к данным между микросервисами.
Эта статья о том, что за прекрасным внешним видом, большой функциональностью, высокопроизводительным исправным кодом может скрываться абсолютное зло.

Читать далее

Развитие Telegram-бота для VPS: Docker, i18n и планы на будущее

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

Telegram-бот для администрирования VPS tgbotvpscp получил модульную архитектуру, полную поддержку английского языка, возможность установки в Docker и десятки улучшений. Рассказываю, что сделано и что будет дальше: WebUI, CLI и архитектура «агент-нода».

Читать далее

Разведочный анализ текстовых данных (EDA for text data)

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

В этой статье будет рассказано про разведочный анализ текстовых данных (EDA). Рассмотрим основные методы и этапы от проверки данных и анализа частотности слов до тематического моделирования. Также разберем применение EDA для конкретных задач NLP, таких как классификация текстов и извлечение сущностей (NER/POS). Весь рассказ будет сопровождаться кодом на Python.

🔥 Начинаем 🔥

Надоело включать VPN для Zwift? История создания reZwift с серверами в России

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

Последние пару лет я регулярно слышал от знакомых велосипедистов одни и те же жалобы на Zwift: "Опять не работает Zwift", "20 евро каждый месяц дорого".

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

В статье рассказываю:

• Как реализовал серверную обработку интеграций (Garmin, Intervals.icu) для работы без VPN
• Почему выбрал Flask и как интегрировал его с протоколом Zwift
• Как организовал AES-256 шифрование учетных данных
• Какие проблемы возникли с неофициальным Garmin API
• Как сделал современный UI на чистом CSS без React
• Метрики производительности и планы развития

Технический стек: Flask, SQLite, Cryptography, Garth, Jinja2, CSS3.

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

Читать кейс полностью

Использование «ленты данных» для пред- и пост-обучения иностранным языкам

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

«Хабр» уже, явно, перегружен идеями по более эффективному изучению иностранных языков. Однако, похоже, это тема из разряда «вечных». Так что, и мы продолжим этот путь в вечность.

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

Из  древности нам пришло много мудрых фраз, например: «Пришёл, увидел, победил!». Если спроецировать её на освоение иностранного языка, то, «пришёл» это возникновение мотивации для изучения нового языка. «Победил», это выучил язык, применяя ту или иную технологию «победы», в данном случае, метод изучения. И, «увидел» это предварительное знакомство с изучаемыми данными.

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

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

Вопрос только, как именно предварительно начинать учить и каким образом повторять предыдущий материал?

Другими словами, до начала собственно процесса обучения (по любому методу) – есть смысл сделать предобучение, на уровне предосмотра осваиваемой темы учебника, учебного пособия, самоучителя п тому подобное.

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

Читать далее

Vision Lab: Сайт для удобной разметки и обучения моделей YOLO

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

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

Читать далее

Сначала логика, потом код: как писать программы для ESP на MicroPython

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

В прошлой статье  мы дали голос нашему ESP32 — научили его отправлять уведомления в Telegram и ntfy. Теперь, когда устройство умеет "говорить", пришло время научить его "думать" и работать самостоятельно, без постоянного контроля.

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

В реальном проекте недостаточно просто уметь отправлять уведомления — нужно понимать:

Когда их отправлять (чтобы не спамить).

Что делать между уведомлениями.

Как не зависнуть через неделю работы.

Куда девать ограниченную память ESP32.

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

Читать далее

Код, за который не стыдно: Практика чистописания для начинающих Python-разработчиков

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

Каждый из нас хотя бы раз в жизни писал код, который можно описать фразой: «Ну, оно как-то работает, лучше не трогать». Мы наспех добавляем костыль, чтобы успеть к дедлайну, оставляем переменную с именем data2 или пишем функцию на 200 строк, обещая себе вернуться к ней «позже». И знаете что? Это «позже» никогда не наступает.

Читать далее

BitnetEnv 2077 — через боль и бубны к новой эре DevOps для Bitrix

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

Я — Bitrix-разработчик со стажем 8+ лет.
Начинал дружить с битрой ещё с версии 12 — когда всё было максимально квадратно, можно сказать что я тот самый "проженный" битриксоид, а любой деплой превращался в ночной марафон из консоли, логов и bash-скриптов.

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

Поэтому я переписал его заново — на Python + HTML5 + Vanilla JS.
Без bash-магии запрещенной в хогвартсе и с прозрачной архитектурой собрав все года боли общения в единую точку невозврата возрождение Битрикс!

Читать далее

Как не положить API: rate limiting в Python

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

История о том, как я случайно устроил DDoS на внутренний API, обрабатывая 10 миллионов векторов. И как asyncio.Semaphore меня спас.

Читать далее

WhatsApp Web и Telegram коннектор для Bitrix24: наш опыт реализации и внедрения. Часть 3 — Подключение к Bitrix24

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

Привет, мир! Меня зовут Павел, я IT инженер и руководитель службы технической поддержки.

Эта статья - финальная третья часть инструкции по внедрению коннектора WhatsApp и Telegram для Открытых линий CRM Bitrix24. С реализации коннектора вы можете ознакомиться в первой и второй частях, а в этой статье мы рассмотрим процесс настройки коннектора со стороны Bitrix24.

Читать далее

ATOM: автоматизация сети ЦОД начинается с решения рутинных задач

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

ATOM: автоматизация сети ЦОД начинается с решения рутинных задач

Всем привет! Это наша первая статья про нашу систему автоматизации. Мы активно занимаемся разработкой системой автоматизации и визуализации АТОМ для сетей ЦОД в компании Ростелеком, о которой пойдёт речь.

Читать далее

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

Как мы воскресили русский NLP и сократили потребление памяти на 90%

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

Как мы воскресили русский NLP и сократили потребление памяти на 90%

Форкнули четыре ключевых библиотеки русского NLP (pymorphy, razdel, slovnet, natasha), которые не обновлялись годами. Сократили потребление памяти на 90%, ускорили загрузку в 30 раз, повысили точность токенизации с 70% до 95%. Всё работает offline, 100% совместимо с оригинальными API. Экосистема MAWO — production-ready инструменты для работы с русским текстом.

Помните ли вы тот момент, когда открываешь проект для обработки русского текста и видишь знакомую картину? В requirements.txt красуется pymorphy2, последний коммит в репозитории датирован 2015 годом, Python 3.12 ругается на deprecated методы, а production ждать не будет. Знакомо? Тогда эта история для вас.

Читать далее

OpenAI ModerationAPI: примеры использования

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

Всем привет!

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

Чтобы понять суть проблемы, представим ИИ в виде ребёнка, который знает правила, но может поддаться на уговоры. Злоумышленник здесь выступает в роли «дяди с конфеткой»: он находит способы убедить модель нарушить установленные ограничения.

Недавно в нашем Telegram‑канале «Код на салфетке» мы опубликовали подробный разбор того, как можно попытаться обойти встроенные ограничения ИИ. Такие попытки обхода называют джейлбрейком (jailbreak). Это термин из сферы IT, который изначально использовался для обозначения взлома защитных механизмов мобильных устройств, а теперь применяется и к ИИ.

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

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

Читать далее

Домашняя векторная БД + RAG

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

Часто приходится искать в огромной куче документов какую нибудь частную, специфичную вещь. На данный момент, только лично у меня более 2Gb различных pdf файлов. Зачастую разбросанных не системно. И хотя обычно представляешь где искать, но это отнимает время. Захотелось иметь инструмент ускоряющий поиск.

Читать далее

Особенности Python, о которых вас точно спросят на техническом собеседовании. Часть 2

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

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

Первая часть этой статьи вызвала оживлённое обсуждение. В комментариях читатели делились собственным опытом, напоминали о тонкостях, которые я упустил, и задавали отличные уточняющие вопросы. В этой части я продолжу разбирать очередные «подводные камни» в Python. 

Как и раньше, я не буду разбирать заезженные вопросы вроде «чем отличается список от кортежа». Вместо этого — разберём реальные особенности Python, на которых строятся самые коварные задачи и вопросы.

Читать далее

Я устал кликать по HH — отдал это Gemini и получил 7 инвайтов за 3 дня

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

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

Давайте честно, поиск работы — это ад. Я инженер и я ненавижу рутину. А поиск работы — это 90% тупого кликанья.

Открыть 50 вкладок — 50 раз написать «Здравствуйте‑ меня заинтересовало...» — 50 раз скопировать‑вставить. Это выжигает.

Можно конечно написать автокликер, который будет спамить «пустышками». Но рекрутеры не дураки — такие отклики летят в мусор. А «ручной» режим‑ это 3–4 часа в день.

Я понял — что должен быть третий путь. Не просто автоматизация — а умная автоматизация.

Читать далее

Библиотека Python для доступа к данным ЦБ: cbrapi

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

cbrapi - бесплатная библиотека с открытым исходным кодом на Python, которая превращает сложное взаимодействие с SOAP API Центрального банка Российской Федерации в простой и понятный инструмент.

Читать далее

Как я написал монитор пампов для биржи: от API до Telegram-уведомлений

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

На многих биржах остаются монеты маленькой и средней капитализации - периодически их пампят. В хороший день 10-15 монет могут дать рост больше чем на 50%.

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

Читать далее
1
23 ...

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