Баги в Блицкриге: комедия ошибок | 21 октября 2016 года, 00:20

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

“…Если верить одной широко раскрученной байке, то в режиме огибания рельефа местности автопилот истребителей F-16 израильских ВВС выходил из строя при полете над Мертвым морем. Высота машины в какой-то момент пересекала отметку “уровня моря”, происходило деление на ноль отчего у автопилота приключался паралич мозга.

Чего уж говорить, если фирма Lockheed Martin может так опростоволоситься, то что взять с нас, простых разработчиков игрушек?

На моей памяти из проектов Nival Interactive наиболее урожайным на комичные баги был Блицкриг 2. Если кто не знает, это такая стратегия на тему второй мировой. Очень кстати смешная даже и без багов. У нас был строгий немецкий издатель, а немцы они страсть какие пугливые до всего что связано с их нацистским прошлым. Упоминать имя фюрера нельзя, слова типа “нацистский”, “фашистский” тоже табу, даже свастика у нас была не настоящая, а стилизованная. И это при том, что между миссиями у нас были ролики, поясняющие какие-то исторические события связанные с игровым процессом. В результате получилась эдакая гламурная войнушка в стиле галантного века только с танками и бомбардировщиками без особых претензий на историчность. Кстати, видя какое у нас получается непотребство, наш военный консультант попросил убрать из титров его имя 🙂

ФАУ-2 – это такая немецкая мегапетарда. Германия ими под конец войны докучала Великобритании, но без особого успеха. Вундерваффе страдало от кучи детских болезней и хорошо если могло оторваться от земли. Зачастую взрывалась прямо на стартовом столе, а уж коли отрывалось да еще и летело в сторону Англии, то уж вообще успех. Горючее, между прочим, 3,5 тонны этилового спирта 🙂

Ну, сделали и мы в Блицкриге эту самую ракету. Как и немцы, сделали ее уже ближе к концу проекта и соорудили на базе объекта “самолет”. Но программисты несколько схалтурили и не пооткручивали у бывшего самолета подозрительную для баллистической ракеты функциональность. Оказалость, что если во время полета к цели начинал идти дождь или снег, то во-первых ракета говорила человеческим голосом “Fliege zuruck”(нем. лечу назад), а во-вторых разворачивалась и летела обратно на базу. Фигли там, погода то нелетная.

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

Но, беда в том, что в Блицкриге кроме собственно пехоты еще были всякие антуражные юниты, типа коров, свиней и собак. Выяснилось, что спецназ вовсе не чурается переодевания в бобиков и хавроний. Если учесть, что механизм этого самого переодевания несколько глючил и часть отряда можно было нарядить в одну форму, часть в другую, то можно было создавать совершенно безумные подразделения. Например, отряд из собак, свиней и панцергренадеров. Учитывая, что отряду можно отдавать всякие приказы типа “маршировать”, “ползти” и т.д., то игроку предоставлялась уникальная возможность полюбоваться марширующими свиньями. Получалось это у них, впрочем, паршиво, потому что скелет свиньи не соответствует скелету пехотинца и выглядит это как отряд ездящих не попе хрюшек. А еще этот цирк-шапито можо было запихать в окоп. Сидят, значит, свиньи с собаками в окопе и периодически из него выглядывают.

Со свиньями был связан, кстати, еще один баг, из-за которого игра падала. В какой-то момент программисты что-то такое там подкрутили и свиньи перестали быть нейтральными, а обрели возможность принадлежать какому-то игроку. Управлять ими было нельзя, но формально они могли быть “наши” или “ненаши”. Так вот свиньи роняли игру. Потому что видя неприятеля, патриотичная хавронья хотела дать врагу отпор и лезла за оружием, которого у нее естественно не было. Если мне не изменяет память, программисты исправили баг, просто выдав свинье пистолет Люгер без патронов. Визуально это никак не видно, но формально, теперь, видя врага, она лезет за оружием, видит что патронов нет и на этом успокаивается.

Кстати, собака, в отличие от свиньи, может кусаться. И число укусов у нее ограничено, кабы не соврать, десятью тысячами. Потом у барбоса кончаются “патроны”, и он становится безобидным. Кстати интересный вопрос, я не проверял, будет ли грузовик снабжения, который подвозит боеприпасы, подносить патроны собаке?”

http://burrarum.livejournal.com/32707.html

Покупатель всегда прав! — американский способ торговли | 20 октября 2016 года, 13:56

“Покупатель всегда прав!” – как это проявляется в американской рознице читайте в новой колонке про жизнь в Америке.

http://www.eg.ru/daily/family/57412/

Окружая покупателя: использование размеченных областей на карте Google в e-коммерсе | 19 октября 2016 года, 20:55

Очередной эксперимент: использование размеченных областей на карте Google для различных целей в e-commerce: поиска оптимального склада, поиска доступных магазинов для самовывоза или лучшего доставщика, а может и самого факта возможности продать товар или услугу покупателю из этой зоны.

Работает это так: покупатель вводит адрес, а система его определяет в одну или несколько крупных зон. Различные компоненты системы зависят уже от этих крупных зон, а не от мелких компонентов адреса, таких как почтовый индекс.

Заодно разобрался с разработкой на Google AppEngine. Дело в том, что определение многоугольника (зоны), в который входит точка на карте (где покупатель), для ситуации “много зон сложной формы” потенциально может быть довольно “тяжелой” вычислительной задачей. И если есть возможность, ее лучше сразу делать на кластере, который может легко масштабироваться, а лучше еще и сам. И вот этот кейс отличный для Google AppEngine, где задействован Google DataStore для хранения параметров многоугольников, и Google Memcache для хранения кэша.

https://hybrismart.com/2016/10/19/geofencing-in-hybris-custom-shipping-zones/

https://hybrismart.com/2016/10/19/geofencing-in-hybris-custom-shipping-zones/

Покемоны в Кремле: шумное запрет или редкое счастье? | 19 октября 2016 года, 16:26

Слышал, что в Москве теперь в районе кремля запретили ловить покемонов тем, что “шумят” на частотах GPS. Или, наоборот, у них там живет редкий вид покемонов, и тамошние любители маков и айфонов теперь без конкуренции

Три вещи, которые работают ИНОГДА… | 18 октября 2016 года, 14:59

У меня дома есть три вещи, которые работают ИНОГДА. Это лэптоп Lenovo X1 Carbon, принтер Lexmark S600 и bluetooth-колонка JBL Flip. У всех одно и тоже – они работают, когда хотят. При этом, если работают – то просто отлично. Но чаще не работают. Ноут не включается, колонка не играет (никак, ни по кабелю, ни по BT), принтер не печатает (никак, ни по кабелю, ни по Wi-Fi). Причем сначала была колонка, потом к ней присоединился ноут, а потом – принтер. Вот и не верь после этого в настоящие хардкорные компьютерные вирусы 🙂

Когда закон не является законом | 17 октября 2016 года, 23:37

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

Очень интересно, что когда речь идет о каком-нибудь новом законе, то 9 из 10 человек родом из России, Украины или Беларуси, автоматически подумают, а как этот закон обойти. Под той темой почти все комменты про это. Ну так, чтобы “типа законно”, конечно. Или “слегка незаконно”. Некоторые просто подумают, некоторые будут что-то делать для себя, а некоторые еще и для других.

Типичный американец о том, как обойти закон вообще не подумает. Их со школы учат слепо следовать законам, какие бы они (оба) дурные не были. И если закон действительно дебильный, американец будет возмущаться, но мысли “как сделать так, чтобы ему не следовать” не приходит вообще.

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

Goodbye White Collar, Hello Westworld? | 17 октября 2016 года, 22:42

Ух, досмотрел! 81 эпизод White collar позади. Последняя серия очень прикольная, но в целом сериал довольно наивный. Но красивый и стильный.

Теперь выбираю следующее длинное кино. Наверное, это будет Westworld.

http://www.imdb.com/title/tt1358522/?ref_=nv_sr_1

http://www.imdb.com/title/tt1358522/?ref_=nv_sr_1

Unlocking the Power of Real-Time Complex Event Processing with Drools Fusion and Hybris | 17 октября 2016 года, 14:49

Большое обновление в блоге про Hybris. Мне удалось разобраться и подключить Drools Fusion + Drools Server последней версии к hybris. Эта штука правильно называется Complex Event Processing. Смысл в том, что если у вас есть поток каких-либо данных для обработки в реальном времени, Drools Fusion позволяет делать это быстро и гибко. Например, в случае екоммерса таких данных много. Самые простые, это логи посещения страниц.

Я записал демку, из которой понятно, как это работает. Логи выгружаются куда-то в хранилище, а оттуда попадают в drools fusion для обработки. На языке drools пишутся правила, которые вытягивают из логов какие-то новые знания. В моей демке это просто идентификация фотограф/не фотограф по посещенным страницам. Результат правил возвращается обратно в хайбрис и как-нибудь там может использоваться. Баннер показать или цены понизить.

Основная особенность всего этого, что обрабатывается поток событий в реальном времени. В моем примере, это нахождение как минимум пяти страниц одной тематической группы за последние 30 секунд для одного пользователя.

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

http://hybrismart.com/2016/10/17/complex-realtime-event-processing-with-drools-fusion-integrating-with-hybris/