Архив за месяц: Апрель 2015

О Сюрпризе для жены (Мужской отзыв о геле для депиляции Vееt)

(Орфография и пунктуация без изменений)

«После того, как мне сказали, что мои яйца напоминают по виду старого растамана, я решил сделать решительный шаг и купить этот гель, потому что предыдущие попытки бритья не увенчались особым успехом, к тому же я едва спину себе не убил, пытаясь достать до особо труднодоступных мест. Я немного романтичен, так что решил сделать это на день рождения жены — типа еще один подарок. Я заказал его заранее. Поскольку я работаю на Северном море, я считал себя крутым мужиком и думал, что предыдущие отзывы писали какие-нибудь жалкие офисные крысы… О, мои собратья по несчастью, как же неправ я был. Я дождался, пока моя вторая половина не ляжет спать, и, намекнув на особенный сюрприз, я пошел в туалет. Сначала все шло нормально. Я нанес гель на нужные места и стал ждать. И очень быстро дождался. Сначала я почувствовал теплоту, которая через несколько секунд сменилась сильнейшим жжением и чувством, которое я могу сравнить разве что с ощущением, когда на тебя резко натягивают трусы из колючей проволоки, пытаясь при этом подбросить тебя до потолка. До этого вечера я не был слишком религиозен, но в тот момент я мог уверовать в любого бога, лишь бы он избавил меня от жуткого жжения вокруг сральника и полного разрушения сосиски и двух яиц. Стараясь не прокусить насквозь нижнюю губу, я попытался смыть гель в раковине, но мне удалось лишь запихать в дырку клок волос. Сквозь завесу слез я выбрался из туалета и отправился на кухню. На кухне идти я уже не мог, так что последние метры до холодильника я уже полз. Выкатив нижнюю камеру из холодильника, я нашел там ванночку с мороженым, сорвал с нее крышку и засунул под себя. Облегчение было фантастическим, но недолгим, потому что мороженое быстро растаяло, и адское жжение вернулось. — Ванночка была довольно маленькой, так что жопному отверстию я помочь не смог. Я начал шарить по ящику, надеясь найти хоть что нибудь — в моих глазах было уже столько слез, что я мало чего видел. Я схватил пакет, в котором, как я узнал позже, лежали замороженные ростки фасоли, и разорвал его, стараясь сделать это как можно тише. Я схватил несколько ростков и безуспешно попытался зажать их между ягодицами. Это не помогло — гель, по ходу, проник в прямую кишку, и теперь там словно работал реактивный двигатель. Надеюсь, я больше никогда не буду мечтать, чтобы в кухне оказался снеговик-гей — вы понимаете, как низко я готов был пасть, чтобы унять боль? Единственное решение, которое придумал мой сведенный болью с ума мозг — осторожно засунуть один росток туда, куда еще не прорастало ни одно растение. К сожалению, услышав странные стоны с кухни, моя супруга решила встать и узнать, в чем дело. Ее встретил потрясающий вид: я лежу на полу, отклячив ж@пу, с которой стекает клубничное мороженое, и пихаю в себя фасоль со словами „О, как же хорошо“. Это, несомненно, ее шокировало, и она в ужасе закричала. Я не слышал, как она вошла, так что и сам перепугался, мои кишки сжал спазм, и росток на немалой скорости вылетел в ее сторону. Да, я понимаю, что росток фасоли, которым пердят в ее сторону в двенадцать ночи — не совсем тот сюрприз, на который она рассчитывала, да и на следующий день детям пришлось долго объяснять, что же случилось с мороженым… в общем, благодаря Vееt можно лишиться не только волос на теле, но и достоинства и самоуважения.

Аспирин

Дело было на химическом отделении лет пять назад. Мы с Лехой в качестве итогового задания варили аспирин. Что-то где-то недоглядели и получили в итоге 10 грамм желтой вонючей дряни, ничего общего не имевшей с «крупными белыми кристаллами» из методички. Уже было пригорюнились и смирились с трояком, но тут Леха выдал гениальную мысль: «А че, аптека-то через дорогу…» Купили пачку аспирина, перекристаллизовали и принесли преподу на проверку кучку «крупных белых кристаллов». Удивлению препода не было предела, он проверил и перепроверил все свойства, долго расспрашивал про последовательность действий, и растерянно выдал: «Вот блин, пять лет все какую-то желтую вонючую дрянь синтезировали, а тут раз и так хорошо получилось!»

