Обновить
1024K+

Python *

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

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

Вайбкодинг реальности: Как я заставил AI переписать физику, просто пересылая сообщения между окнами

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

Привет, Хабр. Я простой сисадмин. Моя стихия — это линуксы, серверы и чтобы прод не падал.

Я не физик и не математик. Но я заядлый любитель научпопа. У меня на фоне постоянно крутятся лекции про космос, документалки про квантовую механику и математические парадоксы. Это моё хобби — мне дико интересно, как всё устроено на самом деле.

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

С этим ощущением я жил долго. А недавно я открыл для себя вайбкодинг. Это когда ты пишешь код не руками, а идеями, используешь современные IDE с AI-агентами (я юзаю Windsurf), чтобы материализовать их, просто общаясь с ассистентом. Он сам пишет код, запускает, анализирует и улучшает. От меня только согласие на запуск и критика.

Обычно я так автоматизирую рутину. Но пару вечеров назад я поймал странный вайб. Глядя на схемы Стандартной Модели физики, я подумал: «Господи, какой же это легаси-код». Куча костылей, 20+ свободных параметров, какие-то глюоны, бозоны... Это выглядит как монолит, который писали 50 лет разные команды, и никто не знает, как он работает целиком.

И тогда я вспомнил про свою навязчивую идею. Что если нет никакого зоопарка частиц, а есть одна «Ткань» (Fabric)? И всё вокруг — это деформации разного рода. Ткань изгибается, дрожит, а складки на ней буквально стягивают полотно вселенной. Это стягивание — и есть та самая масса. Та самая гравитация, искажение пространства-времени, которое тянет всё на себя.

Я решил проверить это. Но не сам (я же не умею решать уравнения поля). Я решил устроить AI-битву. Я заставил нейросети выводить законы физики за меня.

Читать далее

Магия Python: почему list — не список, а dict находит всё мгновенно

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

Каждый, кто прошел путь от print("Hello, World!") до своего первого серьезного проекта на Python, знает и любит списки и словари. Но как часто мы задумываемся, почему они работают именно так, а не иначе? Эта статья — для тех, кто готов пойти дальше поверхностного использования API и заглянуть в реализацию CPython. Мы разберем, почему list — это на самом деле динамический массив, а не связанный список, и как хеш-таблицы позволяют словарям творить свою магию с амортизированной сложностью O(1). Это знание не только интересно само по себе, но и критически важно для оптимизации производительности в высоконагруженных приложениях.

Читать далее

Тестирование в школе, или Unix-way в системе образования

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

Здравствуйте. Я не айтишник — я учитель истории с более чем десятилетним стажем. Но информационные технологии всегда были моей страстью и надёжным инструментом в работе.

В этой статье я хочу рассказать о собственном опыте внедрения системы тестирования в школьной практике. Моя программа предельно проста — она написана на Python в духе unix-way: делает одну вещь, но делает её хорошо. Опытные разработчики вряд ли увидят в ней что-то новое, но цель текста — показать, как принципы системного администрирования и инженерного мышления могут помочь в решении педагогических задач.

Читать далее

Ансамблирование BERT для анализа логов и почему вам может быть достаточно solo-модели

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

1 августа 2012 года, торговая фирма Knight Capital развернула новую версию торгового ПО SMARS. Из‑за ошибки при развертывании на одном из восьми серверов осталась старая тестовая версия кода, из‑за чего торговый робот начал неконтролируемо рассылать миллионы ошибочных заявок на покупку и продажу акций. Этот процесс длился около 45 минут и привел к убыткам в размере примерно 440 миллионов долларов — почти весь капитал компании.

​Ключевая проблема мониторинга состояла в том, что система PMON (Position Monitor) полностью полагалась на ручной мониторинг: она не генерировала автоматических оповещений и не выделяла превышение лимитов. Трейдеры Knight видели аномальную активность в логах, но не понимали контекст:

Читать далее

Все об устройстве MSK144 с примерами на Python (часть 2)

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

MSK144 — цифровой протокол, разработанный Джо Тейлором (K1JT) и его командой в 2016 году для проведения связей через метеорное рассеивание.

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

Статья может быть интересна радиолюбителям и людям, интересующимся темой цифровой обработки сигналов.

Читать далее

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

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

Привет, Хабр! Возможно, вы знаете меня по дайджестам проекта far2l, но сегодня хочу поделиться кое-чем другим. Это небольшая и очень полезная утилита и формат файлов для неё, которые родились из моей повседневной работы с AI-ассистентами (в том числе в процессе работы над тем же фаром). Штука получилась настолько удобной, что я решил поделиться ей с сообществом. Поехали!

Читать далее

Triton FP8: реализация и автотюнинг GEMM/Attention под RTX 40xx/Blackwell

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

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

Я тут на досуге решил разобраться с 8-битными числами с плавающей запятой (FP8) и попробовать написать под них свои GPU-ядра на Triton. Зачем? Ну, новые ускорители от NVIDIA обещают невиданную ранее производительность на FP8 — вдвое больше операций, чем на FP16. Для тренировки огромных нейросетей это прям манна небесная: меньше памяти, больше скорость. Но, конечно, всё не так просто.

Сам по себе FP8 формат капризный, требует тщательного подхода: два разных варианта чисел (E4M3 и E5M2), масштабирование (скейлинг) тензоров, аккуратное накопление сумм в FP16/FP32, разбиение вычислений на тайлы под размер быстрого SRAM (shared memory) и даже специальные меры против переполнения. В общем, нюансов хватает. Расскажу, что узнал и как реализовал GEMM (умножение матриц) и внимание (Attention) в FP8 на языке Triton, да ещё и с автотюнингом.

