Tproger Changelog: сделали для вас за май 2020

Привет, заходите, располагайтесь. Это уже третий отчёт о наших процессах, и в этот раз об изменениях в издании вам расскажет сразу несколько ребят.

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

Внутри есть опросы — поделитесь мнением, пожалуйста.

Все выпуски теперь можно найти по тегу Tproger Changelog.

Алексей

Алексей, генеральный директор Tproger

Начнём с маленьких радостей: во вставках кода теперь красивый скрол (только в 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, потому что там есть AMP-версия сайта

Некоторые 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 базу данных.

Павел Берашевич

Павел Берашевич, SMM Tproger

В прошлом месяце мы открыли каналы своих проектов в новом мессенджере от Яндекса с оригинальным названием Яндекс.Мессенджер.

Знаете вообще, кто такой этот Мессенджер?

или посмотреть результаты

Загрузка ... Загрузка ...

Его особенность в том, что он очень здорово интегрирован в экосистему Яндекса: читать сообщения можно в приложении, браузере или на главной странице.

А чтобы помочь авторам каналов быстрее развиваться и привлекать интересующуюся аудиторию, Яндекс запустил систему рекомендаций. Мы в неё, кстати, успешно попали, и теперь в своих сервисах Яндекс показывает наши каналы и всем рекомендует на них подписаться. Благодаря этому у нас уже есть посты, которые увидели тысячи читателей. А если среди них нет вас, то и вы гляньте, что там в этом Мессенджере происходит. У нас там сейчас открыто 3 канала:

— про разработку в целом: «Типичный программист»;
— про новости технологий, который влияют на нас: «Представляешь,»;
— и программерский юмор: «IT Юмор».

Саша Ушатинская

Саша Ушатинская, главред Tproger

В конце добавлю от себя пару новостей из раздела «прочие шалости».

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

***

В паблике «Типичный программист» ВКонтакте провели пятничную трансляцию на тему инфобеза и внезапно собрали больше 30 000 просмотров. Планируем попробовать ещё подобные трансляции — не пропустите.

Editor’s choice: три избранных материала за окошком месяц май

Статья с довольно очевидной информацией, но получают её обычно методом проб и ошибок. Поможет не наступить на грабли, особенно если только начинаете программировать.

Забавный тест, всегда интересно узнать, «кто ты», а тут ещё и известные личности.

Наглядная статья, и обратите внимание на опрос в конце — стали добавлять интерактив, потому что интересно мнение комьюнити и хочется, чтобы вы приходили на площадку не просто почитать статьи, но и обмениваться мнениями, спрашивать совета и делиться своими историями.

Призы для программистов — нужно пройти опрос. Больше ответов — больше шансы.