Обновить
565.14

Python *

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

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

Telegram-бот как системный администратор сервера

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

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

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

Читать далее

Изучение недооцененной силы Биткоин утилит: подробное руководство в Google Colab

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

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

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

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

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

Читать далее

Одномерный лес и все прочее

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

Объяснение «на пальцах» и реализация решающего дерева, случайного леса и бустинга.

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

Читать далее

KD+SM Uplift Modeling. Часть 2. T-Learner. Субпопуляции и Дивергенции

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

В предыдущей (вводной) статье мы дали определения и математическое описание базовым понятиям связанным с Uplift моделированием. Рассмотрели принцип работы популярных Uplift моделей и их недостатки, а так же установили, как мы рассчитываем итоговый инкремент \tau, дали определения контрольной Cи тестовой T группам. А так же условились, что же такое воздействиеf на пользователя u_{i}.

Среди проблем с которыми сталкиваются современные Uplif модели, пожалуй, самая серьезная - counterfactual sample pairs problem, рассмотренная так же в предыдущей статье.

Данная статься посвящена как раз нивелированию данной проблемы. Так как мы используем архитектуру KDSM Uplift modeling, то первые две буквы аббревиатуры (KD - Knowledge Distillation) представляют собой название модели, задача которой является создание подмножеств генерального множества, таким образом чтобы минимизировать или же по крайней мери свести к минимуму влияния counterfactual sample pairs problem на результат и точность итоговой модели. Само по себе слово Distillation намекает, что мы будем стремиться стратифицировать множество таким образом, чтобы можно было найти “похожих” друг на друга пользователей u_{i} и u_{j}из C (W=0) и T (W=1) соответственно, объединить их в одно подмножество, чтобы в дальнейшем можно было сделать допущение, что u_{i}и u_{j}представляют из себя уже единого синтетического пользователя u_{k}. Где пользователь u_{i} вместе с его параметрами X_{i}, Y_{i} выполняет роль пользователяu_{k}, с которым мы не взаимодействовали W=0, а пользователь u_{j} вместе с его параметрами X_{j}, Y_{j} выполняет роль пользователя u_{k}, с которым мы провзаимодействовали W=1.

Читать далее

Улучшаем свой код на Python

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

Жизнь — это бесконечное совершенствование. Считать себя совершенным — значит убить себя. (Георг Гегель)

Для кого статья:

для начинающих специалистов - подглядеть пару конструкций

для среднеопытных - порадовать свою самооценку

Читать далее

Инструмент подбора оттенков для покраски миниатюр. Часть 1: теория

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

Эта короткая статья посвящена приблизительному описанию того, что происходит в моём инструменте для смешивания красок.

Инструмент предназначен для виртуального смешения красок, он содержит солвер, генерирующий рецепты для создания цвета из имеющихся красок. Инструмент поставляется с замеренными мной данными для красок Kimera. Он написан на Python 3; в репозитории есть все исходники, и если у вас есть дистрибутив Python, то его можно просто запустить. Также в репозитории есть исполняемый файл Windows, созданный при помощи PyInstaller (см. раздел Releases справа). Ещё я добавил версию для Mac; это файл .dmg и в нём что-то есть, а если нажать на него, инструмент запустится, так что, кажется, всё работает. Но, честно говоря, я редко пользуюсь Mac, поэтому мне сложно сказать, есть ли там всё нужное, или требуется что-то ещё...

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

Ниже представлено более-менее полное описание его работы (и условия, при которых он не работает).

Читать далее

Разработка производительного распознавателя автономеров для edge-устройств

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

«Мы всего лишь хотели пофиксить баги в своем продукте, а психанули и создали аналог одной из библиотек» — CV-инженеры CodeInside.

Итак, в созданной нами системе мониторинга транспортного потока Smart Traffic System доступен функционал по распознаванию номерных знаков автомобилей.
Для работы этой функции ранее мы использовали библиотеку автоматического определения и распознавания автомобильных номеров — opensource-решение Nomeroff-net.
Однако, во время пользования этой библиотекой, столкнулись с долгим запуском и inference + библиотека занимала большое количество оперативной памяти. Так как мы решали эти проблемы в коммерческом проекте, кода здесь не будет. И вместе с тем, в статье указали репозиторий, конкретные шаги решения, чтобы при возникновении аналогичных проблем, вы смогли адаптировать его под свой проект.

Читать далее

Лучший стек для питониста-джуна 2024 (2 часть)

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

Итак, что же поменялось за чуточку больше чем полгода? Если мы будем говорить об актуальности - ничего. Django до сих пор, а скорее всего так будет и всегда, остается "на плаву". Большая часть вакансий для back-end разработчика на Python имеет в себе требования по знаниям Django. Говорить вечно о том, что он удобен, постоянно поддерживаем, дает довольно обширный функционал и так далее - бессмысленно. Все основные моменты я упомянул в первой части.

Ладно, вступление в сторону! Лучше обсудить то, что изменилось с Django за это время.

Самое грандиозное из этого - выход Django 5! По сути скачок на пятую версию не принес в фреймворк особо крупных изменений, но парочку моментов хочу подчеркнуть. Первое и самое важное, на мой взгляд, это то, что разработчики решили добавить больше асинхронности без подключения таск-менеджеров. Для этого они добавили несколько декораторов и методов. Хотя это немного, на мой взгляд, противоречит самому принципу работы Django (напоминаю: Django синхронный фреймворк и для того, чтобы сделать очередь задач, нужно подключать таск-менеджеры, например, Celery), но тем не менее, это все равно крутой шаг в эволюцию. Надеюсь, что разработчики и дальше будут двигаться в этом направлении.

