Всем снова привет!
В прошлом посте я рассказывал про восстановление сайта lain.ru на новом домене. Спасибо вам всем за такую обратную связь. Ваша поддержка очень мотивирует на такие вещи. <3 Тогда проекту было около месяца, я рассказывал про восстановленные статьи, комментарии, старый дизайн, новый движок и планы потихоньку допиливать всё это дальше.
За прошедшие несколько месяцев я успел почти полностью переделать новый дизайн, запустить новые комментарии, переделать UX, самостоятельно дописать спустя 20 лет 13-й слой, частично восстановить старый форум, несколько раз заново перетрясти Web Archive, найти новые любопытные комментарии и файлы, какие-то древние поддомены и починить кучку собственных косяков.
Так что материала снова накопилось на длиннопост. Будем считать это второй частью нашего веб-археологического лудоприключения. Кому интересно, милости прошу!
Частичное восстановление форума forum.lain.ru
Идея восстановить старый форум витала в воздухе практически с самого запуска сайта, но я долго её откладывал. Вроде даже тут на Реакторе об этом писали, если ничего не путаю. И то времени не было, то руки не доходили. А потом всё-таки сели и полезли смотреть, что вообще осталось в Wayback Machine.
Когда мы только запустили lainru.org, мне несколько раз говорили что-то в духе: «А зачем вообще это восстанавливать, если всё есть в ВебАрхиве?» В случае с форумом такое не имеет права сказать НИКТО!!)))
Старая система ссылок IPB настолько ужасна, что нормально потыкать форум через архив практически невозможно. Я уже молчу про его скорость работы. Поэтому мы с opossum'ом решили собрать это недоразумение обратно во что-нибудь человеческое.
Мы скачали и бегло изучили доступные снимки и начали разбираться, где действительно страницы форума, а где ошибки, редиректы и прочий архивный мусор.
А дальше началась самая интересная часть. Когда разобрался в логике path старого ipboard, то нагенерил (вайбкод алерт!!) кучу всяких инструментов и начал вытаскивать из сохранённого HTML структуру форумов, темы, сообщения, профили пользователей и гостей, даты, подписи, ссылки, изображения, смайлики и вложения.
Причём просто взять самый поздний снимок страницы нельзя: более поздняя копия далеко не всегда была более полной. Поэтому для одной темы приходилось сравнивать несколько сохранённых версий и пытаться собрать из них максимум информации.
Прямо как с комментариями на lainru.org. Только, как ни странно, форум парсить оказалось кратно проще, чем самопальные комментарии Юрия =)
Юра, кстати, жив и здоров. Порадуемся за него, кто переживал)
В итоге всё это добро сложилось в единую SQLite БД: форумы, темы, сообщения, пользователи и связи между ними. Темы, у которых Web Archive сохранил не все страницы, я отдельно помечаю, чтобы не создавать впечатление, будто перед нами полная копия.
После этого я быстренько навайбкодил веб-интерфейс, повторяющий структуру старого форума: Layer #0A, Layer #0B, темы, профили, сообщения и оригинальное форматирование.
А потом я всё-таки релизнул большое обновление сайта
Параллельно с форумом я продолжал ковырять сам lainru.org, и к началу сентября накопилось столько изменений, что дальше держать их у себя уже было как-то неприлично. Просто частями это не получалось выпускать, потому что всё в обновлении зависело друг от друга.
Обнова немного опоздала, всё пошло не по плану, но лучше поздно, чем никогда.
Была переделана структура сайта и точки входа. Первым делом я наконец собрал нормальную энциклопедию, одно место для всего, что на сайте можно почитать. Старые статьи привёл в порядок, переписал под новый движок, кое-где заменил картинки и сделал нормальную навигацию между материалами. Да. Спустя примерно двадцать лет кто-то всё-таки поставил точку в этой истории. Простите =)
Отдельно появилась нормальная галерея. Туда переехали артбуки и прочие ништяки из старых раздач. А страницу игры для PSX я вообще сделал самым наглейшим способом: просто свиснул старый пост mutronics с форума и немного переделал. БУГАГА. Ну и, пожалуй, самое заметное изменение – полностью новый дизайн.
И вот тут начинается отдельная история...
Почему я вообще начал переделывать дизайн
Изначально я вообще не собирался так далеко уходить от оригинала.
lain.ru всё-таки сайт из начала нулевых, и первая мысль при восстановлении была максимально сохранить его таким, каким он был. Но чем дальше я приводил в порядок содержимое, тем очевиднее становилась одна проблема: старый дизайн проектировался совсем под другой сайт.
Исторически там было левое меню примерно из series, layers, analysis, other, music, wallpapers, forum, links, игры на PSX, OIW, VEL, фанарта, Duvet, архива гостевухи, «где купить?» и ещё кучи всего.
Для человека, который сидел на lain.ru двадцать лет назад, всё понятно. А новый посетитель открывает сайт и такой: «ээээ... а куда тыкать?»
Поэтому я начал собирать нормальные точки входа: почитать, посмотреть, послушать, поиграть, пообщаться. Новое меню само себя придумало.
И тут внезапно оказалось, что если выкинуть пустое левое меню (которое мне было очень жалко, но жалко у пчелки, а пчол нельзя...), собрать нормальную навигацию и положить контент, то дизайн 2004 года начинает разваливаться буквально на глазах.
С конца июня я метался между стилями. Новый шаблон выглядел то слишком старо, то слишком ново, то стерильно, то нелепо, то, цитирую, «как будто на каком то сайте школьном где надо тесты проходить и вот выбираю какую тему в математике».
Орфография и пунктуация автора сохранены. Молодое поколение еще писать не научилось, но за Лэйн уже подшарило - Прим. ред.
В сортировке и форматировании мне помогал opossum, но по части дизайна с него толку было немного: чего не покажи – ему всё «нормально» =)
Поэтому я попутно доставал вообще всех знакомых, которые хоть немного секут в дизайне. Время от времени я даже советовался с ChatGPT, который выдал на один из макетов просто потрясающую мысль:
В итоге пришёл к нынешнему варианту: минимум теней и скруглений, более агрессивная типографика и попытка сохранить преемственность не через буквальное копирование дизайна 2004 года, а через мелочи.
Если всю историю сайта в футере сидел плюшевый медведь-тапочек, значит он там должен и будет сидеть)))
В какой-то момент я понял, что постепенно, естественным образом, с каждым изменением двигаюсь от 2003 к 2026 году. Ну и решил перестать мучить эти компромиссы и разгуляться на полную.
Живой сайт всё-таки не должен быть надгробием собственного прошлого.
Но старый дизайн...
Старый дизайн old.lainru.org никуда не делся. Более того, со старым дизайном вообще приходится обращаться очень бережно, потому что от него до сих пор зависит около 40% нового. Они внутри довольно сильно переплетены: мой движок изначально был написан под старый сайт, а уже потом сверху появился новый шаблон.
Если сервер видит host old.lainru.org, то отдаёт старый шаблон, старые элементы управления и старый вид страниц. Если пользователь открывает новый сайт, сервер сначала пытается найти новую версию страницы contentNew, route, pathNew и прочую мету в БД, а если не находит, то берёт старую страницу и натягивает на неё новый шаблон.
Компромисс немного безумный, зато работает. Даже старую табличную вёрстку статей через CSS удалось вполне прилично приспособить под телефоны.
Правда, иногда эта система кусает меня за жопу. Например, после одного из обновлений я обнаружил, что сломал ответы администратора в комментариях на старом дизайне.
Исторические комментарии восстанавливались парсингом HTML, и раньше ответ админа фактически являлся частью комментария. Когда я делал новую систему, то отделил всё после <hr> и положил отдельно в БД: первая строка стала .adminReply.author, остальное .adminReply.content_html.
На новом шаблоне всё красиво. А в старый я просто ЗАБЫЛ добавить вывод ответа после тела комментария =)
Комментарии работают
В первом посте я писал, что исторические комментарии уже восстановлены, но оставлять новые пока нельзя. Теперь можно. Пришлось только добавить предмодерацию, потому что, как справедливо заметил NightVampire, писать туда по делу будут нечасто, а загадить всё спамом можно очень быстро.
mutronics тогда сказал, что предмодерация это ску-у-у-учно, а потом мы открыли его laingame и увидели кучу спама на китайском. xD
Зато теперь сайт перестал быть архивом, где можно только читать людей из 2003 года. Можно снова оставить комментарий под статьями, как это было когда-то. Сайт должен быть живым, иначе всё это действительно превращается просто в музей.
Казалось бы, комментарии восстановлены. Форум восстановлен, контент собран, но в поисках потерянных картинок и прочего контента, я обнаружил что многие ссылки на форуме ссылались на файлы с lain.ru. На этот раз я решил уже не выбирать отдельные страницы, а буквально пропылесосить всё: все поддомены, все варианты страницы за годы, дни, часы и вообще каждый адрес *.lain.ru, который когда-либо попадал в Web Archive.
Нашлось дополнительно 28 старых комментариев, которые до этого считались потерянными.
И среди них, судя по всему, самый первый комментарий в истории lain.ru.
Рядом Algo пишет «Круч, круч, мегакруч», Lina Inverse хвалит обои, XOBEP предлагает прислать свои, moZg спрашивает «Я Люблю Лэйн! А ты?».
В комментариях к «Опечаткам» #1313 предлагает писать найденные ошибки в сериале, а ему отвечают: «вот если бы ты в японском ошибки вычислил, цены бы тебе не было». Он честно отвечает, что японского не знает. На странице игры в июле 2003-го спрашивают, существовала ли английская версия, и получают ответ: «Нет, игра не переводилась ни разу». Нашлись старые комментарии к обоям, All I Ever и другим страницам. Вроде мелочь, несколько строчек текста, но как миленько.
5 октября 2003 года #1313 зовёт москвичей на показ Lain в компьютерном клубе «НетЛэнд». Вход около 40 рублей. Потом отчитывается, что там был экран метра четыре квадратных и получился такой мини-кинотеатр.
А на следующий день пишет:
«мне тут подсказывали сбацать форум… может, и в самом деле? как думаете?»
Забавно читать это сейчас, когда спустя 23 года я сижу и восстанавливаю тот самый форум.
Веб-археология продолжается
После комментариев я начал вытаскивать всё, что попадалось под руку, если на это ведет ссылка из форума или комментов.
Например, восстановил старую файлопомойку. Часть файлов у меня была и раньше, просто особого смысла их выкладывать не видел. Но по мере восстановления форума и комментариев начали появляться старые ссылки, и внезапно стало понятно, откуда эти файлы вообще взялись.
Теперь снова доступны:
Поддомены
Следующей находкой стали фотки с brick.lain.ru.
Поддомен Brick'а мы знаем в том числе по VEL, но оттуда еще удалось вытащить 22 фотографии, скриншот «Cartoonist Day, Cartoonist Time» из форумной темы Fan made (https://forum.lainru.org/topic/183) и рабочий стол Neverb из темы про анимированный десктоп для Windows 98-Vista в стиле SEL. (https://forum.lainru.org/topic/233). Может сделать ремейк на Wallpaper Engine?)) А потом обнаружился ещё и lj.lain.ru.
Вот про него я вообще ничего толком не знаю, просто какие-то двачерские картинки, музыкальные албомы и трек "радио Радонеж". Всё, что удалось найти, сложил сюда: lainru.org/lj.php. Новости
В первом посте я рассказывал, что старые новости собирал вручную. Во время очередного прохода по архивам нашлась ещё одна потерянная новость от 10 января 2006 года про приобретение XL Media.
А что там с форумом?
А форум тем временем тоже заметно потолстел. Удалось найти и вернуть ещё 255 постов и 8 профилей.
Заодно выяснилось, что 51 пост был обрезан на полуслове из-за бага моего парсера.
Старые ссылки на forum.lain.ru из статей и комментариев теперь ведут на соответствующие страницы восстановленного форума. А старые ссылки на lain.ru внутри форума обратно на восстановленные страницы сайта.
Если тупо сравнивать текущие цифры с последним известным состоянием форума, получается что-то около 38.4%.
Но тут, конечно, котлеты+мухи, да и статистика оригинального форума взята с последнего доступного снимка Web Archive и не означает, что мы буквально восстановили 38.4% всей его истории. Но масштаб примерно показывает.
Даты статей
Ещё после первого поста я начал пытаться восстанавливать даты публикации старых материалов. Я добил остальные настолько, насколько это вообще возможно.
Теперь там не просто дата, а маленькая система. Если дата известна точно, то показывается дата. Если нет, ≈ означает «примерно тогда», ≤ значит «точно не позже», а иногда указан интервал.
Если навести мышкой на дату, появляется пояснение, откуда она вообще взялась.
А ещё я воткнул GIF'ки на главную
Пока сидел на работе и заполнял таблицы, меня посетила ГЕНИАЛЬНАЯ мысль.
В hero-блок ведь можно воткнуть гифки! Ну я, недолго думая, воткнул несколько на тест:
Пиксель-арт туда, как оказалось, вписывается вообще прекрасно.
Что дальше?
Из крупных вещей сейчас осталась музыка.
Сам раздел и плеер на самом деле были практически готовы ещё через пару недель после релиза. Там технически ничего сверхъестественного: залить аудиофайлы в хранилище и прописать их в JSON. Но параллельно шли энциклопедия, галерея, дизайн, комментарии, форум и все эти внезапные археологические раскопки, поэтому музыку я сознательно отодвинул на будущее.
Со старыми файлами вообще решил придерживаться такого принципа: исторический lain.ru оставляем доступным через old-версию, а новые материалы и нормально оформленные разделы постепенно переносим на основу.
Сейчас думаю, как лучше поступить со сканами материалов музыкальных альбомов. Отправить их в галерею и сделать взаимные ссылки с аудио? Или держать сканы прямо на странице альбома рядом с треками? Пока не решил.
Итого
Вот такая получилась обнова после релиза.
Если найдёте косяки, битые ссылки (а они найдутся), или что-нибудь вспомните про старый lain.ru, а может у вас внезапно завалялся какой-нибудь файл тех времён, то смело пишите.
No matter where you are, everyone is always connected. Спасибо за внимание.