Немного хороших новостей в топик!
(Краткое содержание предыдущих серий)
В мае затеял небольшое переписывание кода. Казалось, что еще-чуть чуть, и закончу, но не удалось. В итоге с середины мая до середины июля сбор статистики не работал вообще. В середине июля немного собрался с силами и довел до более или менее вменяемого состояния, запустил. Оказалось вскоре, что состояние было менее вменяемое, ошибок было некоторое количество (не все данные загружались). Недели две назад более-менее закончил оффлайновые дела. Не совсем, но теперь хотя бы могу уделять хоть какое-то время проекту. И вот он почти готов!
Краткий перечень массовых ошибок и недостатков, известных на данный момент:
1. Сначала, в эпоху первоначального накопления
капитала данных, я сделал скрипт, который проходит по топикам, генерируя их номера. Так так адрес топика состоит из слова topic и порядкового номера, это было удобно и просто. В течение этого времени я постоянно находил баги, другие участники добавляли свои пожелания, я постоянно перезапускал скрипт снова и снова (чтобы он собирал данные о топиках с самого начала). Через какое-то время я бросил это дело (запуски сначала), потому что иначе сбор данных никогда бы не закончился. То есть имеется в наличии некоторое неизвестное количество неточных данных по старым топикам.
2. Есть топики, которые были удалены или перемещены в карантин. Если такой топик успел попасть в статистику, он там остается. Механизма очистки не было.
3. Есть топики, в которых изменения произошли в середине топика. Мой скрипт загружает данные только с последней страницы, а если изменения произошли где-то глубоко, то у меня они не отражались.
4. Топики за последние полгода (см. спойлер выше). Данные о сообщениях, написанных после апреля, неполные. Что-то могло не догрузиться.
Вообще, я и сам не ожидал, что к этому вечеру столько успею сделать. Еще вчера у меня в планах значилось "очень, очень стараться закончить до декабря". 80% того, на что я отводил неделю-две, я сделал за один вечер сегодня. Рад, что ошибся в большую сторону.
Итак, собственно обновления:
1. Скрипт переписан на новом фреймворке. Качество кода перешло из категории "ужас-ужас-ужас" в категорию "ужас". Ожидается, что править баги в будущем будет намного проще.
2. Добавлена возможность отслеживать удаленные топики. Раз в сутки скрипт берет из базы топики за последнюю неделю и проверяет их доступность на форуме. Недоступные удаляются.
3. Добавлена возможность время от времени обновлять старые топики. Сделано примерно так: раз в сутки в 4 часа по серверному времени (когда нагрузка минимальная) скрипт берет из базы специальным способом отобранные топики в количестве (все топики в базе) / 365. Это порядка двухсот. Таким образом, в течение года информация по топикам будет понемногу обновляться. Сейчас скрипт настроен сначала обновить информацию по топикам за последние полгода (когда скрипт работал кое-как). Недели за две все наверстается, по моим подсчетам.
4. Если в топике часть сообщений была удалена из середины, теперь это не проблема.
Это то, что есть уже сейчас. Оно более-менее работает, но не оттестировано как следует пока.
В планах:
1. Довести до ума новую круговую диаграмму (обсуждалась недавно), добавить ее в несколько мест.
2. Добавить отслеживание числа просмотров топиков. Пока планируется раз в неделю проходить по страницам форума и сохранять число просмотров для каждого топика. Таким образом в базе будут накапливаться исторические данные по просмотрам. Сделать странички для показа этой информации.
3. Поправить пару недочетов на сайте.
4. Добить этот план и переключиться на другой проект примерно на полгода.
Пункт 2 из списка планов предлагается к обсуждению.