4 Февраля 2016

Не смог пройти мимо

greatwyvern

Бесит, что в современном мире во всем нужно разбираться. Решил ты купить, допустим, велосипед. Походил по сайтам, продающим велики. С помощью википедии среди десятков категорий велосипедов (круизный? городской? трековый? что вы от меня хотите?!) ты нашел ту, что тебе вроде бы подходит. Пролистав десять страниц яндекс–маркета присмотрел недорогой красивый велик в более–менее уважаемом магазине, но тебя смущает, что рядом выставлен такой же, но на 10к дешевле. Интересно, почему? Сравниваешь две модели и находишь различие — у одного передняя втулка из стали, а у второго из титанового сплава (а еще у второго нет крепления для бутылки). Самое время задать давно назревавший вопрос — почему я должен во всем этом разбираться? Я всего лишь хочу передвигаться по улице за счет вращения педалей!

Хорошо, вбиваешь именно этот вопрос — в чем отличие втулки титанового сплава и стальной? Выпадает масса всего, что тебе не нужно, но находится интересная ссылка — на форуме физического факультета два аспиранта спорят о том, почему детали для чего–либо, сделанные из стали и титанового сплава, всегда так разнятся по цене? Один утверждает, что дело в весе, второй — в износостойкости и цене исходного материала. Потом приходит научный руководитель обоих аспирантов и мягко замечает, закрывая обсуждение, что вопрос в данном виде не имеет смысла, поскольку существует множество разновидностей стали и титановых сплавов и рассуждать без уточнения конкретных марок некорректно. Да какого хрена? Гуглишь производителей втулок и находишь наконец конкретные марки использованных материалов, но поскольку тема закрыта, а спросить не у кого, находишь емейл одного из аспирантов и пишешь ему письмо с вопросом. Напоследок скачешь по богом забытым сайтам, где упоминаются разновидности стали и титановых сплавов.

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

Вечером приходит ответ от аспиранта — указанные марки различаются по удельной прочности, прочности на высоких температурах и прочих прочностях, но для велосипедной втулки это не имеет никакого значения, потому как для достижения температуры, на которой заметны различия двух втулок, придется или гнать по соляному озеру со скоростью 800 км/час, или заехать передним колесом в мартеновскую печь. Ты пишешь письмо — спасибо большое за ответ, но тогда почему же две велосипедные втулки настолько разнятся в цене? Прикладываешь ссылки на велосипеды. Долго не можешь уснуть, строя версии, что это за секретный истребитель такой.

В интернет–кафе ты приходишь в натянутой по самый нос бейсболке, запускаешь с флешки Тор и скачиваешь все, что находится по запросу "истребитель "Бесовец"" в разных вариациях. За время за компьютером расплачиваешься наличными. Дома ты переустанавливаешь систему и просматриваешь всю собранную информацию. Оказывается, проект этого истребителя был закрыт год назад по причине выхода за пределы сметы, и без того ТИТАНической, а мастерская расформирована и переведена на разные проекты. Главный авиаконструктор "Бесовца" перебрался в штаты, но загадочно погиб буквально пару месяцев спустя. Перед командой "Бесовца" ставились амбициозные задачи, но о том, что же стало с опытным образцом, нигде никакой информации не было, хотя становилось понятно, что в момент закрытия проект находился уже на стадии испытания. Интересно, но надо идти спать.

Вопрос мучает тебя и на работе. Ты гуглишь имя и фамилию самого молодого из команды разработчиков загадочного истребителя, и чутье тебя не подводит — на пятой странице гугла ты находишь его в Инстаграме. Профиль открыт, последняя фотография залита около года назад. На ней улыбчивый парень хвастается выловленной рыбиной. Геотег указывает — деревня Бесовец в Карелии. Ты собираешь чемодан.

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

Крадешься до колючей проволоки и сквозь деревья наблюдаешь за странной картиной — солдаты выгружают из грузового самолета большой контейнер. На хвосте самолета красуется белое солнце в синем квадрате, внутри красного квадрата. Солдаты открывают контейнер, внутри которого оказываются дети в робах цвета хаки с непроницаемыми мешками на головах. И тут происходит то, чего ты никак не ожидал — в полнейшей тишине твой телефон громко сигнализирует о новом письме. Тут же рядом слышатся шорохи и зычный голос, приказывающий выйти с поднятыми руками. Ты срываешься с места и бежишь сквозь ночной лес. Стараясь бежать зигзагами, ты слышишь лай собак и видишь мелькания фонариков. Ты бежишь так долго, что уже начинаешь паниковать — лес не кончается, берега реки не видно, однако и преследователи, похоже, потеряли твой след. Ты выбегаешь на дорогу. Солнце еще не взошло, но небо уже светлеет.

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

