Как стать автором
Обновить
16
0
Игорь Стрыхарь @sublimity

Tex.Дир.

Отправить сообщение

Хранение метрик: как мы перешли с Graphite+Whisper на Graphite+ClickHouse

Время на прочтение7 мин
Количество просмотров25K

Всем привет! В своей прошлой статье я писал об организации модульной системы мониторинга для микросервисной архитектуры. Ничего не стоит на месте, наш проект постоянно растёт, и количество хранимых метрик — тоже. Как мы организовали переход с Graphite+Whisper на Graphite+ClickHouse в условиях высоких нагрузок, об ожиданиях от него и результатах миграции читайте под катом.


Читать дальше →
Всего голосов 55: ↑55 и ↓0+55
Комментарии36

Как собрать статистику с веб-сайта и не набить себе шишек

Время на прочтение9 мин
Количество просмотров25K

enter image description here


Привет, Хабр! Меня зовут Слава Волков, и я фронтенд-разработчик в Badoo. Сегодня я хотел бы немного рассказать про сбор статистики с фронтенда.


Мы знаем, что аналитика позволяет оценить эффективность работы любого веб-сайта, улучшить его работу, а значит, повысить уровень продаж и усовершенствовать взаимодействие пользователей с сайтом. Проще говоря, аналитика – это способ контроля над процессами, происходящими на веб-сайте. В большинстве случаев для обычных сайтов достаточно установить Google Analytics или «Яндекс.Метрику» – их возможностей вполне достаточно.


Но как быть, когда стандартных средств мониторинга недостаточно? Или когда собираемая статистика должна быть интегрирована в вашу собственную систему аналитики для отображения полноценной картины происходящего между разными компонентами? В таком случае, скорее всего, вам придется разработать свою систему. А вот как лучше отправлять статистику с ваших веб-сайтов, какие проблемы могут при этом возникнуть и как их избежать, я расскажу в этой статье. Заинтересовались? Добро пожаловать под кат.

Всего голосов 53: ↑48 и ↓5+43
Комментарии0

Открытый курс машинного обучения. Тема 2: Визуализация данных c Python

Время на прочтение15 мин
Количество просмотров414K

Второе занятие посвящено визуализации данных в Python. Сначала мы посмотрим на основные методы библиотек Seaborn и Plotly, затем поанализируем знакомый нам по первой статье набор данных по оттоку клиентов телеком-оператора и подглядим в n-мерное пространство с помощью алгоритма t-SNE. Есть и видеозапись лекции по мотивам этой статьи в рамках второго запуска открытого курса (сентябрь-ноябрь 2017).


UPD 01.2022: С февраля 2022 г. ML-курс ODS на русском возрождается под руководством Петра Ермакова couatl. Для русскоязычной аудитории это предпочтительный вариант (c этими статьями на Хабре – в подкрепление), англоговорящим рекомендуется mlcourse.ai в режиме самостоятельного прохождения.


Сейчас статья уже будет существенно длиннее. Готовы? Поехали!

Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Комментарии45

8 JavaScript библиотек для визуализации данных в виде интерактивных карт

Время на прочтение7 мин
Количество просмотров43K
Визуализация данных стала неотъемлемой частью жизни практически каждого веб-разработчика. Если построение графиков, диаграмм, карт и дашбордов до сих пор никогда не были вашей головной болью, просто немного подождите: наверняка и вы скоро вступите в наш «клуб».

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

Заглавная картинка: визуализация данных с помощью интерактивных карт
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии14

Серьезное проектирование серьезных сайтов. Часть 1. Аналитика

Время на прочтение25 мин
Количество просмотров40K
Почти 4 года назад мы написали одну из самых популярных статей в рунете про проектирование больших проектов с таким же названием, как и эта: часть 1 и часть 2. Только на Хабре её прочитало более 170 тыс. человек, а вообще она публиковалась в самых разных изданиях мира. Более 1000 стартапов использовали наработки из этой статьи для проектирования, и это только те, о которых я слышал и которые нам писали. Но время не стоит на месте, а мы постоянно развиваемся. С тех пор наша технология проектирования значительно эволюционировала и стала еще лучше. В этой статье мы опишем нашу обновленную технологию проектирования и покажем много живых примеров для каждой стадии.

