Обновить
64K+
19

Пользователь

87,5
Рейтинг
6
Подписчики
Отправить сообщение

Как универсальный разъем стал кошмаром: почему одинаковые кабели USB-C отличаются по скорости в 80 раз

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

В 2016 году инженер Google Бенсон Леунг подключил к своему Chromebook Pixel кабель USB-C, купленный на Amazon, и ноутбук больше не включился нормально. В кабеле перепутали провода питания и земли, хотя снаружи он ничем не отличался от исправного.

С тех пор опасных кабелей стало меньше, но путаница никуда не делась. Одинаковые на вид кабели USB-C отличаются по скорости в 80 раз, по мощности в 4 раза, а маркировку на них ставят далеко не всегда. Разбираемся, как универсальный разъем стал инженерным кошмаром.

Читать далее

Как я ловлю галлюцинации LLM в коде: пайплайн проверок в CI

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

Месяца четыре назад мне на ревью пришел пулл‑реквест, в котором из цикла обновления частиц вызывалась функция FrameAllocator::TryReclaimTail(), с правильным префиксом, в нашем стиле именования и даже с комментарием над вызовом, где объяснялось, зачем хвост кадрового аллокатора надо подбирать именно здесь, и выглядело все это настолько по‑домашнему, что я пролистал дифф, поставил апрув и ушел обедать. На PC сборка прошла и тесты позеленели, потому что вызов сидел внутри старого профайлерного макроса, который на десктопе разворачивался в пустоту вместе со всем содержимым скобок, а через два дня ночной билд под консоль упал на линковке, и выяснилось, что такой функции в движке нет и никогда не было.

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

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

Читать далее

Информация

В рейтинге
73-й
Зарегистрирован
Активность