Новое

страница 144 из 174

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

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

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

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

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

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

Продолжаем изобретать велосипеды. В этот раз мы запрогали свой собственный buffer.com с преферансом и поэтессами.

Антихайп — система постинга в соцсети. Вы видите перед собой столбцы соцсетей, в которые можно «затянуть» материалы Медузы (и написать подводку, если это не сделал автор материала прямо на странице редактирования статьи). Готово. Периодичность постинга регулируется, при необходимости можно отправить пост в соцсеть мгновенно. И да, оно умеет работать с видео, то есть заливаешь видео в Монитор (основную админку Медузы), затягиваешь его в Антихайпе и вуаля — нативное Facebook video уже в лентах подписчиков. Пока что поддерживаем Facebook, Twitter и Вконтакте.

Elixir + React в руках Бори Горячева и Никиты Комаркова творят чудеса. Это один из проектов, которые не только запрограммировал, но и придумал Боря. Также, в этот раз, у нас был выделенный член редакции в команде — Султан отвечал за тестирование и обсуждение продукта с редакцией.

Подробное описание: https://medium.com/meduza-how-it-works/c8e1b76b0983

«Триумф коробочек или обсессия порядком». Думаю, у всех техдиров есть желание разложить всё по полочкам. Разбирать кладовки — мой guilty pleasure

Выпустили книгу, сделали для неё лендинг 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. Имейте в виду.