[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "create", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-158433683", "adfox_url": "//ads.adfox.ru/228129/getCode?p1=bxbwd&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid21=&puid22=&puid31=&fmt=1&pr=" } } ]
{ "author_name": "Alexander Lashkov", "author_type": "self", "tags": ["\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430","\u043e\u0448\u0438\u0431\u043a\u0438","\u043e\u0448\u0438\u0431\u043a\u0438_\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432","\u0431\u0430\u0433\u0438"], "comments": 3, "likes": 12, "favorites": 0, "is_advertisement": false, "section_name": "default", "id": "4956" }
Alexander Lashkov
3 608

Всё сложно: 3 самых необычных бага

Пользователи сервиса вопросов и ответов Quora, среди которых много разработчиков, обсудили самые интересные баги в продуктах, с которыми сталкивались в своей практике. ЦП выбрал самые необычные из них.

Игра стирала карту памяти в PlayStation 

Дейв Бэггет, рассказал об ошибке, с которой столкнулся во время работы в игровой компании Naughty Dog. Разработчик трудился над культовой игрой Crash Bandicoot, в частности, он отвечал за код, который производил запись результатов игры на карточку памяти игровой консоли. Ошибка проявлялась очень редко, однако её последствия были весьма значительны — результаты не просто не сохранялись, помимо этого, с карты памяти стиралось все, что было на неё записано ранее.

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

После того, как было удалено значительное количество кода игры, осталась лишь небольшая его часть, отвечающая за первоначальный запуск программы, разработчику удалось локализовать участок, на котором происходила ошибка. Изменив некоторые настройки тактовой скорости игры, Бэггет сумел избавиться от проблемы, однако он так и не понял причину её возникновения. Ошибка больше не появлялась и, казалось, что её удалось победить.

В один из дней тестировщик запустил отладочную версию игры, созданную Бэггетом и вертел в руках джойстик консоли — и в этот момент ошибка проявилась снова. Только тогда разработчик понял, что проблема была в самом железе игровой приставки — представители Sony отказывались в это верить, но после проверки с помощью тестовой программы признали наличие ошибки. 

Заземление вертолета

Пользователь Quora по имени Фредрик Зеттергрен рассказал о баге, с которым столкнулся во время изучения электротехники в школе. Вместе с двумя одноклассниками он решил создать модель вертолета на дистанционном управлении. Для осуществления замысла школьникам необходимо было создать работающую систему, включающую контроллеры, сервоприводы и акселерометр. 

Когда все было практически готово к сборке, выяснилось, что сервоприводы иногда начинают двигаться самопроизвольно, что не позволит вертолету взлететь. Члены команды потратили большое количество времени на поиск неполадок, но не смогли понять причину возникновения ошибки. В итоге, один из участников проекта так устал, что заснул, закинув ноги на стол с деталями вертолета. Внезапно ошибка перестала проявляться, что даже вызвало шутки о том, что проблема решилась благодаря ботинкам на столе.

К удивлению создателей вертолета, когда обладатель ботинок убирал ноги со стола, сервоприводы опять «сходили с ума» — корреляция была налицо, когда ботинки располагались на столе, ошибка не возникала, но стоило их убрать — все повторялось заново. Выяснилось, что школьники забыли заземлить части системы, что приводило к её нестабильной работе. Ботинок оказался на столе ровно в таком положении, которое позволяло создать заземление — несмотря на слабость такой связи, этого оказалось достаточно, чтобы ошибка не проявлялась.

Flash Player и медленные диски

Разработчик Adobe Амир Мемон вспомнил ситуацию с «падением» Flash Player — на это жаловались пользователи Mozilla и Internet Explorer. По словам Мемона, никому из его коллег не удалось воспроизвести ситуацию с ошибкой — благодаря логам разработчики понимали, где именно случается проблема, но это не помогало им в её решении — более того, в разных лог-файлах содержались указания на ошибках в разных строчках кода (как позднее выяснилось, баг был все же один).

В конечном итоге тестировщики компании сумели воспроизвести ошибку — выяснилось, что Flash Player перестает работать только на компьютерах с медленными жесткими дисками. Ошибка возникала в тот момент, когда программа высвобождала память при переходе со страницы с видео на новую страницу. Проблему было так сложно обнаружить, потому что в самой Adobe найти столь слабый компьютер было практически невозможно.

#разработка #ошибки #ошибки_разработчиков #Баги

Статьи по теме
Этот неловкий момент: 7 самых смешных багов
Новый баг превратил Telegram в дейтинг
Приложение «Рокетбанка» пропало из App Store из-за бага
Популярные материалы
Показать еще
{ "is_needs_advanced_access": false }

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

0 новых

Популярные

По порядку

Прямой эфир

Голосовой помощник выкупил
компанию-создателя
Подписаться на push-уведомления