Поделиться

суббота, 15 октября 2011 г.

Редакторские будни: короткие литературные изыски

Под ними я в данном случае подразумеваю заголовки и подписи к таблицам и рисункам. Есть не столь короткие - примечания, и о них нужно кое-что сказать.

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

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

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

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

Вот конкретный пример. Пишу книгу по анализу рисков. Как ее структурировать? Можно разделить на три части:
  • в первой изложить нормативные аспекты (включив главы о том, как контролировались требования к безопасности в СССР, как строится система управления рисками в РФ сейчас, какие важные законы и другие документы существуют и т. д.);
  • во второй - практические аспекты (с главами о риск-менеджменте, страховании и прочем);
  • в третьей - математику.
Можно представить себе и другой вариант:
  • первую часть оставить такой же;
  • во второй описать практические аспекты, перемежая математикой по ходу изложения;
  • третью часть исключить.
Какой вариант лучше? Зависит от предполагаемого читателя. Думайте, для кого пишете (и нужна ли ему вообще математика).

Заголовки подбираются под эту сложившуюся в голове или на бумаге структуру. Иногда структура по ходу создания работы меняется, меняются и заголовки. Могут быть и какие-то специфические подходы. Я, например, люблю шутливые заголовки даже в работах, посвященных серьезным темам, но и такие заголовки должны наводить читателя на мысль о том, что имеется в виду. Если мне кажется, что юмора хватает, а смысл ускользает, то через двоеточие или тире от забавного заголовка я ставлю серьезное пояснение.
Примеры:
  • "Фунция Зю" - отвратительно.
  • "Функция расчета ..." - ничего.
  • "Алгоритм расчета..." - лучше, ибо понятно, что перейдя к разделу, можно что-то вычислить по шагам (главное, чтобы алгоритм там действительно был).
  • "Глава 1. Через тернии к звездам" - отвратительно, потому что если речь идет о научной монографии или даже о некой беллетристике, такое название может быть у первой главы любой книги по любой области.
  • "Подходы к анализу риска" - нормально.
  • "Как подойти к анализу риска" - лучше, но все зависит от предполагаемой аудитории и цели работы.
  • "Мир не сошел с ума - он все еще в процессе: кое-что о глупостях ИТ-компаний" - на ваш суд.
Теперь, что касаемо подписей к таблицам и рисункам. Понятно, что эти подписи не могут выражать смысла всего раздела или главы - рисунков в разделе или главе может быть множество. Однако принцип здесь, на мой взгляд, тот же: каждая таблица или рисунок привносит кусочек смысла в раздел и работу в целом, а значит должна сама по себе иметь хоть какой-то смысл. Вот и ключ к нормальным подписям под или над элементом. Прочитав подпись, читатель должен понять, зачем в работе этот рисунок или эта таблица, или что в этом элементе содержится, а в идеале - он должен понять и первое, и второе. Даже листая книгу в 2000 страниц и наткнувшись на подписанный элемент где-то посередине, читатель должен в общем сообразить, почему этот элемент вообще имеется в этой конкретной книге по данной конкретной теме. Рисунки и таблицы вставляются в текст для наглядности, и если читатель находит таблицу и видит цифры, но не понимает, на что он смотрит в целом, то смысл вставки таблицы напрочь теряется. Подпись как раз и связывает содержимое таблицы с окружающим текстом и темой всей работы. То же верно и для рисунков.

Примеры:
  • "Результаты эксперимента 1" - плохо.
  • "Результаты прогона имитационной модели издательства" - лучше.
  • "Функция f(t)" - плохо и глупо: я готов поспорить, что один из столбцов таблицы будет гласить "f(t)", тогда зачем такая подпись?
  • "Функция численности сусликов в степях Казахстана в зависимости от времени" - лучше.
  • "Гости конференции" - плохо. Это подпись к фотографии, от которой я до сих пор в шоке. Количество шока можно оценить в публикации о репортажах.

Редакторские будни: зарубежные единицы измерения

Иногда при работе со статьей приходится иметь дело с величинами или единицами их измерения, записанными на зарубежном языке. Это бывает в нескольких случаях, самыми характерными из которых являются следующие:
  • Вы переводите статью иностранного автора с иностранного же языка.
  • Автор отечественный, и язык статьи, в целом, - русский, но изначально она готовилась автором для зарубежного издания на каком-нибудь другом языке, а на русский была переведена впоследствии.
  • Автор использовал в качестве рисунков экранные снимки из какой-нибудь хитрой программы.
