Привет, заходите, располагайтесь. Это уже третий отчёт о наших процессах, и в этот раз об изменениях в издании вам расскажет сразу несколько ребят.
За последний месяц мы не выкатили ничего крупного и заметного вам с первого взгляда. Большинство фичей находятся в разработке, где-то между напряжёнными спринтами и больно падающими на голову багами. Но желание делиться уже не остановить, поэтому в этом выпуске расскажем про парочку проведённых исследований и про проблемы, с которыми сталкиваемся по пути.
Внутри есть опросы — поделитесь мнением, пожалуйста.
Все выпуски теперь можно найти по тегу Tproger Changelog.
Начнём с маленьких радостей: во вставках кода теперь красивый скрол (только в Webkit-браузерах, но это практически все популярные). Стили честно скопированы со StackOverflow.
df = pd.DataFrame(np.random.randint(1, 100, 16).reshape(4, 4), columns=list('efgh'), index=list('abcd'))
***
Нам прислали ещё один отчёт об уязвимости — на этот раз раскрытие файлов, которые не должны были быть публичными. Списки пакетов и зависимостей нашего проекта. Это не очень критично, но облегчает жизнь злоумышленникам: так проще найти дыры в стороннем коде, который мы используем. Я всё исправил, заплатил ещё одну порцию вознаграждения.
***
На прошлой неделе Google обновил инструмент PageSpeed Insights и отчёт о скорости загрузки страниц в Search Console. Вместо времени первой отрисовки контента и задержки ввода стала использоваться Web Vitals — новая концепция поискового гиганта в оценке производительности веба. Я занимался подготовкой к этим изменениям и заранее оптимизировал явные ошибки. Итог — почти все страницы нашего сайта Google теперь считает быстрыми, как на мобильных, так и на десктопе.
Некоторые URL ещё требуют доработок, но теперь явно видно, какие именно и что с ними не так. Больше всего проблем с видеопостами — вставки плеера через iframe
загружаются долго и сдвигают контент. Но я уже знаю, как это исправить.
Google говорит, что нововведения начнут влиять на поисковую выдачу только в следующем году. Но мне кажется, они лукавят, ибо мы стали получать больше трафика примерно в те же даты, когда зелёный график (на картинке выше) пополз вверх.
В прошлом выпуске Changelog была новость про блок «Также рекомендуем», который вы видите после прочтения материала. Сейчас мы работаем над повышением качества рекомендаций в этом блоке, их эффективность видно на графике.

Значения на диаграмме — это CTR (click through rate). Он показывает отношение числа кликов по рекомендации к числу просмотров блока рекомендаций. Мы разбили день на 4 части, по оси OX приведены шестичасовые интервалы
Раньше рекомендации для всех пользователей были общие и строились на основе статистики просмотров наших статей (на графике — fallback). Затем мы персонализировали рекомендации с помощью сервиса Amazon Personalize: каждый пользователь стал получать индивидуальный список рекомендаций (awspersonalize-user-only). Однако для каждого пользователя список был одним и тем же под всеми статьями. Теперь же рекомендации строятся с учетом текущего просматриваемого материала (awspersonalize-user-item).
Увы, но наши текущие нововведения не снискали популярности у читателей: CTR рекомендаций падал с каждым новым внедрением. Чтобы исправить ситуацию, мы планируем поэкспериментировать с разными рецептами Amazon Personalize, а также начать обучать модель рекомендаций в режиме реального времени.
***
Еще расскажу про нашу аналитическую инфраструктуру — особенно интересно будет тем, кто выбирает между готовым решением и своей системой.
Как и многие создатели контента, мы пользуемся Яндекс.Метрикой и Google Analytics. Но также развернули и поддерживаем свой трекер событий на базе опенсорсной платформы Rockstat с ClickHouse в качестве базы данных. Для визуализации данных используем Redash, график по блоку рекомендаций сделан как раз в нем. Это удобный и простой инструмент, который умеет работать с ClickHouse, но с одним минусом: для его использования надо знать SQL, а это подходит не всем сотрудникам.
Я провел небольшое исследование потребностей редакции и оказалось, что Яндекс.Метрика хорошо решает определенные контентные задачи: например, недавно мы вдохнули жизнь в отчет по тематикам:
Поддерживая же свою базу данных, мы можем решать больше задач: отслеживать технические параметры загрузки сайта в разбивке по поведению кеша, смотреть агрегированную статистику с фильтрацией по дате публикации. Подобных возможностей в аналитических платформах общего назначения, то есть не сугубо ориентированных на контент, нет.
Короче говоря: собирая события самостоятельно, мы можем наделять их семантикой, специфичной для наших задач. Например, в Метрике клик будет просто кликом, а в Rockstat — кликом пользователя на закешированной странице по баннеру, относящемуся к рекламной кампании с лимитом в 10 тысяч кликов. Гораздо больше информации, не правда ли?
Более того, в свою базу мы можем собирать события не только с сайта, но и, например, из наших ботов ВКонтакте и Telegram. И все эти данные будут в одном месте.
Но боль от необходимости поддерживать собственную инфраструктуру при всей полезности не уменьшается. Да и я не девопёс, поэтому в ближайшее время мы планируем переезжать на бессерверную облачную инфраструктуру и использовать managed базу данных.
В прошлом месяце мы открыли каналы своих проектов в новом мессенджере от Яндекса с оригинальным названием Яндекс.Мессенджер.
Его особенность в том, что он очень здорово интегрирован в экосистему Яндекса: читать сообщения можно в приложении, браузере или на главной странице.
А чтобы помочь авторам каналов быстрее развиваться и привлекать интересующуюся аудиторию, Яндекс запустил систему рекомендаций. Мы в неё, кстати, успешно попали, и теперь в своих сервисах Яндекс показывает наши каналы и всем рекомендует на них подписаться. Благодаря этому у нас уже есть посты, которые увидели тысячи читателей. А если среди них нет вас, то и вы гляньте, что там в этом Мессенджере происходит. У нас там сейчас открыто 3 канала:
— про разработку в целом: «Типичный программист»;
— про новости технологий, который влияют на нас: «Представляешь,»;
— и программерский юмор: «IT Юмор».
В конце добавлю от себя пару новостей из раздела «прочие шалости».
На сайте теперь вылезает уведомление про использование куки. В этой статье можно прочитать, зачем мы используем эту технологию. Не хотелось добавлять ещё одно всплывающее-закрывающее-пол-экрана окно, но мы обязаны уведомлять вас о сборе данных именно таким образом.
***
В паблике «Типичный программист» ВКонтакте провели пятничную трансляцию на тему инфобеза и внезапно собрали больше 30 000 просмотров. Планируем попробовать ещё подобные трансляции — не пропустите.
Editor’s choice: три избранных материала за окошком месяц май
Статья с довольно очевидной информацией, но получают её обычно методом проб и ошибок. Поможет не наступить на грабли, особенно если только начинаете программировать.
Забавный тест, всегда интересно узнать, «кто ты», а тут ещё и известные личности.
Наглядная статья, и обратите внимание на опрос в конце — стали добавлять интерактив, потому что интересно мнение комьюнити и хочется, чтобы вы приходили на площадку не просто почитать статьи, но и обмениваться мнениями, спрашивать совета и делиться своими историями.