Далее, не могу не упомянуть очень важный момент - совместимость с Python. Django 5 будет работать только с версиями Python 3.10 и выше. Django 4.2.x - последняя версия, которая работает с Python 3.8 и 3.9.

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

Смотреть польностью

Как в ЛАНИТ прошёл IT-мит​ап, посвященный искусственному интеллекту

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

В этом материале мы хотим поделиться подробностями о нашем первом открытом IT‑митапе проекта «Своя Среда», который был посвящен искусственному интеллекту. На мероприятии эксперты ЛАНИТ и приглашенный спикер представили технические обзоры, кейсы, практические советы, связанные с использованием ИИ, а также рассказали о трендах в этой области.

Читать далее

Некоторые антипаттерны проектирования в Django

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

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

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

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

Читать далее

Руководство по веб-скрейпингу на Python

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

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

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

Как перевести Django-сайт на разные языки: плюсы, минусы, подводные камни

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

Рано или поздно любой сервис задумывается о расширении аудитории. И часто возникает вопрос языков, т.к. единого для всех стран не существует. В целом, это довольно стандартная задача для разработчиков, когда компания начинает работать на международную аудиторию. В случае с Django, который славится универсальностью, есть стандартное решение, но действительно ли оно хорошее, как можно его улучшить и с чем вообще придётся столкнуться во время процесса — обо всём этом расскажу. Меня зовут Камиль, я более трех лет был техническим директором и главным backend-программистом продукта Zonesmart, а с начала 2023 года продолжаю управлять разработкой этого продукта уже в составе Kokoc Group.

Читать далее

Хватит использовать AI-плагины! Как получить доступ к LLM-преимуществам через API Jay Copilot

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

Меня зовут Алексей Петров, я solution-инженер в компании Just AI. Сегодня многие разработчики столкнулись с необходимостью внедрения LLM в свои корпоративные сервисы. В этой статье я попробую доказать, почему интеграция API в данном случае гораздо эффективнее использования AI-плагинов, а также расскажу о том, как интегрировать API Jay Copilot в бизнес-процессы на примере интеграции amoCRM.

Читать далее

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

Telegram Mini Apps с мгновенной оплатой

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

Инструкция, посвящённая созданию Telegram Mini Apps с вызовом окна оплаты без создания дополнительной кнопки для этого.

Telegram Mini Apps c мгновенным вызовом окна оплаты.

Читать далее

Как быстро написать API на FastAPI с валидацией и базой данных

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

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

В этой статье мы разработаем простой API с помощью самого популярного стека и FastAPI. Рассмотрим важные концепции в работе с этим фреймворком, набросаем базовую структуру проекта и развернем приложение на облачном сервере. Подробности под катом!
Читать дальше →

Как я сделал телеграмм-бота для массовых откликов на вакансии и что мне это дало

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

Началось все как у всех, с поиска работы. Изначально планировал собрать информацию об аккредитованных компаниях, чтобы в дальнейшем к ним устроиться. При поиске обнаружил, что у HeadHunter уже реализован поиск по данному критерию. Супер, но я планировал собрать контактные данные, решил ознакомиться с API HH.

Читать далее

Борьба с рутиной при написании сопроводительных писем с использованием Python

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

Всем привет! 

Не секрет, что сейчас очень сложно устроиться Python backend разработчиком. 1000 и более откликов на одну вакансию уже стало нормой. Не от 2000 как на тестировщика, но тем не менее.

Сейчас уже мало на отлично знать сам Python (в том числе ООП, итераторы/генераторы и прочее), базы данных, фреймворки Django или FastAPI, Docker, git и много чего еще. Требования к кандидатам становятся все более высокими.

Пет проектов на гитхабе уже мало, нужен коммерческий опыт от 1 года (и ни в коем случае не фриланс). Проекты обучающих курсов уже примелькались и есть подозрение, что hr уже просто на автомате увидев один из таких - скипает анкету.

И даже если это всё есть, то можно попасть под фильтр "высшее IT образование" и\или "возраст до 30 лет".

Всё это всем известно, и только некоторые чиновники и курсы по обучению программированию рассказывают про "дефицит айтишников 700_000 человек".

Претендентов на вакансии стало настолько много, что включается еще один фильтр — Сопроводительное письмо. Без которого твой отклик скорее всего потеряется среди сотен\тысяч других. Потому что конкуренция.

После очередного получасового написания одного сопроводительного письма, которое скорее всего даже не прочтут, я решил сократить время его написания.

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

Читать далее

Создание Chat-Ops бота в Mattermost на python

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

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

Компания АльфаСтрахование, как и многие другие, столкнулась с необходимостью замены используемых инструментов в связи с санкциями. За последний год мы отказались от Slack в пользу open-source аналога Mattermost, а Jira не без сложностей была заменена на Kaiten.

В нашей команде, которая занимается системой электронного документооборота в части операционных процессов, часто на голосовых встречах и при обсуждении в мессенджере Mattermost возникала необходимость накидать черновики задач в таск-трекер, чтобы потом их дозаполнить. Эта потребность наложилась на мое желание попробовать написать что-то на python, связанное с Chat-Ops.

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

Читать далее

СoverLetterEnchancer: упрощаем поиск работы с FastAPI и YandexGPT

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

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

Читать далее

Face-swap и анимация изображений сгенерированных Midjourney с использованием InsightFaceSwap и Pika

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

В этой статье рассматривается экспериментальный API для Discord ботов Midjourney, InsightFaceSwap и Pika.

Читать далее

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