"Ву-аля", как говорят французы: посередь родного текста вы получаете изображение, наподобие следующего.


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

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

Мой алгоритм действий таков:
  1. Если рисунков много и сроки сдачи статьи / номера позволяют это, я пытаюсь требовать от автора доработку материала - это самый лучший вариант, поскольку имеется обоснованное предположение, что сам автор понимает, что он написал, а потому способен это все перевести быстро и без ошибок.
  2. Если по каким-то причинам на автора рассчитывать не приходится (поджимают сроки, автор пропал, а публиковать его нужно, автор сам не знает, что он написал, а публиковать его нужно и т. д. - бывают разные случаи), то я пытаюсь найти специалиста  из своего окружения в той области, к которой относится статья. Желательно, чтобы этот специалист имел ученую степень - de jure предполагается, что кандидаты и доктора наук умеют работать с литературой и, в том числе, с зарубежной литературой по своему профилю (они писали статьи, анализировали актуальные направления исследований, сдавали кандидатский минимум и т. д.). В случае специалиста без степени это чуть менее вероятно (хотя de facto может быть и наоборот - все зависит от вашего везения и окружения, а также от того, как окружающие вас кандидаты и доктора получили свои степени).
  3. Если ни первый, ни второй варианты применить невозможно, надежда остается только на свои знания, здравый смысл и Интернет.
  4. Попытайтесь определить, с чем вы имеете дело - с величиной или с единицей измерения. В случаях, когда через запятую приводится и то, и другое - это сделать просто, но не все случаи такие.
  5. С величинами дело обстоит проще - их можно поискать в Википедии (только в иностранной, а не в русской) или в Google. Если в Википедии много вариантов, ищите тот, что подходит по научной области статьи. Если в Википедии нет того, что вы ищете, Google вам в помощь. В случае затруднения с поиском прибавьте к запросу помимо самого обозначения (или аббревиатуры, как в случае на рисунке выше) название научной области (например, "chemistry"). Велики шансы, что, обнаружив полное название величины и выполнив его, хотя бы и автоматизированный перевод (в случае с нашим примером это "heat production rate" - скорость тепловыделения), рядом вы найдете и единицы измерения или просто по контексту поймете, какими они должны быть (в данном случае это Вт/мг вещества).
  6. Если ничто из описанного не помогает - придется рыть. Во-первых, нужно знать, что такое система единиц измерения и, в частности, система единиц СИ (International System of Units - SI). Во-вторых, нужно знать, что СИ - не единственная система (например Гауссова система единиц измерения или СГС - сантиметр-грамм-секунда, а также СГСМ и СГСЭ часто используются в электродинамике), хотя 7 единиц, принятых в рамках СИ и единицы производные от них встречаются чаще всего. Помимо самих единиц в системе СИ определены приставки к ним и формы записи. Проштудировав информацию о порожденных от СИ единицах измерения в английском варианте, вы может найдете то, что ищете.
  7. Также в Интернете можно найти специальные справочники по переводу единиц измерения.
  8. После перевода отошлите измененный вариант автору - если он и не хочет самостоятельно выполнять эту работу, то уж должен среагировать, если увидит ошибки.

понедельник, 10 октября 2011 г.

Регистрация программы для ЭВМ или базы данных - 2

Ну вот, первое в моей жизни "Свидетельство о регистрации программы для ЭВМ" получено. Жду еще одно.


Получение, как и подача заявки прошло очень быстро - без очередей, без потери времени. Подъехал, зашел в одно из зданий Роспатента (там же на Бережковской набережной), позвонил. Через 5 минут спустилась девушка, проверила документы, соответствие ФИО указанным в доверенности (здесь правообладатель - ВНИИ ГОЧС МЧС России, а я - его представитель по доверенности на общение с Роспатентом), отдала бумагу. Здание, в которое нужно зайти, не то же самое, где я подавал документы. Нужно здание, где библиотека, но я не могу точно сказать номер дома - не запомнил, поскольку шел с "проводником".

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

Игры и журналистика