Перейти к материалу

Как гонять Claude Code (и не только) с качественными моделями задешево?

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

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

Как подключить?

Дженерики в Python, простыми словами

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

Если вы только начинаете изучать Python и слышите слово дженерики, скорее всего в голове сразу каша: «что это вообще такое?». На самом деле дженерики - это очень простая идея. Представьте, что у вас есть коробка. В коробку можно положить игрушки, яблоки, книжки - всё что угодно.

Но иногда вы хотите, чтобы в коробке лежали только яблоки. А иногда - только игрушки. И вот тут вам помогают generics.

Читать далее

Обучающий проект на одноплатнике — изучение embedded-программирования. Проект первый — простая метеостанция

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

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

Связка одноплатного компьютера с различными устройствами в виде датчиков и исполнительных механизмов является отличным образовательным инструментом, позволяющим изучать работу с датчиками, интерфейсами и осваивать программирование. А работа с одноплатными компьютерами открывает огромный интересный Мир embedded-программирования и вообще разработки, в т.ч. работы с Linux, создания собственных проектов автоматизации и систем сбора данных и погружения в IT отрасль.

Читать далее

Тихий герой воскресного утра: как bash-скрипт спас нас от OOM Killer

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

Привет, Хабр! Статья не входила в планы, пишу с чувством лёгкой сюрреалистичности. В воскресенье утром наш основной API-гейтвей пережил маленькую апокалиптическую битву с памятью и выиграл без моего участия. Делюсь с Вами, как небольшой скрипт, на который я не полагал абсолютно никаких надежд, отработал аварию.

Читать далее

Универсальный парсинг сайтов на Python: requests vs headless, токены, куки, прокси и ротация IP

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

Вы когда-нибудь радовались идеальному прототипу парсера, который у вас летал на демо-странице, а в проде внезапно начал ловить 403, 429, пустые HTML и «куда-то делись карточки»? Контент отрисовывается на JS, сервер требует токен, после смены IP, старая сессия перестаёт работать.

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

Читать далее

Как работает машина Enigma M3 (для флота)

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

Привет всем!

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

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

Читать далее

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

Subinterpreters в Python 3.14: альтернатива multiprocessing с честным мультикором

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

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

В C/C++ давно принято встраивать Python в приложения для скриптовой логики и плагинов. Именно эта экосистема много лет давала повод развивать в CPython идею нескольких изолированных интерпретаторов в одном процессе. Долгое время это было только в C-API: создаёшь новый интерпретатор через Py_NewInterpreter, живёшь с одним общим GIL и кучей глобального состояния. В Python 3.12 появилось ключевое изменение — GIL стал на-интерпретатор (каждый subinterpreter со своим GIL), но доступ был только через C-API. В 3.14 подвезли полноценный высокоуровневый Python-API: модуль concurrent.interpreters и InterpreterPoolExecutor.

Теперь можно писать параллельный код без multiprocessing, но с изоляцией уровня «почти процесс».

Дальше разберёмся, что это такое, когда это уместно вместо multiprocessing.

Читать далее

Finetuning Qwen 3 на RTX4090: полный гайд обучения LLM c помощью Unsloth

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

💡 О чём эта статья: В этой статье я разбираю, как с помощью библиотеки Unsloth обучить LLM и ускорить её обучение с LoRA/DoRA-адаптерами. Я также провёл серию экспериментов на данных по МКБ-10, сравнил качество моделей и описал тонкости экспорта в GGUF.

Читать далее

Из Excel в SQL. Имеет место быть?

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

Эта статья, скорее для ознакомления и хотелось бы получить советы по данной работе.

Итак, Excel-файл весит 500+ мегабайт, состоит из сотен тысяч строк, десятков листов и формул, которые «протягиваются» по 30+ столбцам — это не работа, а страдание. Именно с таким «монстром» я столкнулся, когда в компании собрались данные из разных отделов в один файл.

Вкратце структура файла — Лист «Массив» (Data_Lake — в левой части 34 столбца с которым работают специалисты и на котором отрабатывают основные формулы и правая часть с 46 столбцами, куда подтягиваются сырые данные, с которыми будет производиться обработка). И множеством листов со справочниками, правками.

Открытие этого Excel‑файла занимает 10 минут, а если обновить хотя бы часть формул — можно идти пить чай. Работать с такими данным и просто невозможно, особенно если тебе нужно анализировать их, строить отчёты или готовить выгрузки. Поэтому решил попробовать все перевести на PostgreSQL.

Для этого всего лишь требовалось переписать формулы с Excel на SQL. Хорошо, что большинство формул это условия ЕСЛИ, ИЛИ.

Вот самая простая формула:

Читать далее

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

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

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

Читать далее

Процедурная генерация воксельных рогаликовых уровней

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

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

Читать далее

Портирование фреймворка ROOT на архитектуру e2k

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

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

Собственная архитектура e2k с очень длинной машинной командой VLIW не позволяет отечественным процессорам Эльбрус без портирования нативно запускать программное обеспечение, в том числе и ROOT.

В статье рассмотрим "айсберг" проблем, с которыми пришлось столкнуться в ходе портирования ROOT, а такжк сферу и примеры его применения.

О портировании и тестах ROOT читайте далее

Быстрый деплой бота (и не только) на Docker-хостинге с Portainer

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

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

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

За эти два года мне в личку и в чат Telegram-канала довольно часто пишут новички и их вопросы можно разделить на две категории:

Читать далее