Matrix has me...

Житиё-бытиё программиста полно лулзов, которые программист ловит с самого себя.

Любой маленький программист знает, сколь смешными бывают ошибки.

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

Причем хитро так не работает...
Пока дверь в соседнюю комнату открыта - совсем не работает... Вообще никак на нажатие кнопки не реагирует.
А если дверь закрыта - высылает... Не всегда правда, но высылает.

Ну, думает чувак, мистика...

А шутка была в том, что массив, в котором лежали данные с опроса лежал в памяти рядышком с переменной, отвечающий за дребезг контактов.
Чувак ошибся, и при записи данных переполнил массив.... Не много так... На одно значение.

И получилось, что вместо данных о дребезге в той переменной лежали данные об освещении. Открывает дверь. Свет из другой комнаты падает на датчик и вуаля... Отсылка запрещена.

[http://img-fotki.yandex.ru/get/6725/10410168.2/0_9c12c_7df31856_L.jpg]


Но да это присказка.
Сказка - вот:

Жил был маленький программист. И программировал он маленький контроллер.
И решил в один замечательный момент маленький программист, а не написать ли ему для маленького контроллера маленькую операционную систему.
И написал с блэкджеком и с плюшками. А чтобы, значит подчеркнуть свою крутость, написал он часть функций своей ОС на ассемблере.

Жил был программист не тужил, юзал ОС, никого не трогал.
Но время идёт, а программист растёт. Тесно стало программисту в маленьком контроллере, тем более что ОС занимало чуть ли не две его трети. Контроллера же... Не программиста...
Решил программист, мол а не взять ли ему контроллер побольше. Пошел да и взял.

Для определенности, сменил atmega168 на atmega2560.

Вроде бы камни ничем не отличались. Только памятью, да плюшек побольше. Но вот только ОС почему-то не заработала. На старом камне работает, на новом - нет... Хотя и должна.
Разбираться, почему, программист не стал. Нашел ошибку, но вот почему она появляется, разбираться не стал. Он был уже большой и опытный.

И переписал ассемблерную функцию на си... Ушло на это пять минут... Функция же в свое время полдня писалась...
С тех пор ОС работала без сбоев... Минут пятнадцать уже работает. Так-то...
Комментарии: 1
DrEvill
Велики и могучи програмисты. А все косяки у них бывают ток от собственного необузданного ума.

Добавить комментарий

Имя:
Комментарий:
Текст
Вставка
Шрифт
размер
Введите пожалуйста число с картинки:
Незарегистрированные пользователи не могут видеть свои приватные комментарии.