Игры ругают в прессе намного реже, чем фильмы и это, честно говоря, нервирует. Когда-то я в принятии решения о покупке той или иной игры опирался на трейлеры, обзоры и отзывы. Потом перестал, перестал напрочь, ибо:
  • трейлеры тяготеют к демонстрации всего увлекательного, что имеется в игре, - часто обнаруживается, что за исключением уже просмотренного тобой содержания суммарно на 20-30 минут (а иногда и на 1-5) больше в игре смотреть и играть не во что;
  • обзоры почему-то никогда не опускают откровенно даже откровенный шлак - компании, представляющие собой игровую прессу или сайты с обзорами / обсуждениями игр часто оказываются подразделениями, дочерними предприятиями или партнерами, в общем, друзьями или родственниками компаний, которые играми торгуют; понятно, что в этом случае ни о какой объективности не может быть и речи;
  • односложные отзывы рядовых игроков бывают и негативными, и грубыми, а вот в их  полноценных развернутых обзорах краски почему-то смягчаются - не знаю, почему.
Конечно, складываются, хоть и редко, обратные ситуации: игры, охаянные всеми или просто никем не замеченные, для меня становятся хитами.

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

Факт 1: Трейлеры не показательны.
Факт 2: Люди, создающие обзоры, чаще всего зависимы от продавцов игр в той или иной степени, а потому необъективны - пишут обтекаемо, а обтекать потом приходится покупателю.

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

Так было c God of War: Chains of Olympus и его чекпоинтами перед длинными заставками без возможности их срубания: на уровне сложности Hard я не просто успел выучить их все наизусть - я уже вырубал звук в колонках, только бы не слышать одни и те же фразы по 10-15-му разу.

Так было в восхваляемом всеми и каждым Elder Scrolls 4: Oblivion, где ошибки в скриптах не давали возможности закончить отдельные квесты, а порой и главную сюжетную линию. Если вы играли на PC, то еще был шанс что-то исправить, но на консоли - нет.

Так было и в другом известном творении Bethesda на том же движке, что и Oblivion, - Fallout 3. Люди в "этих ваших Интернетах" спорили по поводу того, соблюдена ли концепция старого доброго Fallout-а в новом релизе или не соблюдена, опуская тот факт, что на Playstation 3 игра тупо висла - гарантированно и намертво - каждые 2-3 часа. Думаете, я один такой, у кого она висла? - Черта с два! Исправлено ли это было в Fallout: New Vegas? - Ха-ха еще раз! По моему, "Новый Вегас" вис еще чаще (я даже помню тот поворот в самом городе, где сей программный продукт вис практически с вероятностью 100%).

Да, во всех описанных случаях я поругался на Gametrailers.com, но кому я там нужен? Разработчики уже отхватили бабки и плевать хотели на мои стенания.

Факт 3: В игровой журналистике в период написания обзоров на вышедшие только что игры часто действует "заговор молчания" относительно багов и явных косяков игрового процесса даже в том случае, когда оные "особенности" имеют большое значение и способны полностью испортить впечатление от свежего "шедевра". Обозреватели концентрируются на атмосфере, примочках, системе боя и т. д., обходя тот факт, что на три боя приходится одно зависание.

С какой-то непонятной мне самому радостью хочу сообщить: такая ситуация не только у нас в стране. За рубежом то же самое. Точнее, за рубежом еще хуже.

Недавно на Gamasutra разработчики игр пинали журналиста за то, что он задавал неудобные (то есть правильные) вопросы создателям Rage. Комментарии были примерно такие:

We don’t need investigative journalism for a video game. If you don’t like the game then why are you interviewing the developers? (наводка от Sergey Galyonkin)

То есть разработчиков по мнению отраслевиков можно и нужно интервьюировать только в том случае, если заранее известно, что смысл задаваемых вопросов будет сводиться к следующему: "Скажите пожалуйста, как вы стали такими замечательными разрабами, которые смогли создать столь совершенный, новый, революционный, поистине великий продукт без недостатков, снабженный потрясающим геймплеем, историей, графикой, поражающей воображение, звуком, уносящим в райские кущи, за которым каждый человек, считающий себя core-геймером, а также любители казуалок, файтингов, шутеров, платформеров и головоломок, дети, семьи, пенсионеры, военные, нобелевские лауреаты, обладатели любых приставок и компьютеров разной степени свежести должны буквально выстраиваться в очереди, разбивать палаточные городки перед магазинами в ожидании очередного завоза партии шедевра, а в случае приезда оного брать не одну копию, а 10 про запас и на память"?

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

