Обновить
535.42

Python *

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

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

Werkzeug: раскручиваем arbitrary file read до RCE в веб-приложении на flask

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

В данной статье мы:
1) Создадим свое первое веб-приложение на Flask
2) Изучим, зачем нужен режим отладки?
3) Рассмотрим, как генерируется PIN для входа в интерактивной консоль Python.
4) Разберем, как можно с помощью уязвимости чтения файлов получить доступ к интерактивной консоли Python.
БОНУС) Узнаем, что же делать, если консоль была заблокирована из-за слишком большого количества попыток входа

Читать далее

Что нам стоит диаграмму в Python построить: 5 вариантов привлекающей внимание визуализации данных и кое-что ещё

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

Диаграммы помогают визуализировать как простые, так и самые сложные наборы данных. При этом диаграмм — множество видов, у каждого есть свои достоинства и недостатки. О наиболее эффектных и эффективных, реализуемых с Python, мы решили рассказать в сегодняшней подборке. Если вам интересна эта тема – просим под кат. А если у вас есть собственные предпочтения среди графиков (или вы используете что-то ещё), то пишите в комментариях, обсудим. Что же – поехали!

Читать далее

Сумки в надежных руках благодаря YOLO: проверяем охранников

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

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

Читать далее

Фундаментальные концепции переобучения и недообучения в машинном обучении

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

Этот модуль дает интуитивно понятное введение в очень фундаментальные концепции переобучения и недообучения в машинном обучении. Модели машинного обучения никогда не могут делать идеальные прогнозы: ошибка теста никогда не равна нулю. Этот провал происходит из-за фундаментального компромисса между гибкостью моделирования и ограниченным размером обучающего набора данных .

Читать далее

Сравнение нейросетей для перевода

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

С помощью GPT-4 можно решать самые разнообразные задачи по преобразованию текста, включая перевод на разные языки.

Мне стало интересно, кто переводит лучше: GPT-4 или специализированные нейронки для перевода, такие как Google Translate и DeepL?

Сегодня мы сравним качество перевода от различных нейросетей на 24 языковых парах.

Читать далее

Автоматическая рассылка сообщений WhatsApp (развитие)

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

Доброго времени суток всем!

На написание данной стать меня вдохновила эта публикация.

К сожалению, в этой статье не было способа для отправки файлов в Whatsapp и я решил поправить это.

Читать далее

Я написал одну из самых быстрых библиотек датафреймов

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

1. Вступление


У меня в портфолио есть несколько готовых пет-проектов на Rust, и я заметил, что позиция «а у нас уже получилась DataFrame?» нисколько меня не устраивает. Поэтому я подумал, не сделать ли мне элементарный контейнер, который решал бы мою конкретную задачу. Но этот проект вышел из-под контроля.

Год спустя, написав немало кода, я создал одну из самых быстрых библиотек датафреймов, применимую в Rust и Python. Вот мой первый официальный «Hello World» на polars, размещённый у меня в блоге. Надеюсь, что с помощью этого поста я смогу пояснить читателю некоторые решения, которые мне довелось принять при проектировании, и вам станет понятнее, как Polars работает под капотом.
Читать дальше →

Обучите YOLO NAS пользовательскому набору данных

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

На данный момент YOLO-NAS является новейшей моделью обнаружения объектов YOLO. С самого начала он превосходит все другие модели YOLO по точности. Предварительно обученные модели YOLO-NAS обнаруживают больше объектов с большей точностью по сравнению с предыдущими моделями YOLO. Но как нам обучить YOLO NAS пользовательскому набору данных? Это и будет нашей целью в этой статье – обучить различные модели YOLO NAS пользовательскому набору данных.

Читать далее

Пишем первый ML-пайплайн на Airflow: подробный туториал

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

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

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

План:

1. Примеры применения Airflow в проектах с машинным обучением.

2. Знакомство с Airflow: основные понятия и инструменты.

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

4. Запуск Airflow локально через Docker Compose.

5. Знакомство с веб-интерфейсом Airflow.

Код доступен на GitHub.

Читать далее

Клеточные автоматы. Игра «Жизнь». Часть 1

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

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

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

В статье мы покажем, как создать красивую симуляцию 'Жизни' на Python. Приготовьтесь к интересному исследованию!

Читать далее

Книга «Рекурсивная книга о рекурсии»

Время на прочтение10 мин
Охват и читатели9K
imageПривет, Хаброжители!

Книга «Рекурсивная книга о рекурсии» содержит примеры кода на языке Python и JavaScript, которые иллюстрируют основы рекурсии и проясняют фундаментальные принципы всех рекурсивных алгоритмов. Из книги вы узнаете о том, когда стоит использовать рекурсивные функции (и, главное, когда этого не нужно делать), как реализовывать классические рекурсивные алгоритмы, часто обсуждаемые на собеседованиях, а также о том, как рекурсивные методы помогают решать задачи, связанные с обходом дерева, комбинаторикой и другими сложными темами.

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

