Мое решение 3-х проблем MVx
Автор текста: Lynnfield
Итак, в прошлый раз я описал три проблемы, которыми, на мой взгляд, страдают все MVx и даже некоторые не MVx архитектуры. Если коротко, то это:
проблема остатка — при делении фичи на заявленные компоненты архитектуры остаётся либо «неделимая» часть фичи, либо лишние компоненты архитектуры;
проблема масштабирования — при расширении фичи компоненты архитектуры начинают раздуваться, что усложняет дальнейшую поддержку;
и проблема разрывов логики, когда из-за взаимодействия с UI логика разрывается на части, что тоже не помогает нам делать систему более цельной, предсказуемой и тестируемой.
Описание проблем это, конечно, хорошо, но вопрос в том, как их решать? Об этом я бы и хотел поразмышлять в этом тексте. Спойлер: когда я нашел решение проблемы разрывов, я понял, что оно может решить и все остальные проблемы.
❯ Проблема остатка (Remainder issue)
Первый вопрос: что делать с остатком? Все просто — взять делитель поменьше, потому что чем меньше делитель, тем меньше остаток. Этому меня еще в школе научили. Но я столкнулся с тем, что это не работает с MVx архитектурами, потому что мой делитель, обычно, это набор определенных компонент, и введение новых — значит изменение архитектуры.
Возможно и вы с этим сталкивались, когда вводили всякие мапперы, делегаты, интеракторы (те, что репозитории репозиториев) и прочее. Помогли ли они мне? Нет. Лучшее решение, что я видел — это Flux- и ELM-like архитектуры, которые заявляют «чистую» функцию как единицу деления логики, но со всеми вытекающими отсюда удобствами и следующими за ними «эффектами».
Но решение проблемы остатка, даже если бы оно у меня было, не помогает мне решить проблему масштабирования.
❯ Проблема масштабирования (Scalability issue)
В прошлый раз я упоминал «интуитивный» подход к решению задачи масштабирования и рассказывал почему он не работает. По крайней мере не у меня.
А какой не интуитивный?
На мой взгляд это старая и уже не раз решенная задача. И примеры решения можно увидеть в том, как в теории вычислений доказывают некоторые теоремы через вкладывание одной машины Тьюринга в другую, или как элегантно эта проблема решается в процессорах, где более сложные компоненты — просто композиция более простых.
Так и в MVx архитектурах: можно было бы попробовать реализовывать доработки отдельно, а уже потом объединять их с существующей фичей, вместо того, чтобы вносить изменения в уже написанные компоненты. Что в прошлом не раз приводило меня к череде переписываний тестов, судорожному протыкиванию приложения на предмет того, что ничего не поменялось, и мольбам о том, чтобы очередной баг-репорт был не по моим изменениям.Но вот что я заметил, ведь именно такой подход, когда мы предпочитаем композицию изменениям, я и мои коллеги используем для Data-слоев. Например, новые источники данных оборачиваются в Репозитории, а потом комбинируются в Интеракторы. Но почему-то чем ближе мы подходим к UI-слою, тем больше начинаем изменять, а не комбинировать.
Чаще всего я вижу эту проблему как вечное переписывание тестов уже существующих компонент, или Presenter, ViewModel, Controller размером со вселенную, который даже трогать страшно, потому что что-то точно развалится.
Такой подход, где мы предпочитаем покомпонентную композицию фичи и доработок, вместо прямых изменений какого-нибудь компонента, действительно будет не интуитивным, потому что потребует реализовывать доработки как самостоятельную фичу. Я имею ввиду, что надо будет имплементировать доработки используя наш архитектурный подход, а потом написать еще одну пачку компонент, которая уже будет склеивать существующий функционал с новым. Но каким бы правильным мне это не казалось, я никак не могу отделаться от мысли, что такой подход приведет к написанию большого количества кода, который на первый взгляд будет казаться бесполезным.
Еще мне показалось интересным, что тут нам может помешать проблема остатка, которая по идее должна привести к ситуации, когда такой подход не сработает, потому что надо будет внедрить доработки в “середину” компонента из уже существующей фичи, а значит придется делить существующие компоненты на новые, более мелкие. Чем крупнее делитель, тем крупнее остаток, да?
В итоге, даже использовав “неинтуитивный” подход к масштабированию, я все-равно не могу до конца понять как решить проблему масштабирования. А между прочим еще остается проблема разрывов.
❯ Проблема разрывов (Gaps issue)
И вот тут становится интересно. Все дело в Hello World. Мне все никак не дает покоя вопрос: какая у него архитектура?
Hello world
Я видел примеры Hello World в разных языках, фреймворках и архитектурах (кроме Open GL, конечно же), и у них не было проблем с его реализацией. Если не считать проблемой то, сколько усилий надо приложить, чтобы написать изначальный шаблон. Но, если результат одинаковый, не значит ли это, что разница только в том, сколько обвязок надо написать, чтобы Hello World работал? И нужны ли они? Тогда я стал думать: а что общего у всех этих реализаций Hello World в разных архитектурах? И как-то я пришел к мысли, что скорее всего правильный ответ — Алгоритм. И он до безобразия тривиален.
И что интересно, у самого алгоритма нигде не написана архитектура в которой он должен быть имплементирован. Но это Hello World. Как я и сказал: он чересчур прост.
Более интересные примеры
Давайте лучше взглянем на следующий пример, который используют в учебниках по программированию — Hello %username%. У него все та же проблема с архитектурами — его можно написать в любой из них, и общее между всеми реализациями в разных архитектурах — алгоритм.
А вот еще интересное наблюдение: если мы немного обобщим алгоритм Hello World, отделив show от Hello World, то увидим, что он дважды появляется в алгоритме этого примера.
Все еще слишком просто, правда? Следующий учебный пример — работа со структурами данных. И в самом простом виде — это CRUD плюс “показать все” с хранением в списке (он же List). Этот пример, не очень интересный с точки зрения реализации, интересен тем, что он добавляет в предыдущий алгоритм композицию.
По сути здесь мы первый раз сталкиваемся с тем, что нам надо создать пять независимых программ, а потом объединить их под управлением шестой. А еще эти шесть программ делят между собой один блок памяти — сам список структур. И мне кажется, что это уже напоминает решение одной из наших проблем, не так ли?
Появление Gaps issue
Но что происходит даже с этими простыми программами, когда мы пытаемся перенести их в UI-среду?
Легче всего Hello World, потому что он просто обрастает кучей компонент, которые помогают ему “жить” в новой среде. Даже не интересно.
А вот Hello %user name% приходится куда сложнее. Беднягу размазывает по компонентам системы или архитектуры: в одном месте мы слушаем ввод имени, в другом показываем приветствие, а в третьем прописываем реакцию на введенное имя.
Я даже боюсь говорить о том, что же происходит с CRUD-примером. В зависимости от того, какой макет нам нарисуют, мы будем писать совершенно разные приложения. Вот представьте, что вас попросили сделать такую программу как несколько разных экранов, а потом попросили переделать так, чтобы это был один экран. С часто используемым подходом к декомпозиции, когда один экран — один набор MVx-компонент, мы получим бессонную ночь переписывания кода, потому что части нашей логики разорваны и раскиданы по всей реализации.
Но ведь изначально “не было ни единого разрыва”, а алгоритм остался тем же. Почему все стало так плохо?
Причина — асинхронность
На этот вопрос некоторые уже дали ответ в комментариях к предыдущим статье и видео, и я с ними полностью согласен. Причина — асинхронность. И я был искренне удивлен, когда пришел к этому выводу.
Многие, если не все GUI-системы построены вокруг event loop, потому что нам надо одновременно и экран рисовать, и ввод от пользователя слушать. А чтобы сюда добавить еще и наш алгоритм, его придется разделить так, чтобы он хорошо встраивался в этот event loop.
Я уже не говорю о том, что мы вообще-то еще должны взаимодействовать с другими асинхронными системами. Кстати, с ними то, обычно, проблем и не возникает. А почему?
Решение — закрытие разрыва
Обратим внимание на графикоподобную картинку, на которой я объяснял проблему разрывов в прошлый раз.
Напомню как всё было, и в этот раз уже не буду лукавить: путь нашей логики начинается в каком-то из callback’ов, а не в абстрактном “начале”. По мере выполнения мы продвигаемся все глубже по стеку вызовов, выполняем одну за другой функции, и в самой верхней точке нашего графика мы обращаемся к источнику данных: бэкенду, файлу, какой-то системе хранения. И что здесь обычно находится?
Обычно это вызов какой-то “асинхронной” функции: корутины, async- или suspend- функции, уж простите мой котлинский, или какой-то функции с callback’ом, или функции возвращающей какой-нибудь Future, Promise или Single.
И вот вопрос: вызывая эту функцию с callback’ом, как часто мы задумываемся, что эта операция может вообще никогда не вернуться в этот callback? Лично я до недавнего времени считал, что управление гарантированно будет передано в наш callback. Не считая случаев “отмены”, конечно же. Но откуда у нас такая гарантия? Возможно все дело в реализации системы? Давайте “заглянем под капот” и посмотрим что же там на самом деле происходит.
Наша функция формирует наш запрос к базе, запрос в сеть или еще что-то. В общем случае формирует какой-то контекст, с помощью которого надо выполнить запрос, и вместе с callback’ом, в который надо вернуть результат, отправляет его на другой поток, и там происходит все выполнение. После завершения выполнения, тот поток вызывает callback, передавая в него результат, что для нас, разработчиков, выглядит как своего рода возврат в точку вызова. Таким образом логика выглядит более цельной, и такого разрыва, как в случае с UI не происходит.
Так вот вопрос: а почему бы нам не повторить этот же трюк с UI?
На картинке это будет выглядеть как параллельный перенос: мы просто поднимем нашу линию, а вот тут, в нижней точке, вместо того чтобы разрывать логику и отдельно задавать на UI какое-то состояние и callback’и, сделаем функцию, которая отправляет запрос на UI и ждет от него ответа. Таким образом мы закрываем разрыв и теперь наша логика будет выглядеть как единое целое.
Ничего сложного, мы даже не изобретаем что-то новое, но такой подход поможет нам взаимодействовать с UI, как с любой другой внешней системой, а не как с чем-то особенным. И вот моё видение того, как это могло бы работать и решать проблемы, описанные выше.
❯ Proposal
Давайте писать функции…
Да, может звучать нелогично, тем более, что я уже говорил о том, что это не помогает Flux- и ELM-like архитектурам, но я объясню. Начнем с проблемы остатка.
Влияние на решение проблемы остатка
Добавлю небольшую аналогию с математикой. Как я и говорил «архитектура» — это делитель. А чтобы при делении не оставалось остатка — нам нужно найти наибольший общий делитель. Чем и является функция, на мой взгляд. Чем больше я смотрю на реализации всех наших «архитектур», тем больше я вижу, что все они, по сути, просто один из способов удобнее объединять и специализировать функции (и тут я подразумеваю, что метод класса — это функция, которая иногда неявно принимает дополнительный аргумент).
Дальше лучше — проблема масштабирования.
Решение проблемы масштабирования
Функции очень хорошо масштабируются, потому что, с точки зрения реализации, они могут вмещать в себя любой набор инструкций и в том числе вызовы других функций, а с точки зрения пользователя функции это всегда просто вызов функции: имя, параметры, результат, независимо от того как она реализована.
А что с разрывами?
Решение проблемы разрывов
До тех пор, пока мы будем поддерживаем нашу логику, как композицию функций, проблема разрывов будет естественным образом «выталкиваться наружу», за пределы нашей логики. А это в свою очередь будет гарантировать нам последовательность выполнения, тестируемость и как следствие — стабильность.
❯ Концепт
Так что же я предлагаю?
Во-первых, реализовывать логику, как функции и их композицию, а не как компоненты какой-нибудь архитектуры. Это позволит нам гарантировать и поддерживать последовательность выполнения, позитивно скажется на масштабируемости и тестируемости нашего кода, да и понимать такой код будет проще.
Во-вторых, у этой функции (композиции функций) должна быть возможность работать независимо от «сторонних» систем, поэтому я предлагаю вынести ее в свой поток, чтобы у нее была возможность спокойно выполняться, блокироваться при необходимости, параллелиться и тому подобное. Пусть будет “синхронной”. Обычно мне не надо, чтобы логика продолжала свое выполнение, когда она ждет какой-то ресурс. А если такое поведение нужно, то почему-бы его не описать его явно? И назвать бы этот поток Main, но имя уже “занято”. =)
В-третьих, хотя это и самый важный пункт, а у меня видимо есть тенденция оставлять все важное на потом, я предлагаю сосредоточиться на реализации логики приложений, а не экранов и виджетов. Как видите, с таким подходом нет разницы между слоем данных и пользователем. Есть только наша детерминированная логика и внешние системы, которые обмениваются данными через нее. Логика просто ходит между ними и предоставляет им некий контекст для принятия решения и набор возможных действий, а внешние системы в свою очередь “отвечают” нашей логике руководствуясь представленным контекстом. Это похоже на игру в шахматы, где внешние системы — игроки, а логика — доска с фигурами и правила игры.
Логика наших фич зачастую не зависит от представления, а как раз наоборот: представление является способом, который помогает логике взаимодействовать с пользователем в определенной среде, как какой-нибудь адаптер. Я думаю, что такой адаптер должен быть плагином к логике, а не фактором определяющим ее.
В конце концов, применив этот концепт, я хочу помочь всем нам проектировать и писать кроссплатформенные приложения в самом широком смысле этого слова: разрабатывая и реализуя end-to-end алгоритмы которые прозрачно перескакивают с бэкенда на фронт и обратно, которые не видят различия между разными видами фронтов, будь то Web, iOS или Android, или разными типами вроде UI, CLI, или TalkBack.
Но пока это только концепт и виденье. Пожалуй пора посмотреть на код, но он будет в следующий раз. А сейчас есть время порефлексировать на эту тему. Дайте этим идеям время перевариться. Прочитайте еще раз. Задайте вопросы. И может вы сможете написать код еще до того, как я опубликую продолжение. Хотите посоревноваться?
Увидимся.
Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей в нашем блоге на Хабре и телеграм-каналах (статьи и новости).
Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.
Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв
Автор: BabayMazay
Больше интересных фото и комментариев в оригинале материала
Стекло – замечательно красивый, обладающий целым рядом полезных свойств, но и непростой в обработке, материал. Обычно применения его в своих конструкциях, а здесь мы говорим о домашней лаборатории-мастерской, стараются всячески избегать. Часто один только вид заготовки – неправильной формы куска стекла, уже вызывает у граждан приступ малодушия, а между тем, освоив несложные приёмы работы и действуя вдумчиво и аккуратно, можно существенно обогатить и разнообразить свой арсенал.
❯ Стеклорез, работа стеклорезом
Итак. Стекло – материал хрупкий, твёрдый, плохо проводящий тепло. Начнём со стекла листового, обычно, не толще оконного, а это около 4 мм. Резка его заключается в нанесении царапины и последующих действиях, приводящих к появлению вдоль неё сквозной трещины. После этого части заготовки легко разламываются или распадаются сами. Длинные прямые резы делают стеклорезом под линейку, положив заготовку-лист на ровную прямую, слегка упругую поверхность. Некогда в стекольных мастерских работали на столе, отделанном фетром, при нечастых домашних работах довольно нетолстого слоя старых газет. Хорошо себя показал лист тонкого ДВП плохого качества (мягкий, рыхлый) (Фото 1), годится и фанера берёзовая, ДСП.
Хрестоматийный роликовый стеклорез с масляным резервуаром в ручке, где: 1 – сменная режущая головка; 2 – ручка; 3 – тяжёлый металлический шарик на конце ручки, им постукивают вдоль царапины, с обратной стороны листа, для возникновения трещины. Чужое фото из сети
Стеклорез для периодических работ лучше всего с твердосплавным роликом – алмазные требуют постоянно поддерживаемого навыка и не прощают ошибок в работе. Роликовый стеклорез (Фото 2) демократичнее и терпимее, тем не менее – ведём его с постоянным и заметным нажимом, всю линию без отрыва, от края до края стекла за один раз. В идеальном случае должен быть ровный шипящий звук и чёткая непрерывная черта. Прочерчивание царапины дважды по одному месту сильно затупляет ролик. Сведение её концов на середине заготовки, с высокой вероятностью, заставит трещину в этом месте споткнуться и махнуть в непредсказуемом направлении. Ролик в стеклорезе лучше периодически смазывать машинным маслом или смесью масла с керосином и вдоль разметки на стекле, пальцем нанести его тонкий слой. Удобны стеклорезы с ёмкостью для масла в ручке. Работать следует чистое стекло.
Пример простой резки листового стекла – некрупный прямоугольник (фоторамка, окно шкалы прибора и т. п.). Нужная часть указана стрелочкой. Заготовку – подходящий кусок старого оконного стекла отмыл, высушил, разметил спиртовым фломастером. Прочертил стеклорезом под линейку две царапины – №1, №2. Ломать будем в этом же порядке
Замечательно простой и быстрый способ ломки более или менее крупных заготовок с прямым резом – на ровном краю стола. Кладём на него, прочерченный стеклорезом, лист царапиной вверх и одним уверенным энергичным движением – хруп! Рез обычно получается изрядного качества. Интересно, что если при ломке деликатничать, сломается, скорее всего, не там, где нужно
Традиционно декоративно-прикладное применение (цветного) стекла – разного рода вещицы, панно, светильники в витражной технике с характерной сложной криволинейной резкой.
Прежде всего, при проектировании рисунка (условно – витража), всячески избегаем сложных в резке и обработке деталей, но бывает всякое. Витражное стекло, против ожидания, обычно легко резать – оно тоньше (обычно, 3 мм) и заметно менее прочно, зато самые красивые художественные стёкла имеют слоистую структуру с её непредсказуемостью в обработке. Стекло прозрачное, общего назначения, тоньше обычных 4 мм, тоже режется без особенных приключений.
Трещина в стекле, возникая, ведёт себя подобно тяжело груженному самосвалу на большой скорости – резко повернуть не в состоянии. Например, в прочерченной стеклорезом стеклянной детали на рисунке, при ломке, трещина, вероятнее всего, пойдёт как указано стрелочками
Рез стеклянной детали тем не менее может иметь некоторую внутреннюю кривизну, но не очень глубокую и во всяком случае, следует по возможности избегать при этом более или менее тонких концов – скорее всего, они обломятся
Витражи бывают нескольких техник и сложности. Классические, из-за ограниченных возможностей технологии, состоят из весьма простых линейных деталей. Современные способы соединения стекляшек в рисунок, могут иметь элементы сложные и вычурные – резы для них характерны криволинейные, однако, в любом случае стремимся к деталям максимально крупным и с плавными однонаправленными изгибами.
Витраж «Гранаты» в классической технике «Тиффани» – края стеклянных деталей отделываем медной фольгой и спаиваем в рисунок
Ведут такой стеклорез вперёд, от себя, чтобы видеть кривую линию разметки на стекле
Таким образом, вырезание и отламывание плавных кривых – а-ля натюрель – режем и ломаем как есть за один раз. Вырезание и отламывание сложных, сильно изогнутых кривых – с разбитием их на несколько простых.
Вырезание нескольких стеклянных криволинейных деталей из листа. Размечаем их так, чтобы каждый простой рез был от края до края заготовки. №1 – отрезаем всю группу
Вырезание каждой детали в три приёма. Каждый – от края до края листа и не слишком сильно изогнут
Пример вырезания группы небольших, неправильных очертаний, заготовок из листа. Детали расположены кучно для экономии ценного материала, но с учётом рисунка самого стекла. Сначала разделяем всех участников на небольшие компании, дальнейшее очевидно. Стеклорезом можно прочертить сразу всё, а потом разламывать или работать последовательно – прорезал-сломал, прорезал-сломал. Как сердце подскажет
Таким образом, например, круг – вырезаем из заготовки-квадрата четырьмя изогнутыми касательными.
❯ Разламывание стекла
Самая непредсказуемая и сложная операция при резке. Мы наметили трещине путь стеклорезом, но барышня эта легкомысленная и вздорная – в заготовке может быть масса невидимых препятствий – мелкие дефекты, напряжения. Не говоря о стекле цветном слоистом, неоднородном в принципе. Кроме прочего, в нём не следует располагать длинные детали поперёк общего направления «перьев». В целом же, следует заранее смириться с некоторым процентом неудач. Обломки цветного стекла следует собирать и хранить, они пригодятся для более мелких деталей, других техник, дробления на крошки и т. д.
Прямые резы на более или менее крупных заготовках и деталях обычно отламывают очень простым и эффективным, если не сказать эффектным, приёмом на краю стола. Иной ходовой способ – с обратной стороны царапины заготовку последовательно простукивают небольшим твёрдым предметом – некрупным молоточком, стамеской и т. п. На многих стеклорезах для этого есть специальное утяжеление на конце длинной ручки.
Вырезание стеклорезом небольшой детали для художественной стеклянной работы. Стеклорез держим как авторучку, ведём вперёд от себя по линии разметки. Чтобы усилие на ролик, в нетвёрдых руках, было выше, головку инструмента часто нажимают указательным пальчиком второй руки
Даже небольшие детали витражного непрочного стекла хорошо обламываются при постукивании их шариком ручки стеклореза
Тем не менее для ломки стеклянных мелочей есть ряд специальных интересных инструментов упрощающих и убыстряющих операцию, повышающих шансы на её благополучное проведение, а в ряде случаев – они и вовсе единственная возможность.
❯ Ломатели стекла
Инструменты для быстрого разламывания – работают аналогично резаку для облицовочной керамической плитки – некое ребро упирающееся снизу в черту от твердосплавного ролика и прочные лапки с усилием давящие на заготовку сверху, по обе стороны от царапины.
Классическая резалка облицовочной плитки, где: 1 – ребро снизу; 2 – лапки с рычагом. Фото из сети
Ручной ломатель стекла. Фото из сети
Ломатель нетолстого стекла. Инструмент обычный для витражной мастерской. На металлические губки одеваются защитные силиконовые колпачки. Фото из сети
Авторский ломатель витражного стекла из плоскогубцев и пары бронзовых деталей от старого душевого смесителя. Металлические губки в несколько слоёв обмотаны прозрачным скотчем – чтобы не скрежетали
Работа инструмента очевидна – некрупные детали разламывает мгновенно, в один присест, длинные же сложные кривые полезно сначала не до конца сжать таким ломателем с обеих сторон и в нескольких местах.
❯ Отщипыватель маленьких кусочков
Во истину необходимый для работы со стеклянными мелочами инструмент! – необходимость отломать после стеклореза очень небольшой кусочек стекла возникает постоянно. Такой клочок не схватить пальцами, не помогает стучание снизу и даже небольшим губкам ломателя нет места для опоры.
Ломатель-отщипыватель витражного (~3 мм) стекла. Всегда под рукой
❯ Обработка края стеклянной детали
Обычно её края спрятаны и можно допустить их некоторую зазубренность, но случается торцам работать и снаружи. Тогда у краёв вырезанного стекла придётся, как минимум, притупить острые кромки. При работах разовых и более или менее правильной форме стекла, сделать это можно на куске обычной наждачной бумаги на тряпочной основе, со средним зерном. Стеклянная пыль, образующаяся при шлифовке, вредна и затрудняет работу абразива – её следует смывать или вовсе, работать под слоем воды. Оконное стекло довольно твёрдое, заметный результат будет только при ощутимом нажиме на деталь или абразив – следует позаботиться о целости рук. Зёрна наждачной бумаги весьма быстро притупляются, и работа становится раздражающе малорезультативной – патронов не жалеть! Кусок наждачки удобно пришпилить мебельным степлером к деревянному бруску, во время работы периодически макая его в ведро с водой.
При обработке краёв резаного стекла наждачной бумагой, иногда, удобно подложить под неё кусок плотного войлока – от нажима он слегка проминается и закругляет торец детали. На фото – отрезанная часть небольшой бутылочки от специй. Наждачка крупностью 140 единиц. Работа с плоскими деталями аналогична
Отшлифованный край получившегося стаканчика. Торец слегка округлён, кромки затуплены
Самодельная тушечница из отрезанной бутылки и металлического хлама
Наждачная бумага для работы со стеклом – подручный, широко распространённый и недорогой, но прискорбно малостойкий абразив, обычно же, для таких упражнений применяют инструмент алмазный. Следует стремиться обзавестись его промышленным вариантом на металлической связке. Он значительно долговечнее, изношенный внешний слой часто удаётся растворить сильной кислотой, восстановив работоспособность. Алмазный инструмент при работе нужно часто смачивать или непрерывно поливать водой – это смыв стеклянного шлама, предотвращение пылеобразования, охлаждение и увеличение его ресурса.
Вертикально вращающимися колёсиками с алмазным слоем удобно обрабатывать и кривые торцы стекла. Маленькие слева – на бакелитовой (?) связке, справа покрупнее – на металлической
Алмазные колёсики на державках для установки в трёхкулачковый сверлильный патрон. Специальные, выточенные и импровизированная, из стандартного крепежа М6
Алмазное колёсико в сверлильном станке, настроенном на 3000 об/мин. Обработка-подгонка стеклянной шкатулки к крышке
Импровизированное омывание инструмента водой – с обратной его стороны слегка прижимаем кусочек мокрой губки и часто споласкиваем её в плошке стоящей рядом. Мутная вода через сутки – двое оседает. Осторожно слив её, собрав и высушив стеклянный шлам со дна, получаем полезный материал для приготовления термостойкого клея-замазки. При шлифовании стекла будут брызги – работать в защитных очках или щитке
❯ Чтобы два раза не вставать
Научившись вырезать и обрабатывать плоские стеклянные детали сложной формы, грешно не помянуть о клее с ультрафиолетовым (УФ) отверждением. Варианты китайского производства работают сносно и недороги. Клей после полимеризации прозрачен. Цветное матовое «глухое» стекло им склеивать сложнее, прозрачное – будьте любезны.
На благо всех разумных существ.
Babay Mazay, ноябрь, 2023 г.
Как запустить сотовую сеть стандарта AMPS при помощи SDR
Автор: MaFrance351
Многие из нас всё ещё помнят такой стандарт связи как AMPS. В лучшие времена он, как и другой аналоговый стандарт NMT-450, был достаточно популярен на просторах России. И, возможно, у кого-то из нас даже был такой телефон.
Хотя сети общего пользования прекратили работу уже давным-давно, при помощи некоторого оборудования и софта всё ещё возможно дать старым телефонам возможность вновь зазвонить.
Итак, в сегодняшней статье разберёмся, как запустить сотовую сеть стандарта AMPS. Узнаем, с какими сложностями придётся столкнуться и как заставить всё это работать. Традиционно будет много интересного.
❯ Суть такова
Как и многих других любителей старой электроники, древние телефоны не обошли меня стороной. Хотя основным моим увлечением по этой части остаётся компьютерное железо, да и из мобильных устройств мне больше нравятся КПК, смартфоны и коммуникаторы (без привязки к стандарту связи и оператору), такие древние трубки у меня всё же имелись. И, разумеется, мне всегда хотелось их запустить. И вот, спустя столько лет, мне наконец-то удалось приобрести полноценный SDR, так что теперь у меня есть возможность увидеть всё это в работе. А раз так — самое время поведать об этом миру.
❯ Немного истории
Сети стандарта AMPS принадлежали к первому поколению мобильных сетей. Появившись в начале восьмидесятых, они достаточно быстро получили распространение в Америке (где вообще стали первыми сотовыми сетями), а позже и в других странах мира. Немало легендарных устройств работали в этом стандарте, например, первый коммерчески доступный мобильный телефон Motorola DynaTAC или один из первых смартфонов IBM Simon. И даже первый звонок по сотовому телефону был совершён именно в сети этого стандарта.
В России эти сети появились в 1994 году и были развёрнуты компанией «Вымпелком» (он же «Билайн»). Как удалось найти, в них использовалось оборудование Ericsson, телефоны предлагались преимущественно этой же фирмы.
К концу нулевых годов AMPS стал сдавать позиции и был вытеснен более совершенными GSM и D-AMPS (впрочем, имеющего мало общего с «оригинальным» AMPS). Последние сети этого стандарта были отключены в 2008-2010 годах.
❯ Как работает AMPS
И перед началом экспериментов разберёмся, как же были устроены данные сети.
По принципу работы AMPS очень близка к своему предшественнику IMTS (Improved Mobile Telephone Service). Это типичная аналоговая сотовая сеть с частотным разделением каналов. Всего их 416 — 395 голосовых и и 21 управляющий. Каналы эти назначались автоматически, в зависимости от занятости и уровня сигнала.
В отличие от регионов NMT, тут используются так называемые System ID, кодирующие сети операторов. Сети делятся на два типа — System A (нечётный ID) и System B (чётный ID), для каждой из них выделены свои каналы.
❯ Что нужно для запуска
Итак, определимся с оборудованием. Для создания нашей сети нам понадобится примерно следующее:
Компьютер с ОС Linux. Машина должна быть достаточно мощной, Raspberry Pi не подойдёт. Также обязателен хотя бы один свободный порт USB 3.0. Использовать ВМ я настоятельно не рекомендую, чуть позже я покажу, почему.
Полнодуплексный SDR, совместимый с GNU Radio. В качестве него подойдут, например, LimeSDR, USRP или BladeRF.
Антенны, рассчитанные на частоту в районе восьмисот мегагерц или антенная нагрузка (что ещё более предпочтительно)
Собственно, сам телефон. Как нетрудно догадаться, аппарат должен включаться и пытаться ловить сеть. Антенна также должна быть на месте.
Вся сложность заключается именно во втором пункте. Дело в том, что полнодуплексный SDR на момент написания поста стоит весьма недёшево ввиду наличия в его составе «жирной» ПЛИС и трансивера.
❯ Обзор оборудования
Ну что же, самое время взглянуть на железо.
Это самый важный из всех компонентов — USRP B200-mini, он же full-duplex SDR. Железка по-настоящему крутая, для экспериментов с сотовыми сетями она просто идеальна. Единственное — цена такой штуки весьма впечатляет.
Теперь очередь телефонов.
Это Ericsson R300LX. У него интересная судьба: в своё время, когда отключали аналоговые сотовые сети, эти телефоны продавали очень дёшево, и я купил его всего за десять рублей в привокзальной палатке. В годы начальной школы он был моей любимой игрушкой. Аккумулятор был потёкший, и я его сразу выкинул, так что запускать аппарат будем от ЛБП. Благо ещё в те далёкие годы я припаял два проводка. Позже я раздобыл ещё один такой телефон, его и буду использовать в рамках данного поста.
А это Ericsson T60D. Аппарат куда более поздний, нежели предыдущий. У него также была версия T60C стандарта CDMA.
Аккумулятор у него тоже дохлый, но подключается он через разъём, а не подпружиненные контакты, так что я просто откусил вздувшуюся банку и припаял взамен другую батарею (она от отслужившего своё аккумулятора Lego NXT. Постоянно использовать её, конечно, не выйдет, но для тестов сгодится).
Самая интересная, на мой взгляд, особенность этого телефона — ЭЛИ-подсветка. Если его разобрать, на плате можно увидеть характерную плёночку, светящуюся при подаче на неё переменного напряжения высокой частоты. Аналогичная технология использовалась в телефоне Motorola RARZ V3.
Ericsson LX588. Увы, у обоих аппаратов сломаны и утеряны антенны, так что в данных экспериментах они участвовать не будут, хоть они и включаются и пытаются работать.
Nokia 8260. Это самый поздний аналоговый аппарат, что у меня есть, если бы не отсутствие слота под SIM, его было бы сложно отличить от обычной GSM-трубки.
Среди прочих аппаратов есть и те, которые заслуживают более подробного описания. Вот, к примеру, Motorola MicroTAC, как по мне, один из самых крутых аппаратов того времени в плане дизайна (наряду со StarTAC от той же Motorola). Их было выпущено много модификаций, в мои руки попала MicroTAC Ultra Lite.
Обратная сторона. Под батареей находится краткая инструкция со списком основных действий.
Что примечательно, средний контакт аккумулятора хоть и есть, но не задействован. Он используется не для контроля состояния аккумулятора, а для активации режима Test mode.
Никелевый аккумулятор, разумеется, давно сдохший. Без этой штуки телефон теряет весь свой шарм, перестаёт приятно оттягивать руку и, если бы не светодиодный дисплей, он бы напоминал типичный древний аппарат от Ericsson.
Зарядная станция. Помимо самого телефона, в ней также может располагаться резервный аккумулятор. Подобное решение я не раз позже встречал в различных КПК.
А вот так на ней лежит аппарат.
Внутренности. В некоторых моделях стоял ещё и микроконтроллер PIC, но у меня его нет.
Девайс в работе. Даже по нынешним меркам светодиодные матричные индикаторы очень классно смотрятся и навевают мысли о старых авиаприборах.
Ещё одной интересной особенностью является наличие у него зарезервированных функций меню.
А вот и легендарный StarTAC. Вообще, я не очень люблю раскладушки, но этот девайс (наряду с КПК Sony) мне безумно нравится.
Он же в сложенном виде. Увы, аккумулятор от него давно утрачен. Кстати, это единственная известная мне раскладушка, где батарея установлена в верхней части.
❯ Ставим софт
На просторах Хабра отыскалась вот такая статья (являющаяся переводом английской статьи русскоязычного автора с Medium), повествующая примерно о том же, чем я собираюсь заняться сейчас. И, казалось бы, всё просто, ставим софт, и можно пробовать. Но это только во всяческих руководствах конфигурация настраивается шутя, а запускается всё с первого раза, так что здесь я постараюсь затронуть ещё и некоторые сложности.
Вообще, кое-что про работу с софтом, что мы будем сейчас использовать, я уже рассказывал в посте про NMT-450, так что настоятельно рекомендую вначале прочитать его. Хотя стандарты и оборудование сильно отличаются, по части софта многие аспекты полностью идентичны.
Как и в случае с NMT, я буду использовать Osmocom Analog. В отличие от другой реализации AMPS для GNU Radio, gr-amps, этот софт намного более прост в установке и запуске.
Итак, для начала необходимо установить ПО для управления SDR (UHD или LimeSuite). Выбор его зависит от вашей железки, так что подробно описывать это не вижу смысла.
Далее нужно установить библиотеку SoapySDR:
sudo apt install libsoapysdr-dev
sudo apt install soapysdr-tools
Это официальный вариант от разработчиков Osmocom Analog. Я встречал информацию, что нужно использовать только конкретную версию библиотеки, иначе будут проблемы с запуском, но на момент написания статьи, похоже, это было исправлено, так как у меня всё запустилось нормально.
Если же у вас нет желания разбираться с библиотеками и прочими зависимостями, то я рекомендую запускать всё на Dragon OS. Это известный в узких кругах дистрибутив Lubuntu, этакий идеологический аналог Kali Linux, только если последний ориентирован на хакеров, Dragon OS предназначена для работы с SDR и радио. Там уже установлены все необходимые программы, так что проблем у вас быть точно не должно. На всякий случай я оставлю ссылку на ту версию, что я использовал, в конце статьи. Точно также я выложу уже скомпилированный софт, который будет достаточно только установить и запустить.
Теперь необходимо собрать Osmocom Analog. Делается это очень просто:
git clone git://git.osmocom.org/osmocom-analog
cd osmocom-analog
autoreconf -if
./configure
make clean
make sudo
make install
После сборки у вас должна будет появиться папка osmocom-analog, где в папках в разделе src будут лежать нужные нам программы для запуска сетей. Вообще, этот софт можно использовать и с аналоговым трансивером (по сути всё абсолютно аналогично тому, что я описывал в посте про NMT), но найти SDR оказалось проще, чем приёмопередатчик на такие частоты.
Кстати, существует ещё и вот такой проект. Как по мне, это одна из самых крутых реализаций такой сети, а подробное описание собранного девайса потянет на отдельную статью. Но об этом всём как-нибудь в другой раз. Кстати, именно автор данного девайса сильно помог проекту Osmocom-Analog в реализации сети AMPS.
❯ Запускаем сеть
Ну что же, пробуем? Втыкаем SDR в компьютер, включаем наш телефон.
Запускаем наш софт:
amps --sdr-uhd -k 334 -k 320 --samplerate 512000
При первом запуске после перезагрузки (а также если была нажата кнопка RESET на SDR или он был отключён от компьютера) программа выдаст ошибку обращения к SDR. Это норма, через несколько секунд в SDR должна будет загрузиться конфигурация, и всё заработает. Если не работает — надо разбираться с драйверами SDR.
Остаётся только положить телефон рядом с антеннами и ждать чуда.
И, если всё было сделано правильно, телефон поймает сеть и скажет, что мы в роуминге (так как код оператора отличается от того, что прошит в него).
При этом в окне посыпятся логи. Здесь же можно увидеть номер — в моём случае это 3512761234., Присвоенный номер наводит на мысли о наследии старых сотовых операторов — когда-то давно мобильные номера выдавались просто с кодом города, а не оператора (что, кстати, отражено в моём нике: 351 — код города Челябинска).
Всё, можно пробовать звонить.
❯ Итак, оно не работает
Если телефон сразу нашёл сеть и подключился к ней — поздравляю. Всё успешно запущено, теперь можно пробовать звонить.
Но, как оказалось, всё не так просто, как может показаться.
Если сеть не запускается, следует попробовать поменять samplerate на более большой. Завышать его, правда, тоже не стоит, так как ресурсов это будет тратить больше, а особого результата не будет. Значение это должно быть таким, чтобы обеспечить работу всех созданных каналов.
Если же появляются строки вроде «SDR underrun», скорее всего, не хватает пропускной способности порта. Причин для этого много, либо SDR воткнут в «медленный» USB 2.0 вместо USB 3.0, либо компьютер слишком слаб, чтобы держать столько каналов. К слову говоря, это одна из причин, почему не стоит запускать софт на виртуальной машине. У меня нет отдельного мощного ПК с линуксом на борту, но было достаточно записать Dragon OS на флешку и загрузиться с неё, чтобы сообщения об ошибках пропали.
Запустив сеть, надо включить телефон и ждать, пока он не увидит сеть. Процесс этот не слишком быстрый, использовавшийся как основной для экспериментов Ericsson T60D перед нахождением сигнала тупил где-то минут десять. Если всё равно не находит — пробуем выбрать сеть вручную.
На том же телефоне обнаружился досадный косяк в виде какого-то пароля, не дававшего позвонить. Проблему я решил просто — набрал на нём 112. Поскольку сети общего пользования давным-давно отключены, можно не опасаться ложных вызовов. Ну а телефон же, в свою очередь, не запретит позвонить по этому номеру даже при наличии блокировки.
Также причина отсутствия сети может крыться в антеннах. В своих опытах я использовал таковые из комплекта от другого SDR, HackRF (эти же антенны я пробовал подключать к рациям в опытах с NMT). Попытки использовать антенны от рации или от другого телефона не увенчались успехом, трубки либо в упор не видели сеть, либо ловили, но звонок не шёл. Кстати, упомянутый Ericsson T60D в этом плане показал себя лучше всех, что даже было для меня удивительным, так как больше всего надежд возлагалось на R300LX.
❯ Звоним
Итак, набираем на клавиатуре телефона какой-то номер и жмякаем вызов. Если аппарат ещё не потерял сеть, то из динамика послышится характерное шипение, а затем и гудок.
При этом в окне консоли посыпятся логи. Через пару секунд компьютер возьмёт трубку и из телефона начнёт играть музыка, а затем приятный женский голос скажет «Ваш звонок очень важен для нас. Пожалуйста, оставайтесь на линии.».
Чтобы получить возможность принимать звонки, необходимо использовать звуковую карту, аналогично тому, как это было показано в статье про NMT.
Для звонка на телефон необходимо узнать его номер. Увидеть его можно в логах регистрации или при звонке. Далее необходимо набрать его (если с этого телефона уже осуществлялся звонок, то номер будет вписан автоматически) и жмякнуть на клавиатуре «d».
❯ Про каналы и Test mode
Для правильной работы сети важно выбрать правильные номера каналов. Если они совпадают с теми, что записаны в телефон, то находить сеть он будет практически моментально (MicroTAC, на котором удалось зайти в сервисное меню, делал это за несколько секунд), иначе же ему придётся сканировать весь эфир, что занимает достаточно длительное время.
У меня есть телефон Motorola MicroTAC, на котором ставить данные опыты проще простого. Не нужно кодов, секретных комбинаций кнопочек, каких-то внешних причиндалов, подключаемых к аппарату. Достаточно только соединить средний контакт аккумуляторного разъёма с землёй. Если батарея вашего телефона перепакована, то достаточно всунуть в отверстие комочек фольги (средний контакт батареи через диод соединён с минусом), если же телефон питается от ЛБП, то нужно подкинуть земляной провод к этому контакту. Далее необходимо включить телефон, и он перейдёт в тестовый режим, после этого соединение можно размыкать. Вообще, для опытов с AMPS советую разжиться телефоном именно такой модели (StarTAC, MicroTAC, TeleTAC), ввиду огромного числа функций, могущих помочь при наладке сети.
При входе в этот режим телефон начинает показывать по кругу разную информацию, включая и номера каналов. На фото пример того, как это может выглядеть. То, что показывается между этими сообщениями, интереса не представляет. Необходимо записать эти трёхзначные числа и затем указать их при запуске сети.
Разумеется, помимо просмотра и настройки каналов в данном режиме можно делать много интересного. Есть такой текстовик как Motorola Bible. Тогдашние гуру фрикинга сотовых телефонов скажут, что всё написанное там — полная чушь. Не буду ручаться за это, но кое-что интересное оттуда таки можно почерпнуть. А именно — номера команд и способы входа в Test mode для целого модельного ряда аналоговых телефонов Motorola. В частности, в этом режиме можно осуществлять настройку передатчика, просмотр серийного номера (ESN), программирование кода абонента (NAM) и многое другое. Описание приведено для двухстрочных моделей, но на моём многие команды тоже завелись...
Продолжение в источнике материала. Увы, все фото не влезли, а именно в них вся суть и самое вкусное. :)
Поднимаем сотовую сеть NMT-450 в домашних условиях
Автор: MaFrance351
Больше интересных фото и комментариев в оригинале материала
Приветствую всех!
30 мая 2017 года в Котласе, что в Архангельской области, была отключена последняя в мире базовая станция NMT-450. Вместе с этим навсегда ушёл в историю не только этот стандарт, но и аналоговая сотовая связь общего пользования в принципе.
И вот, шесть с лишним лет спустя мне стало интересно: а реально ли попробовать оживить такую сеть, увидеть в работе раритетные телефоны и попробовать с них позвонить?
Итак, в сегодняшней статье разберёмся, как в домашних условиях запустить базовую станцию NMT-450. Узнаем, как работают такие сети и как сделать так, чтобы оно точно заработало.
❯ О чём я?
Многие из нас всё ещё помнят антикварные сотовые телефоны такого стандарта. Трубки были аналоговыми, SIM-карт не было, данные программировались оператором.
Сеть эту очень любили в дальних районах нашей необъятной: NMTшные трубки ловили сеть даже там, где более поздний GSM не мог совершить даже экстренный вызов. Можно было спокойно звонить где-то с опушки леса, причём сигнал был весьма и весьма уверенным. Тем не менее, система обладала целой кучей недостатков, присущих всем аналоговым сотовым сетям, так что в итоге данный стандарт навсегда ушёл в историю.
Ну что же, сегодня постараемся вернуться в те годы и попробовать запустить те самые телефоны. Причём для этого вам не понадобится ни SDR, ни другое дорогое оборудование.
❯ Как так-то?
Самое время разобраться, как же возможно запустить такую сеть без специфического оборудования.
Есть такой проект как Osmocom-analog. Его автор реализовал целый ряд аналоговых сотовых сетей (а также ряд других интересных штук типа эмуляции акустического модема), включая и предмет нашего обзора. Причём для их запуска достаточно иметь только аналоговый передатчик и такой же приёмник, ничего больше не понадобится.
Вообще, стоит учитывать, что автор данного проекта немец, так что большая часть проекта посвящена их национальным немецким сотовым сетям — A-Netz, B-Netz и C-Netz, так что в реализации других стандартов могут быть баги. Тем не менее, стоит отдать должное, что в плане работы с аналоговой сотовой связью этот софт, пожалуй, лучшее, что существует на момент создания данного поста. Так что будем использовать именно его.
Теперь очередь трансивера. И по сути именно его частотами и обусловлен мой выбор сети NMT-450. Всё дело в том, что на такой частоте умеют вещать рации диапазона UHF. Достаточно даже дешёвых китайских бубнилок, чтобы сеть успешно заработала. Конечно, есть некоторые ограничения (например, из-за того, что у нас всего один канал, можно будет единовременно подключить всего один аппарат), но для опытов этого хватит сполна.
А вот и рации. Это Joker TK-450S, одна из самых популярных моделей радиостанций такого диапазона наравне с аппаратами от Kenwood. Они как раз поддерживают нужные нам частоты.
А вот пример тех, какие не подойдут. Эти рации имеют стандарт PMR и на нужных нам частотах вещать не умеет.
❯ Обзор оборудования
Итак, посмотрим на телефоны, которые сегодня будем пытаться оживлять.
Первым у нас на очереди Nokia 640, он же THF-13. Из всех телефонов NMT-450 он был едва ли не самым популярным. По виду это типичный древний телефон тех времён.
Увы, аккумулятор его сдох, а от зарядки он не работает, так что в статье он фигурировать не будет. Предвосхищая вопросы некоторых: от ЛБП стартовать он тоже отказался, хотя я некогда запускал его от живого аккумулятора, и он работал.
Следом идёт Benefon Spica. Аппараты этой фирмы были не менее крутыми, хорошо ловили сеть и тоже пользовались большим успехом. Хотя, конечно, самым легендарным аппаратом этой фирмы был Benefon Delta с семисегментным ЖКИ, которого у меня, правда, нет.
Кстати, уже в те годы у некоторых телефонов были импульсные блоки питания вместо трансформаторных.
Не менее отличительной чертой тех трубок были вот такие чехлы, позволяющие носить аппарат на поясе.
И, наконец, самый интересный из сегодняшних девайсов, Nokia 720, он же TMF-4SP. Это так называемый автомобильный телефон, предназначенный главным образом для использования в машине. Тем не менее, у него был аккумулятор, а заодно и ручка для переноски, так что можно было пользоваться им и так.
Существовала также его версия без трубки, с гнездом для телефонной линии. Так можно было подключить стационарный телефон там, где нет линии, а GSM не ловит. Причём передача была чисто аналоговой, так что, например, там могли без серьёзных проблем работать модемы. Для аппарата на фото также был адаптер линии, втыкающийся в гнездо трубки.
Сам аппарат состоит из базового блока TMF-4SP и трубки HSN-5K (отчего некоторые путают этот девайс, называя его Nokia HSN-5K. На деле же эта трубка используется не только в этой модели телефона). Сбоку имеется антенна, которая при установке в автомобиле заменялась на внешнюю, установленную на крыше и подключенную к аппарату коаксиальным кабелем.
А вот обратная сторона базового блока. Весь девайс сделан из металла и весит пару килограммов. Даже сейчас он выглядит и ощущается очень круто. Сложно найти атрибут аутентичнее для создания атмосферы девяностых с крутыми парнями в пиджаках, серьёзным бизнесом и тому подобными атрибутами.
Никелевый аккумулятор тоже заслуживает уважения: он составляет треть массы всего аппарата.
А вот и внутренности. Трубку разбирать я не стал, а вот базовый блок весьма интересен. На плате куча ВЧ-элементов, усилитель мощности, релюшка (что именно коммутируется, мне неведомо), кварцевые генераторы, микропроцессор. Сама труба общается с базой по проприетарному протоколу MBUS, по сути это полудуплексный UART с пятивольтовыми уровнями. На том же протоколе работали старые дата-кабели Nokia.
Половинки корпуса. Помимо защиты от разных жизненных потрясений он служит также радиатором и экраном.
❯ Как работает NMT-450
Перед началом опытов поговорим об устройстве данного стандарта.
NMT расшифровывается как Nordic Mobile Telephone ввиду его изобретения в скандинавских странах. Позже он разошёлся по миру и широко использовался в Европе, России и на Ближнем Востоке.
По своей структуре NMT сильно похож на более поздние системы связи — он состоит из центра коммутации, БС и самих телефонов. Существовало две полосы частот — NMT-450 и NMT-900. Наибольшее распространение получил первый, так что именно его мы и будем рассматривать.
Как ясно из названия, рабочая его частота лежит в районе 450 МГЦ. Стандарт имеет 181 канал (462,500 — 467,500 МГц) с частотной модуляцией, при этом частота приёма на 10 МГц меньше частоты передачи. Каждый из каналов может быть как голосовым, так и управляющим, именно поэтому для минимальной БС требуется всего один трансивер.
NMT был первым стандартом сотовой связи с автоматическим роумингом, работало это за счёт того, что телефон при регистрации в сети сразу сообщал центру коммутации о своём новом местоположении.
❯ Программирование трубок
Мне всегда было интересно узнать, как же заносились данные об абоненте в телефон, ведь там не было ни SIM, ни каких-то других модулей. Запросы в духе «nmt-450 mobiles dealer configuration» ничего интересного не выдали.
В итоге поиск по тематическим группам вывел меня на некий сайт "Unofficial NMT". Сам сайт уже давно умер, но осталась его почти полная копия в Web Archive. Именно там удалось найти уйму информации по теме, включая сервис-мануалы, распиновки разъёмов, некоторую информацию по ПО.
В сервис-мануалах нашлись и скриншоты используемого для этих целей софта. В случае с Nokia это WinTesla, применяющаяся для конфигурации целого модельного ряда старых телефонов, нужно только добавить DLLку с поддержкой нужного аппарата. Именно там и задаются все нужные коды.
Сам софт, разумеется, был с защитой от копирования в виде аппаратного ключа (PKD), а телефон подрубался к компьютеру кабелем MBUS->RS-232, схема которого тоже имеется на сайте. Увы, самой WinTesla там нет, но её вполне реально найти на просторах вместе с патчем.
В случае с некоторыми другими телефонами, например, Motorola, всё было сложнее, так как для подключения к ПК использовались специальные адаптеры для проприетарного интерфейса (уже с МК внутри, а не просто схемы на нескольких транзисторах).
❯ Безопасность
Настоящим бичом операторов стало клонирование трубок. Всё дело в том, что данные об абоненте передаются в открытом виде, так что их реально перехватить в эфире, а затем записать в свою трубку и звонить за чужой счёт.
Позже это дело прикрыли, введя так называемые SIS-коды, использовавшиеся в стандарте NMT-450i. Тем не менее, фрикинг сотовых телефонов всё равно не умер, так как появилась возможность считать код, получив ненадолго доступ к самому аппарату. Впрочем, количество взломов всё же упало до вполне приемлемых уровней.
❯ Ставим софт
Ну что же, время приступать к экспериментам. Начнём с софта. Для его запуска понадобится компьютер с Linux или виртуальная машина с ним же. Использовать Live CD не рекомендую, так как могут быть проблемы с записью или воспроизведением звука. Если будете ставить на ВМ, лучше выбрать Virtualbox.
На всякий случай я выложу уже готовый софт в конце статьи.
❯ Первый запуск
Итак, открываем папку src/nmt и там запускаем нашу БС:
./nmt -k 1 -Y SE,2
О параметрах поговорим чуть позже, сначала же убедимся, что софт корректно работает.
Если всё было сделано правильно, то на экране появятся флаги скандинавских стран в ASCII-графике, а из динамиков компьютера послышится нечто вроде «У-лю-лю-лю-лю». Если это так, то с запуском софта у вас всё получилось.
❯ Подключаем рации
Хотя некоторые утверждают обратное, подключать рации напрямую ко входу компьютера нельзя: он весьма чувствительный, отчего сигнал с рации может его перегрузить или вовсе сжечь. Аналогично и для входа радиостанции.
Чтобы подключить приёмник и передатчик к компьютеру, необходимо согласовать уровни. Я использовал простейшую схему на двух потенциометрах.
Всё крайне просто: на один крайний контакт потенциометра подаётся сигнал, на другой подключается земля, с подвижного контакта снимается сигнал.
Далее включаем на компьютере музыку, настраиваем обе рации на один канал и крутим потенциометр для передатчика, добиваясь того, чтобы звук был хорошо слышен. Аналогично и для приёмника: запускаем какое-то приложение для звукозаписи типа Audacity и таким же образом регулируем уровень сигнала, говоря в рацию.
❯ Код региона
Отдельно стоит упомянуть код страны сети. Если он выбран неправильно, то БС исправно заработает, но телефон видеть эту сеть не будет.
Необходимо поковыряться в настройках и узнать, какой код стоит, после чего либо указать его при запуске софта, либо поменять его на тот, который поддерживает Osmocom. Некоторые телефоны поддерживают автоматический выбор страны.
❯ Запуск
Итак, самое время пробовать.
Включаем телефон и рации, втыкаем провода. Само собой, на компьютере необходимо отрубить все системные уведомления, слушать музыку на этой машине во время экспериментов тоже нельзя (сами представляете, что будет твориться в эфире). Передающую рацию настраиваем на 463,000 МГц, принимающую — на 453,000 МГц. Запускаем софт всё той же командой. Параметр k — канал (в данном случае первый, на который и настроены рации, если выбрать другой, то придётся выставить иную частоту). Параметр Y — как раз тот самый региональный код. Две латинские буквы — код страны, цифра после запятой — идентификатор соты.
Теперь начинаем на рации передачу, и спустя непродолжительное время телефон увидит сеть. Набираем какой-то номер и пробуем звонить, при этом на компьютере должны будут посыпаться логи, а в трубке заиграет музыка. В окне программы в это время можно будет увидеть номер, под которым зарегистрирован наш телефон. Набираем его на компьютере (можно просто нажать клавишу d, чтобы вызов начался), и трубка зазвонит.
На видео я пробовал подрубить внешние антенны, но, как видно, помогло это мало.
А вот и та самая Nokia. На ней это всё тоже отлично работает.
❯ Звонки
Чтобы при вызове слушать не музыку, а попробовать поговорить, надо подключить вторую звуковую карту.
Для начала выполним следующую команду:
arecord -l
Будет выведен список звуковых карт в системе.
Далее запускаем сеть следующей командой:
nmt -k 1 -Y SE,2 -c hw:XXX,YYY
Здесь XXX — номер звуковой карты, а YYY — номер устройства. Скорее всего, у вас будет нечто вроде hw:2,0. После этого можно будет подрубить к компьютеру наушники и микрофон и принимать звонки на ПК.
Звуковая карта 0,0 используется при этом для самой связи с рациями, так что задействовать для звонков её нельзя.
❯ SMS
Некоторые модели телефонов имеют возможность принимать и отправлять SMS. Реализовано это следующим образом. При отправке сообщения телефон совершает звонок на номер SMS-центра и обменивается с ним информацией. При получении — наоборот, вызов поступает на сам аппарат. Таким образом, можно запустить SMS-центр хоть на обычном компьютере с модемом и, например, отправлять e-mail с телефона, даже если оператор SMS в принципе не поддерживает.
Данный софт тоже имеет возможность отправлять сообщения. Для работы с ними необходимо указать номер SMS-центра 767, а если это невозможно, то запустить софт с параметром S, где указать нужный номер. Узнать его можно отправкой произвольного сообщение на произвольный номер и наблюдением, куда совершается звонок.
Далее необходимо выполнить следующую команду:
echo "1234,1234567,SMSTestSMS" >/tmp/nmt_sms_deliver
Первое число — номер отправителя, второе — номер получателя, далее идёт сам текст сообщения.
❯ Вот как-то так
Вот так вот, с помощью не самого сложного оборудования можно запустить сотовую сеть давно ушедшего в историю стандарта и увидеть в работе телефоны, которые в обычных условиях не смогли бы зазвонить уже никогда.
Тем не менее, желающим повторить всё это советую готовиться к нестандартным глюкам, всё же это аналоговая связь и соответствующее оборудование.
Такие дела.
❯ Ссылки
Джон Томсон и его фабрика по производству нобелевских лауреатов
Между 1884 и 1919 годами серьезный на вид профессор вместе с группой талантливых студентов-исследователей в довольно скудно финансируемой Кавендишской лаборатории в Кембридже расщепил атом и положил начало новой отрасли науки, известной как физика элементарных частиц.
Профессором был Джожеф Джон Томсон (1856 — 1940) — нобелевский лауреат 1906 года и первооткрыватель электрона, но таких последствий никто не ожидал: семеро студентов-исследователей под его руководством получили Нобелевскую премию по физике и химии.
Было ли это просто причудой судьбы, что некоторые из лучших умов в области физики собрались в Кавендише в то время, или это была сверхспособность заставлять умных людей выполнять блестящую работу? Эта статья о том, как один человек смог изменить историю науки не только благодаря индивидуальному таланту, но и благодаря тщательному воспитанию выдающихся умов.
В 1884 году лорд Рэлей (Нобелевский лауреат 1904 года) ушел в отставку с поста руководителя кавендишской лаборатории физики Кембриджского университета — одного из самых престижных научных подразделений того времени. В своей записке об уходе на пенсию он рекомендовал, чтобы молодой 28-летний человек Томсон стал его заменой.
Это было беспрецедентно. На эту должность претендовало несколько высококвалифицированных и известных ученых. Несмотря на то, что Томсон был блестящим студентом с рядом публикаций на его счету и доцентом в Тринити-колледже, его квалификация физика-экспериментатора еще не были подтверждена. Некоторые недоброжелатели считали Джозефа слишком молодым, чтобы занять эту должность.
Отборочной комиссии, состоящей из лорда Кельвина, Джорджа Гэбриэла Стокса и Джорджа Говарда Дарвина — одних из лучших научных умов своего времени — предстояло сделать трудный выбор, но они всё-таки последовали рекомендации Рэлея.
Томсон оправдал их выбор сполна, когда в серии блестяще разработанных экспериментов с электронно-лучевой трубкой (в 1897 году) дал доказательство существования электронов. Это разрушило миф о том, что атом не делим, и положило начало новой науке — физике субатомных частиц.
Томсон в своей лаборатории. Очень подробная и интересная история открытия электрона — здесь
Томсон родился в семье книготорговцев, которые финансово не могли потянуть образование сына в престижном университете. Однако, Джозефу, благодаря своим талантам, деньги были не нужны: на протяжении всего обучения он получал хорошую стипендию, ежегодно выпуская статьи в солидных научных журналах (первая была опубликована уже в 19 лет).
Томсон считал образцами для подражания знаменитого химика Далтона и физика Генри Джоуля. Однажды, когда он был совсем маленьким, кто-то из родственников спросил его, чем бы он хотел заниматься, когда вырастет, и Джозеф ответил, что хотел бы заниматься “оригинальными исследованиями”. Не многие мальчики в 1870-х годах и не многие мальчики сейчас могли бы сформулировать такие амбиции в раннем возрасте.
Томсон дома в своем кабинете в 1899 году. Он сидит в кресле, которое принадлежало Джеймсу Клерку Максвеллу, чья теория электромагнетизма до сих пор считается одним из самых замечательных достижений физики
К 50 годам Джозеф Томсон достиг всего, к чему может стремиться физик, – руководил лучшей в мире физической лабораторией, получил мировое признание за свою работу и Нобелевскую премию по физике. Он мог бы уйти на пенсию и ловить рыбу, а мир все еще помнил бы его как одного из лучших физиков всех времен.
Но есть одно достижение Джозефа, о котором не так часто вспоминают. Он был выдающимся педагогов, подобных которому мир не видел. Ряд первоклассных ученых получили свое раннее образование у Томсона — 75 его учеников занимали профессорские должности примерно в 55 университетах по всему миру, 27 были избраны членами королевского общества, а 7 его учеников стали Нобелевскими лауреатами. Последнее достижение до сих пор не повторил ни один ученый в мире!
Томсон всегда признавал, что ему повезло иметь очень одаренных учителей, которые распознали и отточили навыки молодого человека в математике и физике. Этот подход Джозеф как учитель воспроизводил для своих учеников с впечатляющим эффектом. Он ежедневно проверял успехи молодых исследователей в своей лаборатории и часто вносил свои предложения.
Один из его бывших студентов говорил “Нам всем нравилась его характерная улыбка, и каждый из нас чувствовал удовольствие, услышав шаги, которые, как знал каждый, принадлежат Томсону”. Среди его учеников-лауреатов Нобелевской премии такие люди, как Резерфорд, Астон, Уилсон, Брэгг, Баркла, Ричардсон и Эпплтон — ученые, которые заложили важнейшие кирпичики физики элементарных частиц.
❯ Эрнст Резерфорд (1871 — 1937)
Самый известный ученик Дж. Дж. Томсона — Эрнст Резерфорд — автор прорывной планетарной модели атома. Лауреат Нобелевской премии 1908 года по химии Резерфорд родился в Новой Зеландии. В кавендишскую лабораторию он попал во много благодаря управленческим решениям Томсона, который в 1885 году смягчил правила и разрешил перспективным студентам без базового кембриджского диплома проводить исследования в лаборатории.
Резерфорд был в числе первой группы зарубежных исследователей, которым в 1895 году разрешили работать в Кавендише. В первые дни эта «новая поросль» столкнулась с крайней враждебностью со стороны кадровых ученых лаборатории. Однако именно поддержка Томсона позволила Резерфорду сосредоточиться.
Примечательно, что нобелевскую премию Эрнст Резерфорд получил вовсе не за описание модели атома, а за исследование механизмов радиоактивного распада, что привело к открытию альфа-, бета-, гамма-излучения и инертного газа радона. После признания в 1908 году нобелевским комитетом его заслуг в области «исследования распада элементов и химии радиоактивных веществ» Резерфорд продолжил плодотворно работать и сделал множество открытий в физике элементарных частиц.
В 1919 году Резерфорд сменил своего учителя на посту руководителя кавендишской лаборатории. Последнее пристанище оба, кстати, наши в Вестминстерском аббатстве по соседству с другим кембриджским гением — Исааком Ньютоном.
❯ Фрэнсис Вильям Астон (1877 — 1945)
Томсон всегда был в поиске талантов и лично убеждал перспективных студентов работать в лаборатории. Одним из таких студентов был Фрэнсис Уильям Астон, которого переманили в Кавендиш для исследования анодных лучей.
Прошлое место работы Астона — Бирмингемский институт, где он трудился под руководством Пойнтинга (с ним знакомы те, кто помнят одноименный вектор из школьной физики)
Основные исследования Астона были направлены на изучение изотопов — разновидностей атомов химического элемента, имеющие разные массы. Работа привела к созданию учителем и учеником масс-спектрографа — устройства, которое позволило Астону уже у 1919 году обнаружить 212 природных изотопов различных элементов.
На заряженную частицу, движущуюся в магнитном поле, действует сила Лоренца, искажающая ее траекторию. Определяя разницу траекторий ионизированных атомов, движущихся в магнитном поле, можно делать выводы о соотношении массы и заряда иона.
Астон был удостоен Нобелевской премии в 1922 году за «сделанное им с помощью им же изобретенного масс-спектрографа открытие изотопов большого числа нерадиоактивных элементов и за формулирование правила целых чисел». После этого он еще несколько раз модернизировал устройство.
❯ Чарльз Томсон Вильсон (1869 — 1959)
Шотландский физик, который в начале планировал стать врачом, попал под крыло Томсона в 1892 году.
Через пару лет, наблюдая атмосферные эффекты в обсерватории на горе Бен-Невис (Шотландия), Вильсон приступил к попыткам воспроизвести их в лаборатории.
Корона (слева) и глория (справа) — это оптические явления, обусловленные дифракцией света на капельках воды. Кстати, в Китае глорию называют «светом Будды». Цветное гало всегда окружает тень наблюдателя, что часто толковалось как степень его просветления (приближённости к Будде и другим божествам).
Исследования привели его к разработке облачной камеры, которая позволила отслеживать каждую отдельную субатомную частицу на фотографической пластинке. Камера Вильсона сделала возможными некоторые из крупнейших открытий в физике элементарных частиц, включая открытие позитронов (положительно заряженных электронов) и принесло её автору Нобелевскую премию в 1927 году.
Быстрая заряженная частица, двигаясь сквозь облако перенасыщенного пара, ионизирует его. Процесс конденсации пара происходит быстрее в местах образования ионов. Как следствие, там, где пролетела заряженная частица, образуется след из капелек воды, который можно сфотографировать. Именно из-за такого вида треков камера получила свое английское название — облачная камера
❯ Уильямс Лоуренс Брэгг (1890 — 1971)
11 ноября 1912 года Джозеф Томсон на заседании Кембриджского философского общества представил статью молодого аспиранта Уильямса Брэгга, который в кавендишской лаборатории трудился всего лишь год.
Австралийский физик, уроженец г. Аделаида. Его сломанная в детстве рука появилась на первом в истории континента рентгеновском снимке, сделанном в медицинских целях.
В статье обсуждалась новая техника рентгеноструктурного анализа, а три года спустя, в 1915 году, автору, которому тогда было всего 25 лет, была присуждена Нобелевская премия по физике. Брэгг стал самым молодым нобелевским лауреатом по физике и первым и пока единственным, кто завоевал это почетное звание вместе со своим отцом.
nλ = 2dsin θ — закон Брэгга-Вульфа. Точки на картинке — атомы кристаллической решетки.
Закон Брэгга позволил по известным λ и θ рассчитать положение атомов в кристалле по дифракционной картине, которую образуют рентгеновские лучи проходя сквозь кристаллическую решётку.
Дифракционная картина получается путем измерения интенсивности рассеянных волн как функции угла рассеяния. Пики Брэгга получаются на дифракционной картине, когда углы рассеяния удовлетворяют условию Брэгга для θ и исследуемой кристаллической структуры.
❯ Чарльз Гловер Баркла (1877 — 1944)
Как и многие нобелевские лауреаты из нашей подборки, Чарльз Баркла получил образование в Тринити-колледже, а затем перешёл под крыло Джозефа Томсона в кавендишскую лабораторию.
Гловер Баркла провел там около двух лет, работая над определением скорости электромагнитных волн в различных материалах. Определяющим вкладом Баркли в науку стало открытие того, что каждый атом имеет характеристический рентгеновский спектр, на который не влияют внешние факторы, такие как температура.
Исследования Баркли привели к т.н. закону Мозли, который вычислил конкретную формулу зависимости длины волны характеристического излучения от порядкового номера элемента. Закон удивителен тем, что это зависимость — линейная! На горизонтальной оси отмечены корень из частоты и длина волны, на вертикальной — зарядовое число.
В 1916 году Гловера Баркла отошел от дел и начала преподавать философию. Впрочем, награда всё равно нашла своего героя, и в 1917 ученый удостоился Нобелевской премии.
❯ Оуэн Уилланс Ричардсон (1879 — 1959)
Биография всех, о ком мы сегодня говорили, похожа как две капли воды: отличное школьное образование и заслуженные студенческие стипендии, которые позволили «засветиться» и попасть к Томсону. Оуэн Ричардсон — не исключение.
Биография всех, о ком мы сегодня говорили, похожа как две капли воды: отличное школьное образование и заслуженные студенческие стипендии, которые позволили «засветиться» и попасть к Томсону. Оуэн Ричардсон — не исключение.
В 1900 году он начал исследовать явление термоэлектронной эмиссии («эффект Эдисона»), заключающееся в том, что при нагревании металла электроны набирают достаточно энергии, чтобы преодолеть потенциальный барьер.
Термоэлектронная эмиссия в электровакуумном диоде. При подаче положительного напряжения на анод через вакуум между катодом и анодом протекает электрический ток, при обратной полярности напряжения тока нет. Стрелками показано направление движения электронов, направление тока обратно направлению движения электронов.
Вот только Эдисон смог подтвердить термоэлектронную эмиссию на опытах, а Ричардсон придал ей статус строгого физического закона. Конечно, у Оуэна было преимущество — благодаря своему учителю он знал, что существуют электроны.
Оказалось, что при увеличении анодного напряжения сила тока возрастает до некоторого максимального значения, при котором ток называется током насыщения, и далее не увеличивается при последующем повышении напряжения на аноде.
Ток насыщения пропорционален квадрату температуры, k — постоянная Больцмана, А и В' — параметры, зависящие от материала катода и определяющие его способность к термоэлектронной эмиссии
Именно за эту формулу Ричардсон и получил в 1928 году Нобелевскую премию, а явление термоэлектронной эмиссии привели к небывалому развитию электровакуумных приборов, которые затем использовались в качестве выпрямителей переменного тока.
Кенотроны — выпрямительные электровакуумные устройства, работающие по принципу термоэлектронной эмиссии. До сих пор можно встреть у любителей «ламповой музыка». Их несомненное достоинство — отсутствие искажений, присущих полупроводниковых устройствам.
❯ Эдуард Виктор Эплтон
Эплтон получил Нобелевскую премию в 1947 году — уже после смерти своего учителя и руководителя кавендишской лаборатории.
В лаборатории Эдуард активно взаимодействовал с Вильсоном, узучая атмосферные явления, но цель исследования была другой. Эплтон интересовался устройством атмосферы, а именно её загадочным слоем, который оказывал сильное влияние на распространение коротковолновых радиосигналов.
Опыты Маркони в 1902 году показали, что распространение КВ-радиоволн возможно не только в пределах прямой видимости, но и через переотражения от некоего атмосферного слоя, что позволяло принимать радиосигналы на другой стороне земного шара
Английский физик Оливер Хевисайд в 1902 году предположил наличие ионизированного слоя в атмосфере. Его теория включала в себя возможность распространения радиосигнала вокруг Земли, несмотря на её кривизну. Независимо от Хевисайда эксперименты по дальнему приёму коротких волн через Атлантику между Европой и Америкой проводил американский инженер-электрик Артур Кеннели. Они предположили, что где-то вокруг Земли существует ионизированный слой атмосферы, способный отражать радиоволны. Его назвали слоем Хевисайда — Кеннели, а затем — ионосферой.
Слой Д ионосферы практически полностью поглощает радиосигналы, слой E — способен отражать длинные и средние волны, а слой F — имеет максимальную ионизацию и используется для работы на коротких волнах
Именно за открытие слоя F (на западе его часто называют слоем Эплтона) физик получил заслуженную награду. В серии экспериментов было определено, что он расположен на высоте 300-400 км над поверхностью Земли. Методика, которую Эплтон использовал в ходе исследований, оказала огромное влияние на развитие радиолокации.
❯ P.S.
В своей статье я рассказал про 7 нобелевских лауреатов, которые достигли вершины научной карьеры под руководством Томсона. Однако, есть еще один великий ученый, к которому Джозеф имеет непосредственное отношение. Это его сын — Джордж.
В то время, как отец подтвердил существование электрона как отдельной частицы (корпускулы), сын доказал, что электрон имеет волновые свойства, что стало первым экспериментальными доказательством принципа корпускулярно-волнового дуализма, сформулированном де Брейлем в 1920 году. Нобелевку за это открытие Джордж получил еще при жизни отца — в 1937 году.
Откат операционной системы, с отечественной аппаратной картой «ЛанСил»
Автор: MechNIX
Друзья, я вспомнил про классную карту восстановления данных — у меня она в свое время вызвала вау-эффект и потому хочу поделиться процедурой использования, в настоящее время.
Рассмотрим отечественную карту «ЛанСил» поближе, протестируем в реальных условиях. Этой «железке» немало лет, до категории «ретро» она не дотягивает, но тем не менее, может быть интересна. Эксперименты мы будем проводить в пределах старенького IDE-интерфейса и не менее стареньких винчестерах, объемы можно увидеть на фото.
Под катом — фото карты, фотообзор эксперимента и видео демонстрирующие процедуры отката операционной системы с данными к исходному рабочему состоянию.
Фото — кликабельны.
Добро пожаловать, надеюсь будет интересно!
❯ Введение
Кому из нас не приходилось сталкиваться с тем, что загрузчик заботливо установленной операционной системы, был перетёрт, к примеру, другим загрузчиком, либо вирусом, либо еще каким-либо непредвиденным нюансом. Так же после каких-либо экспериментов нам хотелось бы вернуть состояние настроенной среды операционной системы к моменту как было «до».
Безусловно, экспериментировать можно на копии виртуальной машины, а перед экспериментами создавать контрольную точку для отката-восстановления, но это все на программном уровне. Это прекрасно работает, но абстрагируемся от софта и взглянем на отечественный хардварный механизм, работающим в упомянутом контексте.
❯ Обзор внешнего вида и аппаратной-программной части
Разработчик назвал свое устройство «ЛанСил».
К сожалению, сайт производителя давным-давно заброшен, но кто опишет свое детище лучше чем разработчик? На сайте есть авторская информация.
Так выглядит мой экземпляр карты.
С картой поставлялся CD-диск, с софтом, необходимым, для работы, в частности программа WinCTRL. Забегая вперед, приведу фотографии, демонстрирующие работу программы.
Программа постоянно находится в памяти. Её стартовое окно вызывается сочетанием кнопок CTRL-ALT-HOME. По сути, настраивать карту можно как при старте компьютера, так и из операционной системы.
Хорошо, что диск сохранился, ведь на сайте проекта софта уже нет.
❯ Установка карты
Установка тривиальна — карта вставляется в любой свободный PCI-слот и готова к использованию. Какие-либо джамперы на карте отсутствуют.
Вот как выглядит тестовый стенд:
❯ Настройка карты
В BIOS тестового стенда выставляем загрузку с LAN. После прохождения POST, управление передается карте «ЛанСил» и мы видим следующее окно.
После выбора режима установка по выбору, видим букву жесткого диска, тип файловой системы и объем жесткого диска.
Вот 3 режима работы карты:
Восстановление — прозрачный режим, при котором все исходные данные восстанавливаются после перезагрузки. Красота — включил, поэкспериментировал как захотел, перезагрузил компьютер и получай свеженастроенную операционную систему, будто и не было изменений.
Слежение — более гибкий режим, при котором пользователь в дальнейшем может принять решение: оставить внесенные изменения или откатиться к исходным настройкам. Такое многоступенчатое внесение изменений.
Прямой доступ — режим полной прозрачности карты. Работа проводится с жестким диском, будто карты и нет. Все изменения остаются после выбора этого режима и последующей загрузки.
Остальные пункты — «Дополнительно», «Другое», «О системе» можно увидеть на фото ниже.
Видим дополнительную функцию: бэкап BIOS, а также взведенную галочку напротив 32-битного расширенного доступа. В процессе экспериментов галочка была выставлена «по умолчанию», и в изменении эта настройка не нуждалась.
Пункт — «выбрать свою картинку», на мой взгляд, в рамках этой статьи в рассмотрении не нуждается.
Здесь контактная информация, говорящая сама за себя.
❯ Откат данных к исходной позиции
Суть эксперимента следующая: воспроизводим какие-либо действия, ведущие к искажению информации, и заставляем карту «ЛанСил» исправить ситуацию.
Информацию я хочу донести до вас, в виде наглядных роликов — посмотрите полный цикл восстановления.
1. Восстановление данных
2. Восстановление системных служб операционной системы
Механизмы отката данных работают, удобно же?
❯ Дамп ROM
БИС ROM — заклеенная фирменной наклейкой оказалась не чем иным, как «Winbond W27E257».
Традиционно считал и сохранил содержимое ROM на случай краха. Если кому-нибудь нужно, с радостью поделюсь, пишите.
Характеристики ROM:
Фрагмент дампа:
Любопытно, удалив из «кроватки» ROM, обнаружил под ней маленькую микросхему — своеобразную «пасхалку», обведена в кружочек.
При ближайшем рассмотрении оказалось, что это ATMEL 93C46 — EEPROM, перезаписываемая ПЗУ для хранения настроек, заданных через интерфейс начальной загрузки карты LanSeal.
❯ Выводы
Сайт проекта заморожен и не обновляется. Жаль, когда уходят в Лету хорошие начинания.
Разработанный механизм реально удобный, привыкаешь мгновенно, что проверено «на себе».
В статье не рассмотрена работа с RAID-массивом, интерфейсами SCSI, SATA и разнообразием поддерживаемых файловых систем, в силу того, что мне была интересна принципиальная сторона механизма восстановления данных, а всестороннее тестирование требовало бы слишком много времени. Эксперимент был рассчитан на пару выходных дней. Тестирование карты проводилось в пределах интерфейса IDE, на мой взгляд, как все же наиболее распространенного, в среднестатистических рабочих станциях, на момент выпуска LanSeal.
Часть информации, подчерпнута отсюда.
На мой взгляд, хорошее, живое описание механизмов работы аппаратной части, полудетективные размышления об истинных «корнях» карты, в общем любопытно.
Если у вас есть информация о современном аппаратном решении (особенно, если это отечественный, работающий механизм) прошу поделиться в комментариях, думаю многих бы это заинтересовало, вещь полезная.
Успешных экспериментов.
Спасибо за уделенное внимание.
Коробочка, которая поёт
Дополнительные фото в источнике материала и комментариях.
Прошлая статья с попыткой собрать что-то наподобие MIDI-модуля, судя по всему, вам понравилась, поэтому держите описание ещё одного модуля — на сей раз голосового синтезатора — с несколько более запутанной историей, более сложным чипом и менее вырвиглазной дыркой вокруг экрана :-)
❯ Та девушка, которая поёт
Начнём со сжатого экскурса в историю.
После того, как люди научились синтезировать произвольные звуки, инженеры всего мира постоянно предпринимали попытки сделать его похожим на человеческий голос. Обыкновенный TTS, вполне пригодный для чтения текстов, существовал ещё в середине прошлого века, однако же заставить его именно петь не удавалось.
Всё изменилось с началом исследовательского проекта в Университете имени Пумпеу Фабра в Испании, возглавленного Хидеки Кенмоти и профинансированного компанией Yamaha. Результаты этого исследования впоследствии вылились в коммерческую технологию под названием Vocaloid.
Первые вокалоиды звучали довольно примитивно. По сравнению со всеми прошлыми технологиями это был прорыв, но оглушительным успехом назвать их было сложно. Ровно до тех пор, пока компания Crypton Future Media в 2007 году, взяв за основу движок Vocaloid 2, не выпустила то, что впоследствии совершило фурор в концепции гострайтинга: Хацуне Мику.
Секретом успеха стал не только и не столько удачный голос, сколько то, что это по сути была «поп-звезда в коробке»: при покупке вы получали не только саму программу для синтеза голоса, но ещё и возможность использовать самого персонажа по Creative Commons CC-BY-NC.
Миловидный персонаж с новым для многих голосом лёг на благодатную почву активно развивавшегося тогда культурного сегмента японского интернета. Эпоху удачнее придумать было нельзя — активный бум User-Generated Media, параллельно с переползанием от Shockwave Flash к видеоконтенту на тогда ещё совсем молодом видеохостинге Nico-Nico Douga. Но главным плюсом было даже не это — ведь в отличие от настоящей, живой поп-звезды, Мику просто физически не могла отказаться спеть то, что вы ей там понаписали.
Это породило множество споров и дебатов, а также западающих в душу песен. Среди прочих отличился, например, deadballP — запаковывая в свои песни с лютейшим джазовым вайбом абсолютно неожиданные слова. Порой настолько неожиданные, что сам Nicovideo композитора неоднократно банил за «нарушение общественного порядка». Для примера, предлагаю читателям ознакомиться с его джазовой импровизацией с лейтмотивом «вот ты выпей молоко — сиськи будут о-го-го!» :-)
Бум user generated content подкрепился выходом игры Project DIVA на PSP, куда взяли самые популярные песни, разбавив 3D-графикой для видеоклипов, до кучи добавив возможность создавать свои клипы и карты из произвольных MP3-файлов.
Таким образом, разработчики получили не только дико популярную франшизу, но и неиссякаемый поток заведомо успешного готового контента для неё.
А популярность была на внутреннем рынке просто невообразимая! Первая версия игры побила все топы продаж в свой сезон, и разлеталась как горячие пирожки.
Вот, например, было подразделение SEGA AM2 — то самое, которое подарило нам такую классику, как Shenmue, Out Run, Virtua Fighter или Daytona USA. Его на тот момент возглавлял Макото Осаки — и даже ему не удалось получить копию игры по внутренним каналам, пришлось покупать в обычном магазине.
Впрочем, игра ему нужна была не для того, чтобы отдохнуть в свободное время, а ради того, чтобы внутри своей команды изобразить порт её на движок Virtua Fighter.
И вот когда порт был уже готов, и Осаки было уже пошёл к продюсеру Уцуми Хироши с идеей сделать аркадную версию Project DIVA — другой сотрудник AM2, Ясуси Ямасита, предложил: «А почему бы нам эти наработки не использовать для создания живого концерта?»
Идея менеджменту понравилась, за каких-то два месяца кранчей они подготовили революционный ивент — Miku Fes 2009. (Обо всей хронологии — как-нибудь в другой раз :-) Концерт собрал аншлаг, начало было положено — Мику и по сей день выступает с концертами чуть ли не каждые полгода, собирая огромные залы.
(Один из самых любимых концертных треков последних лет. До сих пор не верится, что мне выпала честь слушать его прямо из первого ряда!)
А писать для неё песни, в отличие от какой-нибудь Бритни Спирс и иже с ними, могла не только лишь конкретная команда шведов, а любой человек с мало-мальски развитым слухом и каким-никаким компьютером — прямо таки народное творчество во всей красе.
❯ А внутри у неё — неонка^W процессор!
Возможность создавать записи, конечно, весьма хороша, но ведь музыку зачастую принято исполнять живьём. В наше время Ямаха выпускает что-то наподобие клавитары на базе своей платформы от обычных цифровых клавиатур:
(к сожалению, на выставке разобрать и сфоткать процессор и разводку платы не разрешают :-))
Однако среди всего многообразия способов извлечения звуков из Мику и Ко. примерно 11 лет назад проскакивал такой интересный прототип, который и запал мне в душу:
Известно о нём было только то, что рабочие название технологии — eVOCALOID (Embedded Vocaloid). Впоследствии вышел пресс-релиз, в котором анонсировали микросхему с его поддержкой — YMW820-S.
Судя по даташиту и параметрам, мне думается, что это какая-то переработка старых чипов из серии Mobile Audio — из тех, что стояли в корейских телефонах с синтезом голоса для уведомлений.
Самым известным устройством на базе этого чипа был Pocket Miku — стилофон от Gakken из серии журналов «Otona no Kagaku».
[via]
Сколько-то лет назад я покупал такой на Yahoo! Auctions, чтобы переслать другу, и стоил он очень недорого. Тогда я ещё удивился, что оно умеет работать как USB-MIDI синтезатор.
Поэтому, когда в этом году полез во всю эту MIDI-тему, то подумал — MIDI-to-USB-host адаптеры штука обыденная, а стилофон стоит копейки, можно бы что-то и сделать! Но тут меня ждал облом — ценник на эти штуки за последние пару лет вырос примерно на порядок с лишним.
Однако вдумчивое чтение пресс-релиза навело на ещё один вектор — некий шилд для ардуины eVY1 Shield, выпускавшийся компанией AIDES.
Более того, он выпускался и в виде готового устройства eVY1 BOX, но и дизайн и цена (¥27,500 = примерно $250) оставляли желать лучшего.
Зарядник от макбука словил кризис среднего возраста и решил податься в музыку
Поэтому я ухватил один из каким-то чудом оставшихся шести «сырых» модулей на амазоне безо всякой обвязки и решил скрафтить свою коробочку. И вот через пару дней у меня в руках самая дорогая микросхема в моей жизни:
С обратной стороны видим уже знакомый по Pocket Miku процессор GPEL3101A и SPI-флешку — то есть в теории оно должно суметь запустить и голос от Pocket Miku!
Быстренько раскидываем на макетке:
Для минимального включения достаточно лишь пары разъёмов и 10кОм-резистора с VBus на USB_SENSE
И да, оно поёт! Правда тихо и шумно, ведь единственный близкий к линейному выход — «наушниковый», использующий ЦАП внутри процессора GPEL, который и дудок, и жнец, и вообще — трындец, в смысле сочетает в себе полный ящик переферии от флеш-контроллеров и прочих USB до генератора вторичных напряжений питания и ЦАП/АЦП :-)
❯ Но, как говорится, есть нюанс...
Поёт этот модуль голосом VY1, также известным как MIZKI — собственный голос от Ямахи. Что, в принципе, логично, ведь Мику для этого модуля не лицензировали. Но хотел-то я чиптюн именно с Мику!
Копание в различных слоях интернета приводит к домашней страничке некоего Hummtaro, который переделал программу-программатор от eVY1 в утилиту для сохранения и прошивки ПЗУ целиком (а я уже за прищепкой на алик бежать хотел...). Также он заботливо забыл удалить оттуда копию ПЗУ своего Pocket Miku :-)
До кучи у него же на канале есть видео, где он наоборот прошивает голос VY1 в Pocket Miku.
Поэтому качаем тулзы, дампим ПЗУ и смотрим, сходства и отличия.
Кажется, где-то тут и начинаются голосовые сэмплы:
Сразу в глаза бросается большой блок данных на #40000h, который, судя по всему, и есть войсбанк. О, ну значит всё так просто! Удаляем из дампа ПЗУ родной блок данных, вставляем таковой из Pocket Miku — впритык, но поместилось. Прошиваем!
И первой композицией, которой мы насладимся в исполнении аппаратной Мику, будет 4'33" Джона Кейджа!
Пытаясь исполнить эту композицию на пианино, мой брат сломал обе ноги и руку:
Всё потому что на выходе ноль. Зеро. Ни-че-го. Ни откликов на ноты, ни даже на SysEx, который должен показать версию прошивки.
Значит, пришло время доставать драконоголовую змею и разбираться, что же там в прошивке. Но вот беда — есть бинарный блоб, который ни по какому адресу грузить непонятно, ни какая у него структура в целом неясно. Всё, что известно о процессоре — это то, что внутри ARMv7-ядро.
Эксперимента ради грузим прошивку от Pocket Miku. Ожидаемо, не работает, но на одном из пинов модуля, отмеченном как «UNUSED», появляется сигнал, подозрительно напоминающий UART. Цепляемся туда консолькой и, о чудо, там логи!
Фраза ptr=20040000 как бы намекает нам, что наш блоб прошивки в адресном пространстве процессора попадает на адрес #20000000h, но как убедиться, что это не отдельный раздел, и исполняемый код находится в том же блоке адресов?
Просто находим в блобе текст ptr=%x,data=%x,r_data_size=%x… и дописываем к нему .%08x%08x%08x %)
Всё развалилось, но не до конца:
После строки логов видим ещё два 32-битных числа — первое является чем-то непонятным, а вот второе — #20003a84h — явно адрес того кода, который вызвал функцию логирования.
Как это работает? Очень просто: каждый следующий аргумент для формирования строки через printf берётся со стека, поэтому если мы возьмём оттуда больше, чем было заложено разработчиком — например, добавив ещё токенов форматирования — то напечатается то, что было на стеке дальше. В нашем случае там был и адрес возврата, который указывал на инструкцию, следующую за той, которая вызвала печать этой строки.
Грузим файл в гидру по адресу #20000000h, прыгаем на смещение #3a84h, жмём Disassemble — и всё взрывается, как попкорн в микроволновке.
Дальше идёт полторы недели медитации над листингом с постоянными попытками перетащить куски инициализации DSP из прошивки Pocket Miku в прошивку eVY1, на случай если просто-напросто не выделяется достаточно памяти перед заливкой войсбанка в него. Но всё тщетно.
В какой-то момент от безысходности я начинаю просто рандомно обрезать войсбанк Мику и прошивать его — и замечаю, что если обрезать его по размеру родного голоса, но сохранив последние 4 байта как в оригинале, то частично всё начинает работать. Ну, пока не попытаешься воспроизвести фонему, которая в прошивку не попала :-)
Постепенно увеличивая блок данных, бинарным поиском прихожу к тому, что всё ломается на превышении прошивкой размера в #1CFE00h байт. Не, ну если бы хотя бы #1D0000h, я бы подумал, что контроллеру флешки не выделяется окно достаточного размера, а так это выглядит как какой-то глупый баг.
Беру родное ПЗУ, добавляю по подозрительному адресу 16 байт мусора — не работает, хотя ту часть памяти мы вообще читать не должны, ведь родной войсбанк существенно короче!
И почти тут же натыкаюсь на странный кусок кода, которого в прошивке Pocket Miku не было. Судя по всему, он проверяет, есть ли по этому самому подозрительному адресу какие-то данные, и если есть — инициализирует USB и вешает систему.
С учётом, что у нас одно ядро и один поток — где-то тут всё и закончится
Обидно, могли бы хоть рядом пасхалочку оставить :-(
Патчим эту проверку и ещё пару похожих, заложенных по разным адресам в разных функциях — и ура, играет, работает!
❯ Собираем в MIDI-модуль
Во-первых, раз уж у нас теперь есть два голоса, почему бы не иметь возможность их переключать? Благо, это делается очень просто — так как линия Chip Select у флешки инвертированная (активна при лог. «0»), то достаточно лишь двух элементов ИЛИ и одного инвертера, чтобы получить схему, переключающую флешки по необходимости:
Сигнал ALT_ROM выбирает, используется основное или дополнительное ПЗУ, а остальные идут напрямую на шину самого модуля:
После переключения ПЗУ просто дёргаем RESET у модуля и он после перезагрузки начнёт петь другим голосом.
Во-вторых повесим на GPIO модуля светодиоды, раз уж они были на родном шилде. Правда не то в даташите ошибка, не то я криво читал — выходы GPIO там Active Low, поэтому в моём включении они постоянно горят и периодически гаснут, а не наоборот.
Так делать не надо, делать надо не так!
Добавляем операционник для того, чтоб привести звук хоть немного к линейному уровню, обыкновенную схему MIDI-входа как в прошлый раз (заменяя каждый логический буфер на пару инверторов, благо их у нас тут в достатке), и ардуину с экранчиком чтобы ловить SysEx'ы переключения ПЗУ и заодно отображать находящиеся в данный момент в ОЗУ фонемы.
Охапку дров, и плов готов!
Раскидываем на макетке, раунд 2:
Кажется, стоило наконец уже зарегистрироваться на JLC PCB...
Без аудиофильских конденсаторов звучать будет точно так же, но радости никакой не принесёт
В прошлый раз в корпусе осталось много свободного места, поэтому на сей раз я взял корпус на размер меньше. Конечно же, теперь его не хватило и всё пришлось сильно утрамбовывать! Также в этот раз взял вместо клавишного выключателя тумблер, так как с клавишным ощутимо проседает напряжение в зависимости от везения.
До кучи добавился USB-хаб, чтобы можно было прошивать оба чипа без разборки устройства
И вуаля, готово!
❯ Программирование музыки
Теперь нужно написать хотя бы один MIDI-файл, чтобы на этом всём слушать. Из всего обширного списка дополнительных команд нас интересуют только несколько:
F0 43 79 09 10 07 00 aa bb cc F7: отключение звука для определённых каналов:
Биты в позициях aa, bb, cc отключают воспроизведение части каналов
Например, паттерн 7E 7F 7F оставит только первый канал, что нам и нужно для использования модуля чисто для синтеза голоса без остальных MIDI-инструментов.
F0 43 79 09 01 01 00 F7: перезагружает модуль (например, после переключения ПЗУ).
F0 43 79 09 10 04 nn F7: выставляет режим работы GPIO:
nn = 00: выключить
nn = 01: ритм-визуализатор (вокал, бочка, средний, тарелки)
nn = 02: реакция на note-on/note-off в 1-4 каналах
nn = 03: визуализатор первого канала по нотам
nn = 04: ручная установка в виде битовой маски командой F0 43 79 09 03 00 xx F7
F0 43 79 09 00 50 10 dd dd ... F7: установить список фонем (слова песни):
Где dd: байты null-терминированной CSV-строки с фонемами в ASCII
Фонемы можно найти в документации по системе команд YMW820 на 34 странице
Их можно загружать и через NRPN-сообщения, но пока что обойдёмся без этого
В остальном по эффектам и прочему модуль по большому счёту совместим с системой команд Yamaha XG.
У первого MIDI-канала нельзя сменить инструмент — именно там и находится вокал. После задания фонем через SysEx-команду, каждое Note On событие в первом канале сдвигает указатель в буфере фонем на следующую, а после последней — перематывает его на начало. Проще говоря, одна нота — один слог, и так в цикле, пока не загрузишь новую строку в память :-)
Воспользуемся этим, чтобы отлавливать команды установки фонем ардуиной и отображать скроллер со «словами» на дисплее. До кучи добавим и пару своих команд:
F0 7B 7F F7: «жёсткий» сброс чипа, на случай если тот зависнет :-)
F0 7B 00 0r F7: выбор ПЗУ голоса:
r=0 — основной, r=1 — вторичный
F0 7B 01 F7: установить текущий голос по умолчанию.
F0 7B 02 tt dd dd... 00 [xx xx xx ... 00] F7: показать сообщение на экране:
tt — время в секундах
dd dd… 00 — нуль-терминированная верхняя строка экрана
xx xx… 00 — опциональная нуль-терминированная нижняя строка экрана
После пары часов мучений (и двух-трёх месяцев спровоцированной ими прокрастинации) выяснилось, что ноты, написанные в стиле караоке, уж совсем не совпадают с количеством фонем в песне, а выравнивать их, не видя, на каком месте строка ломается, практически невозможно.
Поэтому берём поллитру, вспоминаем MFC и патчим такой замечательный редактор, как Sekaiju, на отрисовку слогов под нотами:
Если разваливается, то хотя бы сразу видно, где
Дорисовываем остаток совы… В смысле, дописываем аранжировку в Sekaiju, и потом доводим эффектами в Yamaha XGWorks. Попутно я докинул ещё пару партий в формате AYYMIDI (из прошлой статьи), написав их в ProTracker.
Помимо прочего, нашлось ещё несколько подводных камней:
Как и обещал производитель, поёт NSX-1 ну очень медленно. Даже в такой медленной песне есть места, где приходилось делать рокировочки таймингов десятки раз, чтобы получить более-менее вменяемый саунд. Какой-нибудь Intense Voice уж точно по битрейту не пролезет, разве что интерливом в несколько чипов через управляемый микшер :-)
По ощущениям, использование NSX-1 для всех инструментов ещё сильнее замедляет воспроизведение голоса, поэтому лучше использовать его чисто для вокала, даром что по качеству звучания его даже Yamaha MU50 уделывает с лихвой. Сделать это можно последовательностью команд:
F0 43 79 09 10 07 00 7E 7F 7F F7: NSX Channel Mute, оставляем только 1 канал.
GM Volume Ch1 = 127: выставляем громкость вокала на максимум.
XG Volume Ch1 = 0: отключаем первый канал на MU50. За счёт того, что NSX игнорирует многие XG команды на первом канале, его громкость останется на 127.
Из-за того, что Vendor ID у NSX и у серии MU совпадает, использовать тот же MU50 как RS232-MIDI интерфейс не получилось — слишком сильно задерживаются SysEx'ы задания фонем и слова начинают съезжать относительно нот.
Воспроизведение отдельных нот напоминает скорее чтение текста, чем пение, поэтому Note Off каждой ноты вокала лучше ставить чуть дальше, чем Note On следующей за ней:
Это создаёт проблемы, когда несколько слогов идут одним тоном, что нужно учитывать при написании аранжировки.
Однако, эту особенность можно использовать для реализации удвоения (っ、напр. в демо-песне для этой статьи слово わらった [waratta] чаще всего записано путём двух «наложенных» нот [wa] [ra], затем Note Off второй, и только после этого «впритык» Note On для [ta].
Ни сам чип, ни генератор команд eVo Phonetic не поддерживают удвоение согласных, поэтому единственный другой способ — продублировать слог целиком, но обрезать ноту так, чтобы чип «не успел» дойти до гласной. Иногда это работает, но часто звучит странно и упирается в проблему скорости из п. 1.
Ударения как такового в японском языке нет, но лучше всё равно добавлять экспрессии и подрезать редуцирующиеся звуки через Velocity.
Для конвертации файлов под аппаратные плееры многие пользуются программной MIDI Formatter — оказалось, она перемешивает местами каналы, поэтому для композиций написанных под NSX-1 её использовать нельзя. Впрочем, конвертировать файлы в SMF0 можно через диалог «Сохранить как» в программе XGWorks.
❯ Демо!
Не буду погружать во все остальные тонкости написания MIDI-аранжировок, ведь статья получилась и так слишком длинной — лучше дам послушать итоговый результат :-)
Первым делом, конечно же, была запрограммирована классика жанра: malo — Hajimete no Oto (The First Sound)
❯ И второе!
Казалось бы, одним треком можно было и ограничиться — голос слышно, вроде как будто даже поёт, всё хорошо. Но хотелось всё-таки выжать из конструкции побольше музыкальности, а не просто мелодию в трёх дорожках… Поэтому статья была отложена больше чем на полгода, пока я допишу аранжировку той самой песни Shabon — как дань уважения всей этой культуре, на удивление тёплоламповому вопреки всем событиям 2020 году, да и в целом, потому что душа просила что-то поинтереснее :-)
Впрочем, чип оказался всё же слишком сложным, поэтому звучания прямо один к одному не вышло.
❯ А компот?
Увы, код в этот раз слишком простой и никаких особых лайфхаков не содержит, а схема паялась в основном по наитию из головы.
Если вдруг кто-то имеет такой чип и захочет повторить конструкцию — могу, конечно, причесать всё и расшарить, но пока что вот так ¯\_(ツ)_/¯
Соната Кодзи Игараси — как создавалась культовая Castlevania: Symphony of the Night
Главная «метроидвания» игровой индустрии.
❯ Ранние годы
Геймдизайнер Кодзи Игараси с юношеских лет мечтал делать видеоигры и работать в индустрии развлечений. Всё детство он провёл в залах аркадных автоматов, с удовольствием играл в Nintendo Famicom, а на досуге программировал простенький софт с помощью личного компьютера NEC PC-9801. Уже в старших классах он идеально знал язык BASIC и кодил на Ассемблере незатейливые игры.
Начало карьеры многих известных японских геймдизайнеров — это почти всегда истории про поиск себя, превозмогания и борьбу с начальством. Но карьера Кодзи Игараси лишена подобного драматизма. В игровую индустрию он попал благодаря лучшему другу, который на тот момент уже несколько лет работал в Konami. До этого Игараси не раз пытался устроиться на должность программиста и массово рассылал резюме в разные игровые компании, но ему всегда приходили вежливые отказы.
Кодзи Игараси
А в 1990 году он обратился к другу, и его с легкостью взяли в Konami на вакансию программиста. Игараси сразу же включили в команду разработки бизнес-симулятора с механиками серии «Fire Emblem». По неизвестным причинам игру отменили спустя 11 месяцев разработки. Никаких скриншотов и описаний не сохранилось.
Команду расформировали и Игараси перевели на менее амбициозные проекты. Например, он занимался программированием искусственного интеллекта противников в скролл-шутерах «Detana!!! TwinBee» и «Gradius II». До середины 1993-го года он трудился над небольшими играми и зачастую даже не удостаивался упоминания в титрах, но его ценили как исполнительного сотрудника с зачатками начинающего геймдизайнера.
Переломный момент наступил в середине 1993-го года, когда его позвали программировать движок симулятора свиданий «Tokimeki Memorial». Цель проекта — создать идеальную игру для мужской аудитории за 30, которая ностальгирует по школьным годам и до сих пор мечтает встречаться со старшеклассницей.
Tokimeki Memorial
В японской игровой индустрии тех лет были огромные проблемы с кадрами. До середины 90-х годов разработчики использовали псевдонимы в титрах, так как игровые компании боялись «хантинга» кадров со стороны конкурентов. В эти годы многие геймдизайнеры сами писали игровые движки, сценарий, работали над графикой и продумывали механики. Талантливых рук всегда не хватало, так что для «Tokimeki Memorial» Игараси занимался не только движком, но и сценарием.
Всего за несколько лет будущий геймдизайнер прошёл путь от обычного программиста до главного сценариста нашумевшего хита, каким в итоге и стал «Tokimeki Memorial». Только за один 1994-й год игра разошлась в количестве 600 тысяч копий — внушительная цифра для зарождающегося жанра симуляторов свиданий. Руководство осталось довольно продажами и предложило Игараси самостоятельно выбрать любой проект, над которым он хотел бы поработать.
Незадолго до этого Игараси познакомился и начал встречаться с девушкой из соседнего отдела Konami — в будущем она станет его женой. На тот момент она занималась программированием и графикой в «Castlevania: Rondo of Blood» для консоли PC Engine. Девушка также была подкована в построении игрового нарратива, поэтому всячески помогала мужу с диалогами и ивентами в симуляторе свиданий. По словам геймдизайнера, некоторые сюжетные повороты и характеры героинь для «Tokimeki Memorial» были вдохновлены встречами с любимой.
Во время длинных перерывов и обедов Игараси приходил к ней в отдел и тестировал «Rondo of Blood», за что удостоился отдельной благодарности в титрах игры. Стоит отметить, что он и ранее обожал франшизу «Castlevania», особенно «Simon’s Quest» и «Dracula’s Curse», но с появлением «Rondo of Blood» — безоговорочно в неё влюбился.
И когда начальство предложило ему выбор между сиквелом «Tokimeki Memorial» и проектом на его усмотрение, Игараси незамедлительно отказался от симулятора свиданий и попросил перевести его в другой отдел, чтобы поработать над будущей частью «Castlevania». С тройной силой он загорелся этим после того, как увидел «Bloodlines» — эксклюзивную часть серии для Sega Mega Drive.
❯ Два геймдизайнера
Игараси перевели в отдел к Тору Хагихаре — программисту и геймдизайнеру «Belmont’s Revenge» и «Castlevania: Rondo of Blood». По изначальному плану они должны были вместе заняться мягким перезапуском серии и выпустить новую игру в течении двух лет. В середине 1994-го года в Konami пришли девкиты будущей Sega 32X, и команда начала работать над «Castlevania» для многообещающего аддона Mega Drive.
Увы, «Castlevania» с кодовым подзаголовком «The Bloodletting» так и не увидела свет. В конце 1994-го года на рынке появились Sega Saturn и Sony PlayStation. На их фоне Sega 32X выглядела невероятно отсталой платформой, и по итогу оказалась ещё одним сомнительным «костылем» к Mega Drive. Из-за посредственных продаж производство аддона свернули уже через год, а часть запланированных игр отменили. В их число и попала «The Bloodletting», от которой остались лишь несколько спрайтов и упоминания в прессе. Игараси рассказывал, что игру отменили на стадии раннего прототипа — она не была закончена и на 20 процентов.
Три спрайта персонажей — всё, что осталось от Castlevania The Bloodletting:
Konami быстро обозначила свои приоритеты по консолям нового поколения. Для Sega Saturn компания будет создавать скролл-шутеры, квесты и визуальные новеллы, а для PlayStation — игры без каких-либо жанровых ограничений. Такое разделение произошло из-за сложной многоядерной архитектуры Saturn, под которую умели грамотно кодить игры, кажется, только в Sega (по крайней мере в первые полтора года жизненного цикла платформы). Поэтому разработка «Symphony of the Night» стартовала на платформе Sony, где была понятная архитектура и удобный инструментарий.
Разработку начали с командой в пять человек, но с годами она расширилась до 25-ти. Тору Хагихара занимался в SOTN геймдизайном, продюсированием и следил за графиком выполнения задач, а Кодзи Игараси был его ассистентом — он занимался программированием, писал сценарий и отвечал за организационные вопросы по части дизайна и звука. В наши дни все лавры приписывают Игараси, но Хагихара тоже внёс неоценимый вклад в разработку игровых механик и общего видения игры.
Тут важно подчеркнуть один момент: у серии «Castlevania» нет какого-то одного геймдизайнера. До прихода Игараси над играми трудились разные команды. Процесс работы над любой частью серии представлял собой коллективный мозговой штурм, во время которого каждый высказывал свои идеи, а потом их либо отсеивали, либо добавляли в игру. Поэтому многие классические Castlevania так сильно отличались друг от друга. Игараси вспоминал, что кардинальная смена геймдизайна не вызвала никаких возмущений или серьёзных споров в команде — все любили ролевые игры, все хотели уйти от устоявшейся формулы линейного 2D-экшена.
В начале разработки в дизайн-документе SOTN уже были прописаны все будущие ключевые концепции и правила проекта. Часть из них придумали ещё во время работы над отменённой «Bloodletting».
❯ Первое правило: никакого деления на уровни
Команда хотела создать одну большую карту, которую игрок мог спокойно и с интересом изучать на протяжении многих часов. Нелинейно исследовать замок, возвращаться на уже пройденные локации и с помощью новых способностей открывать ранее недоступные места и секреты. Например, проникать в высокие проёмы с помощью двойного прыжка или превращения в летучую мышь.
В каком-то смысле команда решила изобрести «велосипед» — уже давно вышла «Super Metroid», где эти механики были чётко прописаны. В многочисленных интервью Игараси заявлял, что «Super Metroid», конечно, имела большой вес в те годы, но почти никак не повлияла на команду. Во время разработки они в первую очередь вдохновлялись разными частями серии «The Legend of Zelda» и «Castlevania II: Simon’s Quest» — самой спорной игрой серии, которая во многом опередила своё время.
Именно «Simon’s Quest» c её бэктрекингом и RPG-элементами оказала ключевое влияние на разработку, а не «Super Metroid», как многие могли бы подумать. Так ли это на самом деле или нет — оставим на совести Игараси. Между SOTN и «Super Metroid» действительно много общего. Начиная от геймдизайна локаций и заканчивая такой банальной вещью, как интерфейс карты.
Термина «метроидвания» в 90-х естественно не существовало, а внутри Konami игру называли «2D-экшеном с уклоном в исследование». Упор на 2D был продиктован несколькими факторами. Во-первых, у команды почти не было опыта с трёхмерными играми. Во-вторых, для увеличения бюджета SOTN амбициозно питчили перед руководством Konami, назвав «новым словом в мире 2D-игр». Дополнительный бюджет удалось выбить. И так как в Konami только-только начали экспериментировать с полностью трёхмерными проектами, то игру решили делать по старинке.\
Тем не менее, SOTN создали на гибридном движке с поддержкой трёхмерных объектов, что тоже стало серьёзным испытанием. У PlayStation было мало оперативной памяти, которую нельзя расширить с помощью картриджей-аддонов, как на той же Sega Saturn — два мегабайта у PS1 против шести на Saturn. Из-за подобных ограничений почти все порты двухмерных аркадных игр выглядят на PS1 хуже, чем на той же Saturn. Например, Capcom вырезала много кадров из анимаций персонажей при портировании своих хитов на PS1.
Наглядное сравнение анимаций на PS1, Saturn и аркадном автомате
Полноценный спрайт со множеством анимаций весит больше, чем текстура, которую можно сжать или загрузить в память с разными ухищрениями. Так что спрайт в любой 2D-игре на PS1 — это текстура, наложенная на один плоский полигон. И большинство двухмерных игр на PS1 — технически не 2D, а 2.5D-проекты.
К тому же по другому не получилось бы одновременно совместить 3D-объекты и классическую плоскую графику. К середине разработки команда набралась опыта в моделировании 3D-объектов: в игру добавили несколько трёхмерных врагов и много объёмных деталей на задниках.
SOTN также была одной из первых игр, которая маскировала загрузки в длинных коридорах. Игра загружалась один раз при старте, а весь остальной контент подгружался и выгружался из памяти в специальных локациях. Сэкономили и на врагах, перенеся половину бестиария из «Rondo of Blood». Реюз спрайтов останется доброй традицией, которая сохранится вплоть до выхода «Castlevania: Order of Ecclesia» — последней метроидвании в серии.
Юмор команды: лого с диском есть во всех загрузочных коридорах
❯ Второе правило: игра должна быть доступной
Игараси и Хагихара организовали в Konami опрос, после которого выяснилось, что многие сотрудники из разных отделов компании не прошли ни одну часть «Castlevania». У кого-то не было навыков, а у кого-то просто не хватило терпения, чтобы зазубрить все уровни, многочисленные препятствия и паттерны боссов.
Например, Игараси ненавидел бесконечные пропасти в платформерах, и особенно — в последних уровнях Castlevania, где нужно было аккуратно пропрыгать к финальному боссу. Умереть не допрыгнув до ступеньки перед битвой с Дракулой — самое обидная и болезненная смерть в серии. Тут Игараси нашёл простое решение — он убрал все пропасти и любую возможность разбиться с большой высоты. Позже из игры убрали сильных врагов и ловушки, которые убивали Алукарда с одного удара.
Что касается доступности, то она заключалась в полноценной прокачке персонажа, инвентаре и свободном исследовании замка. Больше не нужно часами биться об беспощадных боссов и раз за разом перепроходить одни и те же уровни. Не получается пройти какое-то место? Прокачайся в предыдущих локациях, экипируй другое оружие/броню или отправься в новую часть замка. У SOTN очень гибкая кривая сложности, которая одновременно поощряет и наказывает игрока за самонадеянность. Если не хочется рисковать, то всегда можно заняться гриндом или пройти локацию не нахрапом, а в несколько заходов.
И так как в игру был добавлен инвентарь с выбором оружия, как тогда быть с Рихтером Бельмонтом? Семейство охотников на вампиров всегда использовало хлыст, и у игроков мог возникнуть закономерный вопрос: почему Бельмонт использует мечи и волшебные скипетры? Геймдизайнеры поступили радикально — главным героем новой игры должен стать Алукард, полукровка и сын Дракулы. Ранее он уже появлялся в качестве играбельного персонажа в «Castlevania III: Dracula’s Curse».
Однако про Рихтера Бельмонта не забыли и отвели ему важное место как в истории, так и в геймплее. В SOTN с ним можно сразиться, пройти за него пролог или полностью пройти кампанию в специальном режиме. В Konami хотели перевернуть устои серии, но при этом сохранить преемственность. Команда бережно отнеслась к наследию серии и не хотела расстраивать фанатов серии, которые привыкли к хлысту.
Пролог — это своеобразная передача эстафеты новой главе, новой «Castlevania». Здесь заканчиваются классические части и начинается эпоха «метроидваний». SOTN стартует с финального боя с Дракулой из «Rondo of Blood», который переполошил игроков во время презентации на выставке Tokyo Game Show в 1996-м году. Дело в том, что там представили весь играбельный пролог, но не начало игры за Алукарда. Игроки думали, что их ждут очередные приключения Рихтера, но в итоге получили игру про совсем другого персонажа. Похожий трюк провернул Хидео Кодзима в 2001 году, когда подменил Снейка на Рейдена в «Metal Gear Solid 2: Sons of Liberty».
Кстати, исход заглавного сражения влияет на статы Алукарда. Если вы быстро победили Дракулу (меньше, чем за минуту), не умерли, не получили повреждений и при этом сохранили второстепенное оружие, то начнёте игру с дополнительными 20 процентами жизни и маны. Простое, но гениальное решение, которое подталкивает игрока к идеальному результату. Правда, об этой механике узнают только единицы (в основном из гайдов), потому что сама игра никак не предупреждает о такой возможности.
❯ Третье правило: больше сюжета, эстетики и фансервиса
В середине 90-х японский фэндом Castlevania был скромным, но деятельным и заметным. Игараси знал о существовании манга-ярмарки «Комикет» и с интересом изучал творчество поклонников. Сюжет в прошлых частях серии был очень скромным и поверхностным, поэтому фанаты придумывали собственные истории на его основе. Конечно, иногда с уклоном в хентай, но куда же без этого?
Да, в «Rondo of Blood» уже были полноценные аниме-заставки с диалогами, но эти ролики длились от силы минут 10 на всю игру, к тому же их можно легко пропустить. Игараси решил подыграть фанатам и впервые в серии поставил нарратив на одну из ключевых позиций. В SOTN появилась много диалогов, персонажи обрели проработанные характеры, убедительные мотивы и личную драму. Это первая «Castlevania» с действительно интересной историей. И благодарить за это нужно «Дракулу» Копполы, откуда Игараси позаимствовал человечность вампира и его бесконечные душевные метания.
Ранние наброски сценария были очень мрачными. В первом черновике Игараси хотел, чтобы в SOTN раз и навсегда разделались с охотниками на вампиров — Алукард в конце должен был убить Рихтера, линия Бельмонтов бы прервалась, а все следующие игры рассказывали бы про приключения дампира. Эту идею поддержала только половина команды, так что от неё отказались.
Второй идеей был сиквел «Castlevania: Bloodlines» про Квинси Морриса и его борьбу с графиней Элизабет Бартли, но это идею тоже завернули, так как сценарий сильно напоминал похожую историю в «Bloodlines».
Геймдизайнер считал, что прописанный нарратив — это лишь половина успеха будущей SOTN. Для мягкого перезапуска серии нужно обновить всю эстетику, а также уделить огромное внимание дизайну и саундтреку. Он видел будущих персонажей более элегантными и современными — никакого аниме, перекаченных мачо и роковых женщин, как в ранних играх. Можно было бы взять за основу «Rondo of Blood», но дизайн персонажей в ней отдавал типичным аниме 80-х, что совсем не нравилось Игараси. Он начал искать подходящих дизайнеров и его выбор пал на Аями Кодзиму — художника-иллюстратора, которая до этого никогда не работала в игровой индустрии.
Про Кодзиму геймдизайнер узнал совершенно случайно, когда зашёл в книжный магазин в поисках вдохновения. На полке с романами (ранобэ) он увидел несколько книг с готическими обложками и тотчас воскликнул про себя: «Вот же оно!». С обложек на него смотрели ангельски красивые андрогинные мужчины. Персонажи Кодзимы почти всегда выглядят очень элегантно, так как нарисованы в стиле «бисёнен» (с яп. «прекрасный юноша»), но с заметным уклоном в готику и барокко. В работе над своими картинами художница использует тушь, акриловые краски, моделирующую пасту и мастихин.
Игараси связался с Кодзимой и она сразу же согласилась, так как хотела попробовать себя в чём-то новом. Ей выдали образцы дизайна персонажей из предыдущих игр и небольшой список пожеланий, но, в целом, каких-то жёстких правил не было. Она просто адаптировала уже известных героев под свой стиль и подарила им взрослый и современный облик. Например, если сравнить с «Rondo of Blood», то Мария из типичной анимешной лоли превратилась в изящную девушку из сёдзе-манги.
Так Кодзима стала главным дизайнером персонажей в серии «Castlevania» и проработала на этой должности до 2007 года.
С выбором композитора долго не думали — сложно было представить лучшего кандидата, чем Митиру Ямане. В SOTN она написала не только всю музыку, но и звуковые эффекты. Её работа над серией началась с саундтрека «Castlevania: Bloodlines», который она написала в чрезвычайно сжатые сроки и под сильным давлением со стороны команды. Но все окупилось — ей мастерски удалось имитировать симфоническую музыку и создать один из самых впечатляющих саундтреков для Sega Mega Drive.
В начале работы над SOTN ей вручили иллюстрации Кодзимы для вдохновения и небольшую методичку по локациям с пометками о том, где музыка должна звучать жёстче, а где элегантнее. Но как и в случае с Кодзимой, рабочий процесс Ямане особо не контролировали, и позволили писать саундтрек как вздумается. Ей даже удалось привлечь младшую сестру, которая подарила свой голос композициям с вкраплениями хора и оперы. Молодой и ещё неизвестный Акира Ямаока помогал Ямане с программированием ударных партий в треках «Dracula's Castle» и «The Tragic Prince».
Саундтрек для SOTN шокирует своей многожанровостью. На одной локации играет джаз, на второй звучит бодрый готический рок, а на третьей — классическая оркестровая музыка, комбинированная с мрачными эмбиентом. Всё это идеально сочетается и не выбивается из общего настроя игры.
Кодзи Игараси, Митиру Ямане и Аями Кодзима:
❯ Финальный рывок
В 1996 году Тору Хагихара покинул команду из-за неожиданного повышения до начальника отдела разработки. Игараси полностью перешли все его полномочия. Если оценивать вклад каждого геймдизайнера, то Хагихара занимался разработкой игры до сражения с Рихтером, а Игараси тем, что было после него. Убийство Рихтера — это плохая концовка, которая была задумана ещё в дизайн-документе SOTN. Битва буквально делит игру на две половины, и если не выполнить ряд действий в нужной последовательности, то игрок пропустит ещё шесть часов интересного контента.
И об этом можно было легко догадаться без гайда. Во-первых, в начале у игрока отнимают всю крутую экипировку с намёком на то, что позже её можно вернуть. Но до плохой концовки игрок находит только подделки, которые ухудшают статы Алукарда. Где же настоящее оружие и броня? Может быть я что-то пропустил? Во-вторых, подсказки есть в описаниях к двум необычным кольцам. Оба кольца нужно экипировать в часовой башне, тем самым открыв проход в секретное помещение, где игрок обнаружит специальные волшебные очки. С помощью этих очков он может спасти Рихтера от одержимости и сюжет продолжится дальше.
Впрочем, позже Konami провела несколько опросов, по результатам которых выяснилось, что часть игроков так и не продвинулись дальше битвы с Рихтером. Они закончили прохождение на плохой концовке и больше никогда не возвращались к игре.
Игараси допускал такой исход событий, но по-другому было нельзя. Он стремился создать «Castlevania», которой можно наслаждаться неделями. Предыдущие части серии всплывали на вторичном рынке или возвращались в игровые прокаты спустя несколько дней после покупки. Новички бросали игры из-за высокой сложности, а хардкорные геймеры проходили их за считанные часы.
Исключительно по этой причине геймдизайнеры добавили несколько концовок и большую карту, которую можно исследовать около 12-14 часов. Философия разработчиков: игрок заплатил 5800 йен (4000 рублей с учётом инфляции) и должен получить нечто большее, чем два часа линейного геймплея. Эпоха подобных игр осталась в прошлом, нужно стремиться к большему.
Но какой должна быть вторая половина игры? Игараси рассказывал, что кто-то из команды предложил простое, но эффективное решение: «А давайте перевернём замок и заставим проходить его по новой?». Идею тотчас с энтузиазмом одобрили, что помогло сэкономить на ассетах и не выйти за рамки бюджета. После честной победы над Рихтером игрок попадёт в альтернативный перевернутый замок Дракулы, где его ждут всё те же локации, но с другими противниками и боссами.
В последний год разработки Игараси решил добавить в SOТN различные визуальные и игровые сценки. Они не несут никакой практической пользы, но отлично работают на погружение. Образцом такого подхода стала локация «Внешняя стена» под завязку набитая разными мелочами. Например, на ней можно наткнуться на подзорную трубу, посмотреть необязательную катсцену с лодочником, и понаблюдать за птицей, которая вьёт гнездо по мере прохождения игры.
Есть и трогательный момент с рыцарем и совой — рыцарь сильно расстроится, если игрок убьёт его пернатого питомца. Это дань уважения «Super Castlevania IV», в которой охотник будет страдать, если убить его пса. Игараси обожал подобные мелочи и раскидал их по двум замкам. Начиная с юмористической секретной катсцены у библиотекаря и заканчивая феей, которая убаюкает Алукарда своей колыбельной, если он решит отдохнуть на стуле.
К сожалению, не все идеи удалось воплотить в жизнь. На грани удаления был важный флэшбек в прошлое матери Алукарда. Всю катсцену с ней и босса-суккуба успели доделать буквально за пару дней до сдачи мастер-диска. Чудом удалось добавить и некоторых фамильяров, хотя Игараси позже признавал, что их интеллект так толком и не отполировали, а часть из них просто бесполезны. Не успели сделать дополнительную концовку, в которой Рихтер Бельмонт передавал свой кнут семейству Моррис. Тем самым SOTN стала бы полноценным приквелом «Castlevania: Bloodlines».
Полностью продумали, но не успели добавить механику с жильём Алукарда. Игараси придумал специальную комнату, которую можно декорировать найденными предметами. Логика была простая: если Алукард когда-то жил с отцом, то в замке должна быть его комната. Помимо декорирования в этой комнате можно было подлечиться и разгрузить инвентарь от ненужных предметов.
Пожалуй, самое забавное из нереализованного контента — это недоделанное меню. По нажатию кнопки Start игрок попадает в меню, где можно экипировать персонажа, изменить фамильяров, активировать способности, а также зайти в настройки игры. И да, это не финальный вариант меню. В релиз ушла заглушка от разработчиков — простоватое одноцветное меню с белым текстом. Изначально команда хотела сделать что-то красивое и вычурное, но у них просто не хватило на это времени.
То же самое касается нескольких CGI-роликов, которые делали в спешке и так не смогли нормально отполировать. Модель замка Дракулы в этих роликах не имеет текстур, так что в релиз ушла невзрачная серая коробка. Игараси был страшно этим недоволен, но уже ничего не мог поделать — времени совсем не осталось.
Английскую локализацию делали в спешке. На озвучку взяли первых попавшихся свободных актёров, а перевод текста серьёзно отошёл от оригинала. Переводчик Джереми Блаустейн (ранее занимался «Snatcher», позже «Metal Gear Solid») переписал и адаптировал большую часть сценария, так как считал оригинальный текст суховатым. Фактически от старых диалогов остался только смысл, да и то не везде. В переводе Блаустейна появилась философская отсебятина и почти «шекспировские» фразы, в числе которых мемная фраза «What is a man? A miserable little pile of secrets». Блаустейн позаимствовал её из мемуаров французского писателя Андре Мальро.
Диалоги записывали одним дублем, поэтому качество озвучки оставляло желать лучшего. Растерянные актёры переигрывают и в гипертрофированной пафосной манере зачитывают все диалоги. В общем, получилось настолько плохо, что даже хорошо. Со временем оригинальный английский даб обрёл культовый статус, и стал таким же мемом, как озвучка первого «Resident Evil».
«Castlevania: Symphony of the Night» вышла весной 1997-го года в Японии и осенью того же года в Европе и США. Японская и американская пресса положительно оценила SOTN и поставила ей высокие оценки. Однако британские критики будто бы сговорились и массово раскритиковали игру за устаревший геймплей и сомнительную графику. Сдержанные рецензии привели к тому, что британские ритейлеры продавали SOTN со скидкой ещё до появления игры в магазинах.
В европейском отделении Konami были разочарованы странными рецензиями и действиями ритейлеров. В итоге в продажу попало всего 15 тысяч копий игры, а дополнительный европейский тираж так и не был запущен в печать. Общие продажи SOTN долгое время оставляли желать лучшего как в Японии, так и в США, но они не были настолько катастрофически плохими, как в Европе.
Американская и европейская обложка диска
Частично в этом нужно винить саму Konami, которая не захотела вкладываться в рекламу. Продажи SOTN спасла не реклама, а сарафан — регулярные упоминания от журналистов в прессе и восторги игроков в зарождающимся западном интернете. SOTN ждал счастливый конец: за год с момента релиза она разошлась в количестве 720 тысяч копий, а к 1999-му году продажи достигли отметки в 1,3 миллиона копий благодаря дополнительным тиражам в рамках бюджетных изданий «Greatest Hits».
Игрой заинтересовалась казуальная аудитория, которая слышала о серии «Castlevania» или пробовала в неё играть, но их останавливала высокая сложность. Поэтому для многих западных игроков SOTN стала первой частью серии.
В Японии игра обрела неожиданную популярность среди женщин. Их привлекла внешность персонажей, история и доступная сложность. В целом, именно SOTN запустила тренд на любительскую яойную мангу и сенён-ай арты по «Castlevania». Девушки рисовали эротические истории про отношения Рихтера и Алукарда, а потом продавали их на ярмарках додзинси.
❯ Наследие
Но история «Symphony of the Night» на этом не закончилась. В конце 1997-го года Konami решила портировать игру на Sega Saturn. Эту задачу поручили только что образованной студии Konami в городе Нагоя, сотрудники которой почти не имели опыта в портировании игр с PlayStation на мудрёную архитектуру Saturn.
На первый взгляд всё было отлично: в эту версию добавили режим прохождения кампании за Марию, две огромные локации, новую музыку (ремиксы из старых частей «Castlevania»), артефакты и противников. Но, увы, нововведения не спасли версию для Saturn от провальных продаж и сдержанных отзывов прессы.
В 2021 году версию для Sega Saturn доработали фанаты. Они убрали все баги, вернули недостающие эффекты и улучшили производительность. Так что сегодня эту версию можно назвать вполне играбельной, но с одним нюансом — она полностью на японском. SOTN для Saturn не выходила на западном рынке, и до сих пор не имеет фанатского перевода. Её можно рекомендовать тем, кто наизусть выучил оригинал и хочет посмотреть на дополнительный контент. Остальные могут проходить мимо.
Настоящая «режиссёрская версия» SOTN появилась на свет в 2007 году, в рамках сборника «Dracula x Chronicles» на PSP. Позже она вошла в компиляцию «Castlevania Requiem» для PlayStation 4 и была портирована на мобильные телефоны. Для переиздания 2007 года в Konami с нуля перевели весь текст, убрали отсебятину Блаустейна (больше никаких мемов), пригласили профессиональных актёров озвучки и оставили возможность играть с английскими субтитрами и японским дабом 1997 года. Помимо этого, в издание вернули удалённого фамильяра, играбельную Марию Ренард с Sega Saturn и мелкие пасхалки, которые были только в японской версии на оригинальной PlayStation.
Что касается Игараси, то после успеха SOTN его назначили креативным директором, сценаристом и продюсером серии. В течении последующих 12 лет он регулярно пересобирал и улучшал свою «метроидванию» на разных платформах. На GBA вышли амбициозные «Harmony of Dissonance» и «Aria of Sorrow», а на PS2 трёхмерные и сильно недооцененные «метроидвании» «Lament of Innocence» и «Curse of Darkness».
Их незаслуженно раскритиковали за посредственную графику и спорный левел-дизайн, но геймплей в них был немного глубже и интереснее, чем в «Dawn of Sorrow», «Portrait of Ruin» и «Order of Ecclesia», которые позже вышли для Nintendo DS. Игараси действительно пытался сделать что-то новое на PS2, а не пересобрать пускай и качественную, но всё же очередную «конвейерную» итерацию SOTN для портатива.
В 2014 году Кодзи Игараси покинул Konami, так как не хотел заниматься мобильными играми и проектами для социальных сетей. Спустя год он запустил краудфандинг-кампанию на разработку «Bloostained: Ritual of the Night» — духовной наследницы «Castlevania: Symphony of the Night». Впрочем, это уже совсем другая история.
Оригинальная SOTN сейчас может показаться слишком лёгкой и короткой «метроидванией» — особенно на фоне популярных «Hollow Knight», «Blasphemous» и замечательной «Bloodstained» от того же Игараси. Но именно SOTN сформировала и популяризировала жанр в том виде, в которым мы знаем его сегодня. Это одна из самых важных игр в истории индустрии и просто отличная «метроидвания», которую нужно пройти каждому поклоннику жанра.
А ещё это одна из моих любимых игр вообще. Каждый раз я запускаю её и погружаюсь с головой, каждый раз открываю что-то новое или устраиваю себе очередные челленджи — стараюсь не сильно качаться или прохожу игру без читерских предметов. За последние 14 лет я прошёл её около десяти раз.
Star Wars: Obi-Wan — история провального эксклюзива для оригинальной Xbox
За 40 лет во франшизе «Звёздных войн» вышло более ста игр. Было всё: хиты, средние проекты, откровенно провальные и просто десятки казуальных забав (шахматы, пинбол, монополия, мобильные игры). Но среди крупных и многообещающих проектов одна игра стоит особняком — это Star Wars: Obi-Wan, эксклюзив для оригинального Xbox.
Этот потенциальный хит про становление великого джедая вышел в конце 2001 года, получил уйму разгромных обзоров и был забыт, кажется, навсегда. Фактически это единственная игра по «Звёздным войнам» из шестого поколения консолей, которая никогда не переиздавалась и не имеет обратной совместимости даже с Xbox 360. Obi-Wan навсегда остался заложником одной платформы. Ни старая LucasArts, ни сегодняшняя LucasFilm никогда о ней не вспоминали.
В общем, разбираем историю провала игры, и пытаемся понять, что же с ней пошло не так.
❯ Наследник Jedi Knight
После выхода «Скрытой угрозы» LucasFilm запланировала сразу несколько проектов для Расширенной вселенной, которые должны были рассказать о молодости великого мастера Кеноби. Если сейчас смотреть на эти планы в ретроспективе, то в старой РВ про юность Оби-Вана не выпустили ничего толкового. Разве что серию романов «Ученик Джедая», которая хоть и получила хорошие оценки от критиков, но всё равно осталась в рамках чтива для самых юных поклонников «Звёздных войн» (от 8 до 12 лет).
Концепт-арты игры
Главным проектом на эту тему должна была стать игра под черновым названием Episode I: Obi-Wan, которую анонсировали за три дня до мировой премьеры «Скрытой угрозы». Её питчили как духовного наследника Star Wars Jedi Knight: Dark Forces II и эксклюзив для персональных компьютеров с «удивительным управлением» световым мечом с помощью мышки. В разработке активное участие принимали дизайнеры «Скрытой угрозы» и сам Джордж Лукас. Всё это — чтобы точно воспроизвести планеты и детали локаций из фильма.
13 мая 1999 года на закрытой пресс-конференции показали геймплей прототипа Obi-Wan и нарезку motion capture с хореографией боев. Неизвестно, что за игровой процесс увидели журналисты за закрытыми дверьми, но в 2020 году в сети появилась запись геймплея бета-версии. Сегодня это самые ранние кадры из игры, которые можно найти в интернете.
Ранняя бета Obi-Wan
Дальнейшая история разработки покрыта тайнами и вызывает уйму вопросов. В ноябре 2000 года разработка Star Wars: Obi-Wan была отменена по указу самого Джорджа Лукаса из-за «неудовлетворительной производительности» на персональных компьютерах.
На сайте TheForce.net появилась следующая цитата LucasArts:
Из-за технических ограничений и ввиду новых стандартов качества в компании проект Obi-Wan невозможно реализовать в задуманных масштабах.
Как было на самом деле — неизвестно. Удивительно, но якобы «отменённый» Obi-Wan внезапно воскрес в мае 2001 года, теперь уже как временный эксклюзив консоли Xbox, которую Microsoft представила публике в январе того же года.
Игра должна была выйти на старте платформы, 19 декабря 2001 года. Пресса сразу начала спекулировать и обвинять LucasArts в том, что Microsoft якобы выкупила эксклюзивность игры для своей консоли, поэтому релиз на ПК отменили. Эта версия прижилась в сети, но подтверждения так и не получила.
Официальные скриншоты Obi-Wan
Но есть ещё одна версия, которую журналисты и современные игровые историки почему-то упускают из виду. После релиза Obi-Wan стало очевидно, что LucasArts хотела хоть что-то выпустить на релизе многообещающей консоли Microsoft. Других проектов к запуску Xbox у LucasArts либо не было, либо они находились на совсем ранних стадиях разработки. К тому же в кинотеатрах вот-вот должна была выйти «Атака клонов». Так что за шесть месяцев сырой бета-билд игры кое-как «причесали» и отправили на прилавки.
Такие темпы разработки привели к жутким кранчам. О них в своём твиттере рассказывал звукорежиссёр Дэвид Коллинс. По его словам, команда работала над игрой почти круглосуточно — ночами и даже по выходным. Такой авральный темп без нормальных перерывов продолжался месяцами. Главная цель — довести Obi-Wan до играбельного и вменяемого состояния. Остальное уже было второстепенно.
Единственный «выходной» команде дали 11 сентября 2001 года: всех распустили по домам, все равно никто не мог работать из-за трагедии в Нью-Йорке.
Официальные скриншоты Obi-Wan
И вот наступил декабрь 2001 года. Релиз Obi-Wan обернулся полнейшей катастрофой для LucasArts. Отзывы прессы и игроков были либо крайне негативными, либо смешанными. Средний балл составил в районе пяти из десяти. Критики в пух и прах разнесли почти каждый аспект игры, а итоговые продажи не достигли и миллиона копий за полгода (по данным VGChartz всего было продано около 700 тысяч копий). В итоге компания отменила все планы по развитию многопользовательского режима, портированию на GameCube и разработке одноименной игры на Game Boy Advance.
LucasArts постаралась забыть этот провал. Тем не менее, он ощутимо повлиял на всю команду. Руководил проектом Дэн Коннорс. Obi-Wan стал первой игрой, над которой он трудился в качестве геймдизайнера, — и с неё же начались разногласия между Коннорсом и руководством студии. В LucasArts начал зреть раскол.
Удивительная солидарность игроков и прессы на агрегаторе Metacritic
Коннорс и его команда впоследствии переключились на Sam & Max Freelance Police, которую тоже внезапно отменили в 2004 году из-за «экономических соображений и реалий современного игрового рынка». Провал Obi-Wan и отмена Freelance Police стали последней каплей — Коннорс и часть недовольных сотрудников LucasArts (больше половины из них трудились над Obi-Wan) покинули компанию и открыли студию Telltale Games, где начали работать в более комфортных и свободных условиях.
В будущем Telltale Games получится договориться с LucasArts и даже совместно поработать над Sam & Max Save the World и Tales of Monkey Island, но это уже совсем другая история.
❯ Косорукий джедай
Главный вопрос: Obi-Wan — это действительно провал или недооценённая и зазря раскритикованная классика? Безоговорочно первое.
Если честно, мне несколько жаль критиковать этот проект, потому что его вообще сложно назвать доделанной игрой. Это ранняя бета, прототип для питча будущим инвесторам, но никак не законченный продукт. Почти каждый элемент в игре не отшлифован или не работает. Критиковать Obi-Wan — это всё равно что писать рецензию на слитые билды S.T.A.L.K.E.R и Half-Life 2.
В Obi-Wan нет вменяемого сюжета. Игра придерживается одной структуры: игрока отправляют на задание, потом на тренировочный бой с джедаем из Совета, потом снова на задание. Так повторяется до последнего уровня и боя с Дартом Молом. Первая половина истории рассказывает о том, как Оби-Ван стал джедаем после победы над кланом контрабандистов, а вторая — вольный и сокращённый пересказ «Скрытой угрозы». Корусант, Татуин, Набу, корабль сепаратистов и бандитские притоны — вот и все локации.
В Obi-Wan нет пререндеренных катсцен, а история подаётся текстом в брифингах или в редких видеороликах на движке. В этих катсценах дёрганные угловатые болванчики (многие совсем не похожи на актёров из фильмов) пытаются вести диалоги без лицевой анимации, кивать головой и криво-косо передвигаться. На это было больно смотреть даже в конце 2001 года — а сегодня и подавно.
Озвучивают персонажей сторонние актёры, а на адекватную постановку катсцен явно не хватило времени. Энакин Скайуокер появляется в игре всего на пару секунд перед финальными титрами, а Палпатина совсем нет в истории. Как такое вообще допустили? Игроки, которые не смотрели «Скрытую угрозу», просто ничего не поймут из этой каши. Кто такой Джа-Джа Бинкс? Какие цели у сепаратистов? Откуда взялся Дарт Мол? Столько вопросов, так мало ответов.
Геймплейно Obi-Wan действительно напоминает первые части Jedi Knight, только тут практически нет огнестрельного оружия. Лишь под конец игры внезапно появляется снайперская винтовка и гранаты.
Всё управление световым мечом отвели на правый стик. Если отклонить его вверх, то персонаж ударит мечом в соответствующем направлении, — а если отвести стик назад, то Оби-Ван будет блокировать вражеские удары и отбивать выстрелы из бластеров. Удобно, но поначалу непривычно.
Управление световым мечом на стике — это замечательная идея, но её испортила неудачная боевая система и интеллект противников. Да, на первых порах очень весело шинковать дроидов и бандитов, но удовольствие быстро рушат непослушная камера, «танковое» управление персонажем, сломанный баланс и невыразительные битвы на мечах.
Никакого изящества, никакой тактики, — чистый рандом. Просто подбегаете к противнику и бездумно бьёте его до победного конца. С боссами другая тактика: ткнули один раз, ушли в блок, кувыркнулись, снова ткнули, — победа.
Базуки, эскорт-миссии, отсутствие нормального управления камерой и ограниченное количество жизней — четыре ваших главных врага на протяжении всей игры. Противники с базуками ваншотят игрока и буквально стреляют себе под ноги, если подойти к ним вплотную.
Эскорт-миссии неимоверно раздражают, потому что их прохождение слишком зависит от случайности. Например, в миссии по спасению Амидалы важно не то, как быстро вы победите всех врагов, а то, сколько выстрелов выдержит королева. По непонятным причинам Амидала может умереть как от одного выстрела, так и от четырёх.
В целом, достаточно пройти второй уровень, чтобы понять всю «сломанность» геймдизайна Obi-Wan. Совет джедаев дал вам сложное задание: проникнуть в логово контрабандистов, не поднять тревогу и найти захваченного информатора. Кажется, что миссия подразумевает стелс-прохождение.
Увы, совсем нет. Стоит наткнуться на врага, сразу запускается скрипт, по которому обычный протокольный дроид идёт к пульту с кнопкой тревоги. Игроку нужно зарезать медленно ковыляющего дроида до того, как тот доберётся до цели. Казус в том, что вокруг этого пульта постоянно снуют бандиты, но на кнопку может нажать только дроид. Где логика?
В Obi-Wan нет выбора сложности. На каждый уровень игроку дают всего четыре жизни и горстку чекпоинтов. Умерли один раз — вас откинули на 10 минут назад, умерли все четыре раза — начинайте уровень с самого начала. Это 30, а то и 40 минут монотонной пробежки по локациям.
Некоторые уровни я проходил методом проб и ошибок, а где-то буквально заучивал местоположение врагов, как в какой-нибудь части Souls-серии. Из-за вездесущего рандома и дисбаланса в получаемом уроне вы можете как пролететь игру за четыре часа, так и застрять в ней на все 10.
Конечно, есть Сила. С помощью неё Кеноби может выше прыгать, отталкивать противников, отнимать оружие, поднимать предметы, усиливать удары мечом и бросать его вперёд. Чаще всего вы будете усиливать удары и бросать меч, потому что другие способности вам толком не пригодятся. Проще и быстрее зарезать противника, чем изгаляться с бросками и отнимать бластеры.
Отдельно удивляет возможность замедлять время. Это топорная и бесполезная функция, которая не помогает, а только мешает играть. Её явно добавили «для галочки» на волне популярности «Матрицы».
Визуально игра выглядит крайне неравномерно. Корусант первые десять минут радует своими пейзажами и масштабами, но при этом он совершенно безжизненный и пустой. Закрытые локации иногда удивляют правильным затенением, бэмп-меппингом и эффектами, — но стоит выйти на открытое пространство, как взору откроется левел-дизайн уровня PS1 в графической обёртке Nintendo 64.
То же касается моделей с размытыми лицами и угловатыми формами. Такая картинка для Xbox Original — полный позор. Просто напомню, что за две недели до выхода Obi-Wan в магазинах появились красивые и технологичные Halo, Project Gotham Racing, и Dead or Alive 3.
Пинать Obi-Wan можно до бесконечности. Из позитивных моментов стоит отметить только сносное управление мечом, красивые задники Корусанта, и режим Battle Royale, который открывается после прохождения игры. В этом режиме совет Джедаев обезумел и зачем-то начал друг дружку резать — кривое, но весьма завораживающее зрелище.
Ещё можно вспомнить неканоничную миссию на Татуине, где Оби-Вану нужно устроить тотальный геноцид племени таскенских рейдеров, чтобы спасти похищенную Амидалу. Это бредовый уровень, но он здорово веселит своей нелепой постановкой и общей задумкой.
Напоследок хотелось бы вспомнить о том, как Star Wars: Obi-Wan встретили в России. Xbox тогда только появился в стране и стоил крайне дорого, так что игроки новинку не заметили. Пресса игру практически проигнорировала. Единственный обзор появился в «Стране Игр», — в мартовском номере за 2002 год. Средний редакционный бал Obi-Wan составил всего 3.7 балла из 10.
Мнения коллектива «Страны Игр»:
Валерий Корнеев: «Антиджедайская диверсия. Хорошие задумки были намертво погребены под завалами недоделок и халтуры. Оби-Ван управляется жутко расхлябанно — словно представительский «членовоз», он неуклюже вписывается в повороты, имеет неприлично длинный тормозной путь и застревает в узких коридорах. Игровой трэш в чистом виде».
Оценка: 4 из 10
Сергей Амирджанов: «LucasArts, перенеся свой мегапроект на Xbox, сотворила благородное дело. Она избавила владельцев PC от ночных кошмаров».
Оценка: 3 из 10
Дмитрий Эстрин: «Одна из тех игр на Xbox, которую не стоит покупать ни при каких обстоятельствах».
Оценка: 4 из 10
Юрий Поморцев: «Obi-Wan на Xbox примитивен, топорно срублен и на редкость однообразен. Провал по всем пунктам».
Оценка: 4 из 10
Проблема Obi-Wan даже не в том, что это посредственная игра, а в том, что проект был дважды похоронен ещё до релиза. Сперва самой LucasArts с отменой первой версии игры на ПК, а потом и с тонной анонсов других игр во франшизе. Спустя три месяца, в марте 2002 года, в магазинах появится Jedi Knight II: Jedi Outcast от студии Raven, в котором похожие механики были доведены до ума и отлично работали. На фоне Jedi Outcast проект LucasArts выглядел каким-то древним ископаемым.
В следующие четыре с половиной года на Xbox Original вышло аж 14 игр во вселенной «Звёздных воин». Релизы были настолько частыми, что среди них успел затеряться как никудышный Obi-Wan, так и хорошие игры. Например, расширенное издание Star Wars: Starfighter и адаптация «Атаки клонов» от Pandemic Studios — предшественник будущего Battlefront.
Что касается сольника про Кеноби, то в историю он навсегда вошёл как неудачный эксперимент, жертва спешки и огромных амбиций.
Перенесено и опубликовано в блоге Timeweb Cloud с разрешения автора, Семёна Костина.
Больше интересных статей в нашем блоге на Хабре.
Постройка двигателя мотосерфа | или 5 стадий принятия неизбежного
Исходные данные
Не каждая инженерная разработка имеет экономическую целесообразность.
Приведенный ниже пример — полностью подтверждает это утверждение.
1. Отрицание (ну не может это стоить так дорого).
В 2017 году мне на глаза попался двигатель мотосерфа (JetSurf).
Узнав его стоимость в 4000 евро я немного опешил и для себя решил, что таких денег он не стоит и я точно смогу сделать дешевле (о как же я ошибался).
Благо, образец для изучения у меня был. Но это не отменяло того факта, что из всех запчастей, купить можно было только карбюратор, а все остальное надо было либо изобретать самому, либо искать максимально похожие аналоги.
Коленвал, цилиндр и поршень удалось подобрать от ямахи аэрокс, картер пришлось проектировать самим, т.к. купить подобный было нереально.
Первая попытка отлить заготовку, обернулась провалом (стенка не пролилась).
Отлитая половинка картера с непролитой стенкой (в мусор)
На второй итерации была несколько доработана модель и картер ушел на фрезеровку, т.к еще раз заморачиваться с литейкой желания не было.
Стоимость фрезеровки составила 45 000 руб, при учете максимального упрощения модели. Из-за чего картер получился брутальным и угловатым. Почему-то в тот момент цена изготовления меня совершенно не смутила, а зря.
Фрезерованный картер
Коленвал мотора тоже пришлось дорабатывать, т.к. не получилось найти подходящую обгонную муфту для привода стартера.
Потратив, еще одну стоимость коленвала на его доработку — начали собирать мотор.
На этапе тестовой сборки стало понятно, что цилиндр стоит низко и надо поставить еще и дистанционный фланец толщиной 7 мм. Обильно промазав этот металлический бутерброд красным герметиком, мы были готовы к первому запуску.
Запуск проводили на своей электрике, собранной на основе китайского зажигания, и как это не странно, мотор завелся.
«Двигатель» в сборе
Чувствуя себя победителями по жизни, и прибывая в полной уверенности, что дальше проблемы возникнут только с тратой денег от будущих продаж, мы стали упаковывать мотор в корпус доски.
Прикидка компонентов на нижней половине корпуса
Примерно через 3 недели доска вышла на воду и, естественно, никуда не поехала, мотор просто глох, как только водомет погружался в воду.
К слову, водомет мы брали оригинальный, т.к. нужно было быть уверенным в работоспособности хотя бы одного агрегата.
Пушка — гонка (нет)
2. Гнев.
Постоянно ездить на воду к тому моменту уже поднадоело, и было принято решение сварить испытательный бак, чтобы тестировать все гипотезы в нем.
Сварив бак, мы раз за разом стали получать разные значения — т.е. в баке обороты поднимались до 7000-8000 об/мин (завоздушивание водомета), а на воде доска снова никуда не ехала.
Испытательный бак
Возникло предположение, что надо менять высоту окон, т.к. на двухтактном двигателе от их положения сильно зависит момент мотора (а момента мотору как раз и не хватает).
Не долго думая, была выточена гильза и вставлена в цилиндр Ямахи. Естественно, это конструкция тоже никуда не поехала, но вектор был выбран правильно: мотор перестал глохнуть и просто не развивал нужные обороты.
Чертеж гильзы
В конце первого года данной эпопеи мы решили проектировать и отливать свой цилиндр, т.к. по другому проблема не решалась.
Открытым оставался вопрос по внутреннему покрытию цилиндра, ибо, по уму, надо было использовать никасил (гальваническое покрытие стенок цилиндра сплавом никеля и карбида кремния), но поиски подрядчика под это мероприятие результата не принесли.
Первый отлитый цилиндр
3. Торг (ни одно, так другое сработает).
Нас спасет МДО — микро дуговое оксидирование, по крайней мере я так думал, смотря презентацию работы этого покрытия в спортивных четырёхтактных моторах. Вроде бы тот же никасил — но покрытие более похоже на керамику, и не поддается хонингованию (нанесению мелких рисок для удержания масла на поверхности цилиндра)
В двухтактных моторах присутствуют продувочные окна, и было неизвестно, как это покрытие будет работать в местах сопряжение окон с плоскостью цилиндра.
Покрытие МДО
Надо сказать, что снова наступила зима, и у нас не оставалось другого выбора как самим сварить испытательный бассейн, т.к. испытательный бак себя показал плохо, и все водоемы замерли, а испытания надо было продолжать.
3,5*1,2 метра (с обратным каналом)
Мотор с цилиндром покрытым МДО, завелся с пол оборота, и доска наконец-то начала набирать обороты и выдала тягу в 65 кг, что соответствовало показателям конкурентов.
Вода от водомета попадает в обратный канал, проходит круг и сбрасывается на нос доски. Доска на фото электрическая, но сути дела не меняет.
Опять показалось, что вот он успех, но мотор спустя 20 минут заклинил. После разборки внутри было обнаружено много керамической муки, которая съела все подшипники коленвала, поршень и цилиндр.
Съеденное кольцо.
Стало понятно, что надо продолжать поиски никасиля.
Спустя некоторое время я нахожу контакты человека, который, якобы, освоил подобную технологию и без особых надежд, отравляю отливку цилиндра в г. Ковров.
Через 3 недели иду в СДЭК и все так же, без особых надежд, разворачиваю упаковку и вижу настоящий никасиль, да еще и с хонингованием. Оптимизм снова возвращается.
Внутренности нашего первого мотора пали в борьбе с керамической пылью — поэтому все дальнейшие испытания решили проводить уже на доноре (что бы шаг за шагом в нем менять компоненты на наши).
Цилиндры испытывали уже на моторах JS, т.к. картер и коленвал ушли в мусор.
Цилиндр отработали несколько часов в ванне без нареканий, потом пришла весна и испытания переместились на открытую воду — где все так же работало нормально.
Мы не смогли добиться стабильного качества литья, и хоть цилиндры работали отлично, некоторые имели совершенно не товарную пористость.
Отлитый цилиндр (нанесен никосиль, этап перед хонингованием).
4. Депрессия.
Это был успех, но пористость и цена литья не давали покоя.
Большой плюс подобных проектов — это обрастанием кругом знакомств с людьми совершенно разных компетенций, у которых есть очень нестандартное оборудование и идеи его применения.
Такой вундерфафлей стал металлический (SLM) 3Д принтер, на котором мы сделали попытку распечатать еще пару цилиндров для картинга. Т.к. был заказчик готовый их оплатить.
Цилиндры после печати.
Поверхность получилась максимально однородная и никасилирование получилось идеальное.
Картинговый цилиндр (никосилирование, хон выполнен).
Несколько месяцев эксплуатации проблем не выявили, но как мы не крутили и не старалась уменьшить объем материла — себестоимость нашего цилиндра равнялась 33 000 руб, ни о какой конкуренции тут и говорить не приходится.
Примерна такая же картина была с изготовлением картера и системы привода стартера. Т.е. на производстве своего мотора можно было ставить крест.
Хорошо бы это было понять 2 года назад.
5. Принятие.
Последний подход в сторону бензинового мотора был связан с изготовлением своего коленвала, т.к. на рынке запчастей такой компонент представлен не был (можно было купить половину мотора в сборе, а это дорого).
Расчетная цена получалась конкурентоспособной, и мы решили начать.
Ожидаемо в металлолом пошли первые два образца: в первом случае после термообработки заготовку повело, во втором случае была проблема с качеством с обработки шейки обгонной муфты и только 3-я итерация получилась без нареканий.
Красиво, но все пошло в металлолом.
Пока 3-й собранный коленвал наматывал круги на водоеме, мы вовсю пиарили наши достижения. Но за сезон удалось провести только одну замену, т.к. больше клиентов с подобной проблемой не нашлось.
Это приводит ко второму вопросу: куда сбывать товар при очень маленьком рынке? Испытания колена были завершены в конце 2021 год, поэтому ни о каких рынках сбыта кроме РФ — речи уже не шло.
Вывод:
Не всегда надо доказывать себе, что «я могу» и доводить проект до реализации во что бы то ни стало, не обращая внимания на затраты, будущую себестоимость и рынок сбыта. Иногда можно и нужно забить.
113 лет со дня рождения Конрада Цузе – всемирно признанного изобретателя компьютера
О биографии Цузе написано немало. Мы не будем повторять уже написанное, а рассмотрим в деталях – как же был создан первый компьютер и что послужило для изобретателя «вдохновением».
Конрад Цузе родился 22 июня 1910 года в Берлине. Столица тогдашней Германской империи, последующих Веймарской республики, Третьего рейха, ГДР и нынешней ФРГ на протяжении большей части прошлого века играла роль одного из центров Европы. Не только политических – как колыбель трех крупнейших войн (двух мировых и одной «холодной»), – но и научных. В Берлине Планк создал квантовую физику, а Эйнштейн – общую теорию относительности. К ним можно добавить и Цузе с его первым программируемым компьютером.
В двухлетнем возрасте будущий компьютерный гений вместе с родителями переехал в городок Браунсберг в Восточной Пруссии, где потом окончил школу. Там продвинутый ученик сконструировал действующую модель сложного устройства – еще не вычислительной машины, а «всего лишь» машины для размена монет. И проектировал город будущего – на почти 40 миллионов жителей!
Потом семья перебралась в город Хойерсверда под Дрезденом, где Цузе закончил колледж. И в 1928 году вернулся в столицу, где поступил в знаменитую Берлинскую высшую техническую школу (ныне Берлинский технический университет).
Я специализировался в области машиностроения. Упражнения по технической графике отрезвили меня. Они оставляли мало свободы для творчества, все стандартизировалось и фиксировалось: толщина линий, вид мерок, даже места, где должны были располагаться мерки. Изучение архитектуры показалось для моего внутреннего художника заманчивым миражом. Перешел на факультет архитектуры — и снова разочаровался. Дорические и ионические колонны меня совершенно не заинтересовали. Может, из меня и вышел бы сносный архитектор, кто знает? Однако я снова переключился; на этот раз на том же факультете, но на другой специальности. Инженер-строитель теперь казался мне идеальным сочетанием инженера и художника. Однако я испытывал ярко выраженное отвращение к статическим расчетам, которыми мы, студенты-строители, мучились. Я восхищался профессорами, которые освоили эту арифметику, как полубоги из другого мира.
Несколько позже молодому Цузе в голову ещё придет идея, как оптимизировать работу с расчетами, но в то время его интересовали несколько другие вопросы. Например, дорожное движение. В то время в Берлине только-только появились светофоры, и на дорогах творился «полный хаос». Цузе придумал идею «зелёной волны», но…
….с помощью графиков я попытался применить эту идею к берлинскому Фридрихштадту, что мне не удалось. В пределах берлинского Фридрихштадта такая система также не может нормально функционировать. Это сегодня мы уже знаем, что «зеленые волны» можно использовать в первую очередь на магистральных дорогах, где приходится идти на компромиссы в отношении пересечения дорог.
Также Цузе увлекался и фотографией – и как искусством, и как процессом.
Я занимался всевозможными мелкими и крупными разработками — от автоспусков до полностью автоматических аппаратов, но у меня не было опыта для практической реализации этих идей. И я был очень расстроен, когда автоматические фотобудки, которые я хотел изобрести сам, были представлены под названием Photomaton. Они работали по методу, обратному моему, и предоставляли готовые изображения за восемь минут.
В 1935 году Цузе покинул свою alma mater с дипломом «гражданского инженера». Поработав какое-то время в немецком представительстве компании Ford Motor (где он занимался в основном рекламой), он перешел на работу на авиастроительный завод компании Henschel в берлинском пригороде Шенфельде. Там молодого сотрудника ждала уже «работа по специальности» – инженерно-конструкторская.
И именно там, проделывая ненавистные утомительные вычисления на бумаге, Конрад Цузе наконец задумался не о фотобудке или светофорах, а о сказочной «палочке-выручалочке», которая избавила бы его от этой бумажной рутины. О вычислительной машине.
…вскоре я бросил эту работу и устроил изобретательскую мастерскую в квартире родителей. Я хотел полностью посвятить себя компьютеру… Конечно, мои родители не были в восторге от этого проекта, но они были настолько уверены в моих способностях, что поддерживали меня, как могли. Позже мне даже разрешили использовать самую большую комнату в их квартире для установки первого, еще несколько [устройство весило полтонны] неуклюжего аппарата. Меня поддерживали и друзья с учебы. Они помогли деньгами, которые сегодня могут показаться скромными, но без которых я не смог бы получить даже необходимые материалы для работы. Первыми спонсорами стали старый школьный друг Герберт Вебер из Браунсберга и моя сестра. Конечно же, всегда помогали и родители. Те, кто не мог помочь финансово, вызвались помогать мне в мастерской [приятели Цузе вручную выпилили 20000 пластин для переключателей].
К 1938 году машина была собрана. Она получила название Z1 – по первой букве фамилии своего создателя. Примечательно, что изначально Цузе назвал изобретение V1, то есть, ФАУ, что называется «без задней мысли» — он не знал, что спустя несколько лет так назовут известные на весь мир ракеты. Это еще сослужит службу, но позже.
Как выше мы уже отметили, вес компьютера составлял около 500 кг и занимал он самую большую комнату в родительской квартире. Для ввода данных установили клавиатуру из переделанной печатной машинки, а для вывода результатов — панель с мигающими лампочками. Машина работала на моторе от пылесоса, но у неё были почти все элементы современных компьютеров: регистры памяти, арифметико-логическое устройство, интерфейсы ввода и вывода.
У Z1 был отдельный блок памяти из 64 слов по 22 бита. Он умел работать с 22-битными числами с плавающей запятой. Машина складывала числа в течение 5 секунд, умножала — 10 секунд. Чтобы получить результат, она смещала пластины в определённом порядке. Условных переходов и циклов не было. Программы (а у компьютера была система из 9 команд) в памяти не хранились, поэтому каждый раз их вводили вручную.
Конечно, Z1 был демонстрационной моделью без возможности практического применения. Он постоянно ломался и ошибался в вычислениях. Но прототип доказал, что создать программируемую машину возможно. Сегодня копия первого в мире компьютера, воссозданная в 80-х под руководством Цузе, хранится в Немецком технологическом музее.
Тем временем политические события в Германии шли своим судьбоносным ходом. На дворе стоял конец 30-х годов. Цузе вовсю работал над Z2, когда его призвали.
…это может показаться наивным, но для всех нас стало горьким разочарованием то, что разразилась война. Политические события застали меня совершенно неподготовленным. Меня оторвали от работы и из-за краткого обучения в рейхсвере призвали в пехоту. Устройство Z2 близилось к завершению, когда меня призвали. Доктор Паннке [обратился в мою контору с просьбой об отпуске на том основании, что я должен сдать свою работу должным образом. Он написал, что я работаю над большой научной вычислительной машиной, которую также можно использовать в самолетостроении. Я передал это письмо моему капитану, который немедленно переслал его. Командир батальона, майор, вызвал меня, сначала сказал мне, что я, как совсем молодой солдат, все равно не имею права уходить, и продолжил: «Что вы имеете в виду, что ваша машина может быть использована в самолетостроении? Немецкие ВВС безупречны, на что еще рассчитывать?» – Что я должен был сказать в ответ? Отпуск не был предоставлен.
Благодаря ходатайству влиятельных инженеров и ученых, в 1940 году Цузе демобилизовался, вернулся в Берлин и стал членом гитлеровской научной элиты. Работа над созданием релейной электронной вычислительной машины возобновилась. Цузе и помогавший ему Шреер обратились за финансовой поддержкой к военному руководству, предлагая разработать современное устройство для военно-воздушных сил Германии. Такая машина могла быстро обрабатывать сложные расчеты, повышая тем самым эффективность тактической авиации. По предварительной оценке, на создание подобного аппарата потребовалось бы около двух лет. Но руководство вермахта было убеждено, что за такой срок нацистская Германия уже достигнет мирового господства. В итоге – отказ.
Зато обращение к директорам берлинского авиационного завода «Henschel», производившего тактические бомбардировщики, принесло успех. Руководство завода решило использовать компьютерные технологии в процессе создания военной техники. Цузе был предоставлен специальный отдел с лучшими инженерами-электронщиками компании. И уже в конце 1940 года Z2 была введена в эксплуатацию. Новый компьютер был оснащен цифровым процессором на основе реле и электровакуумных ламп (использование ламп – идея Шреера). Z2 автоматически высчитывал ряд параметров геометрии стабилизаторов авиационных бомб, преобразовывал их аналоговое значение в двоичную систему счисления, вычисляя необходимые данные по заранее введенным оператором формулам, и выдавал готовый результат в виде десятичных чисел. Результаты отправлялись сразу в производственный цех.
В том же году Цузе начал разработку Z3 — машины, полностью построенной на реле, но с логической структурой от Z1 и Z2. Она была готова к эксплуатации в 1941 г., за 4 года до разработки американских ученых — электронного цифрового компьютера ENIAC. Отчасти к Z3 и особенно к Z4 относятся слова «машина для фюрера».
В 1942 году мы начали производство Z4, улучшенного варианта Z3. Z4 также был ориентирован на электромеханику. Арифметический блок и элементы управления были построены с реле и шаговыми переключателями. Чтобы придать устройству большую гибкость со стороны программирования, было запланировано несколько этапов расширения с несколькими сканерами и перфораторами. Работа над Z4 была сильно затруднялась бомбардировками. Пришлось трижды менять местоположение в Берлине во время войны. В одну из бомбежек я в очередной раз ходил по дому искать упавшие зажигательные бомбы и, оказавшись на лестничной площадке, услышал над собой треск. В последний момент я прыгнул под дверной косяк, и рядом рухнула лестница. Я с трудом пробирался по обломкам в подвал. Начался пожар, и мне не удалось потушить огонь в ручным распылителем. Дом сгорел.
Сам изобретатель не пострадал, но под развалинами погибли все чертежи и прототипы его вычислительных машин – Z1, Z2 и Z3. Лишь частично законченная новая модель Z4, над которой Цузе работал начиная с 1942 года, была спасена, потому что незадолго до бомбардировок он догадался переправить чертежи и «железо» в другое место. Сначала – в новое помещение на другой берлинской улице, а затем на простой подводе накрытые ветошью части новейшего компьютера увезли в тихую баварскую деревню Альгой, для военной авиации союзников никакого интереса не представлявшую. Туда же в феврале 1945-го, за считанные месяцы до падения Берлина, перебрался и сам Цузе.
В баварской глуши, где ничего не напоминало о стремительно шедшей к своему исходу войне, Конрад Цузе сделал свое второе замечательное изобретение, которое обеспечило ему заслуженное место в компьютерной истории. Он разработал – как раз специально для упомянутой модели Z4 – первый в мире высокоуровневый язык программирования – «Планкалкюль» (Plancalcul – буквально «плановое счисление»), содержавший многие стандартные детали современных машинных языков. До всем известного FORTRAN оставалось еще целое десятилетие… Кстати, на этом же языке была составлена и первая в мире шахматная компьютерная программа.
Незадолго до падения Берлина вермахт решил эвакуировать машину Z4 на запад, в Гёттинген. Конрад Цузе продолжил работу над Z4 в Гёттингене, но ему пришлось снова перевозить устройство, чтобы оно не оказалось ни у советской армии, ни у союзников. Нацисты хотели, чтобы Цузе и его Z4 перебрались в Дора-Миттельбау, концентрационный лагерь, в котором узники строили ракеты Фау. Цузе решил иначе и сбежал на юг, в небольшой немецкий городок Бад-Хинделанг почти на границе со Швейцарией. Старое название машины очень пригодилось, когда пришлось прятать незавершенную Z4. Патрули, наслышанные о Фау-1 и Фау-2, беспрепятственно пропускали груз с названием Фау-4, даже не заглядывая в кузов. Так вычислительная машина, создававшаяся «для фюрера», или, точнее, для вермахта ушла на гражданку.
Он спрятал компьютер в сарае и переждал войну, продавая гравюры из дерева местным фермерам и американским войскам, а в 1946 создал фирму Zuse-Ingenieurbüro Hopferau. Капитал был привлечен благодаря швейцарскому ETH Zurich и продаже опциона на патенты фирме IBM.
В дальнейшем под его руководством и при непосредственном участии были созданы еще три модели «линейки Z» – Z5, Z11 и Z22. В последней модели для памяти были впервые применены магнитные носители.
К 1967 году Zuse KG всего продала 251 компьютер на общую сумму около 100 миллионов марок, что тогда, в эпоху «до персоналок», можно считать успехом. Но затем наступили финансовые проблемы, и компания была продана электронному гиганту Siemens AG. Главе купленной фирмы новый владелец предложил пост специалиста-консультанта, который был с благодарностью принят.
Завершив свою бизнес-деятельность, от научной Конрад Цузе отказываться не собирался. И занимался ею до последних лет жизни, свободное время отдавая своему хобби – живописи. Сегодня несколько этих красочных завораживающих полотен можно посмотреть в экспозиции берлинского Музея немецкой техники (Deutsches Technikmuseum). Рядом с другими, гораздо более известными свершениями Конрада Цузе – дюжиной его вычислительных машин.
Линукс в четыре руки. Сетевая OpenArena на двух Nokia N900
Автор: MechNIX
Оригинальный материал
Замечательный аппарат Nokia N900 (в контексте материала — просто Nokia), рассматривался во множестве статей, а в разрезе сетевых игр — информации не очень много. Мне показалось интересным испытать Nokia именно в этом аспекте. В данной статье сделаем акцент на мультиплеер OpenArena — игре, основанной на движке Quake 3. Рассмотрим этапы настройки живых (на 2023 год) репозиториев, получения root-доступа к телефону, запуск игры и сам геймплей. Под катом фото и видео Nokia N900 c шутером OpenArena. Бонусом — увидим DOOM (порт PrBOOM), куда же без него… а так же рассмотрим странное «Q-дерево».
Один в поле не воин, а на двух самураях вполне можно виртуально соперничать.
Добро пожаловать...
Содержание:
Введение;
Инсталляция из репов, настройка сети;
Получения root-доступа по ssh;
Инсталляция шутера OpenArena;
Управление и геймплей OpenArena;
DOOM;
Заключение.
❯ Введение
На миг отвлечемся от серьёзности дерева портов и начнем с несерьёзного предисловия. Мне было нужно наглядно продемонстрировать суть затеи, а так как 4-х рук у меня нет, пришлось смастерить квейковое дерево или «Q-дерево». Это и есть наш шуточный демонстрационный стенд, изображенный в заголовке, дальше будет детальное изображение.
Nokia N900, аппарат, имеющий в качестве основной операционной системы OS Maemo, основанной на Debian Linux, «заточенный» на работу в портативных носимых гаджетах. Соответственно, менеджер пакетов, который будет использоваться apt-get. Самое сложное было разыскать живые репозитории. Методом тестов, проб и ошибок удалось составить свой файлик (кому он нужен для повторения эксперимента, пишите в комментариях, скину). На момент написания статьи все репозитории живые.
❯ Инсталляция из репов, настройка сети
Понятие «репозитарий» звучит красиво, но не правильно, а если правильно, то «репозиторий», но это неестественно и можно сломать язык, поэтому далее будем пользоваться жаргонным «репа», оно привычней.
Итак, файл с репами находится по следующему пути:
/etc/apt/sources.list.d/
После его редактирования необходимо выполнить команду:
apt-get update
Чтобы обеспечить возможность играть в сетевую игру, необходимо чтобы оба телефона были подключены к одной точке доступа WI-FI и находились в одной локальной сети. Все манипуляции проводятся одинаково, на обоих смартфонах. Так выглядят сетевые параметры после подключения.
❯ Получения root-доступа по ssh
Перед установкой OpenArena делаем две подготовительные операции.
Инсталлируем пакет rootsh, позволяющий производить манипуляции от имени привилегированного пользователя-root. Это не хак и не джейл, а штатная процедура получения root-доступа к устройству. Отмечу, что все действия в этой статье проводятся от имени root. Правила безопасности не зря твердят нам не вести ВСЕ действия от привилегированного пользователя, но в данном случае у нас эксперимент, повредить систему не страшно, секретных данных тоже нет. Но все же, от root работать нужно осознанно.
В консоли запустим «sudo gainroot» и установим пакет «rootsh».
Для комфорта настройки установим «openssh-server», позволяющий реализовать удаленный доступ к Nokia по протоколу ssh, и будем управлять от имени «root».
❯ Инсталляция шутера OpenArena
На скриншоте — необходимые пакеты для установки игры:
Сама инсталляция тривиальна.
Установка самого игрового «движка»:
apt-get install openarena
Установка данных и карт:
apt-get install openarena-data
Настройка сетевых параметров в интерфейсе самой игры производится в соответствии с принципом: клиент-сервер (в роли сервера-один телефон N900, в роли клиента-другой). Настройка в интерфейсе игры отражена в видеоролике ниже (на 2:42 видно настройку).
Настройка мультиплеера:
❯ Управление и геймплей OpenArena
Вот как выглядит демонстрационный стенд (Q-дерево):
Спешу поделиться результатом запущенного шутера.
Управление ведется акселерометром, либо кнопками аппаратной клавиатуры. Удалось уловить стандартное в частности для шутеров управление клавишами WASD, прыжок-space, огонь-CTRL (не стандартное), переключение и выбор оружия -1,2,3,4. В процессе игры можно переговариваться текстовыми сообщениями с оппонентом (say).
Игра вызывает весьма положительные ощущения даже в 2023 году. Напомню, что речь идет об аппарате 2009 года. Привык видеть прекрасное и в малом — у меня и игра f29 retaliator (симулятор самолета) под DOS вызывает радость, в режиме HEAD-to-HEAD, даже через нуль-модемный кабель. :) Возвращаясь к рассмотренной OpenArena, скажу: торможений, зависаний, лагов, в целом не отмечено, графика летает и сверкает. В процессе игры, в правом верхнем углу экрана виден счетчик кадров в секунду — FPS. Гляньте, пожалуйста, ролики.
Демонстрация 1:
Демонстрация 2:
❯ DOOM
Следуя челленджу «установи DOOM на это устройство», я не мог этого не сделать. Порт DOOM называется PrBOOM. Установка производится в одну команду и не вызывает сложности.
❯ Заключение
Чем можно завершить статью? Положительно, описанный порт OpenArena — не поделка, полноценный, серьёзный шутер. Играбельно? Да. Не глючит? Да. Приносит радость? Да! Ну и славно!
Прошу поделиться опытом и комментариями относительно подобных игры для OS Maemo, это интересно. :)
Благодарю за внимание. :)
Еще больше новостей и статей в нашем блоге Timeweb Cloud.
Декапсуляция микросхем в домашних условиях
В этом обзоре я расскажу, как при помощи палок и известной субстанции добраться до кристалла микросхемы и оценить топологию. Если повезет, сможем прочитать логотип производителя и даже серию, или наименование микросхемы.
Для чего это нужно
Еще вчера изготовители электронных устройств небольших серий экономили на закупках компонентов, зачастую нарываясь на контрафакт. Все мы дружно обвиняли таких в жадности и осуждали. Сегодня обстоятельства резко поменялись. Теперь приходится использовать то, что удалось найти, и цена далеко не главное. Возможно метод, который я здесь опишу, поможет избежать применения явного контрафакта и напрасных трат на монтаж и демонтаж.
Метод оценки маркировки, перемаркировки, геометрии и качества корпуса показал свою неэффективность на входном контроле. Отбраковать можно только совсем уж явную подделку. Но если пираты в теме и немного потрудятся, то для выявления необходимо переходить к объемным электрическим тестам.
Итак, первый этап: освобождение кристалла из корпуса микросхемы. Сразу скажу, метод этот не позволит сохранить разварку. Главное — рассмотреть кристалл и в идеале сравнить его с заведомо подлинным от производителя. Известный лабораторный способ — это применение химической декапсуляции. Стоимость систем колеблется около сотни тысяч долларов. Практически все они закрытого типа. Работать на них необходимо в специализированной лаборатории, и, соответственно, иметь в штате химика-лаборанта.
Способ, который применяю я, не требует кислот. Процесс заключается в вываривании микросхемы при высокой температуре в расплавленной канифоли. От микросхемы отделяем выводы и вместе с небольшим кусочком канифоли кладем в пробирку. Пробирку закрепляем в импровизированном штативе. Для нагрева я использовал паяльный фен на максимальной температуре. Процесс длительный и нудный, может занимать несколько часов.
Канифоль использую самую обычную, какая попадется:
В пробирке видна накрошенная канифоль и обезноженная микросхема:
Вот так это выглядит во время варки:
Есть еще момент, на который стоит обратить внимание: пары канифоли со временем осядут на всех окружающих предметах. Плюс запах самой жженной канифоли не такой уж приятный. Чтобы избавиться от паров, делаем простейший фильтр, по типу водяного затвора. В пробирку вставляю силиконовый шланг, конец которого опускаем в стакан.
Ниже видно, как темнеет канифоль с течением времени. Это растворяется корпус.
Определить в процессе варки, что корпус растворился, довольно сложно. Жидкость становится густой и непрозрачной. Приходилось несколько раз выплескивать содержимое на чистый лист бумаги, чтобы что-то разглядеть. По окончании все, что было в пробирке на чистом белом листке, выглядит так:
Важно не потерять кристалл. Иногда их размеры бывают меньше миллиметра. Заметить очень сложно.
Здесь кристалл довольно приличных размеров. Его видно:
Вторая часть — инструментальная. Как теперь все это рассмотреть и изучить.
Обыкновенные биологические микроскопы не подходят для этих целей. Расскажу чуть поподробней, так как я был абсолютно не в теме, и ошибочно купил неплохой (как мне казалось) микроскоп примерно за тысячу долларов. В цену вошла и матрица на 3 Мпс, с насадкой для окуляра. Я, конечно, знал, что биологические микроскопы работают в проникающем свете, но предполагал сделать светодиодную подсветку вокруг объектива, что даст мне возможность подсвечивать кристалл. К сожалению, нет. Это спасает на объективах х10 и еще как-то на х20, но дальше — все. А этого увеличения не хватает, х40 и х100 уже применять невозможно. Качественных снимков добиться очень сложно. Подать удачно свет занимает уйму времени. Одним словом, занятие неблагодарное.
О металлографическом микроскопе на тот момент мне ничего не было известно. И в магазинах оптики менеджеры ничего посоветовать не могли (скорее всего и сами не знали). Невозможность использования биологического микроскопа заставила изучать тему более углубленно. Отпугивала стоимость этих аппаратов. Но выручила, как всегда, нестареющая советская промышленность, которая производила достойные микроскопы в массовых количествах. На сегодняшний день стоимость отечественного металлографического микроскопа в неплохом рабочем состоянии может составить меньше 10 тысяч рублей. Вот несколько массовых марок: МИМ-6, МИМ-7, МИМ-8, МИМ-9 и еще очень много разных. Размеры от компактных до крупных. Все их можно приспособить для нашей цели. Нужна только камера с насадкой, которую можно погружать вместо окуляра. Я приобрел себе ММУ-1 за 9 тыс. Подсветка и микровинт работают.
Главное отличие всех металлографических микроскопов от биологических — конструкция объективов. Свет от источника отражается от зеркала-призмы, проходит через объектив, попадает на поверхность кристалла и возвращается через этот же объектив. Этот отраженный свет мы и видим в окуляре. Схема типового металлографического микроскопа ниже.
Третья часть — аналитическая.
Подаем питание на источник света, подбираем объектив, наводим резкость и…
На фото фрагмент кристалла преобразователя FTDI232RL. Ввиду своих больших размеров целиком в объектив не поместился. Микросхема очень удачная для анализа. Производитель не поскромничал и поставил на кристалле свои логотипы. Чем снял все вопросы при анализе на контрафакт.
На поддельной микросхеме такого логотипа нет. По сути, там нет никаких надписей, поэтому приводить фото не буду — ничего интересного.
Некоторые из декапсулированных микросхем я выкладываю на этой странице с разрешения хозяев-заказчиков. Указываю фото корпуса микросхемы и присутствующих логотипов и литер. Часто это позволяет сделать вывод об оригинальности происхождения. А вот с точным наименованием сложнее. Были случаи, когда оригинальную микросхему перемаркировывали и выдавали за более дорогую версию. Самый правильный вариант — сравнить оригинальный кристалл, в котором есть стопроцентная уверенность, с испытуемым вариантом.
Несколько слов про разварку. На одной из выставок «Экспоцентра» привлек внимание стенд с лазерным станком. В качестве эксперимента оператор согласился попробовать аккуратно снять верхний слой до кристалла. Ниже фото того, что получилось. Как видно, структура выводов и разварка при этом варианте декапсуляции сохраняется.
Поэтому решил сделать домашнюю версию для лазерной декапсуляции. Приобрел вот такой вот лазер на 2.5 Ватта. Приспособлю простейший 3Д принтер. Как все сделаю, напишу подробнее, что же в итоге вышло.
На фото лазер уже скреплен с экструдером:
Еще больше новостей и статей в нашем блоге Timeweb Cloud.
Зри в корень, но не в ЗD очках. Стереовзгляд в прошлое. Что увидел мишка в ASUS VR-100G или статья-предостережение
Автор: MechNIX
Оригинальный материал
В данной статье рассмотрим ряд устройств, позволяющих увидеть объемное изображение, как электронного, так и нецифрового характера, оценим субъективное восприятие и последующие ощущения.
Наш путь — от простого к сложному: стерео/диаскопы времен СССР, взгляд на QUAKE 3 Arena в цифровых очках ASUS VR-100G 1999 года, а также вспомним DOS-игру Depth Dwellers и 3D-журнал.
Фото/видео ретро-девайсов, процедуры использования, размышления о пользе/вреде, выводы, под катом.
Добро пожаловать. :)
В качестве преамбулы сразу поясню, почему фотка с мишкой. Для наглядности, стоит посмотреть на его глаза. После тестирования очков и проведения сопутствующих экспериментов, мои глаза разъехались в разные стороны и ассоциация с мишкой возникла как наиболее подходящая.
Теория;
Стерео/диаскоп;
Стереожурналы;
Анаглиф на примере игры Depth Dwellers;
3D очки Asus 1999 год. Quake3;
Выводы.
❯ Теория
Мы видим объекты нашего мира при помощи бинокулярного или стереоскопического зрения. Разглядывая предмет двумя глазами с разных точек зрения, мы видим объемное изображение, которое окончательно формирует и обрабатывает наш мозг, собирая в единую картинку, и воспринимаем мы это изображение объемным.
Ремарка по дальнейшим прилагаемым видео: так, как эффект объемного изображения достигается при помощи бинокулярного зрения, а видео/фотосъемка велась при помощи камеры с одним объективом, передать 3D изображение не получится, поэтому фото и ролики скорее отображают мизансцену проводимых опытов.
❯ Стерео/диаскоп
В детстве у меня был стереоскоп.
Принцип действия следующий: в каждый отсек слайда, изображенного рядом со стереоскопом, вставлялась одинаковая фотография, в двух экземплярах. Заглядывая в стереоскоп, происходило чудо в глазах ребёнка, там было объемное изображение.
К слову сказать, существовали и диаскопы, где изображение разглядывалось одним глазом. Слайд там использовался один, и все-равно оно ощущалось объемным, хотя бинокулярное зрение здесь отсутствует.
Это было давно, но ощущение чуда осталось.
❯ Стереожурналы
Стереожурнал позиционируется как инструмент, использующий механизм коррекции, профилактики и улучшения зрения.
Обратная сторона журнала, описывает детальное положительное воздействие на зрение.
А здесь описан метод расфокусировки зрения и настройки на просмотр 3D изображения.
Сами рисунки журнала выглядят так:
К слову, фотография замечательно передает объем, и я прям вгляделся в экран монитора. Наверху, к примеру — лошадка. :)
А к нижнему изображению спойлерить не буду.
Работает журнал? Работает! Идем дальше, к цифре…
❯ Анаглиф, на примере игры Depth Dwellers
Анаглиф, термин, расписанный по этой ссылке.
На данном принципе базировалась атмосферная игра Depth Dwellers, она вызвала вау-эффект и была для меня чем-то принципиально новым. Я сразу смастерил стим-панковские красно-синие очки, состоящие из круглых пробок от газировки, со вставленными в них красным и синим стеклом и при помощи них, играл.
На фото видно расслоение экрана на красно-синие составляющие. Так мы видим это без очков, а глядя в анаглифные очки — ощущался объем.
Атмосфера игры выглядит так:
Играть было дико интересно, само погружение поглощало, но платой за продолжительное погружение в виртуальную реальность — был взгляд, как у мишки, а также бонусом утомление от перенапряжения глазных мышц и отходняк внутри головы. Поняв и ощутив это, я отказался от использования данного формата восприятия объемного изображения, ввиду сохранения зрения. Очки отобрал у меня приятель-рокер, зашедший в гости. Настолько они его поразили.
❯ 3D очки Asus VR-100G. Quake3.
Данные очки были выпущены в 1999 году. Приобретены они были как составляющая комплекта комбо-комбайна, состоящего из видеокарты, 3D-очков и развитого интерфейсного кабеля с разъемами для подключения различных аналоговых видеоустройств (входы и выходы).
Очки с миниджеком, фотография доброго мишки:
Видеокарта. В оригинале кулера на радиаторе вообще не было. Мною был прикручен коробочный кулер от процессора Intel.
Разъемы:
Оперативная память размером 32Mb:
В контексте данной статьи сделан акцент на 3D очки, обойдя стороной саму замечательную, для своего времени, плату. Настройки/характеристики будут упомянуты в необходимом для демонстрации работы объеме.
Итак, очки имеют стеклянные, жидкокристаллические заслонки, которые попеременно закрывают от нас видимое изображение, отображаемое на экране монитора. На этом же эффекте основана идея автоматической тонировки автомобилей. В выключенном состоянии стекла прозрачны (удобно ночью), а в включенном — затемнены (днём), но в отличии от стереоочков, заслонка не включается/выключается с молниеносной частотой, а управляется по принципу день/ночь. Мечта, а?
Управление жидкокристаллическими заслонками осуществляется при помощи электрических сигналов, попеременно подаваемых в соответствии с логикой управления с выхода видеокарты. Изображение на мониторе (обязательно ЭЛТ), предназначенное для просмотра в стереоскопическом формате, формируется в режиме чересстрочной развертки дважды. К примеру, для формирования объемной картинки с частотой кадров 60Гц для каждого глаза, монитор должен поддерживать 120Гц. Такую конфигурацию я и попытался воссоздать.
Разрешение экрана:
Частота обновления экрана:
Скрин характеристик видеокарты:
Эффекта стереорежима не передать, но все-же заглянем вглубь на примере Quake 3 Arena:
Сам игровой процесс — кайф, игра в очках завораживает. После их снятия, виртуальное окружение уже как-то плоско. А вот минусы — в итогах статьи.
❯ Выводы
Искусственно созданный механизм получения объемного изображения использует естественный принцип бинокулярного зрения, однако рассмотренные методы «сбивают настройки», установленные природой, что является неестественным.
Перенапряжение глазных мышц, особенно продолжительное время — вредно.
Медицинского исследования, подтверждающего вред использования стереоскопических очков с попеременно закрывающимся затвором, а также анаглифных очков, я не нашел. Не нашел подтверждения — это не означает, что вреда нет, но вот сам производитель очков вполне однозначно предостерегает в мануале:
Резюмирую — вышеописанные технологии можно использовать обдуманно, и особенно при использовании любознательными, любопытными детьми.
Так что-же в финале увидел мишка? Ответ следующий — зри в корень, но не в 3D очках. Берегите глаза и будьте здоровы.
Спасибо за уделенное время.
Еще больше новостей и статей в нашем блоге Timeweb Cloud.
«Странная алгебра», философия упрощения и изобретение бита. К 107-летию со дня рождения Клода Элвуда Шеннона
Как совершаются великие научные открытия? Как вообще работает механизм «гениальности»?
Сегодня мы с вами попробуем раскрыть эту тайну – и понять, что не существует универсального ответа на этот вопрос.
Клод Элвуд Шеннон наиболее популярные и революционные свои работы сделал очень рано. Многие эксперты считают, что два его важнейших вклада в науку – магистерская диссертация 1938 г., развивающая метод использования булевой логики для представления схем, и его статья 1948 г. по теории связи, определившие область и революционный метод, с помощью которого мы обозреваем мир. Основа этих двух работ и большинства других его работ – идея, что математические концепции можно использовать для создания структур и понимания чего угодно.
Суть стиля научной работы Шеннона заключалась в его стремлении (и способности) сначала сформулировать решаемую проблему в наиболее общей, абстрактной форме, а затем перейти от нее к эквивалентной, но одновременно простейшей форме, в которой выброшены несущественные детали и потому закономерности изучаемого объекта становятся ясно видимыми. Именно этим подходом объясняется способность Шеннона взять проблему и применить к ней математическую теорию, революционизируя в результате сам способ рассмотрения данной области. Таков вклад Шеннона во все области, в которых он работал, но в первую очередь – в теорию переключений и теорию информации. Этот его вклад оказал большое влияние на современное общество.
Большой интерес представляет методика, которую использовал Шеннон в работе над теорией информации и другими проблемами. Сам он в лекции 1953 года описал эту методику.
«Первое, о чем я должен сказать, это упрощение. Допустим, у вас есть проблема, которую надо решить – построить машину, создать физическую теорию, доказать математическую теорему и т. д. Тогда, вероятно, самый сильный подход к решению этой проблемы – попытаться исключить из нее все второстепенное, оставив только суть. Каждая проблема содержит данные разных типов, и, если вы выделите главные из них, то яснее увидите, что надо делать и, вероятно, найдете решение. Иногда вы можете упростить проблему до такого вида, который даже не похож на первоначальную постановку, из которой вы исходили. Но очень часто, решив эту гораздо более простую проблему, вы можете усовершенствовать полученное решение до того, что вернетесь к решению всей проблемы в ее первоначальном виде».
Именно так Шеннон формулировал и решал свои проблемы – сначала на самом высоком уровне абстракции, затем выбрасывал все несущественное и, наконец, применял подходящую математику: булеву логику, знакомую ему с дней в Мичигане, – для магистерской диссертации по переключательным схемам, алгебру – для его докторской работы по генетике и теорию вероятностей – для работы по теории связи. Сделав это, Шеннон смог создать научные теории, которые стали базой для соответствующих областей науки и техники.
Но вернемся в тем двум великим работам, о которых упомянули выше.
Магистерская диссертация 1938 г.
Шеннон начал готовиться к получению магистерской степени в Мичиганском Техническом Институте в 1936 году в качестве ассистента-исследователя в лаборатории Вэнивара Буша.
Он недавно закончил Мичиганский университет с двумя бакалаврскими степенями – по математике и электротехнике. По слухам, Шеннон получил место в лаборатории после того, как повесил на доске объявлений кампуса свое объявление, написанное на почтовой открытке.
В то время Буш, его будущий начальник, был вице-президентом МТИ и деканом инженерного факультета.
В 1927 году Буш совместно с группой ученых создал интерграф, машину для механического решения систем дифференциальных уравнений первого порядка. На первой странице газеты «Нью-Йорк Таймс» в том году появился заголовок: «Думающая машина решает задачи высшей математики и уравнения, на которые у человека уходят месяцы».
Интерграф использовал электрические и механические устройства, а потому имел недостатки — неточность выполнения и излишнюю сложность. Вдохновленный математической элегантностьюи простотой механического диск-интегратора, Буш решил построить новую механическую машину. Дифференциальный анализатор, разработанный в 1931 года, был развитием интеграфа и мог решать дифференциальные уравнения до шестого порядка. Он состоял из длинных, похожих на столы опорных рамок, пересеченных соединительными валами. Одна его сторона состояла из множества чертежных досок, на другой стороне были шесть диск-интеграторов. Валы управляли пишущими перьями так, что они могли чертить кривые на чертежных досках. Оператор мог также двигать перо вручную по данной кривой. Это придавало желаемое вращение некоторым валам. Связывая члены уравнений с вращениями вала, скомбинированными с работой набора зубчатых передач, можно было использовать машину для выполнения всех базовых математических операций – в добавление к интегрированию.
Буш поручил новому сотруднику работу по созданию дифференциального анализатора, который представлял из себя аналоговую вычислительную машину, собранную из зубчатых передач, приводов и тяг. Она была предназначена для вычислений и решения дифференциальных уравнений.
Шеннон помог решить проблемы, связанные с анализатором, — неточность расчетов и сложность использования, — преобразовав механические связи между тягами так, чтобы их движения соответствовали необходимым математическим уравнениям. Завершенная машина была поддержана Фондом Рокфеллера. Она весила почти 100 т и была собрана из 2000 электронных ламп, нескольких тысяч реле, 150 моторов и автоматических устройств с перфокартами для выборки данных. Во время Второй Мировой этот агрегат, вошедший в историю под названием «Рокфеллеровский дифференциальный анализатор», был, вероятно, самым важным агрегатом при выполнении расчетных операций армии США.
У Рокфеллеровского дифференциального анализатора была чрезвычайно сложная схема управления, составленная примерно из ста переключателей, которые могли автоматически открываться и закрываться с помощью электромагнита. И именно эта схема и привела вчерашнего студента Шеннона к важному открытию.
Доктор Чарльз Вест вспоминал, как однажды ночью Шеннона осенило, что схемы дифференциального анализатора очень похожи на булеву логику, которую он изучал, будучи студентом в Мичигане. Затем Шеннона осенило, что переключатели в схеме можно совместить таким образом, чтобы схема выполняла необходимые операции символической логики. Это событие (произошедшее, скорее всего, в конце 1936) было крупным открытием, которое связало две хорошо известные области, рассматриваемые до этого момента отдельно.
После этого логические понятия «истина» и «ложь», обозначенные числами 1 и 0, получили широчайшее применение. В частности, стало возможным представлять с помощью реле операции двоичной арифметики, или, как сказал сам Шеннон, стало «возможным представление сложных математических операций с помощью релейных схем».
От начального рассмотрения проектирования схем, которые могли складывать двоичные числа, Шеннон перешел к реализации схем, которые уже могли осуществлять сравнение чисел и выполнять такие действия, как «Если число X равно числу Y, то выполнять операцию А». Благодаря этому дифференциальный анализатор получил способность выполнять действия и решения, которые открывали новую эру для компьютеров и искусственного интеллекта. Так родилась цифровая логика.Открытие Шеннона вело к новой эре господства цифровой логики и компьютеров. Стоит заметить, что сама связь между булевой алгеброй и схемами была признана уже давно и применена в нескольких частях света – впервые аж в 1886 году.
Но почему же было так много «загоревшихся» исследователей, использовавших идею булевой логики в технических приложениях, но никогда не заходивших достаточно далеко и часто даже не публиковавших свои результаты?
До Шеннона эта идея «спотыкалась» много раз, хотя сама концепция всегда была на виду (в отличие от концепции, использованной позднее Шенноном при разработке теории информации). Теории Шеннона стали известны и распространены по одной простой причине: пришло подходящее время.
Отчасти это было вызвано появлением технологичных машин. Отчасти оттого, что общественное и экономическое развитие явилось следствием общемировых тенденций, требующих чего-то похожего на цифровую логику, перевода машин на уровень новой эры. В предыдущие полвека, когда другие выдающиеся умы во многих странах приходили к похожим теориям, не было возможностей реализовать преимущества от открытий – просто не пришло их время.
Диссертация же Шеннона, появившись в нужное время и в нужном месте, стала основой для создания теории переключений и логического проектирования, которые были применены к множеству актуальных проблем, возникающих, например, при переключениях в железнодорожных системах, передаче информации и исправлении ошибок, в автоматической телефонии, в вычислительных машинах и т.д.
В 1939 году за свою диссертацию Шеннон получил Нобелевскую премию как молодой автор технической статьи, обладающей выдающимися достоинствами. Это была неожиданная для него честь, он написал своему руководителю: «Вы, вероятно, слышали, что я получил премию Альфреда Нобеля за мою статью по переключательным схемам. Фактически я подозреваю, что Вы не только слышали, но и кое-что сделали, чтобы я ее получил. Если это так, то большое спасибо. Я был так удивлен и счастлив получить письмо с сообщением о награде, что чуть не упал в обморок». Скорее всего, Буш представил диссертацию Шеннона в Нобелевский комитет, не посоветовавшись. Ведь за всё это время он успел изучить характер Шеннона: «очень застенчив, исключительно скромен и представляет тип человека, склонного к уединению и ожидающего неудач».
Так мы с вами делаем вывод, что у каждого таланта обязательно должен быть доброжелатель, ведь именно Буш в будущем приложит все усилия для того, чтобы у Шеннона были все условия для совершения открытий. И Шеннон не подведет.
Статья 1948 г. по теории связи
До 1940 г. не существовало сколь-нибудь унифицированной теории связи. Шеннон был первым, кто предложил такую теорию. В письме Бушу он впервые представил универсальную двухступенчатую схему любой системы связи (ступень 1 – передатчик, ступень 2 – приемник). Из этого можно видеть, что уже тогда – менее чем через год после защиты его магистерской диссертации «Символический анализ релейных и переключательных схем» – Шеннон начал работу по структуризации процесса передачи данных, чтобы найти корень проблемы связи. Таким образом, мы видим, что в 1939 г. Шеннон был еще далек от завершения теории связи.
Однако уже через 9 лет он опубликовал свою «Математическую теорию связи», где дал полное и простое описание обобщенной системы связи. Его соединение в единое целое частей системы связи, его моделирование информации как энтропии и его теория о предельных возможностях связи в условиях шума и без него были прыжками через современное ему мышление в технику связи.
В 1948 г., в своей основополагающей работе «Математическая теория связи» он предложил более полную совокупность частей любой системы связи:
источник информации;
передатчик;
канал связи
приемник;
хранилище принятой информации.
В этой же работе Шеннон выделил 3 типа систем связи – дискретные, непрерывные и смешанные – и установил, что дискретный случай является базой для двух других случаев и «имеет применения не только в теории связи, но и в теории вычислительных машин, проектировании телефонных станций и других областях». Если есть на свете чистый образец базы – разве это не он?
Кроме вышеупомянутых работ, «перу» Шеннона принадлежат исследования в области криптографии, кибернетики, генетики (!!), а еще он был очень скромным человеком, прекрасным семьянином и искусным жонглером.
Талантливый человек талантлив во всем, и здОрово, когда талант совпадает с нуждами времени: если нужен «бит», то обязательно находится тот «счастливчик», который его и изобретет.
Еще больше новостей и статей в нашем блоге Timeweb Cloud.