Факт 4: Разработчиков надо мучить, и, кроме журналистов это, похоже, сделать некому. Мучить их надо не столько из мести за некачественное настоящее, сколько в надежде на светлое будущее. Может быть, будучи единожды или многократно "протянутыми" через город геймеров, оскорбленных их работой, они задумаются. Если я создаю ПО и что-то реализую менее качественно, чем хотелось бы (в силу сжатых сроков, низкой оплаты, недостатка квалификации в какой-то технологии и т. д.), я всегда готов отвечать за свои решения, и я не понимаю, почему законы для случая разработчиков игр должны быть иными.

Что мы получаем в отсутствие "investigative journalism"? Есть пример, который я считаю классическим: Star Wars: The Force Unleashed. Ждали и роняли слюну буквально все. После выхода игры Gametrailers.com дал ей оценку всего 6.9 - это не много, но, на самом деле, и не мало. С моей точки зрения игра была откровенным, извиняюсь, "дерьмом". Этой самой субстанцией она была в первую очередь технически: баги с геометрией, отсутствие какой-то четкости (а-ля Devil May Cry) в боевке - там была масса проблем, которая игру просто похоронила. Заставки, правда, были красивые, но, как известно, если в банку с клубничным повидлом добавить чайную ложку фекалий, то получится, что банка уже не с повидлом, а с фекалиями... и в данном случае была явно не одна чайная ложка, хотя это и не имеет значения. Позже в том же году (в 2008) тот же Gametrailers.com дал игре Star Wars: The Force Unleashed титул "Провал года" (или в более точном переводе "Игра, разочаровавшая сильнее всего"). Но не это главное. Уже в следующем году журналист Gametrailers.com, бравший интервью у одного из разработчиков Star Wars: The Force Unleashed 2 (и первой части тоже), начал его словами: "Все мы знаем, какой замечательной была первая часть игры, так что же еще потрясающего вы добавите в эту"? Вот оно - лицо игровой журналистики.

Final fact: Увы, не попробуешь - не узнаешь!

воскресенье, 2 октября 2011 г.

Игры и статистика

Поводом высказаться стал пост PC gaming vs. consoles, the infographic на ExtremeTech. Просто не мог не утянуть себе картинку.


Статья повествует о близком триумфе игр на персональных компьютерах над приставочными с затаптыванием последних и приличествующем моменту улюлюканием. Происходит это благодаря "социальным играм" и цифровой скачке (читай, Steam). О "социальных играх" я ничего сказать не могу - не играю после нескольких проб, ибо по мне - это не игры, а чушь. Я предпочитаю что-то такое, на что разработчиками было потрачено 1,5 - 2 года и 15 - 20 млн. долларов, и от чего я, заплатив 60 долларов, могу получать удовольствие, ради которого все это время и деньги были затрачены, а не развлекать себя самостоятельно в криво слепленных окружениях, интерфейсах, "слизанных" и урезанных системах прокачки, которые были созданы, чтобы заманить через социальные сети побольше народу и показать им рекламу или откусить пару долларов в виде микротранзакции. Конечно, наверное, есть исключения, но мне они неизвестны. Собственно, согласно опросу среди специалистов, так или иначе связанных с ИТ, который мы недавно проводили с Игорем Семёновым (AKA Garik-ом) в рамках разработки концепции одного проекта, я не один, кто придерживается такого мнения. На "их" картинку выше у меня есть своя картинка ниже.


Высота столбцов - количество опрошенных. Количество песочных часиков - объем часов игры в неделю. Если нет названия игры рядом с респондентом, значит он не играет вообще.

Занятые люди с высоким интеллектом (а кто умнее ИТ-шников?) в возрасте с 20 - 29 лет еще как-то играют в онлайн-игры (и то, там доминируют WoW и карты, а не социальные игры). Люди постарше - вяло. Не факт, что они играют на консолях, но уж точно не играют они в социалки / казуалки. Честно говоря, у меня после этого мини-исследования возник вопрос: а кто вообще в них играет? У кого столько времени, что он не может и не хочет найти способа занять его чем-то более полезным и / или интересным? Ну да Бог с ним.