Проектирование — это первый этап разработки любого большого проекта. Это основа его успешности. Когда мы строим небоскреб, нам нужно продумать все — до каждого болтика: внешний вид здания, количество этажей, локации внутри, используемые материалы. А еще нужно сделать его устойчивым к землетрясениям, позаботиться об экологии, сделать в нем офисы и магазины. Это все решается на этапе проектирования небоскреба. И проектирование в данном случае — это гарантия качества будущего строения, что оно не развалится и не похоронит под обломками людей. Этот этап позволяет понять властям города и владельцам, как именно будет выглядеть здание в итоге, увидеть предварительную проектную модель, провести точные расчеты.


Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии15

Агрегация несущих в LTE или на что обратить внимание при покупке следующего смартфона

Время на прочтение4 мин
Количество просмотров168K
Скорость мобильного интернета зависит как от оператора связи, так и от вашего устройства. Когда при описании сети оператора используются термины 4G+ или LTE-Advance, то речь идет о том, что на сети поддерживается технология агрегации несущих, она-то и обеспечивает более высокие скорости мобильного интернета. Что это такое, как это уже реализовано на сетях российских операторов мобильной связи, какие смартфоны ее поддерживают – об этом данная статья.
Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии39

Масштабирование ClickHouse, управление миграциями и отправка запросов из PHP в кластер

Время на прочтение11 мин
Количество просмотров43K

В предыдущей статье мы поделились своим опытом внедрения и использования СУБД ClickHouse в компании СМИ2. В текущей статье мы затронем вопросы масштабирования, которые возникают с увеличением объема анализируемых данных и ростом нагрузки, когда данные уже не могут храниться и обрабатываться в рамках одного физического сервера. Также мы расскажем о разработанном нами инструменте для миграции DDL-запросов в ClickHouse-кластер.


Два шарда по две реплики


Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии0

Как запустить ClickHouse своими силами и выиграть джекпот

Время на прочтение15 мин
Количество просмотров77K

Мы решили описать простой и проверенный путь для тех, кто хочет внедрить аналитическую СУБД ClickHouse своими силами или просто испробовать ClickHouse на собственных данных. Именно этот путь прошли мы сами в новостном агрегаторе СМИ2 и добились впечатляющих результатов.


Clickhouse-client


В предисловии статьи — небольшой рассказ о наших попытках внедрить Druid и InfluxDB. Почему после успешного запуска ClickHouse мы смогли отказаться от использования InfiniDB и Cassandra.


Всего голосов 59: ↑59 и ↓0+59
Комментарии50

Эволюция структур данных в Яндекс.Метрике

Время на прочтение17 мин
Количество просмотров44K
Яндекс.Метрика сегодня это не только система веб-аналитики, но и AppMetrica — система аналитики для приложений. На входе в Метрику мы имеем поток данных — событий, происходящих на сайтах или в приложениях. Наша задача — обработать эти данные и представить их в подходящем для анализа виде.



Но обработка данных — это не проблема. Проблема в том, как и в каком виде сохранять результаты обработки, чтобы с ними можно было удобно работать. В процессе разработки нам приходилось несколько раз полностью менять подход к организации хранения данных. Мы начинали с таблиц MyISAM, использовали LSM-деревья и в конце концов пришли к column-oriented базе данных. В этой статье я хочу рассказать, что нас вынуждало это делать.

Яндекс.Метрика работает с 2008 года — более семи лет. Каждый раз изменение подхода к хранению данных было обусловлено тем, что то или иное решение работало слишком плохо — с недостаточным запасом по производительности, недостаточно надёжно и с большим количеством проблем при эксплуатации, использовало слишком много вычислительных ресурсов, или же просто не позволяло нам реализовать то, что мы хотим.
Читать дальше →
Всего голосов 57: ↑55 и ↓2+53
Комментарии22