Ты смотришь, что за письмо выдало твое присутствие у колючего забора. Это аспирант. Он сравнил два велосипеда, на которые ты дал ссылки, и заметил, что у них отличаются не только материалы втулок, но и страны сборки. Несмотря на то, что обе фирмы имеют юридический адрес в Нидерландах, фактически сборный цех одной из них находится в Тайване. Этим и объясняется разница в цене, уверен аспирант.

Добравшись до дома, ты падаешь без сил на кровать, но к тебе снова заявляются гости в гражданском. Ты на ходу придумаешь историю про празднование дня рождения на даче у друга, затянувшееся до утра, но мужчины даже не пытаются вывести тебя на чистую воду. Их интересует, почему у тебя на вайфае не стоит пароль. Ты отвечаешь, что только что въехал в квартиру и еще не успел навести порядок. Тут заходит третий и они о чем–то перешептываются в прихожей. Из их разговора ты разбираешь только слова "Циклоп" и "Ежевика". Вернувшись, один из них нервно стучит по колену какими–то бумагами, а потом улыбается, будто забивает на какое–то дело, и советует установить пароль на роутер — мало ли какой злоумышленник может через него выходить в сеть. Уходят.

Ты решаешь, что велосипед тебе не очень–то и нужен. Он внушает тебе страх бесчисленным числом деталей, о которых ты знаешь слишком мало и не можешь полностью доверять сохранность своего здоровья. Вдруг откажут тормоза, которые были собраны на заводе, где двое китайских рабочих недавно покончили с собой, но в новостях об этом, естественно, не писали. Или седло попало в магазин из конфискованной на границе партии, где проверяющий орган смутился зашкаливающим счетчиком Гейгера? Или, например, прямо сейчас на каком–то неведомом тебе форуме пользователи обсуждают, не связана ли оригинальная модель рамы некоего велосипеда с развившейся у топикстартера межпозвоночной грыжей? Деталей так много, что среди них может запросто скрываться та, что причинит вред твоему здоровью, и именно тебе повезет стать одним из тысяч покупателей, кто с ней столкнется.

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

Duran ©

3 Ноября 2015

Темный Лорд Джа-Джа Бинкс

greatwyvern

Это настолько великолепно, что нет сил молчать. Вот полный текст. Вот оригинал.

Отдельные отрывки, чтобы распалить интерес:

Ещё он умудряется убедить нас, что в разгаре важной битвы он лишь неуклюжий болван… При этом он всегда невероятно, поразительно успешен. И когда в одиночку уничтожает танк дроидов, и рассыпая телегу бомб на их ряды, и метко попадая в нескольких врагов из бластера, зацепившегося за его ногу (!) — мы просто закатываем глаза и списываем всё на тупую «удачу».

И вот, как я сказал, мы видим, как Джа-Джа уцепился за балкон справа, но затем он спрыгивает далеко слева. Легко отбросить, как ошибку связности или кадрирования, конечно… Вот только один из дроидов продолжает стрелять туда, где был Джа-Джа, в то время как он спрыгнул в другом месте!

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

Ну так вот, если вы хоть немного поверили мне после всего, и признаёте вероятность, что Джа-Джа может быть не так глуп, тогда вам придётся признать, что Джа-Джа Бинкс и Палпатин были со-заговорщиками. Если Джа-Джа осознанно играет, вводя людей в заблуждение, это означает, что он не дурак… И если он не дурак, то его действия в Эпизоде II, которые помогают планам Палпатина, совершает не неосведомлённый глупец — а партнёр.

1 Апреля 2015

Пусть здесь полежит

greatwyvern

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

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

Не знаю, кто писал большую часть птиц, но я хочу обратить внимание на особенность, позволяющую провести инъекцию произвольного яйца в гнездо. Дело в том, что птица проверяет только расположение и количество яиц, но не их хэши. В 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. Обратите внимание, что большая часть описанных уязвимостей до сих пор не исправлена.