Инфографика - это занятная вещь. 28 января 1986 года ракета с космическим кораблем "Челленджер" взорвалась на старте во многом потому, что инженеры накануне решили прислать специалистам NASA диаграммы, где были отмечены только предыдущие запуски с проблемами (это были, в основном запуски в холодную погоду), и не отмечен весь объем успешных запусков (при теплой погоде). Таким образом отсутствие нескольких точек на графике привело к тому, что исчезла база сравнения, и специалисты NASA решили не откладывать очередной запуск. Это характерно для любой графики - мы часто забываем, зачем она вообще нужна, а нужна она, чтобы показывать одни цифры в сравнении с другими цифрами. С этой точки зрения картинка с ExtremeTech просто чудовищна.

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

Пройдемся по разделам картинки с ExtremeTech:
  • Подъем игровой индустрии на ПК (англ. The Rise of PC Gaming) - ну об объеме выборки с 2009 по 2011 год, на основе которой делается прогноз на следующий 2012 год, я даже говорить не буду. Вопрос в другом: почему взят именно этот период, и почему его началом является именно 2009 год? Современное поколение консолей вышло на рынок в 2005-2006 году (не помню точно, когда вышел XBox360), и в свете того, что в относительно скором времени нас ожидает еще одно поколение, интересно было бы взглянуть как ситуация с играми и доходами менялась именно с момента выхода XBox360 и Playstation 3, а не с бухты-барахты взятого 2009 года. Смехота!
  • Мощность процессора (англ. Processing Power) - приводятся одни много-герцы. Совершенно не принимается в расчет ни архитектура машин, ни количество процессоров, ни число ядер, ни система команд. А кроме того, заявления о том, что компьютеры превзошли консоли по мощности совершенно игнорируют тот факт, что это новые компьютеры превзошли консоли, а 80-90% компьютеров, работающих в мире, их уже никогда не превзойдут, и заменяться они будут еще в течение многих лет. В этом, кстати, преимущество единой конфигурации (точнее аналогичных возможностей) всех приставок одного поколения одной компании.
  • Время, проводимое за... (англ. Time Spent on Each) - консоль нельзя взять с собой на работу.
  • Консоли и недостаток надежности (англ. Consoles and Lack of Reliability) - нет сравнительной базы, не показана статистика по ломающимся компьютерам.
  • В онлайн-игры какого типа играют наиболее часто? (англ. What Type of Online Game is Played Most Often) - 44% на карты, паззлы и т. д. Меня это абсолютно не волнует, поскольку я в это не играю.
И все в таком же духе. У меня в итоге только одна мысль: это что - шутка какая-то?

суббота, 1 октября 2011 г.

Жизненный путь: О СУБД и мучениях

Довелось тут в очередной раз попотеть над базой данных, а именно - над "Базой данных опасных и неблагоприятных процессов и явлений на территории Красноярского края". Бывает иногда производственная необходимость реализовать что-то не на языке программирования, а в рамках какого-то приложения (в основном это как раз приложения из группы Office - Access, Excel, Outlook, Visio). База была не то, чтобы слишком уж хитрая, но и не простейшая: пять таблиц, связи многие-ко-многим, каскады, целостность и т. д. Еще пришлось карты Google к ней подключать - для визуализации, так сказать, географического положения населенного пункта.

Обматерился. Я недавно высказался в пользу языка C# в таком ключе:

Я работал с C и С++, я работал с VB. Конечно, поскольку я не работаю в области создания ПО постоянно, а только время от времени, я многое забыл. Но того, что я помню, как раз хватает для эффективной работы в C#, поскольку он требует от меня как раз совмещения этих небольших, но системных воспоминаний. Даже удивительно...

С Access-ом ситуация другая. Я бы сказал, прямо противоположная. Кажется, ничто не способно подготовить человека к работе в Access-е: ни опыт разработки в Paradox-е, Clipper-е и FoxPro, ни знания в области теории СУБД и реляционных БД. И, что самое удивительное, опыт работы в нем самом, похоже, тоже не может подготовить к работе с ним самим. Да, с Access-ом я тоже сталкиваюсь на жизненном пути время от времени, и да, я и о нем многое забываю в промежутках, когда не сталкиваюсь, но все же: я читал книги, я имею опыт программерства на VBA, и все такое. Тщетно. На поверку выходит какая-то аномалия: какое бы решение я ни принял, какое бы свойство ни принял за нужное мне, наличие или поведение какой бы функции я ни предполагал - каждый шаг оказывается неверным. Каждый!