Единственным минимальным условием для изучения книги является наличие базового опыта программирования на языке Python или JavaScript, на которых написан код в листингах. Код в книге сведен к самой сути: если вы умеете вызывать и создавать функции, а также различать глобальные и локальные переменные — вы знаете достаточно, чтобы разобраться в этих примерах.
Читать дальше →

Propan — Python фреймворк для написания микросервисов с использованием брокеров сообщений

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

Так исторически сложилось, что последние 5 лет своей продуктовой разработки я работаю с микросервисами вокруг брокеров сообщений (преимущественно RabbitMQ и Kafka).

И все это время меня не покидало чувство некой неудовлетворенности и неполноценности инструментария, который был мне доступен.

Приходя из мира HTTP фреймворков ты чувствуешь себя как будто на костылях - ни тебе hotreload'а, который есть практически в любом wsgi-asgi сервере, хочешь тестировать - поднимай контейнеры окружения или мокай зависимости (особенно удобно в CI, ага), не забудь о реконнектах, логировании, трассировке и тд и тп.

И вот, таская от сервиса к сервису ворох всех этих проблем (и код который эти проблемы решает), до меня дошла гениальная идея: оформить весь однотипный код, общий для всех сервисов в единый пакет!

Так появился на свет фреймворк Propan.

Читать далее

Python или Java: что выбрать родителю для школьника?

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

Кто-то выберет Python, потому что в нем начало и конец класса или функции обозначается простым отступом (табуляцией), а в Java для разделения блоков кода применяют надоевшие круглые скобки. А кому-то друзья-инсайдеры в программировании посоветуют учить Java. Среди программистов популярно мнение, что новичку лучше сначала освоить компилируемый язык. Скорее всего, категорический ответ на вопрос: «что лучше java или python» дать нельзя. У каждого свои цели и своя ситуация. Поговорим об особенностях двух языков программирования, которые делают их предпочтительными в тех или иных обстоятельствах.

Читать далее

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

Правильное подключение к БД: почему, зачем и как

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


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


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


Статья рассчитана на начинающих и всех, кто интересуется этой темой.

Читать дальше →

Как поиск жилья заставил менеджера вспомнить программирование и уйти из Яндекса

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

Привет, Хабр! Я разработал помощника по поиску жилья HomeBro, который помог десяткам тысяч людей найти новый дом. Расскажу, с чем я облажался, а с чем – нет.

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

Читать далее

Sketch: искусственный интеллект на службе аналитика данных в Pandas

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

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

С вами Data Scientist и участник профессионального сообщества NTA Максим Алёшин.

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

Вот уже постепенно появляются библиотеки для Python, позволяющие использовать подобные чат‑боты прямо из Jupyter Notebooks или IDE. Сравнительно недавно вышел релиз библиотеки Sketch, которая предоставляет функции интеллектуального помощника по написанию кода для пользователей Pandas. Он, помимо прочего, понимает контекст данных, значительно повышая релевантность предложений. Библиотека доступна в PyPi и готова к использованию сразу после установки.

Больше о Sketch

Mela: асинхронный фреймворк на Python для сервисов, работающих с RabbitMQ

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

WARNING: длинная вступительная часть. Если хотите перейти сразу к делу - листайте до Getting Started.

Читать далее

Реализация функции потерь Triplet Loss в Python (функция тройных потерь)

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

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

Читать далее

Elsie: программируемые презентации

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

Как известно, существует целый ряд инструментов для создания информативных технических слайдов, и у этих инструментов есть свои недостатки. TLDR:

  • При работе с WYSIWYG-решениями (напр., PowerPoint) требуется выполнять вручную массу монотонной работы, они не слишком хорошо поддерживают подсветку синтаксиса, не предоставляют качественных инструментов для точной отрисовки сложных фигур и анимации, а также их не так просто интегрировать с контролем исходников.
  • Декларативные инструменты (напр., Beamer или reveal.js) гораздо лучше. В них серьёзно поддерживается подсветка синтаксиса, они позволяют рисовать сложные фигуры и анимацию (в особенности Beamer) и, кроме того, с лёгкостью версионируются. Правда, ни один из используемых с ними декларативных языков (ни LaTeX, ни HTML) не дают достаточной гибкости для создания по-настоящему сложных слайдов.

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

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

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

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

На связи команда по разработке риск-моделей для крупного корпоративного, а также малого и среднего бизнеса банка «Открытие» Андрей Бояренков и Кирилл Козлитин. Сегодня мы хотим поделиться с вами процессом разработки модели выявления связанных компаний на основании транзакционных данных. Пришли к нам заказчики и говорят: «Хотим по имеющимся транзакциям наших клиентов определять, кто из контрагентов является с ними связанным».

Читать далее

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