Не, это реально радует, чувствуется что движешься вперед
Или назад, и теперь у тебя в проекте N+1 баг.
Магию git-a никто не отменял
Вообще намного больше нравится фиксить поломанную логику что уже существует чем запиливать какие-то
новые фичи. Индусский проэкт с кучей говнокода, который надо исправить для меня был бы идеальным вариантом
новые фичи. Индусский проэкт с кучей говнокода, который надо исправить для меня был бы идеальным вариантом
Милости прошу на нашу галеру.
Что за галера?
Любая
Та не, большинство галер хотят чтоб их говнокод поддерживали, то есть поставь костыль тут, сделай заплаьку иам, а исправить корень проблемы никто не хочет. Я же говорю про клинический случай - тебе дают раздробанную в хлам программу и говорят что она не работает от слова совсем, до этого ее нам делали какие-то индусы, но она нам нужна позарез,
исправьте пазязя. И ты начинаешь вырезать говнокод тонну за тонной....
исправьте пазязя. И ты начинаешь вырезать говнокод тонну за тонной....
Это даже как-то мне напоминает работу хирурга
Так проще переписать
Главное - что бы не начался цикл из ошибок
А на самом деле сломал то что хоть как-то работало
Таки радует.
Доделал сетевой модуль.
@
Вроде все работает, сейчас напоследок сниму диаграмму в реальном времени чтобы убедиться что все прям совсем четко.
@
Все разваливается нафиг.
@
Попытка повторить ничего не дает. Десятая, сотая.
@
Спустя несколько часов тестирования самыми разными способами и в разных условиях прихожу к выводу что то был артефакт вызванный какими-то внешними крайне маловероятными причинами.
@
Подходит начальник. Жалуюсь на неуловимый глюк и шучу про "эффект присутствия". Сбой повторяется три раза подряд.
@
Спустя 100500 часов и чашек кофе, обвешав все вокруг отладочным выводом, контрольными точками, логическими анализаторами/осциллографами и просмотрев гигабайт сетевых логов обнаруживаю причину сбоя. Одно из вычислений в другом модуле происходит в прерывании с высоким приоритетом на несколько сотен наносекунд дольше чем стоило бы, с исчезающе малой вероятностью попадает по времени именно туда куда НЕ нужно и разрушает временнУю диаграмму протокола. Голая вероятность такого попадания исчезающе мала, но при определенном стечении условий частоты с которыми выполняются разные блоки могут становиться "когерентными" и вероятность сильно повышается.
@
Изменил приоритеты прерываний.
@
Вроде все работает
@
Вроде все работает, сейчас напоследок сниму диаграмму в реальном времени чтобы убедиться что все прям совсем четко.
@
Все разваливается нафиг.
@
Попытка повторить ничего не дает. Десятая, сотая.
@
Спустя несколько часов тестирования самыми разными способами и в разных условиях прихожу к выводу что то был артефакт вызванный какими-то внешними крайне маловероятными причинами.
@
Подходит начальник. Жалуюсь на неуловимый глюк и шучу про "эффект присутствия". Сбой повторяется три раза подряд.
@
Спустя 100500 часов и чашек кофе, обвешав все вокруг отладочным выводом, контрольными точками, логическими анализаторами/осциллографами и просмотрев гигабайт сетевых логов обнаруживаю причину сбоя. Одно из вычислений в другом модуле происходит в прерывании с высоким приоритетом на несколько сотен наносекунд дольше чем стоило бы, с исчезающе малой вероятностью попадает по времени именно туда куда НЕ нужно и разрушает временнУю диаграмму протокола. Голая вероятность такого попадания исчезающе мала, но при определенном стечении условий частоты с которыми выполняются разные блоки могут становиться "когерентными" и вероятность сильно повышается.
@
Изменил приоритеты прерываний.
@
Вроде все работает
Помню, в универе делал как-то лабу на делфе.
При увеличении выборки входных чисел часть результатов вычислений обращается в ноль.
Копаю данные, выяснил, что проявляется на определённых числах.
Думаю, что нашёл баг делфы.
Копаю дальше. Оказалось, я проморгал переполнение (числа взял такие большие, что не помещаются в longint), поэтому круглые числа после обрезания старших разрядов превращаются в набор нулей и при умножении число обнуляет результат целиком.
При увеличении выборки входных чисел часть результатов вычислений обращается в ноль.
Копаю данные, выяснил, что проявляется на определённых числах.
Думаю, что нашёл баг делфы.
Копаю дальше. Оказалось, я проморгал переполнение (числа взял такие большие, что не помещаются в longint), поэтому круглые числа после обрезания старших разрядов превращаются в набор нулей и при умножении число обнуляет результат целиком.
Супер! Картинка полетела напрямую во внутреннюю презентацию для команды по тому как мы дописывали форк монгодрайвера
Чтобы написать коммент, необходимо залогиниться