Немало способствуют этому и проектировочные и конфигурационные решения, заложенные в сам Access:
  • Кому пришло в голову переводить названия свойств? То есть кто тот человек, который сказал, что в русском Access-е свойства должны называться по-русски? Ё-моё, это же VBA - туда нормальный пользователь и лезть-то не должен.
  • Ладно, нормальному пользователю помимо использования готовых форм и отчетов может понадобиться поднастроить что-то. Но контекстную справку-то можно было выпрямить под это, хотя бы? Она же кривая, как бублик Мёбиуса.
  • В Access-e есть десяток способов сделать что-то одно... а нужен один. Такое впечатление, что сидел себе программист и создавал конструктор форм и отчетов в СУБД. Через плечо ему заглянул кто-то, кому мне очень хочется зла, и сказал: "Конструктор - это, конечно, хорошо, но давай еще сделаем режим макета". Программист согласился и принялся за работу (так толком и не доделав конструктор). Потом через его другое плечо заглянул еще один товарищ, которому я тоже добра не желаю, и заметил: "Слушай, нужны еще мастера - пользователь их любит"! И снова согласился программист, и снова переключился на разработку новых фишек, не доделав режим макета (который вообще лишний, на мой взгляд). Вот в итоге и получилось: создаешь поле со списком в режиме мастера, мастер тебя спрашивает: "У вас будет фиксированный набор значений, набор значений из таблицы или значение в поле будет использоваться для поиска записи в форме"? Да ситуации, когда необходимы сразу второй и третий варианты, встречаются на каждом шагу: например, значения в списке поступают из таблицы, и на основании выбранного значения нужно сделать перезапрос в подчиненную форму. Ну ладно, думаешь, исправлю / доделаю руками. Не тут-то было. Как было сказано выше, в Access-е десяток способов сделать что-то одно (фильтры, запросы, макросы, сценарии - это так для примера, всеми этими способами можно поменять то, что отображается на форме, причем одновременно), и какой из способов выберет тот или иной мастер - неизвестно. Вот и начинаешь плутать. Плутать можно часами.
  • Сообщения об ошибках - это притча во языцых. Представьте: у вас форма с двумя вложенными друг в друга подчиненными. Что-то меняем, сохраняем, открываем в режиме формы, пытаемся что-то изменить в данных... Бац! "У вас где-то в каком-то индексе ошибка!" - радостно заливается Access. Пять таблиц, десятки полей, десятки индексов. Где искать-то? Я когда работал системным аналитиком и техписателем, в нашей системе дистанционного обучения часто выскакивало сообщение "Системная ошибка", после чего ничего не происходило. Ну, кто хорошо знает исключения или знает их не очень хорошо, тот понимает, когда появляются в превеликом множестве и непредсказуемых местах такие вот безликие ошибки. По-моему (я сам исключения ненавижу, они для меня, как парадокс Монти-Холла - я способен их постичь, но через 5 минут уже не могу сказать, почему оно работает, так что, надеюсь, более грамотные коллеги поправят меня, если я ошибаюсь), это происходит чаще всего тогда, когда в один блок try заключается здоровенный кусок кода с вызовами всяческих функций или просто текст функции main(), а в catch(...) прописано отображение вот такого сообщения. Это означает: что бы и где бы ни случилось, результат будет одинаковым и диагностировать такую ошибку с целью исправления можно только одним путем - воспроизвести ситуацию, когда ошибка возникла, что далеко не всегда легко и даже возможно, в особенности если ошибка возникла на стороне клиента. "У нас выскочила ошибка"! "Какая"? "Системная ошибка"! "А что вы делали"? И дальше рассказ о том, что делал сотрудник клиента в момент, когда появилось сообщение, что он делал до этого (с утра), и что делали все остальные сотрудники клиента. Я "в детстве" тоже любил писать код наподобие:

    Public Sub foo()
    On Error GoTo ErrorHandler
       (some action)
    ErrorHandler:
    End Sub

    но уж никак не мог предположить, что такими же вещами занимаются разработчики Microsoft Office-а.
В общем БД, конечно, была реализована, получилось довольно симпатично. Однако я серьезно думаю, какое бы средство с меньшей фунциональностью и заморочками взять в качестве платформы для разработки базы в следующий раз. Больше всего из СУБД мне, в свое время, полюбился Clipper - исключительно теплые воспоминания.

LEGO: "Звезда Смерти"

Ушло примерно 35-40 часов работы, а сколько удовольствия! Сразу бы взялся за что-нибудь еще, но не хочу заездить хобби.


