Навыки программиста для работы с AI в генерации кода | 2025-08-04T14:28:45

Я сейчас ну очень много использую Gemini для генерации кода, и вижу скилл, который нужно иметь программистам, чтобы быть успешными на этом поприще. Это умение быстро читать и понимать чужой код, а также умение объяснить, почему генерацию AI нужно переделать и как. Для первого нужно просто очень хорошо знать язык и читать «с листа», потому что времени вдумываться будет мало. Для второго нужно хорошо знать паттерны и понимать, где они применимы, а где — нет. AI еще долго будет лажать с использованием паттернов не к месту.

Кроме этого, человеку все еще нужно будет понимать «как единое целое» на 90% код, который сгенерировал AI, и также успевать находить время на осознание каждой сгенерированной строки кода. Если расслабиться и упустить, то система может родить даже работающий, но очень плохо поддерживаемый код. Например, есть негласное правило, что отдельные файлы должны содержать не так много кода, и если он растет, то нужно делать рефакторинг, разбивая один большой на два или три. Иногда это требует переписывания логики, но это переписывание всегда направлено на одну задачу — упростить поддержку. А AI при переписывании еще и «улучшает» код заодно. И это довольно сложно запретить.

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

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

Интерактивная игра на скорость реакции с беспроводными кнопками | 2025-07-28T22:26:20

Кто в электронике шарит? Рекомендуйте.

Хочу сделать на каких-то выходных такую штуку. Большая лампочковая кнопка. Загорается — ты по ней долбишь. В приложении сечется время, сколько прошло от загорания до долбежки. Кнопок может быть несколько и они могут быть разбросаны — по стене или полу. БЕЗ ПРОВОДОВ. Загораться они могут рандомно — это управляется приложением (телефон или комп). На лету вычисляются метрики типа среднего времени реакции в разном понятии слова средний. Будет можно, например, поставить кнопки на землю в нескольких метрах друг друга и придумать подвижную игру детям. Можно прикрепить на стенке и шарашить в нее мячиком. Короче, технический вопрос на самом деле.

Как бы вы это сделали — глупые кнопки на чипе nRF24L01+ или умные кнопки на микроконтрлеере esp32?

В первом случае каждый такой модуль слушает радиоэфир: как только от центрального узла приходит команда с его ID, он включает свет. После нажатия кнопки — отправляет обратное сообщение «pressed». Таймер находится на стороне центрального узла. Каждая кнопка имеет Arduino Pro Mini + nRF24L01+, но будет еще центральный хаб тоже с nRF24L01+ и Arduino Uno, Mega или ESP32, который собирает данные и который связан с компом (Bluetooth или Wifi).

Во втором случае кнопки подключены по Bluetooth (BLE) или Wifi. Мозгами кнопки является ESP32, его надо программировать через программатор.

По деньгам получается оба подхода без стоимости аркадных кнопок и 3D-печати плюс-минус одинаково — где-то в районе $10-15 за кнопку.

Монорельс Сиэттла: Туристическая аттракция с историей ошибок | 2025-07-22T16:28:51

Монорельс Сиэттла, размером в две станции (мировой рекорд!), будучи наверное самым бесполезным транспортом города, как утверждается, самоокупается и очень популярен среди туристов. Пишут, что поезда Alweg все те же, что были 63 года назад, когда его открыли к Всемирной выставке.

Еще интересно, что у монорельса длиной в одну станцию есть водитель. Вижу недавнее объявление о работе Monorail Driver, оплата 20 долл/час (при минимальной зарплате в $18.67). В целом, если устроиться в любой супермаркет США товар расставлять по полкам, выйдет тоже что-то в районе 20 долл/час.

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

Дело в том, что при установке путей их спроектировали так, что между ними не было зазора, необходимого для свободного прохода поездов. Прикиньте! В одном месте только так:) Это сделали специально, чтобы погрузочные пандусы могли выдвигаться за пределы вагонов. В течение 40 лет тщательно следили за тем, чтобы поезда никогда не ездили одновременно по этому участку. Но вот однажды один машинист решил выехать раньше времени — и дальше это уже история. В общем, закон Мерфи никто не отменял.

Там рядом в 1988 просто строили торговый центр, Westlake Center. За несколько дней до запланированного открытия инженеры обнаружили, что западный путь оказался на два дюйма (50 мм) ближе к платформе и зданию торгового центра, чем следовало, что сделало невозможным его использование. О проблеме стало известно, когда выдвижной погрузочный трап на терминале поцарапал синий поезд во время тестового пробега; причиной неправильного совмещения оказался штифт в шарнире, который не сложился как положено. Трап был отремонтирован в ноябре, но другие технические неполадки и продолжительные проверки безопасности задержали открытие нового терминала на четыре месяца. Ну и чтобы все не переделывать, просто не пускали поезда одновременно. По состоянию на 2025 встречное движение всё ещё НЕ предусмотрено над участком с узким межрельсовым зазором на южной (Westlake) станции:-)

Кстати, ровно месяц назад в Москве закрылся монорельс на ВДНХ, открытый 21 год назад. Окончательно. Там тоже никто не понимал, зачем он нужен, но в дополнение к этому, он еще был зверски убыточен.

На фото Надя наслаждается Сиеттлом

Сбой в системе: все рейсы Alaska Airlines приземлены | 2025-07-21T07:07:59

Аэропорт Сиэттла встал — какая-то ерунда с IT-системами, самолёты Alaska Airlines не взлетают (grounded).

UPDATE: помните у Боинга отвалилась дверь в полёте? Это были Alaska Airlines и Boeing 737 Max, в котором я сейчас сижу.

Мир витых пар: искусство соединения 3200 проводов | 2025-07-12T15:11:24

Медный телефонный магистральный кабель. Тут 3,200 (!) помеченных цветом проводов диаметром 0.4 мм каждый. Обычно такие кабели состоят из витых пар (каждая пара состоит из двух проводов), и 3200 проводов означают 1600 пар. Весь этот кабель имеет диаметр 9 см и выпускается кусками по 250 метров. И эти сегменты нужно друг с другом стыковать, а потом еще и соединять концы с аппаратурой. То есть, каждый из 3200 жил аккуратно зачищается и соединяется с соответствующим проводом следующего сегмента. Наверное, это очень веселое занятие.