10 лет annimon.com

от
Прочее   annimon.com, story, блог сайта

Привет, а у нас тут 10 лет сайту. Нет, на самом деле как сообществу — больше (почти на целых два года), а как домену annimon.com — меньше (на 7 месяцев), но вот далёким-предалёким вечером 11 января 2010 года сайт впервые сказал вебу (и тогда ещё вапу) превед.

Под катом предлагаю посмотреть скриншоты и вспомнить ключевые моменты из истории как нашего сайта, так и технологий в целом.


Сообщество
Начать прежде всего стоит с краткой истории сообщества, потому что оно и зародилось раньше и сподвигло на создание сайта.

? ... 2007 год (да-да, тот самый) — на двух основных форумах-гигантах SEclub.org и s-c.ru собирается кучка начинающих программистов под мобильные телефоны, активно изучают Mobile Basic или MIDlet Pascal и потихоньку посматривают в сторону Java Micro Edition.
14 июня 2007 года — на легендарном хостинге wen.ru зарождается сайт annimon.wen.ru. Смысл сайта в размещении найденных полезных ресурсов по программированию.
Октябрь 2008 года — регистрация форума на сервисах my-forum.in/4077. С этого момента и начинает зарождаться анником как сообщество: приходят нужные люди, появляются нужные инструменты, происходят нужные события.
Июль 2009 года — покидаем my-forum.in из-за вареза на форуме. К тому моменту мы достигли топ-5 активности на этом сервисе, поэтому базу данных сообщений нам всё же любезно предоставляют.
Август 2009 года — пользователь Doctor Drive делится местом на своём хостинге. Размещаем восстановленный форум там: docd.zx6.ru/annimonforum/ (web archive).
Декабрь 2009 года — Doctor Drive бесследно исчезает и я высказываю опасение, что такими темпами можно потерять форум.
Январь 2010 года — web_demon предлагает помощь в установке и настройке сайта. Регистрируем сайт на бесплатном хостинге ayola.net, получаем красивый адрес: annimon.z83.ru. web_demon устанавливает на него JohnCMS 2.
11 января 2010 года — все подготовки завершаются и вечером новый сайт готовится принять пользователей. За свои заслуги web_demon нарекается администратором сайта.


Сайт2010

Сразу после установки JohnCMS приходилось делать много правок. Во-первых, у самой ayola были ограничения: файлы не могли иметь некоторых сдвоенных букв в имени, поэтому никаких add, comments, attach. Во-вторых, нужно было добавлять полезные возможности, делать правки для администрирования, потому что в JohnCMS не всё устраивало из коробки. В первый месяц добавили некоторые сторонние модули: загрузки, монеты, репутацию.

Так как супервайзер был далёк от веб-разработки, всю работу по сайту делал в основном web_demon. Приходилось на локалке делать правки, а потом проверять, как оно будет работать на сервере. Поскольку правки были также касающиеся супервайзеров, web_demon повышал себе права через БД, проверял, чтобы всё работало, а потом вновь понижал себя до админа. Видя его мучения, я предложил оставить его супервайзером.

2010-02-27.png

Вот так выглядел сайт в начале своего пути. Основной стиль в жёлтых тонах унаследовался от стиля annimon.wen.ru. Однако, на тот момент у пользователей была возможность делать свои стили.

2010-02-27_styles.png
Стандартный стиль JohnCMS, тёмная тема от miha, :emo: и :webdemon:

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

Также добавили раздел Информация (/prog/), куда помещали краткую информацию о том или ином языке программирования. web_demon параллельно писал свои модули, среди которых небезызвестный WikiMobile. Он и стал прародителем нынешнего раздела Авторские Статьи.

2012-10-15_wikimobile.png

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

Кстати о нагрузке. ayola явно нас терпели. Сайт часто работал за пределами допустимых для бесплатного аккаунта нагрузок, но никаких уведомлений и, тем более, санкций напрямую мы не получали. Сама ayola при этом часто подвергалась DDoS-атакам :miha:, так что, возможно, им было не до нас. Однако, испытывать терпение не хотелось, да и от ддоса айолы устали. Уже тогда был некоторый доход от размещения кастомной рекламы, поэтому в начале июля решено было перейти на платный хостинг ukraine.com.ua. Тогда же я и решил зарегистрировать домен annimon.com

2010-07-24.png

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

С новым хостингом появилось и больше возможностей. Вскоре, а именно 25 августа вместо старого джоновского привата был поставлен модуль почты от seg0ro.

К августу старый форум, хоть на него к тому моменту уже никто и не заходил, умер вместе с аккаунтом сайта Доктора Драйва на его хостинге. Бекапы так и не получили, зато в память о форуме подняли архив времён my-forum.in.

2010-12-08.png

Осенью джоновская галерея была заменена на Фотоальбомы от web_demon'a. В неизменном виде они остались и по сей день. Также добавлен Блокнот.

Зимой появился новый модуль: Полезные Коды.

2011-11-25_code.png 2011-11-25_code2.png


2011

В течение зимы были небольшие правки багов, добавление страниц (рейтинги, актив сайта, конвертер шрифтов для PPM и т.п.), а также наконец-то удалён чат.
2011-05-05.png
В начале мая заменили старые джоновские загрузки на сторонний модуль Загрузки. Новый модуль поддерживал описания, комментарии, картинку-превью для файлов, просмотр архивов, пользовательскую выгрузки по шаблону файла и многое другое. Но был и минус, к которому вернёмся позже.

2011-12-25.png
К концу года веб-тема выглядела так. Остальные изменения не были заметны глазу. В основном это были улучшения в системе модерации, новые должности и массдел в других модулях.


2012

Мобильные телефоны на Java ME уже начинали стремительно уходить в закат, а Android-смартфоны, напротив — набирать популярность. Нужно было как можно быстрее занимать новую нишу — разработку под Android, но всё, что мы сделали на тот момент, помимо единственной темы Android-программирование, это создали новые разделы форума: Android-игры и Android-приложения. :kot:

2012-02-25_forum.png

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


2013

2012-12-10.png

13 апреля web_demon добавил сразу два новых модуля: Авторские Статьи и Уголок Писателя. WikiMobile хоть и был мощным, но его дизайн выбивался из дизайна остального сайта. К тому же, интеграция с остальными модулями была не очень хорошей. Новый модуль Статьи решал эти проблемы: был и счётчик новых статей, и комментарии, и вывод количества статей за авторством юзера в его анкете.

А Уголок писателя служил заменой стандартной джоновской Библиотеке и тоже имел лучшую интеграцию.


2014

2014-05-16.png

В мае убрали разделы WikiMobile и Библиотека. Часть статей перенесли в Авторские статьи, остальное удалили.

В ноябре решили перенести разработку в git (да, в 2014-ом). Без гита синхронизировать изменения было сложно, потому что теперь над сайтом работали уже оба админа и два модератора: Xamgore и Koenig.

Бесплатный приватный репозиторий для небольшой команды из 4-5 человек был тогда только на bitbucket, поэтому его и выбрали. У хостера тогда ещё не было инструментов для работы с git, нужно было заказывать VPS, но проблему решили простыми git-хуками битбакета.

Суть такова. Когда в репозиторий пушатся изменения, срабатывает хук, который отправляет список изменённых файлов и коммит-сообщения по заданному url на наш сайт. Дальше наш скрипт "скачивал" изменённые файлы через BitBucket API и прямо так перезаписывал их, а также постил в тему Трекинг изменений в репозитории лог изменений. Такой подход позволял обходиться без утилиты git на стороне сервера и мог работать на любом хостинге (если у скрипта есть права на перезапись всех php-файлов). Но были и минусы: иногда изменения не приходили и тогда приходилось лезть на ftp и всё закидывать вручную. Тем не менее, работу это упрощало и добавляло интереса из-за совместной разработки.

За пару недель обновили магазин, блокнот, добавили поиск и черновики в Статьи.


2015

2015-03-07_error-404.png
В марте, вдохновившись всякими постами про кастомные страницы ошибок, сделали вот такую страницу. Красным подсвечиваются все невалидные для двоичной системы счисления цифры. :bender:

Также добавили предпросмотр сообщения, историю изменения постов на форуме, немного (много) порефакторили код сайта, а также прикрутили шаблонизатор Twig. web_demon потихоньку отходит от разработки сайта, так что дальше в основном делаю всё я, а помощниками выступают Xamgore и RGT.

В ноябре 2015 года wen.ru закрылся, бекап сообщений гостевой мне не дали, так что архив annimon.wen.ru был залит без него.


2016

В надежде вернуть активность да и просто поспособствовать обучению работе с REST, на сайт добавили aNNiMON.com API.
Также по просьбам народа сделал страницу донатов. В первые месяцы собрали достаточно, чтобы наконец-то переехать на VPS. Этим и занялись.

29 апреля сайт из хостинга ukraine переехал на VPS от того же хостера. Теперь наконец-то можно было ставить nodejs, java и много чего ещё.

Начал я с nodejs и поддержки Markdown на сайте. Средствами php было неудобно прикручивать парсер Markdown, да и полноценно переписывать вывод не представлялось возможным, так что Markdown просто конвертировался в BB-коды (и до сих пор это делает).

2016-10-30.png

Зимой я занялся переписыванием почты от seg0ro и сделал вместо неё Диалоги.


2017

VPS оказался дорогим, так что я задумал переезд на другой. Хотелось иметь более свежии версии php, поэтому планировал сразу на новом сервере поставить php 7.1. Проблема была в том, что весь JohnCMS до сих пор использовал mysql_, который в 7.0 удалили. В течение целой недели я переписывал всё под PDO.

Новый сервер оказался даже лучше по характеристикам и, хоть веб-панели для администрирования не было, у меня накопилось достаточно опыта, чтобы всё сделать из командной строки. Теперь был nginx, новая версия php и старый добрый JohnCMS прекрасно на этом всём жил.

Сразу после переезда я решил обновить Полезные Коды. Иногда хотелось выкладывать в один пост несколько кодов (например, html+css+js) и вставлять какой-нибудь iframe из codepen. Выбирать один раздел для кода тоже было зачастую сложно, поэтому я предпочёл теги. Всё это осталось под старым названием Полезные коды, но внутреннее кодовое название (в таблицах и коде) сменилось на codeposts.

В апреле я посягнул на святейшее — дизайн. Старая тема вдруг показалась скучной и тоскливой и я решил переделать её на что-то типа Material. А заодно и прикрутить SASS для стилей. Получилось вот так:
2017-07-15.png

А ещё меня заинтересовала работа php-фреймворков и я стал изучать их внутренности. Спустя некоторое время сформировалось своё виденье, как написать новый код так, чтобы он сосуществовал и не ломал старый джон. Так появилось новое ядро.

В конце октября на этом новом ядре я переписал Дневники.


2018

Особой работы над модулями сайта не велось, вместо этого я решил сконцентрироваться на написании статей и добавлении полезных кодов. А вот web_demon одним прекрасным ноябрьским вечером ворвался с исправлением древнейшего бага в дневниках :ded:

В конце года немного привёл в порядок категории статей. На тот момент был отдельный модуль Информация, в котором показывалась небольшая сводная информация о том или ином языке со ссылками на полезные разделы сайта. Теперь эта информация переехала непосредственно в категории статей.


2019

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

28 марта старая большая шапка сайта превратилась в уменьшенную, как сейчас. Меню пользователя перекочевало в выпадающий список.

В конце года я решил удалить раздел загрузок. Как я писал ранее, у этого раздела были минусы, а именно:
1. Код был тяжел для понимания. В случае с самим JohnCMS, хоть там и запросы, и логика, и вывод html были вперемешку, всё же какая-то структурированность сохранялась и можно было поэтапно переписывать. В этом модуле всё было сложнее, к тому же использовались старые функции ядра.
2. Было много лишнего. Вытаскивание иконки из .jar, просмотр архивов, синхронизация файлов с БД и наоборот, всё это уже было не нужно.
3. Раздел нормально не прижился и только мешал. С одной стороны хотелось более тесную интеграцию с форумом, как это было на SEclub, но быстрее было прикрепить файл на форуме, чем идти в загрузки, ждать модерации, а потом создавать тему. С другой стороны там удобно было хранить множество версий одной и той же программы. Но такое было лишь с десятком файлов. Ради них держать модуль не хотелось.

2020-01-05.png

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


Планы на 2020+
Прежде чем говорить о планах, давайте я ещё раз напомню из чего на данный момент состоит annimon.com.

1. Материалы по программированию. Статьи, полезные коды, часть вопросов и часть форума.
2. Сообщество. Постояльцы сайта, которые заходят раз в день или неделю посмотреть, не умер ли ещё сайт и его админ.
3. Разделы сайта для сообщества. Фотоальбомы, дневники, уголок писателя, форум, страница "Кто онлайн" :maga:


Сценарий 1

Материалы по программированию читаются не только сообществом, но ещё и гостями. Нередко из поисковиков заходят на статьи/коды/вопросы. Топ просмотров статей за сутки. Не важно, где размещены эти материалы: на VPS, на простом php-хостинге, на аналоге wen.ru или на GitHub Pages.

Часть сообщества уже давно обосновалась в VK/Telegram/etc и прекрасно там себя чувствует даже не заходя на сайт. Если сегодня закрыть аннимонц, станет немного сложнее связаться между пользователями, потому что одни сидят в тг, другие в вк, третьи где-то ещё. Но сложно не значит — невозможно.

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

Если мой энтузиазм иссякнет, это станет одним из возможных сценариев. От сайта останутся только материалы по программированию и будут они, скорее всего, уже не на JohnCMS, а на Jekyll на бесплатном хостинге.


Сценарий 2

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

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

Сценарий 2 предлагаю обсудить в комментариях или на форуме.


Сценарий 3

Однако, пока мой энтузиазм всё ещё горит огоньком, я могу продолжать работу над сайтом. Тут есть даже три варианта:
1. Сконцентрироваться на материалах. Значит, больше писать статей, добавлять кодов.
2. Сконцентрироваться на сайте. Улучшить статьи, UX сайта (глобальный поиск и т.п.)
3. Держать баланс.

С материалами понятно — всегда найдётся о чём написать, так что остановлюсь на самом сайте.

1. Доделать глобальный поиск, добавить поиск по кодам.
2. Хочется немного освежить фотоальбомы. Не то что бы это было нужное изменение, но почему-то хочется это сделать.
3. Мобильная тема долгое время обходилась стороной и нужно немного её переработать. Например, нигде не показывается лента статей.
4. Для авторов сделать сводную статистику по всем статьям, которая будет обновляться раз в неделю и месяц. Иногда случается так, что "выстреливает" статья, которую писал несколько лет назад, а ты и не знаешь об этом, но хотел бы её немного актуализировать. Также есть ещё несколько хороших идей по оформлению страницы авторов.
5. Ну и, конечно же, обновление внутренностей сайта: замена JohnCMS, нормальная организация процесса разработки, etc.



10 лет это всё-таки большой отрезок времени. Низкий поклон и большое спасибо всем, кто прошел его вместе с сайтом. Вы лучшие!
+35   35   0
958