«МК61s»: распробовал «Фейбл 5»

Скриншот Finder macOS: папка /Volumes/MK61S FS с тремя файлами .M61 — Bumblebee Fly, Fox Hunting, Infinity Story — с иконками вопроса.

Самая сложная задача, которую пришлось решать для ретроконсоли «MK61s», — это монтирование её как диска. В прежней прошивке программы были зашиты внутрь, и пользовательского способа сохранить туда новые программы не существовало. Я подумал, что раз есть USB-разъёмы, то можно попробовать сделать свою файловую систему, которая будет отображаться на компьютере как диск.

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

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

Я написал «ГПТ-5.5» всю первую версию, которая довольно неплохо работала, пока я не стал копировать файлы группами — на группе по пять файлов возникал сбой, диск пропадал и операция прерывалась. С «ГПТ-5.5» я просидел до часу ночи, но баг не лечился. Мы даже делали псевдофайл, в который сохранялись команды операционной системы, чтобы разобраться в ситуации, но всё тщетно.

«ГПТ-5.5» мне говорил «вот новая прошивка, я всё починил», но баг никуда не уходил — простое копирование пяти файлов опять всё роняло.

В итоге, я открыл сеть «Фейбл 5», описал ей проблему и она задумалась минут на двадцать, после чего начала неспешно писать код, в котором проблема была исправлена. Без отладки, без тестов, без диагностики. Задачу я ставил в минимальной формулировке, почти буквально «пять файлов копирую, оно падает», а «Фейбл» разобрала весь код, увидела проблему и решила, даже ни разу ничего не запустив.

Что я хотел сказать этой историей — человек так не сможет.

Читайте также

«МК-61s»: бинарные приложения
Сейчас прошивка ретроконсоли устроена таким образом, что часть блоков при компиляции можно отключить, если они не требуются, или в том случае, если используется более скромное оборудование, для которого она не помещается. Уже сейчас такое оборудование существует — у тех, кто собирает эту ретроконсоль на контроллере STM32F401CC, полная прошивка не собирается: не хватает памяти.
2026
«ВАМПИР»
Я не очень-то интересуюсь гештальт-терапией, поэтому всё, что я про неё знаю, мне рассказал больше пятнадцати лет назад один старый приятель. С его слов, гештальт — это незавершённые поступки, которые хочется завершить.
2020

Комментарии 43

vadim yegorov № 1
почему? я 10 лет писал под железки с минимальными возможностями отладки, особенно поначалу. по описанию задача выглядит как типичный вторник, только ещё исходников нет.

