Обновить
512K+

Python *

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

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

Кастомные email-оповещения в Apache Airflow

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

Пролог

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

Этакое желание (каламбурное определение) – достичь чего-то невозможного или близкого к невозможному с помощью программирования.

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

Давайте почитаем-с

Как я в 35 пытался стать Python-разработчиком, и почему у меня [пока] ничего не вышло

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

Мои родители инженеры микроэлектронной техники, мой младший брат ML-разработчик уровня lead, друзья — системные и бизнес-аналитики. А я — гуманитарий. Мне не повезло. С характером, способностями, обстоятельствами, мало ли чем ещё. В какой-то момент я понял, что так больше не может продолжаться и решил в свои тогда ещё 34 года «залететь в ИТ». Выбрал курсы по Python на степике, потому что это самый популярный и довольно простой язык. Вдохновился историями «старокодящих», которые смогли. Почитал новости о диком дефиците программистов в России. И с головой ушёл в обучение.

Что могло пойти не так?

1400 строк кода без программирования: как я собрал ИИ-бота с помощью Claude

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

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

Результат превзошел мои ожидания и показал, насколько далеко продвинулись возможности ИИ в генерации кода за последний год. Видео демки:

Читать далее

Часть 2. Алгоритм Тарьяна для приведения нелинейной системы уравнений к вычисляемой последовательности подстановок

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

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

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

Читать далее

Прогнозирующие модели Python под капотом Flask

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

О взаимоотношениях фреймворка Flask, языка программирования Python и попытках футбольного прогнозирования.

Читать далее

Асинхронные увeдомления в Telegram: простое решение с новой библиотекой

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

Привет!

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

Читать далее

Как написать мод для TrackMania 2020 и не запутаться

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

Привет, Хабр! Меня зовут Вова, я разработчик в Selectel. В прошлом году серии TrackMania исполнилось 20 лет. Это игра моего детства и мне захотелось «размять свои юные олдскулы», посмотреть, что изменилось, и применить новые навыки.

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

Шесть причин выучить Julia в 2024 году

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


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

А чтобы подогреть ваш интерес, мы подготовили небольшую статью (опирались на этот материал, спасибо авторам, и добавили много тезисов на основе нашего опыта с Julia) с описанием основных причин, почему вы должны срочно заинтересоваться Julia и подать заявку на Летнюю школу. Приятного чтения!

Читать далее

Как я создал архиватор из задачки с техсобеса: сжатие файлов с помощью RLE

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

Привет, меня зовут Рома. Я работаю в отделе спецпроектов KTS на позиции Python backend-разработчика. 

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

Читать далее

Donkey.bas на Python в 170 строк

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

В этой статье я поведаю вам о своём намерении написать ремейк старой DOS игрушки Donkey.bas с использованием стандартных библиотек Python: Tkinter, Time, Random и Winsound..

Читать далее

Создание собственного API на Python (FastAPI): Подключаем фронтенд и статические файлы

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

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

- Основы создания простого приложения с использованием FastAPI.

- Основные HTTP‑запросы: POST, GET, PUT и DELETE.

- Принципы работы с Pydantic моделями и их интеграцию в FastAPI.

- Использование инструментов Alembic и SQLAlchemy для управления базой данных.

- Настройку асинхронной работы с базой данных PostgreSQL в SQLAlchemy.

- Реализацию кастомной авторизации и аутентификации в FastAPI.

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

Читать далее

Telegram вместо студии звукозаписи: как я создал бота для мобильных музыкантов

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

Привет! Я Виктор, проектный менеджер в Selectel. Последние 20 лет мое хобби — написание музыки. Выходит с переменным успехом (писать музыку, конечно), но это часть моей жизни. Сначала был Fruity Loops 3, потом Reaper, но душа всегда тянулась к «железу» и новым технологиям.

Под катом — история pet-проекта, который призван упростить жизнь мобильным музыкантам. Либо заставить технических специалистов сказать *meh* («До» малой октавы). Осторожно — внутри нейронки, музыкальное «железо» и плохой код на Python.
Читать дальше →

Как сделать доступ в личный кабинет с помощью Flet

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

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

Читать далее

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

Как наш ученик попал на стажировку в VK. История Артёма Мазура

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

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

Читать далее

Выпускные проекты участников senior-буткемпа «кодИИм» (июль 2024 г.)

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

Мы долго собирались и наконец-то дошли до Хабра. Можете нас поздравить!

Мы – «кодИИм» – проект от команды Центра педагогического мастерства (ЦПМ) и МФТИ. 

Наша команда организует буткемпы по искусственному интеллекту для подростков. Мы учим ребят создавать собственные проекты с использованием нейронных сетей, обучаем программированию, математике и анализу данных в процессе работы с ИИ. А еще мы выстраиваем коммьюнити подростков (и иногда даже взрослых). Вся обновленная информация про проекты и не только есть в нашем телеграм-канале «песочница кодИИм»!

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

Читать далее

Слияние словарей в PyTorch: зачем нужно и подводные камни

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

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

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

ResNet-18: ищем динозавров или упражнения с векторами

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

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

Читать далее

Самый быстрый фреймворк на Диком Западе: ускоряем Django-rest-framework вместе с Rust

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

Всем привет! Меня зовут Роман Кабаев, я инженер в отделе разработки инструментов тестирования компании YADRO. Вместе с коллегами мы разрабатываем собственную тест-менеджмент систему с открытым исходным кодом TestY.

На этапе запуска TestY в качестве фреймворка для разработки мы выбрали Django, так как он позволяет в максимально короткие сроки реализовать MVP. Однако развивать такой продукт — добавлять фичи, наращивать число пользователей и объем хранимых данных в системе — бывает сложно.

Мы действительно быстро запустили MVP, перевезли данные из TestRail с помощью плагинов, и команды тестирования YADRO уже более года пользуются системой. Но есть одно «но»: пользовательские сценарии разных команд сильно отличаются. Так, добавление в систему более полумиллиона тестов привело к просадке скорости работы определенных эндпоинтов, завязанных на древовидных структурах. 

Спойлер: камнем преткновения для нас стали CPU-bound задачи с большим количеством данных, о том, как я это выяснил, расскажу ниже. Изучив, как можно ускорить выполнение таких задач в Python, я протестировал несколько решений и нашел оптимальное. Если вы разрабатываете веб-приложение на Django или Python и так же, как я, хотите ускорить работу сервиса, читайте эту статью.

Читать далее

Zen of Python: история, реализация и пасхалки

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

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

Читать далее

Как работает Python Asyncio: воссоздаем с нуля

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

Автор оригинала: Jacob Padilla

Сейчас asyncio — одна из самых модных тем в Python, и это справедливо — это отличный способ обработки программ, связанных с вводом-выводом! Когда я изучал asyncio, мне потребовалось некоторое время, чтобы понять, как это на самом деле работает. Но позже я узнал, что это по сути просто очень хороший слой поверх генераторов Python. В этой статье я собираюсь создать упрощенную версию asyncio, используя только генераторы Python. Затем я собираюсь реорганизовать пример, чтобы использовать ключевые слова async и await с помощью dunder-метода __await__, прежде чем замкнуть круг и заменить свою версию на настоящий asyncio. Надеюсь, создав простую версию asyncio в конце этой статьи, вы сможете лучше понять, как он творит свою магию!

Читать далее