Оверлей с комментариями
А сам я за свою жизнь ничего такого не сделал. Вообще. Было несколько штук, которые начинал. Заканчивал я считанные единицы. Так, чтоб для себя, и чтоб потом гордился и мог похвастаться всем — только крестики-нолики в консоли, да эта прога.
Кто участвовал в переводе веб-комиксов, знают пайплайн — сначала перевод, затем клининг с опциональным редравом, потом тайпсеттинг, потом квалити контрол. Над мангой чаще всего работают несколько человек, потому что японский знает один из тысячи, а спихнуть эдит можно на тех, кто хочет приобщиться к великому. Тут возникает такой момент, как «переводчик передаёт перевод эдитору». Комиксы себе все представляют. Текст в пузырях, sfx’ы и так далее. В манге очень популярен текст вне пузырей. И если тебе, эдитору, дают перевод в текстовом файле, порядок «какая фраза перевода куда идёт» порой неочевиден. Проверить себя ты не можешь, потому что не знаешь язык. При невнимательном qc или при его отсутствии переводы с перепутанным порядком добираются до релиза. Видел сам не раз.
На danbooru есть функционал по наложению полупрозрачных прямоугольников прямо на картинку. Наводишь на такой мышкой — всплывает текст. Щелкаешь мышкой по свободному месту — все квадратики исчезают, чтобы можно было насладиться самой картинкой. Они так делают переводы к одностраничкам. Я видел этот инструмент ещё в паре арт-галерей, использующих движок данбооры. И конечно же у меня всплыла мысль «а можно такую, только стационарную?». После обзора нескольких просмотрщиков изображений с открытым исходным кодом я понял, что написать плагин я не потяну, а если и потяну, то оно будет громоздко. Скачивать целый просмотрщик, да ещё и с плагином — да кому это надо?
Тут я вспомнил, как один профессор в универе мне показывал простенькое приложение чата, которое он накодил на скорую руку для браузера. И рассказывал, как это удобно — стэк HTML-CSS-JS. Кроссплатформерность, единое отображение и поведение — всё обеспечивается развитой инфраструктурой, которую подарил нам интернет. Везде, где есть современный браузер, можно открыть html-документ со скриптами. Я решил попробовать.
Вначале шла чисто техническая проверка на реализуемость. Не на теоретическую реализуемость, а, скажем, на реализуемость мной. Чтобы я мог справиться, быстро и не шибко напрягаясь. Скажем так, уровень сложности, необходимый для такой реализации, оказался примерно равен моим умениям и моему уровню вовлечённости/мотивации/заинтересованности/whatever. Быстро нашлись библиотеки для сохранения изображения в файл из блоба, для зип-архивов, для JSON’ов. Да, я снова сочинил JSON-схему. У меня к тому моменту утонула идея по «справочнику русскоязычных то:хо:сообществ», но я помню, как знатно развлёкся с составлением JSON-схемы для хранения данных — списка ссылок — в одном большом файле JSON, и хотел бы повторить. Когда я убедился, что все моменты, с которыми у меня могут возникнуть сложности — это была в основном работа с загрузкой/сохранением на диск — решены, и я знаю, как должны выглядеть архивы и файлы с данными, я понял, что смогу это сделать. Быстро и ловко.
Дальше был создан проект на гитхабе. Лицензия — unlicense. Как человек, пиративший большую часть своей жизни, а так же ковырявшийся в лицензиях и авторских правах, читавший и про бернскую конвенцию, и про столлмановскую концепцию копилефта, я считаю, что не нужно портить другим людям жизнь, нужно просто делать свой интеллектуальный труд общественным достоянием. Нет, я так считаю не потому, что ничего путного на свет всё равно не произведу и миру даром не сдались мои поделки. Нет, правда! Просто я считаю, что людям, а особенно талантливым людям, негоже тратить время на копание во всей этой юридической тягомотине, как при релизе своего кода, так и при использовании чужого. Оно всё так далеко от программирования, и оно просто крадёт время.
Дальше шла реализация. Помню, что раскидывал код по тематическим файлам — «библиотекам». Ещё помню, как переписывал код, просто чтобы «держать объекты в одних библиотеках и передавать в функции из других как аргументы». В общем, играл в ООП-программиста. Детали все я уже поперезабывал. Вся рисовка была реализована через CSS. Тестировал я только в хроме, по факту. В какой-то момент, когда сделал основной задуманный функционал и немножечко удобных штук сверху, я самоудовольствовался, и активная фаза разработки закончилась. Мне очень понравилось то, что в итоге получилось.
Дальше было…а дальше ничего особо и не было. Я мяукнул в нескольких местах, что вот, у меня есть такая прога. Потом скинул знакомому переводчику свой перевод одной твиттерной четырёхстранички, сделанный в КомОвере, и он даже открывал и смотрел в нём. По программе замечаний не было, только по переводу. Потом я ещё помню, находил очень редкий баг (видел всего 2 раза и только на ноуте), когда почему-то отваливается редактор, и ты не можешь ни создавать, ни изменять прямоугольники, можешь только сохранить наполовину сделанную работу и перезапустить браузер. Вычислить и починить я нишмог, то ли это была особенность гугловского хрома, то ли моего ноутбука, то ли моё недопонимание логики джаваскрипта и корявый код. Скорее всего последнее. В любом случае, моё self-complacency и полное отсутствие востребованности КомОвера, а также фидбека, таки убили мою мотивацию продолжать по нему работу.
Да, я фактически вообще не занимался рекламой. Я придерживаюсь идеи сарафанного радио — когда кто-то пользуется твой программой, и находит её настолько хорошей, что рассказывает о ней своим друзьям и знакомым, те пробуют, им тоже нравится, они рассказывают дальше, и так «ходит песенка по кругу». Да, для этого должен быть изначальный импульс. Да, для этого программа должна быть по-настоящему востребованной. Как бы сейчас все мириады переводческих групп как-то решают проблему координации между переводчиком и эдитором. Опять же, серьёзно настроенные команды могут скопировать движок данбооры с нужным функционалом и развернуть себе сервер. Опять же, членам команд не нужно будет ничего скачивать на компьютер.
Был ещё один возможный вариант использования моего КомОвера — непосредственное распространение переводов. Сканы страниц оригинала + переводы в json-файлах, всё аккуратно упаковано в один zip-архив, который даже не надо распаковывать, просто открываете моей программой и читаете. Но тут, конечно же: во-первых, львиную долю переводов, а также переводчиков-распространителей убили бы авторы компании-издатели. Если отредактированные в фотошопе комиксы считаются серой зоной, то за распространение оригинальных сканов обычно руки отрывают с особым пристрастием. Основной категорией работ для перевода были бы всякие малотиражные, малоизвестные и прочие твиттерные бесплатные веб-комиксы, авторы которых не занимаются тем, что бегают по интернету и ловят распространителей. И опять же, всё упирается в читателя. Они сейчас любят читать всё онлайн. Никто не хочет уже ничего скачивать. И с каждым годом всё больше любителей читать со смартфонов. Не буду в этот раз ныть про то, что «со смартфона читать — себя не уважать». Просто отмечаю тенденцию. Тут бы больше подошла потенциальная веб-версия моей программы. Что-то, уже вплотную приблизившееся к данбооре, но ориентированное именно на комиксы. Но это мне уже не интересно — создавать полноценный мангадекс, с БД, CDN и прочими радостями интернет-читалок — увольте.
Короче говоря, с «коммерческой» стороны мой проект изначально был крайне невостребован. По факту я его делал для одного единственного человека — себя. Ну и, соответственно, перестал его делать, когда мой внутренний заказчик удовлетворился. Для меня это был уникальный опыт, когда сложность проекта была как раз под мой уровень знаний и умений, и когда мне мотивации в аккурат хватило, чтобы закончить проект.
Обидно, что никому оно нафиг не сдалось? Конечно обидно. Но я бы не сказал, что хочу делать для людей то, что нужно им. Я бы хотел, чтобы людям было хотелось того же, что хочется мне. Так утонул «справочник русскоязычных то:хо:сообществ». Это, видимо, часть железной палки, застрявшей в моей голове. Я до сих пор не знаю, как её вытащить. И не уверен, что хочу. Если говорить про конкретно КомОвер, то это было олицетворение моей позиции на переводы манги. Я не люблю, когда оригинальный текст затирается и заменяется переводом. Кто работал эдитором японских/китайских/корейских комиксов, кто подбирал аналогичные шрифты, чтобы «выглядело как в оригинале», тот может понять, о чём я. SFX’ы это вообще произведения искусства. Я предпочитаю, чтобы всегда можно было посмотреть оригинал, а перевод чтобы шёл в виде комментариев, и скрывался одним кликом мыши. Я так ценю мангу. Я сказал. Вообще, кем вы себя возомнили, редраверы?! Считаете себя дофига художниками, думаете, что сможете так же?! Или хотите адаптировать произведение для своих земляков?! Нет, я не говорю, что редраверы — плохие художники, некоторые из них могут даже не равных потягаться с мангаками. Да только после редрава это будет уже не то произведение!!! Фьюх…вдох…выдох.
Я очень принципиален насчёт корабля Тесея, да. Возможно по этой же причине я стараюсь игры и фильмы, которые изначально на английском, смотреть/играть в оригинале. Ещё я почти никогда не устанавливаю моды на игры. Однако при этом охотно прохожу дополнения и играю в новые части, даже если их делала другая команда. Ведь если есть, или хотя бы подразумевается, слово «официальный»…в любом случае. Многие переводчики, на том же мангадексе, не затирают эти огромные, красивые, нарисованные от руки SFX’ы, они пишут перевод, предваряемый звёздочкой, маленьким шрифтом, где-то в углу. Просто потому что в штате нет редраверов, или потому что тот не такой скилловый, или потому что время решают не тратить, не знаю. Но мне по душе больше такая адаптация, чем замена рисунка-текста, пусть даже красивая и на уровне.
Что ещё можно упомянуть в этой статье? А! Консольные крестики-нолики! Вот это был проект! Всем проектам проект! Я в какой-то момент понял, что их можно дорабатывать до бесконечности: оптимизации, «игра в ООП-программиста», локализации, пляски вокруг ИИ, сделать GUI в конце концов! В общем-то, перед графикой я и остановился. Потрогал всего понемногу и успокоился. В наследство мне остался целый букет версий. Даже есть Федина доработка под линуксовые консоли, с раскраской букв. Да, весёлое было время… Не могу сказать, что крестики-нолики — такой себе повод погордиться. А тот факт, что их можно до бесконечности дорабатывать, тоже прилично убивает мотивацию. Ну, во всяком случае, мне убило. Не нравится мне концепция бесконечного проекта.
Ну и последнее, что можно упомянуть — написанная почти с нуля тема для вордпресса, для этого сайта, которую вы все можете сейчас лицезреть. Но это больше прикладное, тема была мне нужна именно для блога. Частично я хотел «не использовать уже существующие темы» и «контролировать всё до мельчайших деталей, досконально знать, как всё устроено», частично просто оттягивал момент запуска сайта. На данный момент я уже подзабыл, чего я там наколбасил, но с другой стороны, мне и менять-то ничего не надо, всё, что нужно для блога, всё работает, никаких новых навороченных штук я прикручивать не хочу, мирские желания отвалились…
Нужно какое-то заключение для статьи, да? Хм, ну, вот, пожалуй, и всё, что я за свою жизнь довёл до конца, чем был доволен.