Весёлая работа

Прихожу сегодня на оперативку. Все уже на месте сидим ждем Палыча (нашего дражайшего капитана). Залетает…
— Вашу мать! Кто вчера в опергруппе дежурил?!
— А что случилось? В чем дело?
Смотрю, Палыч окончательна озверевает:
— Кто вчера в опергруппе дежурил?!
Встает Кудряш:
— Я, товарищ капитан.
Палыч:
— Ты на вызов ездил?!
Кудряш:
Так точно, товарищ капитан.
Палыч:
— Покойницу забирал?!
Кудряш:
— Забирал… (смотрю задумчивей все Кудряш становится)
Палыч (с надрывом в голосе):
— НУ?!
Кудряш:
— Николай Павлович, ну я ее это… в морг отвез, там сторож один был, мне ее пришлось самому затаскивать.
(сторожа в нашем приюте по обыкновению в умат пьяные).
Палыч:
— Ты дальше рассказывай, лейтенант.
Кудряш:
— Ну в морге мест не было… А она, ведь, — старушка, не мог уж я ее на пол бросить… Ну я ее на стул посадил около сторожа, а она сползает… я веревкой ее и привязал, в одну руку ей паспорт положил, в другую постановление на вскрытие…
К моменту когда Кудряш закончил ржали уже все, именно ржали.
Палыч:
— Мало того, что сторож ей всю ночь анекдоты рассказывал, так с утра пришла уборщица, тоже бабка кстати… попросила твою бабку, чтобы она ноги подняла, бабка молчит… Уборщица подумала, что бабка заснула и толкнула ее ноги шваброй, когда уборщица поняла, что бабка умерла, то она сразу потеряла сознание и падая зацепила документы, которые аккурат упали на уборщицу… Санитары думая, что уборщица и есть покойник, так как документы лежали на ней. Погрузили ее на каталку и отвезли на вскрытие, где ее раздели и положили на стол для вскрытия. В это время, пришли студенты 1 курса с мед-училища, присутствовать при вскрытии, окружили уборщицу и преподаватель собираясь сделать первый надрез, повернул уборщице голову, в этот момент она открыла глаза и очнулась. В обморок упали все, даже преподаватель…
После этих слов началась просто истерика, меня аж слеза со смеху прошибла… Вот такая у нас, весёлая работа.

Кейсик

Стою я как-то в «Шереметьево», встречаю жену из Италии. Самолёт задерживается, судя по объявлениям диктора, уже часа на три. Я тихо зверею… Рядом со мной тоже звереет мужичок интеллигентного вида: очёчки в тонкой оправе, шляпа, кейсик. Подходит он ко мне, весь жмётся и просит посторожить его кейс буквально на пару минут, пока он в туалет сбегает.
Я человек по натуре незлобный — согласился. И вот стою. Полчаса, час, полтора… Я уже не озверевший — я бешеный! Наконец подхожу к сержанту транспортной полиции и обрисовываю сложившуюся ситуацию с кейсиком. Он вежливо просит меня пройти с ним в опорный пункт.
Приходим, начинается оформление протокола изъятия кейса: всё, как положено: мои паспортные данные, описание ситуации. Наконец дело дошло до составления описи содержимого кейса. Открывают… Мама моя дорогая! Да чтоб я на этом месте сдох! Кейс плотно набит евро в банковских упаковках!
Я чуть бороду свою единым глотком не сожрал от понимания того, что я себе не прикарманил!
Чувствую себя последним лохом, даже сил ругаться на себя никаких нету!
Гляжу, а люди в форме так тихонько скомкали протокольчик и суетливо поглядывают на кейс…
Тут их как током ударило, кинулись они к нему и давай себе пачки эти засовывать во все карманы, а я, как дурак стою, слюну глотаю.
Но сержант сжалился надо мной и говорит:
— Чего стоишь, кормилец ты наш? Себе набирай — мы же тут не звери какие!
Кинулся я к кейсу, забыв, как меня зовут, и тоже начал судорожно набирать себе бабки. Набираю, набираю, набираю, набираю…
Просыпаюсь — всё одеяло в трусы заправлено.

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

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

a80d754ad09b474cb494c933f978c292 Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://habrahabr.ru/post/254473/