3 Февраля 2013

Моя первая игра

greatwyvern

Вот она, первая написанная лично мной компьютерная игра. И не скажешь, что о существовании Си Шрап я узнал меньше недели тому назад.

 

Ну, будем откровенны, это не совсем чистый C#. И даже очень не чистый C#, но Колумб тоже с ванночки во дворе начинал.

В остальном все, как обещано: директ контрол; данжн-скорул, РПГ, 25 (практически) уникальных локаций. Даже 26. Только с нуаром не сложилось.

 

Апдейт:

Что же пишут благодарные игроки после этого незабываемого опыта (I mean experience you know):

Саша: круто

Мам: победила! угробила кучу эльфов!

 

Присоединяйся к ним и стань лучшим игроком в Lonely Elf™ на деревне!

29 Января 2013

Развелось этих гетеросексуалов

greatwyvern

Гетеросексуалы совсем охамели, уже на эскалаторах целуются у всех на глазах.

И за руки держатся.

Скоро совокупляться начнут прямо на улицах. Чему они детей учат, а?

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

Читаешь мужика какого-нибудь, вроде приличный, и вдруг пишет: "Еду с женой в отпуск, ура". Вот что ему мешало промолчать? Завел себе жену, трахаешь её, ну и трахай молча, за закрытой дверью. Фу, противно, аж передёргивает.

И как потом к таким детей отпускать в школу, например? У меня вот будет, допустим, дочь, а у неё учитель - гетеросексуал! Она же девочка, а он как раз любит девочек, он же её развратит или вообще изнасилует! В любом случае он будет на своих уроках алгебры склонять детей к своему образу жизни. Зачем бы он ещё преподавать пошёл?

Я вообще за свободу и равенство. Я не предлагаю их сажать или там принудительно лечить, хотя по большому счету не помешало бы. Я где-то читала, что гетеросексуальность – последствие детской травмы. Неудивительно: если смотреть каждый день, как твой отец целует твою мать - у любого крыша поедет. Или просто не повезло в жизни. Мне кажется, если бы такому человеку вовремя попался нормальный партнёр своего пола, им бы не пришлось быть гетеросексуальными. Мне их жалко даже немножко. Я вообще всех всегда жалею: кошек, собачек, детей-сирот. Кстати о детях. Гетеросеки же ещё иногда детей берут из приютов! Хотя могут своих завести, но нет, им надо взять чужих и сделать их такими же извращенцами. Вы вообще представляете, ЧТО может с ребёнком произойти в семье, где есть два взрослых ОБОИХ ПОЛОВ? То есть его ничто не спасёт - не мать, так отец окажется опасен.

Мне кажется, прошло время молчания. Если мы не выскажемся сейчас, то потом может быть поздно. Они просто захватят всё. Это ведь не просто так в последнее время гетеросеки активировались. Это всё попытка Запада нас зомбировать. Вы смотрели диснеевские мультфильмы? Что они нам внушают, вы задумывались? Это же постоянная пропаганда традиционной семьи, с пелёнок малыши видят ЭТО: принцесса, которая ждёт принца. Причем главное событие там обычно - поцелуй, то есть герой наносит героине травму, после которой ей уже тяжело не стать гетеросексуальной. Или заражает её чем-то. И это у них там считается нормальным! И наши дети это смотрят! И мы сами разрешаем им это смотреть!!!

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

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

 

Перепост отсюда.

15 Февраля 2012

Шедевральности редкостной гол

greatwyvern

Денисов, Быстров, Семак, 2:1.

21 Декабря 2011

Вся правда о гоблинах

greatwyvern

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

По статье о нарушении авторских прав поэт пойти тоже не мог — в этом рассказе она еще не будет включена в УК. Злые раздваивающиеся языки — обычное у гоблинов дело, бывают и рас(с)траивающие(ся), но таких приютил ежедневник «Крикун» — поговаривали, что вся соль в словах «страна моя».

Страна — славный Гобланд — действительно поэту не принадлежала. А принадлежала она Далее...

29 Октября 2011

В одно слово, с маленькой буквы

greatwyvern

Ну, и последний гражданинпоэт шикарен, как в былые времена. И предпоследний.

20 Октября 2011

Библейский сюжет

greatwyvern

— Йа беременна? Блиа!

 

(Кисти Матиаса Штомера.)