Игры в жанре 3D-шутинг

Wolfenstein 3D, Doom, Doom 2, Unreal, Unreal Tournament - у меня после перечисленного интерес пропал напрочь. С точки зрения механики (не графики, не звука, не многопользовательских режимов, которые, кстати, тоже не сильно изменились) каких-то инноваций, чего-то совсем нового в жанре мало что поменялось с той поры, и это не случайно. 3D-шутеры имеют очень четкую формулу, в которую они укладываются, и попытки что-то изменить в ней приводят либо к тому, что получается нечто непривлекательное, либо к тому, что игра кочует в какой-то другой жанр (взять Deus Ex, например - с виду это шутер от первого лица, но я бы его так ни за что не назвал). В свою очередь популярные именно шутеры выходят с такой частотой, что это стало напоминать конвейер, а когда конвейер запущен, добавлять что-то реально новое и интересное к изделию уже невозможно - времени нет, штамповать надо.

Wolfenstein 3D был первым значимым, Doom-ы были первыми значимыми многопользовательскими, в Unreal была создана уникальная атмосфера - я ее до сих пор вспоминаю с трепетом (и в Unreal 2 ее уже не было), Unreal Tournament - это солидный шаг в расширении спектра многопользовательских режимов (собственно, большинство наиболее известных режимов сегодня - это отголоски тех). А дальше всё...

И тем не менее среди недавно опрошенных 5000 игроков на Рождество особенно жаждут:

ИграПлатформаИздатель% желающих (некоторые хотели сразу многое)
Call of Duty: Modern Warfare 3360, PS3, Wii, PCActivision27%
Gears of War 3360Microsoft Game Studios19%
Battlefield 3360, PS3, PCElectronic Arts12%
Resistance 3PS3Sony Computer Entertainment4%

Остальные позиции не привожу, там попадаются и игры из других жанров, но мне не это интересно. Мне интересно, сколько можно на одной и той же карусели кататься? - Ну возьми ты предыдущую Call of Duty, все равно мало что поменяется. Ан нет. Я понимаю, что для большинства эти игры - коллективное времяпрепровождение, а не одиночное (в одиночку это часто скучно до безумия - непродуманные кампании, слепленные из все тех же многопользовательских карт, тупые боты и т. д.), я вовсе не пытаюсь остановить криком паровоз или ныть и канючить: "Ребята, это неправильно - бросайте вы это дело"! Мне просто интересно, как ситуация будет развиваться, и почему она такая, какая есть. Я не с какой-то другой планеты прилетел - все известные франчайзы появились на моих глазах, да и пришлось ознакомиться с рядом шутеров, когда книжку писал - не люблю писать о том, чего не знаю и не видел сам.

Вот пример темы для размышлений: последней игрой-3D-шутером, в которую было забавно поиграть, был Bulletstorm. Действительно забавно - пару раз прошел. А вот поиграть в него в многопользовательском режиме удалось только единожды - сколько ни пытался после этого найти компанию в Playstation Network, не удавалось. Не играют люди. Поигрался немного по сетке в Call of Duty: Modern Warfare - народу много. Но попытка пройти его "в одинаре" закончилась ничем - скучно (ей Богу, два раза начинал). Возникает вопрос: это обязательное деление игр-шутеров на одно- и многопользовательские?

Другой вопрос: а на что рассчитывают компании, которые пытаются прорваться на рынок с новыми играми в этом жанре? Ну с Activision, Microsoft Game Studios и Electronic Arts все понятно - у них конвейер движется с такой скоростью, что они, по-моему, сами уже не успевают смотреть, что они выпускают - действуют на рефлексах, но остальные то?

Игры - это ПО. Специфическое по технологиям, составу и мотивации приобретения, но все же ПО. Тенденция на сегодняшний день такова, что горизонтальные рынки по видам ПО давно заняты крупными корпорациями. Горизонтальный рынок - это рынок для ПО, которое делает много чего, а потому полезно много кому. В пример можно привести Microsoft Office - он популярен среди менеджеров, студентов, ученых, секретарей, бухгалтеров и т. д. и т. п., занимает большую долю рынка и съезжать не собирается. Попытка новой компании выскочить на этот рынок и потеснить Office практически обречена на провал, даже если новое разработанное ПО в 10 раз лучше Office-а. А потому в особенности для новых компаний интерес представляют рынки вертикальные - то есть им стоит развиваться через разработку какого-то специфического ПО для группы специфических специалистов. Такое ПО не интересно разрабатывать крупным компаниям, поскольку для них этот рынок мал - мало потенциальных пользователей, но для мелких / средних компаний этих пользователей может быть вполне достаточно. Эта концепция хорошо описана, например, у Эрика Синка ("Бизнес для программистов" - СПб.: Питер, 2011)

