Как стать автором
Поиск
Написать публикацию
Обновить
535.22

Python *

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

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

Прототип для металлографа: анализ включений на Python с OpenCV и PyQt

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

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

Коммерческие программы для металловедов решают эту проблему... почти. Они избыточны, дороги, и процентов на 90 включают функции, которыми обычный инженер не пользуется. Хотелось чего-то проще, точнее и, желательно, бесплатного. Так родился мой проект SenseOptics KANV.

Читать далее

NoProp: Реальный опыт обучения без Backprop – от провала к 99% на MNIST

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

Всем привет! Обучение нейронных сетей с помощью обратного распространения ошибки (backpropagation) — это стандарт де‑факто. Но у него есть ограничения: память, последовательные вычисления, биологическая неправдоподобность. Недавно я наткнулся на интересную статью «NOPROP: TRAINING NEURAL NETWORKS WITHOUT BACK‑PROPAGATION OR FORWARD‑PROPAGATION» (Li, Teh, Pascanu, arXiv:2403.13 502), которая обещает обучение вообще без сквозного backprop и даже без полного прямого прохода во время обучения! Идея показалась захватывающей, и мы (я и ИИ‑ассистент Gemini) решили попробовать ее реализовать на PyTorch для MNIST.

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

Дисклеймер 1: Это рассказ об учебном эксперименте. Результаты и выводы основаны на нашем опыте и могут не полностью отражать возможности оригинального метода при наличии всех деталей реализации.)

Читать далее

Мифы о байесовском А/Б тестировании

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

Хабр, привет! Сегодня сравним два подхода к А/Б тестированию: байесовский и частотный. Обсудим сложности в интерпретации p-value. Посмотрим, как можно учитывать дополнительную информацию через априорное распределение. Остановим тест раньше времени и решим проблему подглядывания.

Читать далее

Как мы сделали сервис знакомств для сотрудников

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

Привет! Меня зовут Сергей. Я ведущий backend-разработчик Тензора.

В статье расскажу, как мы с hr-командой забрали хлеб у «Давай поженимся» активизировали неформальное общение в компании и реализовали сервис для знакомств.

Читать далее

Астрономия и компьютеры

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

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

Осенью на конференции так выступил российский астроном и популяризатор науки Дмитрий Вибе. А теперь мы решили, что накануне Дня космонавтики его доклад может быть интересен и читателям Хабра, даже никак не связанным с Python. Поэтому подготовили текстовую версию.

А если вы именно питонист, обратите внимание: мы уже готовим новую PiterPy, которая пройдёт 16-17 мая в Петербурге и онлайн. А если другой IT-специалист — возможно, вам подойдёт другая из наших конференций.

Далее — повествование от лица спикера.

Читать далее

Это путь воина: как я выучил Python и Go с помощью Цеттелькастена и кому точно не рекомендую метод

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

Привет, Хабр! Меня зовут Дмитрий, я работаю в YADRO. Я прошел большой путь в самостоятельном изучении языков программирования: от SQL до Go. Сначала я вообще не документировал процесс обучения, затем стал вести заметки по «академическому» принципу — писал конспекты, как в университете. Пока не открыл древовидную систему хранения данных, которая лежит в основе метода Цеттелькастен. 

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

Читать далее

Организация задач на новом уровне: интеграция Google Sheets и Telegram-бота для эффективного планирования

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

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

Меня зовут Евгений и в этой статье я хочу рассказать как я создавал свой таск - менеджер на базе Google Sheets и Telegram.

Читать далее

Как я стал core-разработчиком Python в 19 лет

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

Как я стал core-разработчиком CPython в 19 лет: История усилий и достижений

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

Читать далее

Как мы сделали одну большую песочницу для всех аналитиков

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

В мире данных и аналитики, где каждый день генерируются огромные объемы информации, создание единой платформы для работы с данными становится неотъемлемой частью успешной стратегии бизнеса. Мы команда РСХБ.Цифра, в которой я, Кристина Проскурина, руковожу управлением бизнес-анализа данных,  а Алексей Кошевой, руководитель отдела развития витрин данных «РСХБ-Интех», руководит разработкой аналитической отчетности и платформы по исследованию данных. В этой статье мы расскажем, как наша команда разработала единую песочницу для аналитиков, которая объединила все инструменты и ресурсы в одном месте, обеспечивая эффективность, удобство и возможность совместной работы.

К песочнице

Измерение покрытия API тестами на основе Swagger для Python

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

В этой статье я расскажу про swagger-coverage-tool — инструмент, который показывает, насколько полно ваши тесты покрывают API по спецификации Swagger (OpenAPI). Всё работает автоматически, без изменений в логике тестов. Поддерживаются httpx и requests, отчёт генерируется в один клик. Идеально, если вы хотите объективно видеть, что действительно проверяют ваши API автотесты.