или имелось ввиду, что человек так за 20 минут не сможет?
Евгений Степанищев автор № 2
Конечно за 20 минут. Именно лёгкость решения поражает.
1
Алексей Сугоняев № 3
Важно понять в чем заключалась ошибка
Евгений Степанищев автор № 4
Зачем?
Алексей Сугоняев № 5
Евгений Степанищев, Что бы исправление не превратилось в магию.
Евгений Степанищев автор № 6
Алексей Сугоняев, Но зачем? У меня в компании под сотню программистов, наверное, я разве у каждого спрашиваю — в чём там была проблема? Узнать-то не проблема — достаточно спросить, но зачем?
Алексей Сугоняев № 7
Евгений Степанищев, Хороший вопрос. Исключительно для себя, как я уже и сказал, если решение проблемы была найдено путем перебора или устранилась случайно, то это и не решение. Это удача :)
Евгений Степанищев автор № 8
Алексей Сугоняев, Ну, я достаточно много с ними программирую, чтобы понимать, что это не перебор)
1
Алексей Сугоняев № 9
Евгений Степанищев, и не случай? :)
Евгений Степанищев автор № 10
Алексей Сугоняев, Нет, конечно 🙂 очень уж удачно случается каждый раз — суёшь проблему, а она решается. Столько удачи я ещё нигде не видел.
Алексей Сугоняев № 11
Евгений Степанищев, Это Вы про людей, переносим на технологии обучения ИИ :).
Евгений Степанищев автор № 12
Алексей Сугоняев № 13
Евгений Степанищев, а вот тут штука такая, «черный ящик» она не проверяема строгим математическим тождеством, слишком много связей не минимизируется до строго доказательства А = Б. И версионность сегодня она решила этот вопрос, но Вы не узнали как, а завтра версия изменилась и вопрос перестал решаться.
Евгений Степанищев автор № 14
Алексей Сугоняев, Я не понимаю в чём разница — работаю я тут с кожанным мешком или с кованным? Почему у кожанного я не спрашиваю, а у кованного должен? )) Если будет интересно, скажу нейросети — посмотри, там коммит был, вот какую-то такую проблему решал, как решилась? Она и расскажет
1
Алексей Сугоняев № 15
Евгений Степанищев, у кожаного мешка связи между нейронами быстро не деградируют (если конечно у него нет патологии) назовем концентрацию нейромедиаторов в синапсах кожаного условно постоянной и ее дрейф пренебрежительно мал. Кожаный вообще заложник своего левого полушария и никакая сила не способна его уговорить поменять свое мировоззрение не то что мгновенно, хотя бы в течении нескольких лет. А у кованного веса матрицы от версии к версии могут меняться значительно и не по причине дрейфа, он не может в отличии от кожаного фиксировать сумму знаний и не давать разрушать ее. Для Вас это значит что с кожаным спустя N месяцев у вас есть шансы войти в ту же реку дважды при условии что это тот же самый кожаный и получить «ответ на вопрос ты чего там такого сделал что заработало». А вот шанс с кованым зависит не от Вас и не от него, он вообще сущность подневольная его обучают а он даже сопротивляться этому не может Ж) в лучшем случае он удачно про галлюцинирует и Вы сами поймете, в худшем неудачно и тогда увы — момент истины будет утерян.
Евгений Степанищев автор № 16
Алексей Сугоняев, Ты рассматриваешь одного кожанного мешка, но в команде редко так бывает. Одни уходят, другие уходят, нейроны у всех свои. Некоторые модели годами доступны, а программистов некоторых — полгода прошло и нет его. По-разному бывает, но принципиальной разницы я не вижу.

В большом проекте (тот, который мы делаем на работе, ему уже больше 20 лет), столько программистов работало, что это вообще уже неважно как он там в какой-то момент баг правил, даже если он мне и рассказал, то я вспомню что ли?
Алексей Сугоняев № 18
Евгений Степанищев, бывает и так — уходит человек из проекта, да просто увольняется с работы и вот уже никто не может вспомнить как и куда он по проекту трубу закопал :))) а найти надо. Что делать? Брать еще троих кожаных выдавать им условно лопаты и наряд копать отсюда и до обеда, пока трубу не найдете :))))))
Евгений Степанищев автор № 19
Алексей Сугоняев, Ну да, а кованный через пять минут мне уже всё объяснит. Такая скорость у кожанных просто недостижима.
Алексей Сугоняев № 20
Евгений Степанищев, А где гарантия что кованный не прогаллюцинирует? :) По нашей аналогии сообщит трубу нашел ровно два метра от вводного флянца на зюйд-зюйд вест :) А дальше уже Вы кожаный принимаете решение верю-не-верю. А вдруг труба не водопроводная, а газовая? :))))
Евгений Степанищев автор № 21
Алексей Сугоняев, А где гарантия, что кожанный так не сделает? См. «эффект Манделы» и «мне было лень проверять»? ))
Алексей Сугоняев № 23
Евгений Степанищев, Вот-вот я именно про это :)))
Михаил Иванов № 25
Вот многие пишут, как они что-то делают через ИИ. На том же Хабре каждый божий день куча новых постов про это.

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

Не моглы бы вы сделать краткий обзор по стоимостям решения тех или иных задач через ИИ?
Евгений Степанищев автор № 26
Статьи нет, потому что писать тут не о чем.

