будни

Понял, что всё движется в правильную сторону, когда услышал сегодня от одного редактора « мы с тремя кликами и нашей конверсией не получим ни одного шера!», а от
заместителя главреда, обсуждающего баги в игре « попробуем воспроизвести».

«Журналистика DKIM»

https://meduza.io/feature/2017/11/29/medvedev-snova-dast-intervyu-telekanalam-v-pryamom-efire-kak-eto-ustroeno-vse-voprosy-soglasovany

Обратите внимание, как наш редактор угадал, какую строчку из исходника письма нужно удалить, чтобы цифровая подпись сошлась. МАГИЯ

Сделали картографическую игру с Альфа-Банком — вводишь свой текущий адрес и он кидает тебя в аналогичное место в городе мечты https://meduza.io/games/uznayte-gde-by-vy-zhili-v-gorode-svoey-mechty

Проект с использованием Google Maps — каждый раз страх не влезть в бесплатный лимит «100 тысяч API запросов в сутки».

Позвонил в этот раз в гугл, спросил — что делать, если запросов больше. Говорят, лицензия на миллион запросов в год (не в сутки) стоит 10 тысяч евро. Теперь вы тоже об этом знаете 🙈

Провели фейслифт шер-картинок.

🖌 Настя Яровая 🛠 Кирилл Балясников, Боря Горячев

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

Кстати, интересная деталь — как мы храним токены для соцсетей. Их, как вы понимаете, дофига. Хочется:
1. иметь возможность легко посмотреть и отредактировать токены в рантайме;
2. иметь защиту от того, чтобы запостить со стейджинга в продакшен.

Мы решили хранить их в основной базе данных проекта (pg), но с перфиксом env (production | staging). Таким образом, эти токены легко редактировать real-time. При этом нет опасности, что при импорте продакшен данных на стейджинг мы начнем фигачить тестовые статусы в основной паблик. И ноль дополнительных зависимостей. Достаточно элегантно, мне кажется.

Буду очень рад, если кто-то подскажет простую централизованную систему хранения секретов. Сейчас мне кажется, что, ничего проще Vault от HashiCorp нет и в любой мало-мальски большой компании без этой дополнительной зависимости (и сложности) не обойтись :(

Выпустили книгу, сделали для неё лендинг https://special.meduza.io/book/

Хороший повод рассказать, как мы делаем такие страницы.

У нас есть git-репа static, пуш в master-ветку которого триггерит пулл на сервере, раздающем всю папку в meduza.io/static. Так отдаются страницы типа «О проекте», много разных временных файлов и спецпроекты.

Если спецпроекту нужен красивый адрес — создается nginx роут в домене special.meduza.io. Пример — конференция «Шторм» и книга «Как жить».

Обратите внимание, мы не используем отдельные домены для каждого проекта. Заведении новых доменов, выпуск SSL-сертификатов, включение anti-DDoS механизмов, когда нужно быстро переключить IP адреса — слишком много задач для автоматизации. В результате вся user-facing Медуза живет на двух доменах: основной meduza.io для читателей и mdza.io для коротких ссылок.

Тот момент, когда больше чем через год узнаешь, что твой провайдер не имел кабельного доступа в здание и предоставлял интернет через радиоканал 🙈

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

Каждая игра — отдельное приложение. Они встраиваются внутрь сайта Медузы как iframe. При этом мобильные приложения открывают игры как webview. Получается следующая схема: нативное приложение → webview с сайтом → iframe с игрой.

При начале дрега игра посылает postMessage сообщение сайту, он в свою очередь дергает java через jsBridge. Приложение блокирует скролл для этого webview. На дроп прокидывается обратное событие на разблокирование скролла.

И всё это — для красивых тестов.

Вот и первое открытие: в фб можно было выбрать continuous stream.

У обычных лайвов лимит продолжительности 4 часа, у continious live — без ограничений. При этом continious stream не сохраняет записи после трансляции, не пушит уведомлений и не показывает продвинутой статистики вроде concurrent viewers.

Стандартный софт для трансляций (vMix) имеет встроенную опцию трансляции в фб, но создает обычный лайв и не даёт выбрать continuous stream. Имейте в виду.