С самого начала Discord активно использовал Elixir. Виртуальная машина Erlang стала идеальным кандидатом для создания высокопараллельной системы реального времени, которую мы собирались создать. Первоначальный прототип Discord был разработан на Elixir; сейчас он лежит в основе нашей инфраструктуры. Задача и предназначение Elixir простые: доступ ко всей мощи Erlang VM через гораздо более современный и дружественный язык и набор инструментов.
Прошло два года. Сейчас у нас пять миллионов одновременных пользователей, а через систему проходят миллионы событий в секунду. Хотя мы абсолютно не сожалеем о выборе архитектуры, пришлось проделать массу исследований и экспериментов, чтобы добиться такого результата. Elixir — это новая экосистема, а экосистеме Erlang не хватает информации о её использовании в продакшне (хотя Erlang in Anger — это нечто). По итогу всего пути, пытаясь приспособить Elixir для работы в Discord, мы извлекли некоторые уроки и создали ряд библиотек.
Веерное развёртывание сообщений
Хотя у Discord много функций, в основном всё сводится к pub/sub. Пользователи подключаются к WebSocket и раскручивают сессию (GenServer), которая затем устанавливает соединение с удалёнными узлами Erlang, где работают guild-процессы (тоже GenServer’ы). Если что-то публикуется в guild (внутреннее именование “Discord Server”), оно разворачивается веером на каждую подключенную сессию.
Когда пользователь выходит в онлайн, он подключается к guild’у, а тот публикует статус присутствия во все остальные подключенные сессии. Есть и много другой логики, но вот упрощённый пример:
def handle_call(, _from, %=state) do Enum.each(sessions, 1.pid, message)) end
Это был нормальный подход, когда мы изначально создали Discord для групп из 25 или менее пользователей. Однако нам повезло столкнуться с «хорошими проблемами» роста, когда люди начали использовать Discord в больших группах.
В итоге мы пришли к тому, что на многих серверах Discord вроде /r/Overwatch присутствует до 30 000 пользователей одновременно. В пиковые часы мы наблюдали, что эти процессы не справляются с очередями сообщений. В определённый момент пришлось вручную вмешаться и отключить функции генерации сообщений, чтобы помочь справиться с нагрузкой. Нужно было разобраться с проблемой до того, как она приобретёт масштабный характер.
Авторы Discord услышали пользователей и увеличили размеры для вложений
Создатели мессенджера Discord наконец услышали своих пользователей и увеличили вес файлов для передачи с 8 МБ до 25 МБ. Нововведение уже доступно для клиентов по всему миру. При этом некоторые используют эту возможность уже с начала апреля.
А для тех, кому нужно делиться файлами ещё большего размера, есть возможность платной подписки. К примеру, для владельцев Nitro Basic (стоит 3 доллара в месяц) лимит 50 МБ, а для пользователей Nitro (стоит 10 долларов в месяц) — 500 МБ.
Напомним, в марте вышло обновление для PlayStation 5 , которое добавило Discord. Сервис должен заменить сообщества, которые ранее удалила корпорация.
- Правда где-то рядом: визуальная новелла Tron:Identity вышла в свет
- Новую «Амнезию» снова перенесли
- В релизном трейлере ролевой игры Wartales показали разнообразие мира
Источник: www.igromania.ru
Discord-интерфейс
Сообщения напрямую
Работайте один на один с ботом Midjourney в своих личных сообщениях для более спокойного общения.
Официальный сервер Midjourney
Официальный сервер Midjourney с каналами для совместной работы и биллинга/технической поддержки.
Список каналов
#trial-support
Посетите этот канал для выставления счетов и технической поддержки от Midjourney Guides.
#newbies
Посетите любой канал #newbies для создания изображений.
Список участников
Midjourney Бот
Бот, создающий изображения с помощью команды /imagine
Moderators and Guides
Модераторы и поддержка могут помочь с выставлением счетов и техническими проблемами в каналах поддержки.
Сетки изображений
Команда /imagine создает сетку вариантов изображения с низким разрешением на основе вашего запроса. Используйте кнопки под каждой сеткой изображений, чтобы создать варианты изображения, увеличить масштаб изображения или повторно запустить последнее действие Midjourney Bot.
Upscale кнопки
U1 U2 U3 U4 U кнопки масштабируют изображение, создавая увеличенную версию выбранного изображения и добавляя больше деталей.
Кнопка повторить
Повторить (re-roll) перезапускает процесс генерации. В этом случае он перезапустит исходную подсказку, создав новую сетку изображений.
Кнопки вариантов
V1 V2 V3 V4 V кнопки создают дополнительные вариации выбранного изображения сетки. При создании варианта создается новая сетка изображения, аналогичная общему стилю и композиции выбранного изображения.
Увеличенные изображения
Upscale Redo кнопки
Make Variations Light Upscale Redo Beta Upscale Redo
Восстановите изображение, используя другой инструмент масштабирования.
Посмотреть в Web
↗️Web Посмотреть это изображение на веб-сайте Midjourney
Оценка изображения
Оцените изображения с помощью смайликов. Изображения с высоким рейтингом могут появиться в разделе трендов на веб-сайте Midjourney.
Прямые сообщения
Если каналы #general или #newbie двигаются слишком быстро, подписчики Midjouney могут работать один на один с ботом Midjourney в своих личных сообщениях Discord.
Сообщения напрямую
Emoji реакции
Реагируйте разными смайликами на задания в работе, чтобы отправлять изображения в личные сообщения, отменять выполняемое задание или удалять изображение.
Ежедневный тематический канал
Примите участие в создании веселых тематических групповых изображений на канале #daily-theme. Найдите тему дня рядом с названием канала.
Как отключить ежедневное уведомление о теме
Хотите избежать ежедневных уведомлений от ежедневного тематического канала? Используйте команду /daily_theme , чтобы отключить уведомления для этого канала.
Источник: midjourney.su