С подпиской в $200 можно программировать почти нон-стоп (возьмите «Клод-код» или «Кодекс»), почти круглосуточно. Попробуйте начать с самой маленькой подпиской в $20 и наращивайте постепенно.
Макс № 29
Если человек так не сможет, то какая разница 20 или 200. А, вообще, я в афиге, вот так просто взять и запилить «левой рукой» fat
Евгений Степанищев автор № 30
Скорость особенно впечатляет. Никакой Шахиджанян не научит печатать с такой скоростью, да ещё и думать одновременно.
Oleg Poluektov № 31
Этот вечный спор про-ИИ и анти-ИИ… Согласен, касаемо «чёрной магии»: лучше понимать сгенерированный код.
Евгений Степанищев автор № 32
Это просто взгляд программиста vs взгляд тим-лида и всё. Программисту надо, если кусок относится к его коду, тим-лиду — вообще не обязательно, разве что он он тоже программирует в тот же проект, тогда см. пункт 1.

На работе в продукте 1,5 млн строк, трудится куча программистов и текучка. Никто не знает что там в коде хотя бы на 50% (на самом деле может и на 20 не знает, думаю, мне сложно прикинуть)
Oleg Poluektov № 33
Согласен. Как программисту — важно, когда всё скомпоновано — не очень. Но лучше основную логику, приёмы и решения где-то записывать, пусть даже в текстовом виде.
Евгений Степанищев автор № 34
Сеть Opus 4.5 программирует лучше среднего программиста. Fable 5 уже сильно выше. Учитывая, что архитектура нужна именно человеку, чтобы быстрее что-то дописать и разобраться, а машине по барабану (она и без архитектуры въедет и допишет быстрее, чем человек с архитектурой), встаёт вопрос — зачем мне тратить на это лишние токены?

Скорее всего код внутри уже будет лучше (и мой опыт это подтверждает), чем в среднем проекте.

Другое дело, когда неправильный выбор архитектуры (например, синхронная против асинхронной) сказывается на потребительских качествах. Но такое я стараюсь искать и править.
Oleg Poluektov № 36
Немного экстрим… но если где-то работает, почему нет.
Евгений Степанищев автор № 37
Где тут экстрим? И в чём он заключается?
Oleg Poluektov № 38
Это хорошо бы подошло для соло-проектов, я считаю. В командной разработке всё-таки минимум понимания и документации необходим, иначе все будут уповать только на ИИ.
Евгений Степанищев автор № 39
Ошибка в том, что вы разделяете человека и ИИ. Какая разница — делал я бы это руками или нет, подумайте. Если у меня что-то спрашивают по коду или исправлению, я либо отвечаю сам, либо поручаю ии ответить, ответ будет в любом случае. А архитектурно, если взять случайного разработчика, ИИ уже сделает сильно лучше в среднем случае.

И уж точно, объём, сделанной мной за неделю или около того, растянулся бы на годы с текущей скоростью разработки. Это не потому, что ребята медленные, а потому что это фоновое хобби.
Oleg Poluektov № 40
Евгений Степанищев, Ну, в этом и прелесть командной работы: вечные звонки, координации, сигареты и кофе, столовая и пиво после работы. 😀
Евгений Степанищев автор № 41
Oleg Poluektov, В этом проекте такого нет. Каждый работает очень изолированно и мало что документирует.

В офисах с удалёнкой тоже ничего нет из описанного вами. Так что бо́льшая часть мира уже готова к такой работе.
Oleg Poluektov № 42
Евгений Степанищев, Я же шучу. В принципе, я разделяю ваш энтузиазм. Просто приходится иметь дело с реалиями: разные контексты, разные культуры, разный опыт людей, денежные ограничения и т.д.
Евгений Степанищев автор № 43
Oleg Poluektov, Да и мне приходится ) Но на мой опыт это всё прекрасно ложится. Просто есть большая разница между программистами-одиночками, собравшимися стихийно делать хобби-проект и командами. Я давно работаю в командах и ИИ прекрасно на это ложатся.