LINUX.ORG.RU
ФорумTalks

О зоологии и программировании

 


2

3

https://habr.com/ru/post/254473/

Вы неправильно пишете животных

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

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

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

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

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

Спираль будет забирать всё больше муравьёв из доступных источников, пока приоритеты не поменяет внешнее событие или муравьи не умрут

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

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

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

Дельфину вообще не всегда удаётся включать оба ядра мозга – только тогда, когда нужно делать что-то важное. Если вам встретился тормозящий дельфин – проверяйте, оба ли глаза открыты. Только один? Значит, он в спящем режиме и работает на одном ядре с пониженной тактовой частотой.

Медведь не всегда корректно выходит из hibernate-режима. Это же, кстати, касается некоторых растений, но там баг не так опасен. Растения легко перезапустить. И да, учитесь у тех, кто писал альбатроса. Альбатрос вообще спит в воздухе.

Теперь черепаха. Ей вместо того, чтобы прописать нормальный алгоритм обхода препятствий, захардкодили рефлекс убирания головы в панцирь. Теперь даже если она натыкается на крокодила, тот со своим молниеносным броском не успевает откусить ей голову. Побочный эффект – черепаха легко уворачивается от ножа мясника. Скорость обработки инструкций процессора не сравнится со скоростью работы интерпретируемого высокоуровневого кода у повара. Черепаху не обгонишь, критичные функции переписаны на ассемблере.

Белый медведь – отличный пример работы с солнечной энергией. Медведь прозрачный в УФ по меху и чёрный на коже. Это уже торжество инженера.

Жираф – сплошной костыль. Нет, в целом, понятно, что требования заказчика по высоте кроны несколько раз повышались по мере развития проекта. Но вот то, что вошло в релиз по водопоям и было пропущено на приёмке – это нонсенс. Жираф тупо не достаёт головой до воды(!) в обычном режиме. Ему приходится жутко вывернуться и почти сесть на шпагат, чтобы попить. Ясное дело, анонимусы-хищники этим нагло пользуются. Детёныша вообще пришлось укреплять – он в стабильном релизе падает с полутора метров при рождении.

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

Хорошей идеей было накатить код сборщика мусора в ОЗУ от золотой рыбки на белку – garbage collector с высокой вероятностью очищает и неиспользуемые указатели на места размеченных орехов и семечек. В результате благодаря белке вырастает много новых деревьев.

Вот индийскую кобру точно писал фанат Starcraft. Потому что, задумайтесь, где ещё можно встретить юнита, плюющегося ядом на два с половиной метра точно в глаз террану.

Ну и раз начали о нерациональности – вспомним того же осьминога. Километры нервной ткани просто потому, что кому-то было интересно написать его на brainfuck. Да если использовать эти отдельные модули управления присосками, ту же ткань – может получиться вообще ЦОД на колёсиках.

Или вот взять того же пингвина – летать не умеет, зато плавает и весело прыгает на полметра в высоту. Написали его в качестве учебного примера для объяснения принципов полиморфизма, а потом почему-то забыли закомментировать подключение библиотек с ним в основном релизе.

Тлей и других насекомых, а также ряд животных точно писал бешеный фанат рекурсии. Светлая мысль рождать некоторых уже беременными – просто вынос мозга для тестеров. Зато слонёнок деплоится 22 месяца — вот что значит не влезть в кэш процессора.

Кстати, пасхалка с бегемотом получилась смешная. Люди боятся львов, носорогов, змей – но только этот обаятельный толстяк целенаправленно бегает за человеком. И, внезапно, со скоростью до 30 км/ч. То есть догоняет даже велосипедистов.

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

У курицы расслабленная лапа «защёлкнута», поэтому если поставить курицу на ветку, дождаться, пока она уснёт, а потом легко и быстро перевернуть, сработает рефлекс – и у вас будет курица, спящая вниз головой на дереве. Главное – подготовить почву и рассказать всей деревне про вампиров за день до зрелища такого курятника.

У собак и ряда других хищников и падальщиков косо прописано распознавание добычи. В одном из условий AND случайно заменили на OR, и вот результат — известный баг с запуском приоритетного процесса с атакой на пятно лазерной указки.

