Expand Cut Tags

No cut tags

Jul. 18th, 2016

darth_mickey: (Default)
Оригинал взят у [livejournal.com profile] ibigdan в Вы неправильно пишете животных
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам (допустим это Бог или ангелы) приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.

Не знаю, кто писал большую часть птиц, но я хочу обратить внимание на особенность, позволяющую провести инъекцию произвольного яйца в гнездо. Дело в том, что птица проверяет только расположение и количество яиц, но не их хэши. В 20% случаев кукушка, эксплуатирующая этот баг, может внести яйцо с сохранением контрольной суммы, чего вполне достаточно для повышения прав в гнезде.

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

Да, ещё о птицах, чтобы два раза не вставать. У них насквозь кривой модуль распознавания «свой-чужой». Что позволяет провести animal-in-the-middle-атаку с помощью подстановки звука птенца. Всё, что примерно совпадает по размерам и при этом передаёт открытую часть ключа, нужно покормить. Похожий баг есть у некоторых грызунов, что позволяет предположить проблемы с общей библиотечной функцией.

Теперь муравьи. Муравьёв довольно легко зациклить. Навигационный блок у них совмещён с системой приоритетов ОС, поэтому при построении циклического маршрута образуется «спираль смерти», затягивающая всё больше и больше ресурсов муравейника – и всё это зависает на 3-4 дня, пока муравьи не погибнут от истощения или что-то снаружи не поменяет навигацию.




А вот страус – вершина оптимизации. То, как именно в него впихнули пищеварение, вообще достойно войти в «Жемчужины программирования». Чтобы эта птичка нормально переваривала пищу, разработчик придумал заставить его натурально жрать камни. При беге камни трясутся и перемалывают зёрна. Теперь самое весёлое. Чтобы не писать отдельный код для поедания камней, страусу просто взяли и отключили центральный сектор зрения (как зайцу, но там это известный минорный баг). Поэтому когда страус целится в зерно, он попадает только в 30-50% случаев. Что легко позволяет набирать нужное количество камней, да ещё и с запасом. Именно поэтому страусы, запущенные на чистой виртуальной машине в зоопарке, испытывали проблемы с пищеварением до появления поддержки камней на уровне гипервизора. Кстати, коровы тоже жрут гвозди и иногда гравий, но это не в архитектуре, а просто техническая ошибка обратной совместимости.

Да, и ещё. Очень хорошая вещь – повторное использование кода. Часть функционала с камнями потом накатили на крокодила – чтобы ему нырялось лучше. Ныряется действительно лучше.

читать дальше )
darth_mickey: (Default)
Оригинал взят у [livejournal.com profile] ibigdan в Коротко
Хоронили тёщу — поймали двух покемонов.
 
* * *
Апофеоз уродства системы, это когда предатель - спортсменка Клишина, а честь страны защищают собаки чиновников на бизнес-джетах.
 
* * *
Моя бывшая сбежала с моим лучшим другом. Вообще-то я с ним не знаком, но теперь он мой лучший друг.
 
* * *
Deputat Go - новая игра, где участники должны искать депутатов и заставлять их идти в Раду работать.
 
* * *
и в тазу с цементом
не пошла на дно
что ж ты зинаида
даже здесь бревно
 
* * *
Хорошо быть оптимистом. Всегда разглядишь наполовину полный стакан в конце туннеля.
 
* * *
Учитель геометрии застукал свою жену с любовником со словами "что и требовалось доказать".
 
* * *
Когда могущество государства объявляется большей ценностью, чем человек, то война уже объявлена, и она в любой момент может возникнуть.


Profile

darth_mickey: (Default)
darth_mickey

December 2016

S M T W T F S
     1 2 3
45 6 78 910
111213 141516 17
181920 21222324
2526 2728293031

Style Credit

Page generated Jul. 21st, 2017 12:53 pm
Powered by Dreamwidth Studios