Normal view

ChatGPT пишет Verilog, а программатор всё ещё приходится вставлять самому

Недавно мне понадобилось заставить FPGA работать с обычным PCI. Не PCI Express, а тем самым старым параллельным PCI, платы с которым когда-то стояли почти в каждом компьютере, а сейчас он в основном продолжает жить в промышленной аппаратуре. Задача сама по себе не новая, и несколько лет назад я уже возился с этим интерфейсом. Тогда значительная часть времени уходила даже не на отладку платы, а на то, чтобы разобраться в стандарте, правильно понять процедуру конфигурации и руками написать всю необходимую логику на Verilog.

В этот раз рядом был ChatGPT. Я описывал ему очередной небольшой кусок логики, показывал существующий код, просил переделать конечный автомат или добавить нужное поведение и довольно быстро получал нормальную заготовку на Verilog. То, что раньше могло занять несколько часов, иногда действительно сокращалось до нескольких минут. После первой такой удачной итерации легко представить приятную картину будущего: ещё немного, и половину работы FPGA-разработчика можно будет просто отдавать нейросети.

На практике произошло другое. Освободившееся время я тут же потратил на следующую версию прошивки, потом на ещё одну, после чего пришлось несколько раз перепрошить FPGA, перезагрузить компьютер, посмотреть, как плата определяется BIOS, разобраться с BAR-регистрами и полезть к железу уже с измерительными приборами. За тот же промежуток времени я просто успел проверить гораздо больше вариантов. Именно тогда я поймал себя на довольно странной мысли: нейросети действительно сильно ускоряют мою работу, но её количество от этого почему-то совсем не уменьшается.

Читать далее

[Перевод] Четыре пул-реквеста, четыре полных прогона, один ответ

Merge queue гоняет полный сьют один раз на каждый пул-реквест в группе. Четверо ждут посадки — четыре полных прогона, причём последний из них уже содержит три остальных. Обязаны ли те три прогоняться? Мы построили одноразовый стенд, прогнали на нём четыре способа останавливать лишние прогоны и померили каждый: один сажает сломанный код, один залипает намертво, один безопасен и стоит ровно столько же, сколько мы платим сейчас. Четвёртый — наш, и он экономит около 19 машинных минут на посаженный пул-реквест ценой примерно четырёх минут ожидания.

Читать далее

IndexNow из Node.js: переобход без аккаунтов, и почему fetch обрывается там, где curl проходит

Чтобы сказать Яндексу «страница изменилась, приди посмотреть», аккаунт в Вебмастере не нужен. Есть протокол IndexNow: вы кладёте в корень сайта файл с ключом, шлёте POST со списком адресов — и поисковик приходит за часы вместо недель. Ни регистрации, ни OAuth, ни капчи. Реализуется тридцатью строками на Node.js без единой зависимости.

Ниже — рабочий скрипт целиком, шесть кодов ответа, которые он может получить, и три грабли, на которые я наступил, пока доводил его до состояния «запустил и забыл». Одна из них интереснее прочих: fetch в Node падает с fetch failed на том же запросе, который curl отправляет с первого раза.

Читать далее
❌