Чат-бот приложения через skype, jabber и whatsapp

Время на прочтение15 мин
Количество просмотров93K
Привет!
Хотелось бы рассказать вам историю создания одного незамысловатого развлекательного сервиса чат ботов.

Вступление

О себе: Хабр читаю давно (лет этак 5), а вот зарегистрировался месяц назад, так как очень хотелось поделиться. Работаю в IT компании инженером по тестированию. Но меня всегда тянуло к разработке. И лет 7 назад занялся freelance параллельно основной работе. Начинал, как и все с малого, разбирался при помощи google. Писал всякие web непотребства. Все это ради достижения неких финансовых целей. Да и вообще вся жизнь состояла из цикла: поиск цели – достижение любыми средствами – удовлетворение – поиск новой цели. Так было и с freelance.

Переломный момент

Шла зима 2012/2013 года. Работал я на freelance над проектом онлайн-консультанта, и мне надо было сделать интеграцию с jabber и skype, то есть чтобы операторы могли работать с клиентом печатая в свой im клиент, а пользователь сайта получал это все на web. После поиска в google, оказалось, что с jabber все просто, любой xmpp сервер на выбор (я выбрал ejabbered) и библиотечка для работы с ним JAXL (взял на github), тогда еще версии 2.х. А вот со Skype были проблемы: на сайте в разделе Developers предлагался какой-то kit за деньги (и лицензия, запрещающая серверное использование), с ненужными мне активациями и с упоминанием про какой-то api. А хотелось чего-то более простого. И тут я наткнулся на этот api в «Доступ к Skype API используя PHP на *nix системах», сейчас на сайте skype упоминания о работе с api отсутствуют уже, хотя тогда было, и скачал pdf по работе с ним через dbus. Там было все то, что я искал.
Подробности
Всего голосов 27: ↑24 и ↓3+21
Комментарии8

Правильный дизайн API: что такое «один», «много», «нуль» и «ничто»

Время на прочтение9 мин
Количество просмотров20K
Здравствуйте, наши постоянные и эпизодические читатели.

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

Приятного чтения
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии6

Соединяй и властвуй. Нестандартный взгляд на keep-alive

Время на прочтение7 мин
Количество просмотров52K


Большинство современных серверов поддерживает соединения keep-alive. Если на страницах много медиаконтента, то такое соединение поможет существенно ускорить их загрузку. Но мы попробуем использовать keep-alive для куда менее очевидных задач.
Читать дальше →
Всего голосов 41: ↑33 и ↓8+25
Комментарии10

Еще одна статья про индексацию ajax-сайтов поисковиками

Время на прочтение4 мин
Количество просмотров43K
image

Стильно, модно, молодежно сегодня делать сайт на AJAX, с точки зрения пользователя — это быстро и удобно, а у поисковых роботов с такими сайтами могут быть проблемы.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии60

Почему вы никогда не должны говорить «никогда»

Время на прочтение7 мин
Количество просмотров56K
Эта моя публикация чуть более чем полностью является ответом на перевод статьи «Почему вы никогда не должны использовать MongoDB». Статья, которая, по сути, рекомендует держаться подальше от MongoDB, является самой заплюсованной в хабе. И это звучит как приговор. Поэтому логично либо хаб закрыть и больше никогда не читать, либо написать ещё более рейтинговое опровержение. Конечно же, я выбрал второй вариант, рискуя своим рейтингом и кармой (ввиду крайней холиварности в комментах).

image
Картинка самоиронии

Читать дальше →
Всего голосов 136: ↑106 и ↓30+76
Комментарии211

Именование сложных действий в REST API

Время на прочтение3 мин
Количество просмотров61K
Во всех руководствах в описаниях REST дают простые примеры, типа вот вам пользователи, они будут ресурсом /users, вот вам один пользователь, он будет /users/[id] и действия с ним добавить\удалить\изменить.

А что если действия сложные или комплексные и не вписываются в GET\POST\DELETE?

