Обновить
256K+

Python *

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

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

Человек между агентом и кнопкой: почему слой подтверждения — это такая сложная инженерия

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

Мой агент дошёл до состояния, когда я перестал читать письма перед отправкой. Между «агент решил» и «письмо ушло» не было ничего — ни паузы, ни человека, ни записи о произошедшем.

Слой подтверждений выглядит как день работы: таблица, кнопка «одобрить», кнопка «отклонить». Я вёл каталог отказов, пока его делал. К релизу в нём было 66 пунктов. Разбираю пять, которые почти всегда переживают первую версию, и показываю, почему 100% покрытия по ветвям ничего не гарантируют.

Читать далее

Мы отключили интернет — и ML‑конвеер сломался. Кто всё это время ходил в сеть?

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

Меня зовут Павел, я разрабатываю и ML-решения в R77.AI. На одном из проектов мы перенесли ML-пайплайн в закрытый контур — и обнаружили, что без интернета привычные библиотеки работают совсем не так, как ожидаешь.

Читать далее

Вгрызаемся в память World of Warcraft: дрифт ценой в 20 гигабайт

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

Разбор одной инженерной задачи: как приложение рядом с игрой читает чат прямо из памяти процесса, почему первый способ это делать сжигал половину ядра и что пришло ему на смену. Тема — память чужого процесса, строка, которая не стоит на месте, и мёртвая копия, неотличимая от живой.

Читать далее

DeepSeek управляет вашим рестораном

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

Как просьба друга «настроить кассу» закончилась open-source ERP, тринадцатью российскими интеграциями и нейросетью, которая теперь считает закупки, ищет косяки в учёте и пишет владельцу в Telegram.

Есть у меня друг. Назовём его Артём.

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

Примерно за месяц до открытия Артём пришёл ко мне с классической фразой:

— Слушай, тыжепрограммист. Помоги систему настроить. Ну чтобы касса, кухня, заказы — всё нормально работало.

Если вы когда-нибудь были «тем самым знакомым программистом», то примерно понимаете, чем обычно заканчивается слово «помоги». Сначала задача выглядела просто: выбрать что-нибудь вроде iiko, поставить, настроить и забыть.

В итоге я полез смотреть, как вообще устроен ресторанный софт, перебрал несколько систем, остановился на open source, русифицировал его, прикрутил российские кассы, банки, 1С, маркировку, агрегаторов доставки, а потом зачем-то решил, что обычной автоматизации мне уже мало.

Так в ресторане появился DeepSeek, который скоро заменит Артема, а может и всех остальных. Сам будет заказывать еду, сам кушать... ну это я отвлекся.

Сразу важный момент. Я не писал ресторанную ERP с нуля. Это был бы отличный способ потратить много времени и получить плохую кассу. Я взял готовую open-source систему и начал допиливать её под конкретный ресторан. И вот здесь всё стало интереснее.

Читать далее

Как парсить сайты за Cloudflare

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

Если вы пытались спарсить сайт на Cloudflare через Selenium или Playwright и упёрлись в бесконечный «Verify you are human» — дело не в вашем коде. Дело в том, что Cloudflare палит автоматизацию браузера ещё до того, как отработает первая строчка JS‑скрипта.

Читать далее

RAG‑система для анализа новостей с позиций исторической личности на основе литературных источников «АЙ_Ленин»

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

Широкое распространение СМИ в сети привело к формированию группы тематических экспертов — лидеров общественного мнения — блогеров. Их задача — оценка и анализ фактов, подача информации через призму собственного мнения.

Закономерно, мысленное упражнение, как человек, оставивший след в истории, оценил бы тот или иной современный факт.

Читать далее

Более 100 000 вакансий: полный анализ IT‑рынка России в 2026 году. Кто нас на самом деле нанимает?

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

Привет, Хабр! (И тебе, IT-шник, который хочет разобраться, что в 2026 вообще здесь происходит? Сейчас разберёмся, но легче тебе от этого не станет).

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

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

Читать далее

Проверил семь советов по повышению видимости в нейросетях. Не сработал ни один

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

Я проверил семь советов по видимости в нейросетях на 73 страницах, которые модели сами поставили в источники. Я прогнал каждый совет через две группы страниц из собственных логов и посчитал разницу точным тестом Фишера: 34 страницы против 39, различие по авторству 100% против 82%. Это лишь эксперимент на небольшой выборке, но всё же.

Читать далее

Mojo 1.0 вышел из бета-тестирования. Что это за язык программирования и зачем он нужен

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

Python давно стал почти стандартным инструментом для машинного обучения, анализа данных и научных задач. Однако в вычислительно сложных проектах его производительность быстро становится ощутимым ограничением. Поэтому под привычными NumPy, PyTorch и другими инструментами значительная часть вычислений выполняется компонентами на C, C++ или CUDA. Особенно заметно это становится, когда готовых библиотечных функций недостаточно и высокопроизводительные операции приходится писать самостоятельно.