В общем, вы наверняка и сами можете продолжить.

P.S. Обратите внимание, что большая часть описанных уязвимостей до сих пор не исправлена.

★★★★★

Каменты интересные. Например, про тульпу https://habr.com/ru/post/161575/ не знал о таких штуках с сознанием человека. Вернее, что в них можно пытаться играть осознанно. Хотя и крайне рисковано.

praseodim ★★★★★
()

У кошек баг куда эпичнее, чем здесь описано. Если взять ее за шкирку, положить на пол и минут десять приглаживать шерстинки на голове, она начинает считать тебя родной мамой, не отвяжешься потом.

Irma ★★
()
Последнее исправление: Irma (всего исправлений: 1)

Опять красноглазики натягивают своё убогое ойти на действительно сложные вещи. Это было моветоном ещё в конце 00-х годов.

alex1101
()

Это была передача «шутки от айтишников». Далее в программе «играй, гармонь» и «сельский час».

thesis ★★★★★
()
Ответ на: комментарий от alex1101

Это должно быть забавным. А вот у верунов и им подобных личностей с иронией и самоиронией обычно проблемы. Ты ПГМнутый, что ли?

hateWin ★☆
()
Ответ на: комментарий от hateWin

Именно по этой причине, кстати, у китов хвостовой плавник горизонтальный, а не вертикальный

hateWin ★☆
()
Ответ на: комментарий от alex1101

С чего ты взял, что он у меня бинарный? Логическую цепочку в студию.

hateWin ★☆
()
Ответ на: комментарий от praseodim

Каменты интересные. Например, про тульпу https://habr.com/ru/post/161575/ не знал о таких штуках с сознанием человека. Вернее, что в них можно пытаться играть осознанно. Хотя и крайне рисковано.

https://dpmmax.livejournal.com/291040.html В комментариях психиатр говорит, что наибольший риск — для истероидных личностей. Которые и так сильнее страдают от одиночества.

question4 ★★★★★
() автор топика
Ответ на: комментарий от praseodim

В какой-то из религий эта штука считалась весьма почётной. Помню лет 10-20 назад был рассказ женщины которая на религиозной почве вывела себе тульпу а потом три года пыталась от неё избавиться потому что та оказалась старым агрессивным дебилом. А избавиться внезапно сложно поскольку она с тобой в одной голове живет

upcFrost ★★★★★
()
Ответ на: комментарий от upcFrost

По-моему, в этой ситуации дебил как раз не тульпа 😄

alex1101
()
Ответ на: комментарий от alex1101

Так и надо. Эти сложные вещи легко могут стать ещё сложнее. И ещё сложнее. И ещё сложнее, если не сдерживать. Черезмерная сложность это что? Правильно, бардак.

С этой целью кстати внедряют ерп/црм а не просто для записей

DumLemming ★★
()

При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.

А-хаха. :D

TheNewDragon
()

На эту тему есть манга и аниме 天地創造デザイン部 (Tenchi Sōzō Dezain-bu). Довольно занимательно.

alegz ★★★★
()
Ответ на: комментарий от upcFrost

Интересно как от фантазии бывает трудно избавиться. Тут шиза во все поля.

-------------

Не бывает никаких тульп. Бывают идиоты.

untitl3d
()
Последнее исправление: untitl3d (всего исправлений: 1)
Ответ на: комментарий от upcFrost

В какой-то из религий эта штука считалась весьма почётной. Помню лет 10-20 назад был рассказ женщины которая на религиозной почве вывела себе тульпу а потом три года пыталась от неё избавиться потому что та оказалась старым агрессивным дебилом. А избавиться внезапно сложно поскольку она с тобой в одной голове живет

помнится что это у классика эзотерики массонки г-жи Блаватской (то есть очень-очень давно) которая якобы на Тибете создала себе толстого даосского монашка, от которого потом долго избавлялась..

MKuznetsov ★★★★★
()

Тег «программисты шутят» надо поставить, а то прочитал пару предложений и автоматически отбросил с ярлыком «очередной безграмотный техно-тупняк».

papin-aziat ★★★★★
()
Ответ на: комментарий от papin-aziat

Тег «программисты шутят» надо поставить, а то прочитал пару предложений и автоматически отбросил с ярлыком «очередной безграмотный техно-тупняк».

Не переживайте, тут таких на ЛОРе большинство - с отсутствующим или с неактивированным по дефолту ЧЮ

vaddd ★☆
()
Ответ на: комментарий от papin-aziat

Сами насочиняйте. Типа, трудность в настройке и неочевидная полезность. Мышечный спазм способствует зачатию, это правда, но зачем их несколько и зачем они связаны с удовольствием, непонятно.

Irma ★★
()
Ответ на: комментарий от Irma

Типа, трудность в настройке и неочевидная полезность. Мышечный спазм способствует зачатию, это правда, но зачем их несколько и зачем они связаны с удовольствием, непонятно.

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

papin-aziat ★★★★★
()
Ответ на: комментарий от alegz

На эту тему есть манга и аниме 天地創造デザイン部 (Tenchi Sōzō Dezain-bu). Довольно занимательно.

Спасибо за рекомендацию.

question4 ★★★★★
() автор топика
Ответ на: комментарий от praseodim

Похоже на простой метод утёнка https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D1%83%D1%82%D1%91%D0%BD%D0%BA%D0%B0 на деле более удобный поговорить с самим собой.

Я вот иногда про себя начинаю

Так смотри, будем делать всё на switch
А может просто массивы с именованными индексами и всё.
Ну в принципе можно, а плюсы в чём?
Ну например можно вынести в заголовочный файл или вообще динамически переопределять, со свичём у тебя такое не выйдет
Хм, точно. 
Надо мыслю записать
Ага надо записать

Кому то проще обращаться при это к предмету эмулируя собеседника

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

Блин ну и чего мне делать?
Так ладно, руки в ноги и надо сначала в магазин
И список написать что-бы не бегать туда сюда
Точно

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

Одно дело мысленная абстракция и так сказать аналог репетиции перед зеркалом, другое дело что-то неконтролируемое. Дурка короче.

А потом появляется всякое

Ты зачем кошку за хвост повесил?
Мне моя тульпа приказала иначе она от меня уйдёт!
Тульпа это ваша девушка.
Нууу типааа 😳 👉👈
А где она сейчас?
Я стесняюсь сказать.
Говорите, это не шутки
Она сейчас засовывает свой член вам в ухо 😳 👉👈
ЧяяяяГО БЛ.................. 
Это всё онаа, аааа не бейте, вы спросили я ответил
Тульпа хватит лабзать ему лысину
АААААААаааааааа

:D Бррррр, дурка.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от untitl3d

Интересно как от фантазии бывает трудно избавиться. Тут шиза во все поля.

Не бывает никаких тульп. Бывают идиоты.

Как я понял из объяснения для неспециалистов, это — одна из разновидностей истерии. Вроде демонической одержимости.

question4 ★★★★★
() автор топика
Ответ на: комментарий от Irma

Лучше с ошибками и дома, чем грамотно и в дурке. Но так-то да, справедливо.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от Irma

Можно сделать тульпу рационального характера, чтобы она исправляла ошибки правописания.

Интересно, может ли тульпа поменяться с основным сознанием местами?

praseodim ★★★★★
()
Ответ на: комментарий от praseodim

Да, с первоначальным хозяином моего тела так и случилось

alex1101
()
Ответ на: комментарий от praseodim

Интересно, может ли тульпа поменяться с основным сознанием местами?

По ссылке, которую я выше давал, примерно так и произошло. Сказала, что хозяйка телом пользуется неправильно, и отобрала. Но время от времени ослабляла контроль. Как раз хватило, чтобы сдаться в дурку.

question4 ★★★★★
() автор топика
Ответ на: комментарий от Irma

зачем они связаны с удовольствием

чтобы стремились к этому

quester ★★
()
Последнее исправление: quester (всего исправлений: 1)

Некоторая военная часть в глухом лесу. Огороженный периметр, вышка с автоматчиком на ней. Стоит себе спокойно часовой, дрыхнет… Вдруг замечает: вышка шатается. WTF??? Смотрит вниз – а там медведь об опору вышки спину чешет. (Лопата).

tt
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)