Читать дальше →
Всего голосов 64: ↑51 и ↓13+38
Комментарии113

Решение задачи сброса тяжелой логики на одну из множества открытых вкладок

Время на прочтение2 мин
Количество просмотров14K
Не так давно я начал разрабатывать библиотеку DuelJS, которая предоставила удобный интерфейс для определения состояния вкладки Master (активная) или Slave (неактивная). Однако позже мне начали поступать предложения для оптимизации соединений по веб-сокетам. Подход DuelJS: если вкладка активна -> держать соединение, если неактивна -> класть — является не продуктивным. На помощь приходит расширение TabNinja.



Читать дальше →
Всего голосов 27: ↑22 и ↓5+17
Комментарии20

Новый инструмент проверки структурированных данных, документация и не только

Время на прочтение2 мин
Количество просмотров18K
Разметка структурированных данных позволяет показывать дополнительную информацию с вашего сайта в результатах поиска и сервисах Google. Мы рады представить несколько обновлений, которые помогут создавать разметку на сайте:

Инструмент проверки структурированных данных


Новый Инструмент проверки структурированных данных лучше показывает то, как Google интерпретирует разметку структурированных данных на странице сайта.
Инструмент проверки структурированных данных
Что именно можно тестировать
Всего голосов 17: ↑14 и ↓3+11
Комментарии1

Основы статистики: просто о сложных формулах

Время на прочтение6 мин
Количество просмотров296K

Статистика вокруг нас


Статистика и анализ данных пронизывают практически любую современную область знаний. Все сложнее становится провести границу между современной биологией, математикой и информатикой. Экономические исследования и регрессионный анализ уже практически неотделимы друг от друга. Один из известных методов проверки распределения на нормальность — критерий Колмогорова-Смирнова. А вы знали, что именно Колмогоров внес огромный вклад в развитие математической лингвистики?

Еще будучи студентом психологического факультета СПбГУ, я заинтересовался когнитивной психологией. Кстати, Иммануил Кант не считал психологию наукой, так как не видел возможности применять в ней математические методы. Мои текущие исследования посвящены моделированию психических процессов, и я надеюсь, что такие направления в современной когнитивной психологии, как вычислительные и коннективисткие модели, смягчили бы его отношение!
Читать дальше →
Всего голосов 51: ↑48 и ↓3+45
Комментарии14

Разрабатываем систему аналитики

Время на прочтение9 мин
Количество просмотров15K
Данный пост открывает цикл статей о разработке аналитической системы мониторинга действий пользователей. В первой статье мы расскажем о том как собирать необходимые данные с мобильных приложений под андроид и айос.

package Birdy::Stat::Stalin;
#
# Это Сталин, он всё про всех знает
# Кто и что делает, кто и с кем спит
#
# ########################################################
# ########################################################
#
#                 !#########       #
#               !########!          ##!
#            !########!               ###
#         !##########                  ####
#       ######### #####                ######
#        !###!      !####!              ######
#          !           #####            ######!
#                        !####!         #######
#                           #####       #######
#                             !####!   #######!
#                                ####!########
#             ##                   ##########
#           ,######!          !#############
#         ,#### ########################!####!
#       ,####'     ##################!'    #####
#     ,####'            #######              !####!
#    ####'                                      #####
#    ~##                                          ##~
#
# ########################################################
# ########################################################

Я выбираю красную пилюлю
Всего голосов 32: ↑18 и ↓14+4
Комментарии8

Служба мгновенных собщений своими руками

Время на прочтение6 мин
Количество просмотров1.7K
Все мы привыкли пользоваться аськой, многие этот функционал реализуют в своих проектах, кто-то использует БД, или сервер очередей, например memcacheq. Есть готовые решения, типа eJabber.

Если интересно, как можно сделать это самому, то wellcom под каст, где будет рассмотрена серверная часть «Службы мгновенных сообщений». С клиентской, я надеюсь, разберетесь сами…
Читать дальше →
Всего голосов 24: ↑12 и ↓120
Комментарии17
1

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность