Перейти к содержимому

Донат
На хостинг
ISK за переводы
до 75kk за 1000зн.
Хроники EVE
Сборник
Новичкам
Полезная информация
Фотография

"Война порождает воров, а мир их убивает."


  • Закрытая тема Тема закрыта
37 ответов в теме

#1
Cptn Z

Cptn Z

    Clone Grade Delta

  • Tech II Pilots
  • PipPip
  • 203 сообщений
39
  • EVE Ingame:Cptn Z
  • Corp:-TER-
http://myeve.eve-onl...?a=blog&bid=626

Часть 1: Технические подробности
Часть 2: Рынок материалов
Часть 3: Рынок Т2
Часть 4: Преступление и наказание

Часть 1. Технические подробности

"Война порождает воров, а мир их убивает."
CCP Lilith


"Война порождает воров, а мир их убивает." - George Herbert

Игрокам приходится преодолевать множество трудностей и заниматься сложным планированием, чтобы победить в масштабных войнах EVE. Некоторые заходят слишком далеко и, в конце концов, платят за это исключением из игры. Так произошло и в истории с недавним багом, связанным с POS. Хотя его использовало относительно небольшое количество игроков, масштабы эксплуатации были промышленными.

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

Мы также абсолютно уверены, что вы, пилоты EVE, должны тоже узнать результаты, так что мы решили предоставить детальную информацию о проблеме с реакторами, известную также как "the POS exploit".

Предварительные результаты расследования были представлены в CSM в середине января. Члены CSM дали о них положительные отзывы и помогли нам уточнить некоторые детали и формулировки.

Как вы увидите в последующем отчете, подобная работа требует сотрудничества между многими отделами внутри CCP. Команда программистов представлена CCP Pleognost, который рассказал о коде, истории возникновения бага и что мы сделали для его исправления. CCP Diagoras и CCP DrEyjoG провели экономическои исследование и оценили общее воздействие уязвимости на экономику EVE, а CCP Grimmi описал действия, которые мы предприняли против тем, кто использовал баг для собственного обогащения. Многие другие были вовлечены в различные стадии расследования, и мы хотим поблагодарить их за их вклад.

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

POSы: как они должны работать, и что происходило на самом деле.
CCP Pleognost


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

В нашем случае мы рассматриваем три игровых объекта: контрольные башни (POS Control Towers), силосы (POS Silos) и реакторы (POS Reactor Arrays). С нашей точки зрения, Coupling Arrays можно считать просто маленькими силосами. Точно так же, Moon Mining Arrays представляют собой просто простые реакторы - они просто выдают постоянный поток "бесплатных" веществ, и при этом ничего не потребляют.

Чем занимаются структуры ПОСов

Основние значение имеет то, как связаны эти объекты.

Контрольные башни - это большие начальники ПОСов, состоящие из полукилометровой простыни кода, которые занимается всем, начиная от определения момента включение реинфорса, до посылки надоедливых сообщений вашим противникам в тот момент, когда башня устанавливается в захваченном (claimed) космосе. Интересующий нас элемент - система управления производством, достаточно большой кусок гигантского файла, описывающего поведение башни.

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

Силосы - это, попросту говоря, огромные склады в космосе. Они умеют хранить всякие штуки - и это их единственное занятие. Отметим, что мы добавили кое-какие ограничения. Силос может хранить только один вид товара, и, более того, этот товар может храниться только в одной куче (stack). Размер этой кучи кэшируется, так что мы можем работать с этим значением во время обработки производства, не обращаясь к базе данных.

Это хорошо, потому что лаги при обращении в базе данных - отстой. (Мы еще не раз вернёмся к теме "Лаги - отстой" позже).

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

На самом деле, мы не делаем все эти манипуляции. Перемещение материалов с места на место - дорогая операция, так как она использует систему, которая следит за местонахождением всех вещей в EVE. Чрезмерное использование этой системы приводит к тому, что она отнимает бесценные ресурсы процессора и базы данных у всего остального в EVE. По возможности, мы должны избегать этого.

Как всё работает

Предположим, что у нас есть простой ПОС с простой реакцией: силоc A содержит ресурс A, силом B содержит ресурс B. Реактор X потребляет ресурс A и производит ресурс B.

Изображение

Обратите внимание на последовательность действий вверху картинку: реактор проводит большую часть времени пустым; внутри него что-то находится только когда реактор ожидает, чтобы силос B забрал результат реакции. Нам не нужно следить за кучами ресурсов внутри реактора; достаточно знать, есть ли достаточно ресурса A для реакции, выдающей единицу ресурса B. После этого мы можем оповестить силос B, что он может добавить единицу ресурса B. Фактически, мы это и делаем.

Еще пара хитрых приемов

Перед тем, как мы перейдем к самой проблеме, вы должны узнать еще две вещи. Обе связаны с контрольными башнями.

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

Во второй фазе мы фактически производим материалы - т.е. силосы забирают результаты из Moon Mining Arrays, других силосов и реакторов. В конце этой фазы мы сохраняем состояние ПОСа на тот случай, если что-то Плохое (например, даунтайм) случится перед следующим циклом производства.

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

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

Предупреждение: математика!

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

Определение вершин, с которых надо начинать обход, главный вопрос работы с ПОСами. На самом деле, найти места "входа" относительно просто: мы проходим через список связей ПОСа и отмечаем сколько связей входит в каждую структуру. Те структуры, для которых это число будет равно нулю, должны быть посещены первыми, так как именно они будут "головой" вашей производственной цепочки.

Мы такие умные!

В EVE много ПОСов, и было бы неплохо, если бы мы могли сэкономить намного тактов процессора или базы данных, пропустив некоторые структуры. Для этого, мы рассмотрели типы объектов, которые могли стоять в начале цепочки.

Логично, что силосы и Moon Mining Arrays будут находится в начале цепочки. Обе структуры могут поставлять материалы, или из "пустоты" (Moon Mining Arrays) или из собственных запасов (силосы). Мы обрабатываем их в соответствии с алгоритмом.

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

... Правильно?

Ой

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

Игрок отключает все связи, ведущие к реактору.

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

Она говорит:

- Мы не можем начать здесь! Это глюк!

И продолжает свой путь дальше по направлению у силосу, присоединённому к реактору.

Реактор не был обработан. Он не знает, что прошел очередной цикл и - наивный! - помнит о предыдущем нормальном цикле, позволяя присоединённому силосу добавить в кучу новый, якобы произведённый им, материал.

Халява пришла.

Последствия

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

Вся информация о состоянии производства и связях работающих ПОСов была в базе данные. После того, как мы сделали правку, мы сляпали запрос, который пробежался по всем реакторам Транквилити, проверяя, каких из них имеют входящие связи и проверяя их состояние. Мы получили список всех включенных реакторов без входящих связей, которые "считали", что в последний цикл они что-то произвели.

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

Вот, в общем-то, и всё. Теперь мы должны разобраться, сколько исков было создано с помощью этой уязвимости, и как это повлияло на рынок EVE. Вперед, к экономике!

продолжение следует

Сообщение отредактировал Cptn Z: 11 February 2009 - 16:22

  • 4

#2
Mind Paralizer

Mind Paralizer

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 3150 сообщений
357
  • Client:Eng
Мде.. сср нам про посы расскажет и как их долго рисовали и отлаживали. Проблема-то в том, что кто-то из ГМ крышевал этот эксплойт или же они за маркетом вообще не следят и не выделяют для этого специалистов. Достаточно было обратить внимание на то, что некоторые т2 вещи продавались ниже себестоимости компонентов. Если нет мониторинга рынка сотрудниками компании, то там возможны и другие эксплойты, не связанные с простой генерацией предметов из воздуха.

Рынок т2 в еве достаточно емкий по реальным деньгам, кто-то помнится даже тут на форуме диспрозиумные луны в рублях/месяц озвучивал, получалось достаточно неплохо. В случае с багом посовых луноматов рынок т2 юзался очень прилично и на значительные суммы. Текущая ситуация похожа на то, что хозяин казино решил сам сесть за столик поиграть и увеличить свою прибыль, обыгрывая клиентов и дав команду крупье сдавать себе дополнительных тузов.
  • 0

#3
DarkPhoenix

DarkPhoenix

    Hatred

  • Tech III Pilots
  • PipPipPipPipPipPipPipPipPipPip
  • 28748 сообщений
4395
Радует, что признали наличие петиций.

И, пусть нет никаких гарантий, что все изложенное - правда, такая открытость тоже подкупает ;)
  • 0

There is a place where the black stars hang
and the strangest eons call that amorphous mass
unknown, immense, ambivalent to all


#4
Tester128

Tester128

    scourge heavy missile

  • Tech III Pilots
  • PipPipPipPipPip
  • 2898 сообщений
1080
  • EVE Ingame:tester128
  • Corp:-FRS-
  • Ally:.-D-.
  • Client:Eng
вся эта душераздирающая история навеяла

вот сидит мужик в гипсе и долго рассказывает вам что такое пистолет макарова, сколько в нем деталей, какой там затвор, как там боек бьет по капсулю. Долго рассказывает, обстоятельно, со всеми подробностями и отвлечениями в химию и спромат. Часа два рассказывает. И завершает. И вот значит лежал у меня в кармане пистолет макарова и я решил сэкономить несколько процессорных тактов на то чтобы там руку поднимать, доставать его, целиться и просто дернул за курок. И прострелил себе ногу.
  • 0

Изображение


Дс Дс дс...да что это вообще такое? ну летает какая-то шайка. шайка шайкой, профессиональные ногебаторы...не более...

Вааб бааб дааб тааб. Трололо!


#5
Pbs

Pbs

    Почетный флеймер СССР

  • Tech II Pilots
  • PipPipPipPipPip
  • 1566 сообщений
128
  • EVE Ingame:Pbs
  • EVE Alt:Britomartida
  • Corp:Pumpkin Scissors
  • Ally:Evil Empire
Стену текста не осилил. Они специально столько написали чтобы народ офигел и до важных вещей не добрался. Добрался лишь до:

Вся информация о состоянии производства и связях работающих ПОСов была в базе данные. После того, как мы сделали правку, мы сляпали запрос, который пробежался по всем реакторам Транквилити, проверяя, каких из них имеют входящие связи и проверяя их состояние.

То есть те кто услыхав о шухере отключил свои ПОСы до проверки - вышел сухим из воды.
  • 0

#6
Akulov

Akulov

    Clone Grade Delta

  • Tech III Pilots
  • PipPip
  • 161 сообщений
-1
  • EVE Ingame:Akulov
  • Corp:Basis of Dream
  • Ally:FLAME
Наскока я понял сперва проверка была а потом баны, а не наоборот.
  • 0
ЗЫ Ах да, минусовать БУДУ и дальше. А сделать ты НАМ ничего не сможешь (с) veelzevul :)

#7
Trimutius III

Trimutius III

    Khanid Trader

  • Tech III Pilots
  • PipPipPipPipPipPipPip
  • 6685 сообщений
224
  • EVE Ingame:Trimutius III
  • EVE Alt:Weldy StarFiner
  • Corp:F-053
  • Channel:ru-help
  • Client:Eng

То есть те кто услыхав о шухере отключил свои ПОСы до проверки - вышел сухим из воды.

нет не вышли... ССР же регулярно делают зеркала сервера и архивируют их... и в итоге они разархивировали все зеркала до февраля 2006 года как минимум (вроде бы хотели и более ранние смотреть но про это инфы не помню) и в каждом зеркале искали такие ПОСы... Так что шухер бы тут не помог ССР за 2 года как минимум проверила всех... :)

Сообщение отредактировал Trimutius III: 11 February 2009 - 5:06

  • 0
Я посланник из ниоткуда в никуда. Никто и ничто не посылало меня. И хотя это невозможно, я всё-таки существую. ©Тримутиус
Изображение

#8
Xantor Bludberry*Нейтрал

Xantor Bludberry*Нейтрал
  • Guests
Моск почти сломан (особенно об алгебру), но осилил. Мощно...
  • 0

#9
Zvur

Zvur

    Clone Grade Epsilon

  • Tech III Pilots
  • PipPipPip
  • 294 сообщений
8
  • EVE Ingame:Zvur
  • Corp:ImRD Inc.

вся эта душераздирающая история навеяла

Угу. У меня тоже впечатление :). Можно было просто написать "мы хотели как лучше, а получилось как всегда...".
Но отмазку на свою ошибку они написали все ж толковую и захватывающую :). Похоже, это копия отчета девов для руководства.
  • 0
"Ученые подсчитали, что шансы существования столь откровенно абсурдного мира равняются одному на миллион" (с) Terry Pratchett

Из двух спорящих один - дурак, а другой - подлец. Дурак не знает и спорит, подлец знает и спорит.

#10
Pbs

Pbs

    Почетный флеймер СССР

  • Tech II Pilots
  • PipPipPipPipPip
  • 1566 сообщений
128
  • EVE Ingame:Pbs
  • EVE Alt:Britomartida
  • Corp:Pumpkin Scissors
  • Ally:Evil Empire

нет не вышли... ССР же регулярно делают зеркала сервера и архивируют их... и в итоге они разархивировали все зеркала до февраля 2006 года как минимум (вроде бы хотели и более ранние смотреть но про это инфы не помню) и в каждом зеркале искали такие ПОСы... Так что шухер бы тут не помог ССР за 2 года как минимум проверила всех... :)

Да? Не знал. Это хорошо. Хотя я конечно все равно пессимист - наверняка люди кто этим занимался напокупали чаров, озаботились тем чтобы по айпи нельзя было вычислить их мейнов, и отмывали нажитые иски (например выводя их в реал). Аферы такого масштаба не наказываются ибо нет подходящего наказания и организатор все равно останется в плюсе - это аксиома :)
  • 0

#11
Trimutius III

Trimutius III

    Khanid Trader

  • Tech III Pilots
  • PipPipPipPipPipPipPip
  • 6685 сообщений
224
  • EVE Ingame:Trimutius III
  • EVE Alt:Weldy StarFiner
  • Corp:F-053
  • Channel:ru-help
  • Client:Eng

Моск почти сломан (особенно об алгебру), но осилил. Мощно...

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

З.Ы. ПОд алгеброй я имел ввиду Линал на 1-м курсе и Алгебру на 2-м курсе... Именно на университетском уровне... :)

Сообщение отредактировал Trimutius III: 11 February 2009 - 6:32

  • 0
Я посланник из ниоткуда в никуда. Никто и ничто не посылало меня. И хотя это невозможно, я всё-таки существую. ©Тримутиус
Изображение

#12
Xantor Bludberry*Нейтрал

Xantor Bludberry*Нейтрал
  • Guests
Последнее что я помню это квадратные уравнения. Все. В жизни даже дроби не пригодились в практическом смысле, не говоря уже о квадратных корнях. Алгебру и начала анализа откровенно не помню в принципе, даже сами уроки. Увы. По жизни не мешает, но понимание того, что что то ты не знаешь и не поймешь уже никогда, мелко гложет.

ЗЫ Ребенок будет в школе проходить - будем учить вместе! :)) Ему уж год и восемь - всю азбуку знает, мужик.
  • 0

#13
Zvur

Zvur

    Clone Grade Epsilon

  • Tech III Pilots
  • PipPipPip
  • 294 сообщений
8
  • EVE Ingame:Zvur
  • Corp:ImRD Inc.

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

Да все просто. Убрали "ненужную" проверку состояния связей между модулями. Сделали это "вроде как" для экономии запросов к базе данных. Как итог - при отсутствии связи модуль работал как полноценно наполненный.
  • 0
"Ученые подсчитали, что шансы существования столь откровенно абсурдного мира равняются одному на миллион" (с) Terry Pratchett

Из двух спорящих один - дурак, а другой - подлец. Дурак не знает и спорит, подлец знает и спорит.

#14
Trimutius III

Trimutius III

    Khanid Trader

  • Tech III Pilots
  • PipPipPipPipPipPipPip
  • 6685 сообщений
224
  • EVE Ingame:Trimutius III
  • EVE Alt:Weldy StarFiner
  • Corp:F-053
  • Channel:ru-help
  • Client:Eng

Да все просто. Убрали "ненужную" проверку состояния связей между модулями. Сделали это "вроде как" для экономии запросов к базе данных. Как итог - при отсутствии связи модуль работал как полноценно наполненный.

Да это понятно непонятно немного что они там намудрили в башню на целый километр кода...
  • 0
Я посланник из ниоткуда в никуда. Никто и ничто не посылало меня. И хотя это невозможно, я всё-таки существую. ©Тримутиус
Изображение

#15
Zvur

Zvur

    Clone Grade Epsilon

  • Tech III Pilots
  • PipPipPip
  • 294 сообщений
8
  • EVE Ingame:Zvur
  • Corp:ImRD Inc.

Да это понятно непонятно немного что они там намудрили в башню на целый километр кода...

Гы. Ну этого они не откроют :) . Палка по определению - универсальный инструмент, способный воспринять и обработать любую (даже самую бредовую) конфигурацию абсолютно любого поса. При этом она должна быть максимально оптимизирована. Итог сейчас известен :).
  • 0
"Ученые подсчитали, что шансы существования столь откровенно абсурдного мира равняются одному на миллион" (с) Terry Pratchett

Из двух спорящих один - дурак, а другой - подлец. Дурак не знает и спорит, подлец знает и спорит.

#16
Sparkling Lord

Sparkling Lord

    Clone Grade Delta

  • Tech II Pilots
  • PipPip
  • 173 сообщений
2
  • EVE Ingame:Sparkling Lord
  • Corp:BASIS
  • Ally:FLAME

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

И что? Сейчас тоже есть т2 шипы, которые продаются ниже себестоимости. А был момент когда т1 вещи продавались ниже себестоимости. Это вполне нормально и это обсуждалось в соответствующих топиках. Если есть желание могу могу написать в личку или рассказать голосом причины этого явления.

Предупреждение: математика!

Правильный порядок, в котором должен обрабатываться ПОС, соответствует обходу графа в ширину, что означает что мы хотим для начала посетить вершины, в которые нет входящих ребер, потом - вершины, с которыми связаны те, с которые мы только что посетили, и так далее, до тех пор, пока мы не обойдём всё. Этот алгоритм похож на алгоритм поиск в ширину, хотя и не полностью совпадает с ним - мы на самом деле ничего не ищем, и у нас может быть несколько исходных вершин.

Вообще-то предложенный "не совсем" обход в ширину называется разбиение графа на слои и соответственно обход графа по слоям.

Мы такие умные!

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

Еще надо учесть глупые варианты типа неполных цепочек: входные сило и реактор есть, а выходного нет. Ну вот.

Странно это все. У них в команде нет специалистов по алгоритмам?

Сообщение отредактировал Sparkling Lord: 11 February 2009 - 10:15

  • 0

#17
Cptn Z

Cptn Z

    Clone Grade Delta

  • Tech II Pilots
  • PipPip
  • 203 сообщений
39
  • EVE Ingame:Cptn Z
  • Corp:-TER-

Странно это все. У них в команде нет специалистов по алгоритмам?

Легко. Видели бы вы бардак, что порой творится внутри компаний, занимающихся и более серьёзными, чем геймдев, вещами.
  • 0

#18
Sparkling Lord

Sparkling Lord

    Clone Grade Delta

  • Tech II Pilots
  • PipPip
  • 173 сообщений
2
  • EVE Ingame:Sparkling Lord
  • Corp:BASIS
  • Ally:FLAME

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

Я его часто вижу :) Но в геймдеве последнее время жесткая конкуренция, требующая от компании эффективных специалистов. А CCP еще и компания продукт, которой использует параллельные вычисления. Я сам занимаюсь параллельными вычислениями и очень плохо себе представляю программиста, пишущего параллельный код и не понимающего как оптимизировать алгоритмы. Т.е. программисты занимающиеся оптимизацией должны быть в их штате. Просто обязаны!
  • 0

#19
AndreyK

AndreyK

    Newbie

  • Tech I Pilots
  • 9 сообщений
0
  • EVE Ingame:Sasha Bely

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

+1
Давиче в одной весьма крупной системе обнаружился забавный глюк.
Если 3 раза подряд ввести не правильный пароль, клиентское приложение должно был закрыться.
А оно не просто не закрывалось, а при четвертой попытке пускало в систему под введенным логином с любым паролем.
И это не геймдев, это банковская сфера )
Конечно, в идеале, по идее, всё должно быть сферически правильно. Но, к сожалению (а может и к счастью бо-о-ольшого числа кодеров), есть масса факторов которые мешаю придать программе идеально сферическую форму. Например объем проекта, бюрократия между рабочими группами, недостаточное время на планирование/разработку/тестирование, переоценка способностей разработчика, недооценка сложности проекта, вчерашнее/завтрашнее день рождения... да миллион их ) и все мешают.

Так что всё нормально, рабочий момент, проехали.
)
  • 0

#20
Khan Zung

Khan Zung

    Clone Grade Delta

  • Validating
  • PipPip
  • 219 сообщений
4
  • EVE Ingame:Khan Zung
  • Client:Eng

+1
Давиче в одной весьма крупной системе обнаружился забавный глюк.
Если 3 раза подряд ввести не правильный пароль, клиентское приложение должно был закрыться.
А оно не просто не закрывалось, а при четвертой попытке пускало в систему под введенным логином с любым паролем.
И это не геймдев, это банковская сфера )
Конечно, в идеале, по идее, всё должно быть сферически правильно. Но, к сожалению (а может и к счастью бо-о-ольшого числа кодеров), есть масса факторов которые мешаю придать программе идеально сферическую форму. Например объем проекта, бюрократия между рабочими группами, недостаточное время на планирование/разработку/тестирование, переоценка способностей разработчика, недооценка сложности проекта, вчерашнее/завтрашнее день рождения... да миллион их ) и все мешают.

Так что всё нормально, рабочий момент, проехали.
)


QA отдел создавших эту прогу, должно быть был злобно попользован в позе "мама моет пол" бугага)

Сообщение отредактировал Khan Zung: 11 February 2009 - 12:29

  • 0




1 посетителей читают тему

0 members, 1 guests, 0 anonymous users