Ассемблер разблокировал воспоминания. Мы в школе помогали другу писать дипломный проект, тогда ещё на ZX Spectrum, тоже на чистом ассемблере. И всё написано, работает хорошо, но временами по определённому адресу по непонятным причинам портилось значение, что приводило к некорректной отрисовке текстуры. Сроки поджимали, нормально раздебажить не получалось, поэтому придумали "решение" - запилили прерывание, в котором проверяли значение по этому определённому адресу и, если оно менялось, прописывали корректное. :D
Дипломный проект был защищён успешно, все довольны. :)
О, канадский программист это особый тип. Он, ни на минуту не задумываясь, как рыцарь без страха и упрека, бросится фиксить самый свирепый баг китайского кода. Этот Баг живет там уже три года, и китайцы уже четырежды (каждый по разу) сообщали начальству, что он пофиксен. Hо Баг каждый раз возвращался, как Бетмен в свой Готхем. Итак, канадский программист, воспитанный на героической патетике американского футбола - бросаться в бой головой вперед, сделает то, чего китайцы не рисковали делать в течении трех долгих лет. Он, при помощи дебагера, отследит место, где статическая переменная приняла значение -1 вместо правильного 0, и решительным движением заведет рядом вторую переменную с правильным значением. Баг погибнет в неравной схватке с героем. Hо победа будет достигнута тяжелой ценой. Работать перестанет все, включая только что переписанный русским программистом код.
Написание (во словечко-то!) программы (кроме вычислительной по формуле двухсотлетней давности) должно заканчиваться приказом со стороны (обычно сверху) "Стоп!". Иначе процесс уходит в бесконечность. У меня не было дописанных до конца программ. Были только работающие (с точки зрения начальства или заказчиков) версии.
Прочитал эту историю и мне вспомнилось, как на лабораторной по теории механизмов и машин мы балансировали ротор. Тоже группой из трёх или четырёх человек. Мы честно старались, но то ли оборудование было в самом деле изношено, то ли старались не так, но в конце лабы пришлось честно записать в журнал "В результате проведённых работ по балансировке ротора дисбаланс увеличился на ... %". Причём проценты там были какие-то значимые, 10-20. Препод так удивился нашей честности, что лабу нам зачёл.
Comments 12
Ассемблер разблокировал воспоминания. Мы в школе помогали другу писать дипломный проект, тогда ещё на ZX Spectrum, тоже на чистом ассемблере. И всё написано, работает хорошо, но временами по определённому адресу по непонятным причинам портилось значение, что приводило к некорректной отрисовке текстуры. Сроки поджимали, нормально раздебажить не получалось, поэтому придумали "решение" - запилили прерывание, в котором проверяли значение по этому определённому адресу и, если оно менялось, прописывали корректное. :D
Дипломный проект был защищён успешно, все довольны. :)
Reply
Он, ни на минуту не задумываясь, как рыцарь
без страха и упрека, бросится фиксить самый
свирепый баг китайского кода. Этот Баг
живет там уже три года, и китайцы уже
четырежды (каждый по разу) сообщали
начальству, что он пофиксен. Hо Баг каждый
раз возвращался, как Бетмен в свой Готхем.
Итак, канадский программист, воспитанный на
героической патетике американского
футбола - бросаться в бой головой вперед,
сделает то, чего китайцы не рисковали
делать в течении трех долгих лет. Он, при
помощи дебагера, отследит место, где
статическая переменная приняла значение -1
вместо правильного 0, и решительным
движением заведет рядом вторую переменную
с правильным значением. Баг погибнет в
неравной схватке с героем. Hо победа будет
достигнута тяжелой ценой. Работать
перестанет все, включая только что
переписанный русским программистом код.
Reply
Креатив шикарный, спасибо, что напомнили. :)
Reply
Reply
У меня не было дописанных до конца программ. Были только работающие (с точки зрения начальства или заказчиков) версии.
Reply
Reply
Leave a comment