Обновить
808.79

Python *

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

Как расслабиться инженеру на работе при помощи Python?

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

Всем привет! Меня зовут Владимир Ганзюк

Работаю инженером НСИ и изучаю для себя C#, но не сталкиваясь с Python, наткнулся я как-то случайно на одну очень интересную библиотеку Pymorhp.

Pymorph – морфологический анализатор для русского языка, использует словари из OpenCorpora. Исходный код можно получить на github. Документация к библиотеке написана достаточно хорошо.

Читать далее

атизация управления ко

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

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

Здесь уже недавно были статьи про netmiko и автоматизацию управления свитчами Cisco.

Я хочу продолжить эту тему дальше в контексте взаимодействия сетевого отдела и отдела поддержки пользователей. (DSS digital site support как из называют )

Какие обычные вопросы возникают в процессе взаимодействия?

взаимодействия сетевого отдела и поддержки

Разработка бессерверного защищённого тайника для передачи сообщений

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

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

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

Читать далее

Может ли распределение Пуассона описать статистику футбольных матчей

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

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

Читать далее

Методы тестирования ПО на примере консольного приложения «Калькулятор»

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

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

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

Итак, тестирование черного ящика (Black Box). Данный метод также известен как тестирование, основанное на спецификации или тестирование поведения. Данная техника не предполагает доступа, как полного, так и частичного, к системе, т.е. она основывается исключительно на работе с внешним интерфейсом тестируемой программы. То есть мы просто изучаем спецификацию, пишем по ней тестовые сценарии, запускаем приложение и выполняем наши тесты.

Читать далее

Как студенты двигатель Стирлинга строили

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

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

Читать далее

Форматирование строк в Python

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

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

Эти методы как раз и называются - форматированием строк.

Читать далее

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

Освоение gRPC на Python: Продвинутые техники. Часть III

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

Глубокое погружение в возможности gRPC на Python: перехватчики, трассировка, рефлексия и потоки данных.

Читать далее

Hamster Kombat: автоматизация фарма и тапанья хомяка через Python с деплоем

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

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

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

Читать далее

Python. Внутреннее устройство множеств set и словарей dict. Часть 2 из 2

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

Продолжение Части 1

4. Хэш-таблицы в dict
4.1. Как компактный dict экономит место и сохраняет порядок
4.2 Алгоритм добавления элементов в компактный dict
4.3. dict с общим доступом к ключам
4.4. Практические выводы по тому как работает dict

Читать далее

Оптимизация запросов к БД на django

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

Стоит ли использовать django в 2024? Я думаю — да. DRF очень удобен, скорость разработки очень высока (особенно, если использовать generic views, django‑filters), огромное количество готовых батареек сильно облегчает жизнь и встроенная админка хорошо подходит для большинства сайтов. Полностью асинхронные фреймворки (или переход на другой язык) не дадут большого выиграша, если ваш сервис много работает в БД — вы упретесь в её производительность и ограничения количества соединений с пулом бд. Далее я вкратце пробегусь по основным моментам и дам ссылки на документацию и готовые батарейки.

Читать далее

3 года заметок в Notion: анализ и визуализация

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

Столкнувшись со шквалом задач разной степени важности, 3 года назад я принял решение начать записывать задачи в планер/to do list который было бы удобно вести и с телефона, и с ноутбука. Выбор пал на Notion, как на популярную межоперационную платформу. За время использования планера было выполнено множество разных задач, и стало интересно провести некоторый анализ того, как и на что уходило время...

Читать далее

msgspec. Библиотека для сериализации и десериализации чего угодно

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

В повседневных задачах есть множество инструментов для работы с различными форматами данных, такими как JSON, TOML, YAML и другими.

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

Читать далее

Как алгоритмы KMP и Boyer-Moore улучшают поисковые системы

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

Поисковые системы — без них не представить сегодняшний мир, они облегчают доступ к информации и улучшают пользовательский опыт. Однако, чтобы поисковая система работала эффективно, необходимы некоторые алгоритмы для обработки строк. Одни из них — Knuth-Morris-Pratt и Boyer-Moore.

Их мы и рассмотрим в сегодняшней статье, начнем с первого.

Читать далее