Теперь посмотрим на шутеры. Три верхние строчки в таблице - это сериалы, которые отъедают львиную долю рынка многопользовательских шутеров. Ну какой смысл туда лезть? И ведь лезут. Компания Insomniac Games прославилась играми в сериях Spyro the Dragon и моей любимой Ratchet & Clank, которые просто не могут быть дальше от традиционных 3D-шутеров (дальше только паззлы и файтинги). С какого лешего руководство этой компании могло подумать (если здесь применим этот термин, означающий некую сложную умственную деятельность), что им необходимо разрабатывать серьезную стрелялку с мутантами, снайперскими винтовками и "коктейлем Молотова"? По-моему, для этого руководству на головы должен был упасть кирпич, причем один и всем одновременно. Что получилось? Получилась серия из трех (на сегодняшний день) игр, в которые лично я не могу играть в одиночку: через 20 минут я уже мечтаю, чтобы это закончилось. Однопользовательская компания, как я отмечал выше, слеплена из многопользовательских карт, что видно невооруженным взглядом: слишком много закоулков и строений, где ничего не происходит. Атмосфера игр (всех трех) столь "насыщенная", что я эти игры называю "мертвыми" - они вообще не вызывают никаких эмоций и никакого интереса. Я понимаю, что как человек, который пишет об играх, я должен был пройти все три Resistance-а, но осталось впечатление, что я пообедал насильно запихиваемым мне в глотку сухарем без воды (тремя сухарями). А что же на мировой арене? А на мировой арене эту игру хотят на Рождество всего 4% людей. Развожу руками... Зачем было это создавать? Никто бы не заметил отсутствия очередной помеси из Gears of War, Doom-а и, как мне кажется, Fallout-а (это касается только последней части). Хотели создать что-то новое? Так ведь, блин, все равно не создали. Мне сегодняшняя ситуация с шутерами разных компаний  и разных серий напоминает период, когда было модно штамповать моды и даже собственные игры на движках Doom и Quake. Но тогда люди проявляли куда большую изобретательность. Вспомним, хотя бы American McGee’s Alice, построенную на переработанном движке Quake 3. Сегодня же впечатление такое, что из одной игры можно легко сделать другую и никто не заметит разницы. Мой приятель заходит в комнату и, видя, что я бегаю и стреляю (кстати говоря, у нас выражение "keep running and shooting" стало локальным мемом), спрашивает: "А что это конкретно"? И я его понимаю, потому что, если бы я не знал, во что играю, я бы по виду ни за что не догадался.

Что касается Insomniac, то меня пугает не наличие в их арсенале шутеров, а состояние дел в их традиционной серии Ratchet & Clank - сначала казалось, что они на нее забили, теперь превращают из однопользовательского платформера, где важную роль играло исследование местности, в тупую многопользовательскую аркаду.

Другой пример: Duke Nukem Forever - этот чудовищный долгострой. По времени, ушедшему на разработку, ребята легко могут сражаться за приз с компанией Blizzard. Жаль не могут сражаться по качеству. Спустя столько лет, вот серьезно, только недалекие люди или люди совершенно незнакомые с процессом разработки ПО могли сохранять надежду на то, что из этого получится что-то путное. Путное получается, и то не всегда, когда продукт в течение многих лет разрабатывается одной и той же командой программистов и дизайнеров, когда каждая мелочь шлифуется в процессе доведения продукта до совершенства. Если игра кочует с движка на движок, из компании в компанию, если ее "лапают" десятки незнакомых между собой специалистов, ничего хорошего получиться просто не может. Проекты иногда стоит закрывать во избежание продолжения потерь. Просто стоит останавливаться вовремя, но... не остановились... и продолжают обещать сиквелы. Жду с нетерпением, запасаясь воздухом для гомерического хохота сквозь слезы.

К сожалению, складывается впечатление, что индустрия видеоигр скучнеет на глазах. Мне LEGO собирать интереснее в последнее время, чем садиться за приставку.