В середине 2018 года в Sports.ru задумались о переезде на новый WYSIWYG-редактор текста для пользовательских постов. С июня 2019 года редактор работает в режиме бета-версии. За это время мы решили множество проблем, связанных как с проектированием архитектуры всего сервиса, так и с реализацией самого редактора в браузере на основе библиотеки ProseMirror, и решили поделиться своим опытом.
Компания Sports.ru | Tribuna Digital временно не ведёт блог на Хабре
Сначала показывать
Пишем простой WYSIWYG-редактор с помощью ProseMirror
7 мин
9.1KТуториал
Когда в Sports.ru понадобился свой WYSIWYG-редактор, мы решили сделать его на основе библиотеки ProseMirror. Одной из ключевых особенностей этого инструмента является модульность и широкие возможности кастомизации, поэтому с его помощью можно очень тонко подогнать редактор под любой проект. В частности, ProseMirror уже используют в The New York Times и The Guardian. В этой статье мы расскажем о том, как с помощью ProseMirror написать свой WYSIWYG-редактор.
+10
Внедряем Sign in with Apple в свое iOS приложение
2 мин
11KТуториал
На WWDC 2019 Apple в очередной раз нарушила покой iOS разработчиков — представила новую систему авторизации пользователей Sign in with Apple. Теперь все iOS приложения, которые используют сторонние системы авторизации (Facebook, Twitter, etc.), должны в обязательном порядке реализовать Sign in with Apple, иначе выгонят из AppStore. Мы решили не испытывать судьбу и побежали внедрять эту фичу. Как именно мы это сделали — узнаете под катом.
+6
Добавляем Sign in with Apple на back-end
2 мин
11KТуториал
На WWDC 2019 Apple представила новую систему авторизации пользователей — Sign in with Apple. Возникла задача интегрировать её в наш back-end и синхронизировать её с уже существующими методами авторизации при помощи email, Google и Facebook. За задачу взялся наш коллега kurenkoff, он и является автором данной статьи. Заинтересовавшихся просим под кат.
+7
+12
Истории
За какие футбольные клубы болеют в разных районах городов мира
1 мин
18KДля международного футбольного приложения Scores&Video мы собираем лучшие фото из Instagram и Foursquare по каждому матчу, получается оперативная и атмосферная лента. У нас накопилось несколько миллионов фото болельщиков вместе с их геоданными. Мы решили выяснить, как распределены их пристрастия в пространстве и какие районы Москвы по-настоящему спартаковские.
+11
Как мы используем API Giphy для тематических гифок в футбольном статус-боте
3 мин
6.3KНаш отдел аналитики в свободное время выращивает бота, который находит интересные закономерности в футбольных статистических данных и пишет про это статусы у нас на Sports.ru. Робота зовут FRED, получается у него примерно так:
+15
Как устроена инфраструктура обработки данных Sports.ru и Tribuna.com?
11 мин
29KВ первом посте об аналитической системе Sports.ru и Tribuna.com мы рассказали о том, как используем нашу инфраструктуру в повседневной жизни: наполняем контентом рекомендательную систему, наблюдаем за бизнес-метриками, ищем среди пользовательского контента бриллианты, находим ответы на вопросы “Как работает лучше?” и “Почему?”, нарезаем пользователей для почтовых рассылок и строим красивые отчеты о деятельности компании. Всю техническую часть повествования мы скромно спрятали за этой схемой:
Читатели законно потребовали продолжить повествование со смешными котиками, а olegbunin пригласил рассказать о всем, что было скрыто, на РИТ++. Что ж, изложим некоторые технические детали – в продолжении веселого поста.
Читатели законно потребовали продолжить повествование со смешными котиками, а olegbunin пригласил рассказать о всем, что было скрыто, на РИТ++. Что ж, изложим некоторые технические детали – в продолжении веселого поста.
+42
Как мы используем инфраструктуру обработки данных в Sports.ru и Tribuna.com?
6 мин
47KГод назад мы отказались от всех публичных счетчиков в пользу закрытых сервисов и собственной инфраструктуры обработки данных. Собирая на Олимпиаде по 10 млн. хитов в сутки, мы нащупали предел доброты Google Analytics, за которым бесплатное обслуживание уже не возможно. Но теперь у нас есть свой лунапарк со сверткой и графиками, поэтому мы можем легко снизить интенсивность использования GA, сохранив за ним только аудиторские функции. О том, как мы собираем данные и как используем их в своей работе – в простыне с веселыми картинками внутри.
+79
Сила слова. Как простое объяснение спасло взаимоотношения с пользователями
3 мин
52KМедийный контент окупается по двум моделям – прямая плата за него пользователями и реклама. Ни к тому, ни к другому особой любви пользователи, понятно, не испытывают. Не случайно картинка с отзывами российских пользователей Google Play на музыкальное приложение Гугла стала мемом:
Что-то похожее пережили и мы на Sports.ru.
Что-то похожее пережили и мы на Sports.ru.
+42
Как сделать CDN для своего сайта и почему это полезно для высоконагруженных проектов
6 мин
133KГлавная задача отдела эксплуатации Sports.ru и Tribuna.com — масштабирование сетевой инфраструктуры в условиях постоянного роста трафика (за 1,5 года трафик и кол-во запросов в секунду выросло в два раза), регулярных пиковых нагрузок и аудитории, распределенной по разным странам. Для решения этой задачи мы используем разные технологии; одна из них — создание собственной CDN (сети доставки контента), которая позволяет сократить нагрузку, усилить защиту от DDoS-a и ускоряет загрузку сайта в удаленных регионах. Мы решили поделиться своим опытом в этой области и составили краткое практическое руководство для системных администраторов по разворачиванию и эксплуатации своей CDN.
+35
Мобильные приложения и декомпозиция медиа
3 мин
3.8KЕсли еще полтора-два года назад у крупных медийных издателей были сомнения, так ли важен для них концепт мобильных приложений (сервисными пользовались поначалу куда активнее, чем медийными), то сейчас этот вопрос уже не стоит. Ответ: жизненно важен. Например, в августе уже 35% прочтений контента наших Sports.ru и Tribuna.com делается с помощью приложений для смартфонов и планшетов. Причем рост этой доли только ускоряется, и за 50% эта цифра перевалит, похоже, уже к Олимпиаде в Сочи.
+9
Кастомизация социальных кнопок
3 мин
45K Многие из нас так или иначе сталкивались с проблемой кастомизации кнопок соцсетей, а многие ещё столкнутся. Недавно нам на Sports.ru пришлось решать задачу, как не только настроить внешний вид «лайков», но и разместить на одной странице сразу несколько блоков социальных кнопок, относящихся к разным текстовым блокам.
В этом топике мы расскажем, как решили эту проблему в своем спецпроекте (осторожно, он рекламный), и поделимся готовым и, что немаловажно, достаточно гибким решением.
В этом топике мы расскажем, как решили эту проблему в своем спецпроекте (осторожно, он рекламный), и поделимся готовым и, что немаловажно, достаточно гибким решением.
+28
Fantasy-спорт: что это, зачем это, и как это влияет на реальную жизнь
5 мин
27KКогда в первом туре текущего чемпионата России ЦСКА обыграл пермский «Амкар», главным героем матча стал защитник Сергей Игнашевич, забивший оба гола в матче. Мало кто знал в тот момент, впрочем, что к радости Сергея примешивалась легкая досада: он не успел поставить себя капитаном в своей фэнтези-команде и лишился 18 очков. Защитник слишком поздно узнал, что его партнер Думбия не выйдет играть в основе, и успел к ноутбуку лишь в 13:06, тогда как последние перестановки можно было делать за час до матча. Позже Сергей рассказал о достижениях и принципах формирования своей команды Ignashevich team на личном сайте и своем блоге на Sports.ru.
Как вы, наверное, уже поняли, смысл фэнтези-футбола в том, чтобы составить виртуальную команду из реальных игроков и получать очки за их полезные действия в реальных играх, соревнуясь с другими виртуальными командами. Мы хотим немного рассказать о том, почему игроки сборной России меньше чем за час до реальных матчей думают о каких-то играх в интернете, откуда эта игра взялась и как она развивается в мире и у нас на Sports.ru.
Как вы, наверное, уже поняли, смысл фэнтези-футбола в том, чтобы составить виртуальную команду из реальных игроков и получать очки за их полезные действия в реальных играх, соревнуясь с другими виртуальными командами. Мы хотим немного рассказать о том, почему игроки сборной России меньше чем за час до реальных матчей думают о каких-то играх в интернете, откуда эта игра взялась и как она развивается в мире и у нас на Sports.ru.
+6
Ближайшие события
8 октября – 4 декабря
Онлайн
Больше событий в календаре
Разработка
Другое
Больше событий в календаре
Разработка
Менеджмент
Больше событий в календаре
Разработка
Аналитика
Больше событий в календаре
Разработка
Маркетинг
Другое
Больше событий в календаре
Менеджмент
Другое
Больше событий в календаре
Разработка
Маркетинг
Другое
Вставить все: виджеты со спортивной информацией для внешних сайтов
3 мин
6.1KЛюди, интересующиеся футболом, любят оценки — в первую очередь, игры футболистов. Раньше это была привилегия газет — для читателей эти бесконечные «Баранов (5,5)» зачастую были чуть ли не основной информацией о матче. Сейчас за действиями игроков можно следить разными способами (и не зря «СОГАЗ — чемпионат России по футболу» в честь программы для интернет-телевидения в народе переименовали в «SopCast — чемпионат России по футболу») — но споров об уровне игры меньше не становится, поскольку никаких универсальных объективных показателей по-прежнему не существует.
Мы на Sports.ru хотели, с одной стороны, вовлечь в оценивание футболистов как можно больше людей — полагая, что средние данные будут нести больше смысла. С другой стороны, болельщики склонны группироваться по интересам и не доверять мнению людей из других группировок — поэтому мы решили сделать для них возможность оценивать игроков там, где им хочется, и так, чтобы никто больше им не мешал — скажем, в собственных сообществах и на фанатских сайтах. В результате мы разработали настраиваемый веб-виджет для оценки игроков, который легко вставить на собственный сайт или в блог. Все данные по оценкам собираются у нас, но есть возможность отображать в виджете оценки только тех, кто проголосовал через него. Пока, конечно, виджет еще нельзя вставить прямо в газету (как мы поступили в иллюстрации к этому топику с венгерской Nemzeti Sport), но это, в общем-то, проблема в первую очередь для газет.
Мы на Sports.ru хотели, с одной стороны, вовлечь в оценивание футболистов как можно больше людей — полагая, что средние данные будут нести больше смысла. С другой стороны, болельщики склонны группироваться по интересам и не доверять мнению людей из других группировок — поэтому мы решили сделать для них возможность оценивать игроков там, где им хочется, и так, чтобы никто больше им не мешал — скажем, в собственных сообществах и на фанатских сайтах. В результате мы разработали настраиваемый веб-виджет для оценки игроков, который легко вставить на собственный сайт или в блог. Все данные по оценкам собираются у нас, но есть возможность отображать в виджете оценки только тех, кто проголосовал через него. Пока, конечно, виджет еще нельзя вставить прямо в газету (как мы поступили в иллюстрации к этому топику с венгерской Nemzeti Sport), но это, в общем-то, проблема в первую очередь для газет.
+5
Игра на ставках без риска
2 мин
13KАзарт – основная эмоция спортивных болельщиков, и для многих он не ограничивается переживаниями по поводу выступлений любимой команды. Исследование аудитории Sports.ru, которое по нашему заказу провела британская компания YouGov, показало, что 18% пользователей сайта регулярно делают ставки в букмекерских конторах. А многие не делают (например, я) лишь из-за того, что понимают: алгоритм игры предполагает скорее потерю, чем заработок денег. И «в плюсе» на длинной дистанции – лишь те уникумы, кто сочетает прозорливость и расчет. Но азарт у них (и меня), тем не менее, тоже имеется.
Для таких мы и запустили новую игру на условные деньги, но с реальными призами – «Виртуальный букмекер».
Для таких мы и запустили новую игру на условные деньги, но с реальными призами – «Виртуальный букмекер».
-2
Интеграция сайта с Facebook через OpenGraph
4 мин
12KВыменивая у агрегаторов контента (поисковых машин, социальных сетей и прочих сервисов) «продовольствие» на пользовательский трафик, издатель постоянно задается вопросом: не станет ли агрегатор основным источником информации для моего пользователя? Потерять свою идентичность в общей каше медиа-ресурсов, отдать результаты производства бесплатно и ничего не получить взамен — риски, которые зачастую сдерживают медиа-менеджеров в решении о максимальной публичности и открытости.
В этом смысле анонсированная Facebook поддержка OpenGraph кажется несколько провокационной. Технология позволяет сайтам экспортировать в социальную сеть профили всех объектов, которые они освещают – персоны, локации, товары, организации, произведения искусства и т.д. Пользователь, подписавшись на любой из этих объектов, сможет получать информационные сообщения в NewsFeed, увидит эти объекты в своих интересах и результатах поиска. Facebook предоставил удивительные возможности, но в то же время заставил серьезно задуматься о дальнейшей судьбе stand-alone media.
Sports.ru оказался первым российским сайтом, который ввязался в эту авантюру =) Какую задачу мы решаем с помощью OpenGraph и с какими проблемами столкнулись — в продолжении статьи об интеграции медийного проекта c социальной сетью.
В этом смысле анонсированная Facebook поддержка OpenGraph кажется несколько провокационной. Технология позволяет сайтам экспортировать в социальную сеть профили всех объектов, которые они освещают – персоны, локации, товары, организации, произведения искусства и т.д. Пользователь, подписавшись на любой из этих объектов, сможет получать информационные сообщения в NewsFeed, увидит эти объекты в своих интересах и результатах поиска. Facebook предоставил удивительные возможности, но в то же время заставил серьезно задуматься о дальнейшей судьбе stand-alone media.
Sports.ru оказался первым российским сайтом, который ввязался в эту авантюру =) Какую задачу мы решаем с помощью OpenGraph и с какими проблемами столкнулись — в продолжении статьи об интеграции медийного проекта c социальной сетью.
+40
Структурирование контента и «белое» SEO
5 мин
12KВсем привет! Стартовые дни чемпионата мира по футболу, хочется думать, вполне подходят и для старта корпоративного блога Sports.ru, в котором мы планируем писать о спортивном интернете и – шире – об эволюции медиа в digital-эпохе. Цели блога – рассказать о каких-то универсальных решениях, опробованных нами и способных улучшить не только спортивный сайты, а также услышать побольше дельных советов, способных улучшить уже Sports.ru. Сами мы эволюционируем довольно энергично – за последние пару лет Sports.ru перестал быть типичным тематическим сайтом с текстами и новостями, а стал еще, в той или иной степени:
- социальной сетью спортивных болельщиков
- игровой платформой
- базой данных о спорте
+37