Несколько лет назад за решение этой проблемы взялась компания Modular, представившая Mojo — новый язык, внешне очень похожий на Python, но построенный иначе. Первую публичную версию показали в 2023 году, после чего проект довольно быстро менялся, а некоторые его конструкции успели исчезнуть или несколько раз поменять форму. Теперь этот этап формально завершен: 11 августа 2026 года вышел Mojo 1.0. Первая стабильная версия стала хорошим поводом разобраться, откуда вообще взялся этот необычный проект и зачем понадобился еще один инструмент для высокопроизводительных вычислений.

Читать далее

Скрапер Google Maps на Playwright: семь граблей, на которые я наступил

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

Задача звучала просто: получить список компаний определённого профиля в конкретном городе — с сайтом и способом связаться. Не телефоном, а email / Telegram / WhatsApp.

Итоговый скрипт — примерно 400 строк: Playwright для Maps, requests + BeautifulSoup для сайтов, регексы для контактов, txt на выходе. Ниже — не туториал "как повторить", а список мест, где всё ломается.

Вот весь конвейер целиком, с отмеченными точками отказа — дальше по статье разберём каждую:

Читать далее

INDB: когда все лгут, помнит, что вы видели

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

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

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

INDB стоит на этом: смысл производится при чтении, а не фиксируется при записи. Вместо CRUD три фазы — вдох (Inhale, принять сырое наблюдение), выдох (Exhale, сжать повторы и отфильтровать шум репутацией), аксиома (Axiom, подписать то, что выжило).

Читать далее

Что вы увидели на картинке первым? Спрашиваем трансформер

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

Что видит трансформер: крокодила, лодку или силуэт человека? Проверяем BLIP на визуальных иллюзиях.

Наверняка многие видели картинки‑тесты, которые предлагают по тому, что первым бросилось в глаза определить характер, какое полушарие доминирует или что‑то еще. Обычно на этих изображениях находится несколько объектов или один объект меняется в зависимости от «угла» обзора. А что будет, если попросить трансформер описать эти картинки? Что «увидит» он и на что он «обратит внимание»?

Читать далее

Две страницы с 17-й позиции и нулём кликов дали больше цитирований ИИ, чем весь мой топ-5

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

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

Взял один сайт, снял два среза данных и свёл их по URL. Ниже метод, код и результат, который меня удивил.

Читать далее

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

TrueForge: открытая обвязка, которая превращает LLM в полноценного агента

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

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

Сложности начинаются, когда такого агента нужно запустить в проде.

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

Глубже

MetaORM — когда устал от ORM настолько, что написал свою

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

Эта статья о том, как я написал 200-строчную обертку над SQLModel, которая закрывает все реальные задачи с базой. В подарок идет непрошенное мнение об излишней сложности ORM.

Это будет будет попытка переосмыслить существующие подходы к ORM и предложить инструмент с более простой документацией, низким порогом входа в работу с СУБД, но при этом сохраняющий возможность делать сложные вещи.

Читать далее

Гидродинамика на python: Пишем CFD симуляцию плоского течения несжимаемой жидкости

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

В этой статье мы решим классическую задачу из курса гидродинамики [4]: сделаем симуляцию плоского течения в канале. Для этого мы напишем на Python код, численно решающий систему дифференциальных уравнений в частых производных, описывающих поведение несжимаемой жидкости:

Читать далее

Развитие FastAPI приложения в ходе разработки production-системы

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

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

Читать далее

3000 точек на карте грузились полсекунды. Ускорял не там, где думал

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

Эндпоинт отдавался за 380–510 мс и 811 КБ. Я думал, что причина одна – тяжёлый запрос. Разобрался: причин было три, и они лежали одна под другой. Пока не убираешь верхнюю, следующую просто не видно. Индексы, обход ORM и внезапно – gzip, который не был включён вообще.

Читать далее

BlocklyKlik — автономный редактор кода с компилятором

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

Редактор BlocklyKlik разрабатывается для помощи программирования микроконтроллеров на базе Arduino и ESP32 (эту функцию добавим в будущем) с применением блочного функционала создания кода.

Возможно, вы зададите вопрос: "Так есть же Scratch, mBlock, PictoBlox, да и Arduino ide".

Всё верно, они есть, но в ходе последних лет их использования возникли ряд серьёзных проблем:

Читать далее

Изучаем Triton ядро за ядром: сложение векторов

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

Основы программирования для GPU, оптимизация и ваше первое ядро на Triton

В эпоху моделей, оперирующих миллиардами параметров, даже небольшая оптимизация может дать значительный эффект. На обучение таких моделей как GPT4 тратится свыше $100 миллионов, и поэтому выигрыш в 1% КПД позволяет сэкономить более миллиона долларов. Есть мощный способ оптимизировать эффективность моделей машинного обучения – для этого нужно написать некоторые их компоненты прямо на GPU. Если ваш опыт похож на мой, то одно только упоминание ядер CUDA может вызвать у вас озноб — ведь печально известно, как сложно их писать и отлаживать.

Читать далее