Читать далее

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

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

Как правило, устранение пропусков — обязательный этап  предварительной обработки временных рядов. Эта небольшая работа — попытка создания инструмента оперативного подбора модели для импутации (вменения) пропущенных последовательностей.

Читать далее

HowTo: плиточная карта и календарь в DataLens

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

Хочу поделиться примером, как при помощи нестандартных техник создать виджеты, непредусмотренные на бесплатном тарифе DataLens.

Для реализации виджетов понадобится базовое знакомство с DataLens, html и python.

Код по формированию виджетов и живые примеры внутри.

Читать далее

Контроль времени в Python-тестах: freeze, mock и архитектура Clock

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

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

Время — это одна из самых нестабильных переменных в коде (и не только). Оно безжалостно к CI, случайным багам и здравому смыслу. Особенно если вы пишете логику, где участвует datetime.now(), time.time() или utcnow(): TTL, крон-задачи, дедлайны, отложенные события, idempotency-окна, подписки, отложенная отправка писем, повторная авторизация — всё это работает с временными сдвигами. И всё это будет ломаться, если не заморозить время в тестах.

В этой статье рассмотрим, как выстроить адекватную архитектуру контроля времени: от простых фиксаций до внедрения Clock-абстракции.

Читать далее

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

Успеть за 48 часа: мой опыт участия в гейм-джемах

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

В этой статье я хочу поделиться своим опытом создания визуальных новелл за ограниченное время, а также полезными ресурсами. Что у нас имеется: соло-разработчик, 48 часа, движок ren’py и сомнительные знания питона. Что вы узнаете: как это было, полезные плагины для ren’py, полезные ресурсы, как распределять время и другое.

Читать далее

Тонкости работы с логгированием в Python: краткий гайд для разработчиков

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

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

В статье рассмотрен де-факто стандарт логирования — модуль logging в Python. Я дам общие рекомендации по его настройке и опишу практики применения модуля, подходящие для большинства случаев.

Читать далее

Hi-Fi с Wi-Fi. Часть вторая: хочется мощнее

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

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

В прошлой статье я делился опытом создания портативной мини-акустики с передачей аудио по Wi-Fi вместо Bluetooth. В этой — представляю её более мощную версию. Мы напечатаем корпус, усовершенствуем скрипты, разработаем фирменное приложение для Hi-Fi трансляции звука и добавим эквалайзер в систему. Стало интересно? Тогда добро пожаловать под кат!

Читать далее

Гайд по overload: как написать один код на Python для разных бэкендов

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

Разработчики часто сталкиваются с задачами, в которых одна функция должна работать с разными типами данных и количеством аргументов. Чтобы каждый раз не создавать множество функций с разными именами, существует перегрузка (overload). Она позволяет использовать одно имя операции для обработки различных комбинаций входных данных. Благодаря перегрузке одна функция может адаптироваться под различные сценарии и делать код лаконичным и понятным. 

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

Читать далее

Три разные единицы измерения на одном графике с библиотекой Plotly

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

📊 Информативные графики с двумя осями Y и тремя разными единицами измерения в Plotly!

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

Вы узнаете:
• Как настроить вторичные оси Y и X
• Способы визуализации разнородных данных
• Техники форматирования шкал и меток
• Варианты красивого оформления мульти-осевых графиков

Читать далее

Создаем игрушечный оконный менеджер в ретро-стиле Windows 3.x на Python

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

Знакомо, правда? Да, да - это "рабочий стол" Windows 3.1, которая вышла в 1992 году. И даже если вы не из того поколения, у которого сейчас свело олдскулы, вы, я думаю, все равно хоть раз в жизни видели эту ОС (хотя бы на картинке) и не остались к ней равнодушны.

В этой статье мы напишем простенький игрушечный оконный псевдо-менеджер в стиле Windows 3.x. Использовать для этого мы будем Python и стандартную библиотеку Tkinter.

Целью статьи является не создание визуальной копии 3.x, а упрощенная реализация главной фичи Windows, которая и дала ей название - окошек. Стилизованных под 3.x, разумеется.

Читать далее

Tail-calling: разбираемся в новом интерпретаторе в CPython

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

В последнее время в моём инфополе появилось много шума вокруг нового типа интерпретатора в Python: tail-calling. Я посмотрел PR на Github, из которого понял, что [[clang::musttail]] должен ускорить рантайм на 5%. 

Ещё я почитал Соболева, но понял только то, что эта инструкция генерирует вызов метода в asm-коде как jmp, а не call, то есть экономит один стэк-фрейм — посмотреть можно тут. Но почему эти инструкции в данном случае эквивалентны и сработают в CPython — непонятно. Так что давайте разбираться вместе!

Читать далее

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