Серым и дождливым питерским вечером пара наших программистов, желая подтянуть знания в JS, HTML и CSS, написали интересный проект для любителей статистики.
Nerd-o-meter — это сервис, позволяющий узнать статистику устройств, с которых пишут твитты. Искать можно как по запросам, так и по конкретным пользователям.
Идея проекта возникла во время посещения «Яндекс.субботника»: наблюдая за тем, как много людей пишут в твиттер по ходу мероприятия, пришло в голову, что интересно было бы узнать статистику устройств, с которых они пишут и посмотреть как она варьируется от конференции к конференции.
Чуть позже это трансформировалось в идею небольшого сервиса, показывающего статистику по твиттер-клиентам: эта информация элементарно извлекается из API твиттера.
Сначала это представлялось в виде классического приложения, например на Rails, но в какой-то момент стало понятно что серверная часть тут попросту лишняя: всё что нужно, в частности доступ к Twitter API и построение графиков, доступно прямо в браузере. Таким образом, получился небольшой и легковесный single-page app.
Для построения диаграмм использовался Google Chart Tools, мельком взглянув в сторону нескольких альтернативных решений.
В поиске необходимых для разработки библиотек (хотя в таком небольшом проекте можно было, наверное, обойтись и без них) мне помог отличный сборник microjs.com.
Помимо Chart Tools пригодились следующие библиотеки:
В результате мы получили рабочий инструмент для сбора статистики, за что хочется поблагодарить digal, damnerd и Филиппа Нурулина. Теперь мы знаем, например, что ответственный за твиттер Яндекса человек неравнодушен к продукции Apple :-)
P.S. Благодаря комментариям в Nerd-o-meter добавлена сортировка результатов по популярности.
Nerd-o-meter — это сервис, позволяющий узнать статистику устройств, с которых пишут твитты. Искать можно как по запросам, так и по конкретным пользователям.
Идея
Идея проекта возникла во время посещения «Яндекс.субботника»: наблюдая за тем, как много людей пишут в твиттер по ходу мероприятия, пришло в голову, что интересно было бы узнать статистику устройств, с которых они пишут и посмотреть как она варьируется от конференции к конференции.
Чуть позже это трансформировалось в идею небольшого сервиса, показывающего статистику по твиттер-клиентам: эта информация элементарно извлекается из API твиттера.
Создание
Сначала это представлялось в виде классического приложения, например на Rails, но в какой-то момент стало понятно что серверная часть тут попросту лишняя: всё что нужно, в частности доступ к Twitter API и построение графиков, доступно прямо в браузере. Таким образом, получился небольшой и легковесный single-page app.
Для построения диаграмм использовался Google Chart Tools, мельком взглянув в сторону нескольких альтернативных решений.
В поиске необходимых для разработки библиотек (хотя в таком небольшом проекте можно было, наверное, обойтись и без них) мне помог отличный сборник microjs.com.
Помимо Chart Tools пригодились следующие библиотеки:
- Zepto.js: легковесная замена jquery, нацеленная в первую очередь на мобильные webkit-браузеры. Тем не менее, вполне пристойно работает и в качестве «взрослой библиотеки». В ходе работы был найден небольшой баг при работе с FF, но был быстро исправлен патчем, который был позже отправлен (и принят) обратно в проект zepto на GitHub. Используется для манипуляций DOM и аяксовых запросов к API.
- Underscore.js: на работе один из программистов использовал Scala, поэтому без удобных функциональных способов работы с коллекциями (хотя бы map/filter) он чувствовал себя как без рук. Underscore предоставлял такую возможность и некоторые другие ФП-плюшки.
- SugarSkull: первая версия приложения использовала самописный механизм для перманентных ссылок, способных работать целиком на стороне клиента. С введением ещё одного вида статистики (по твитам конкретного пользователя), схема урлов усложнилась и была прикручена эта библиотека. Она представляет собой простой механизм диспатчинга клиент-сайд урлов.
В результате мы получили рабочий инструмент для сбора статистики, за что хочется поблагодарить digal, damnerd и Филиппа Нурулина. Теперь мы знаем, например, что ответственный за твиттер Яндекса человек неравнодушен к продукции Apple :-)
P.S. Благодаря комментариям в Nerd-o-meter добавлена сортировка результатов по популярности.