Хабро́метр — новый сервис логирования и отображения значений кармы и хабросилы

    Хабр́ометр — сервис логирования значений кармы, хабрасилы и позиции в рейтинге хабрапользователя и отображения этой информации на информерах, которые можно вставить в профиль, блог, форум и т.д.

    Хаброметр feedbee Хаброметр feedbee
    Хаброметр feedbee


    Для этих целей уже давно был написан Кармаграф от Goodrone. Но развитие его сейчас заморожено, а сам движок сломался и значения счетчиков не обновляется с прошлого года (на момент написания). Это и подтолкнуло написать свой кармаграф именно сейчас.

    Считать ли само слово «кармаграф» названием конкретного сервиса от Goodrone, либо же наименованием класса сервисов (или самого графика) — не знаю. Чтобы не заморачиваться с этим вопросом, свой кармаграф решил назвать иначе — Хабр́ометр. Ведь не только карму он считает и показывает, но еще хабрасилу и позицию в рейтинге (все, что выдает на данный момент API Хабра). Хаброметр отличается от Кармаграфа не смотря на визуальную схожесть дизайна основного информера. Конечно, я постарался взять все лучшее у Кармаграфа. Основное отличие Хаброметра — информеров будет несколько разных видов. Уже сейчас доступны три вида — кармаграфик, табло и минитабло.

    Итак, пару слов о том что получилось. Весь сервис состоит из подсистемы сбора информации и подсистемы ее визуализации. Каждые 2 часа бот собирает информацию о значениях кармы, хабрасилы и позиции в рейтинге (я называю эти данные Хабразначениями) через API Хабра по всем зарегистрированным на сервисе пользователям. Данные сохраняются в базу. В любое время любой желающий может зайти на страницу пользователя и посмотреть историю его Хабразначений. Сейчас показывается история из 500 последних запросов (12 запросов в сутки, получается чуть больше 40 дней). В перспективе отображение определенно изменится, появится календарь. Кроме того, существуют графические информеры, на которых отображаются текущие Хабразначения юзера, максимальные и минимальные значения за время мониторинга и график кармы (наличие определенных компонентов зависит от типа (размера) информера).

    Все скрипты написаны на PHP, СУБД используется MySQL (пока во всяком случае). Для рисования используется ImageMagick. Для запуска по расписанию — Cron.

    Работает сервис на моем сервере (server.valera.ws), который, к слову, не очень мощный и может не выдержать хабраэффекта. Кстати, с технической точки зрения есть одно существенное отличие работы Хаброметра от Кармаграфа — информеры рисуются не по расписанию после скачки свежих данных, а при первом запросе на отображение информера после обновления данных. Другими словами, после прорисовки информера он кэшируется. Сама прорисовка происходит очень быстро. А кэш чистится после скачки свежих данных. Это позволяет разнести пиковую нагрузку на прорисовку свежих информеров во времени. К тому же, не все зарегистрированные юзеры вообще где-то разместят информеры, а тем более не разместят информеры сразу всех типов. Так что разовая прорисовка всех информеров была бы излишней.

    Естественно сервис предоставляется «как есть» и бесплатный для использования. Код Хаброметра я собираюсь открыть, но несколько позже. Сначала требуется отладить его работу, исправить ошибки (которые там наверняка найдутся). Код будет открыт под лицензией GPL 3.

    Сейчас сервис работает в режиме beta-тестирования. Буду рад вашим отзывам, багрепортам на e-mail feedbee@gmail.com. В первую очередь хочется добиться стабильности работы и оптимизации ресурсозатрат сервиса. Ну а далее уже заботиться об удобстве пользования.

    Первым делом постараюсь доделать запланированные виды информеров. Это 31х31, 88х31 и 350х20. Так же надо будет что-то придумать с расширением цветовых гамм. Когда будет время, поработаю над дизайном страниц сервиса.

    P.S. Сайт сервиса (описание системы и бота): http://habrometr.server.valera.ws.

    P.S.S. Домен такой выбирал не специально, так случилось что server.valera.ws != valera.ws. Потому такой длинный.

    P.S.S. Если из-за хабраэффекта накроется мой сервер, уже не кидайте много камней в огород. Пока не было возможности испытать его под нагрузкой.

    UPD. Перенес в блог I Habrahabr, чтобы снизить нагрузку на сервер (все топики из него видны только подписчикам этого блога).
    Поделиться публикацией
    Похожие публикации
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 27
    • 0
      А где картинки?
      • 0
        Да, vps прогнулся конкретно даже под небольшим настиском. Надо его координально перенастраивать будет.
      • +1
        неправильно выдается код информера.

        вместо: habrometr.server.valera.ws/habrometr_88x120.php?user=username
        выдается: habrometr.server.valera.ws/habrometr_88x120.php
        • 0
          Да, в одном месте упустил. Теперь поправил. Тем, кто уже брал коды, просьба их «перевзять».
        • 0
          Больше всего понравился внешний вид последнего Хаброметра :)
          • +2
            Что то вашему серверу кажется уже не очень хорошо, некоторые информеры ресуются по 20-30 секунд… Что будет с ним, когда выйдет на главную, легко представить :)
            Кстати по моему опыту API хабра частенько не отзывается, полагаю вы это учли?

            Имхо, админам давно пора приделать такую штуку непосредственно на хабре.

            • 0
              Он просто полностью ляжет, и это плохо. Только вот что можно сейчас сделать, не представляю. При тестовой нагрузке он вел себя намного лучше.
              • +2
                Я думаю, что для начала в топике нужно оставить только статические картинки, а не генерить их на сервере — скорее всего именно они кладут ваш сервер, а не переходы на него по ссылке. В том что они будут статичные — ничего страшного нет, главное, чтобы суть передавали.

                Перенос в «I love Habr» спорен — мало кто, узнает о вашем проекте, в блоге не так много людей (по сравнению с 45000 зарегестрированных), неавторизованные тоже не увидят. Но вам виднее.
                • +1
                  Статику уже сделал, да. Но картинки не генерились каждый раз! Они просто отдавались из кэша.

                  Учтите, что сервис пока тестируется. Думаю аудитория «I love Habr» — как раз удачный сегмент пользователей для тестирования.

                  Когда сервис будет готов работать в production-режиме, тогда уж и надо всех информировать.
                  • +1
                    Я прочитал про кэш в топике. Но странно, что они тогда так медленно отдавались. Либо серверу уже стало слишком плохо, либо кэш у вас работает не совсем правильно. Что бета — тоже знаю :)

                    Может вы и правы, докручивайте до релиза.

                    Если хотите ускорить — выложите в открытый доступ код, вместе оптимизнём )
                    • 0
                      Бутылочное горлышко — сервер Apache. Именно по-этому отдавалось из кэша медленно. На счет кода в доступ. Там его не так много, но он пока в сыром состоянии. Надо его причесать, перепроверить на уязвимости, а уже потом открывать. Сейчас я не готов это сделать.
            • 0
              Я опробовал в своём профиле — красиво. Спасибо :)
              • 0
                О, вот теперь я кто :)
              • 0
                Тут возник вопрос с названием. С одной стороны, мне нравится название Хабр́ометр и я специально ставил ударение. Оно привычно звучит (термометр, манометр). С другой стороны, на Хабре все «ХабрА» (хабрасила, хабраредактор).

                Как вы считаете, как лучше назвать: Хабро́метр или Хабраме́тр?
                • +1
                  хаброметр удобнее говорить, лично мне, и я не смотря даже на ударение сразу так и прочел его.
                  • 0
                    Ударение на согласную?
                    • 0
                      ХабрОметр. Выше символ ударения перескачил. А все из-за того, что в тайтле топика надо ставить этот символ перед буквой, а в теле и комментах — за буквой. Иначе он не туда будет показывать. Вот я скопировал в тело из тайтла и в одном месте не поправил. Этовсе касается браузера Opera (в других не проверял)
                  • НЛО прилетело и опубликовало эту надпись здесь
                    • +1
                      Оставьте как есть… будем измерять хаброметром среднюю температуру по больнице :))
                    • 0
                      классно, я себе тоже поставил, радует что будет вестись статистика :)
                      • 0
                        а как часто данные обновляются?
                        • 0
                          Раз в 2 часа, начиная от 00:00 по Москве.
                        • –5
                          Новый сервис КАРМАДРОЧЕРОВ!!! Только смотрите аккуратно! Не натрите ладошки! %)
                          ЗЫ ща я и протестирую на сколько быстро там обновляется информация )))
                          • 0
                            Круто, мне нравится =)
                            • 0
                              В поле «логин» ввожу свой логин на хабре — pxx, указываю валидный e-mail и получаю
                              При попытке загрузки страницы пользователя (http://habrahabr.ru/api/profile//) возникла ошибка. Сервис не может зарегистрировать пользователя, не убедившись, что он зарегистрирован на Хабрахабре.
                              • 0
                                Я только что ввел ваш логин и получил «Регистрация пройдена» (естесвенно ничего не меняя в коде перед этим). Вот ваша страница.

                                Благодаря вашему репорту нашел в коде ошибку, но она не должна была привести к такму результату (два раза делался trim() вместо одного). Возможно проблема с кодировкой? Иначе, как 'pxx' превратилось в '', когда с ним была только одна манипуляция (двойной trim), но при этом прошло проверку [a-zA-Z0-9\-_]{1,100}, я не знаю.

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.