Рубрика «erlang» - 4

Как Discord обрабатывает более 1 000 000 push-запросов в минуту с помощью Elixir GenStage - 1
Discord

Discord испытал небывалый рост. Чтобы справиться с ним, нашему отделу разработки досталась приятная проблема — искать способ масштабирования сервисов бэкенда.

В этом деле мы добились большого успеха с помощью одной технологии, которая называется Elixir GenStage.

Идеальный шторм: Overwatch и Pokémon GO

Этим летом наша система мобильных push-уведомлений стала скрипеть от нагрузки. Чат /r/Overwatch перевалил за 25 000 одновременных пользователей, а чат-группы Pokémon GO возникали повсеместно, так что внезапные всплески потока уведомлений стали серьёзной проблемой.
Читать полностью »

Если у вас в голове бурлят идеи о том, как бы сделать историю, в которой будет много пользователей, много IP камер и куча профита с этого, то не проходите мимо — мы расскажем о том, как мы помогаем запускать сервисы массового видеонаблюдения на нашем Flussonic Watcher.

Flussonic Watcher это:

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

В состав Flussonic Watcher входит:

  1. видеостриминговое ядро — сервер Flussonic;
  2. веб-портал, предоставляющий доступ администраторам и пользователям к камерам и архивам видео без использования плагинов;
  3. мобильные приложения;
  4. агент на камеру для доступа к ней из-за NAT без проброса портов, мирайя и смс;
  5. система интеграции с внешними биллингами, серверами авторизации;
  6. набор готовых бизнес-процессов и тех-регламентов на подготовку и продажу камер для клиентского видеонаблюдения.

Зачем нужен Watcher?

Читать полностью »

в 15:07, , рубрики: Elixir, erlang, Erlang/OTP, ruby, ruby on rails

RamblerElixir #1 - 1

8 декабря в 19:00 на Мансарде Rambler&Co состоится meetup Elixir разработчиков. Elixir — функциональный язык программирования c динамической типизацией для разработки распределённых, отказоустойчивых приложений, построенный на базе виртуальной машины Erlang (без GIL), имеет очень приятный синтаксис и низкий порог вхождения.
Читать полностью »

Распределенные вычисления в Elixir

Elixir и Erlang идеально подходят для создания распределенных приложений, выполняющих параллельно несколько, возможно схожих задач. Поддержка многих конкурентных процессов работающих в изоляции была одним из основных аспектов при разработке виртуальной машины языка Erlang.

Постараемся проверить эту возможность использовать потенциал многоядерного процессора на простом примере. Подчитаем сколько раз встечается слово "лошадь" в рассказах писателя О. Генри размещенных в текстовых файлах в одной директории. Технически, мы будем считать количество вхождения последавательности символов "лошадь", а не слова, и тоьлко в нижнем регистре.

Читать полностью »

Elixir: Готовим парсинг правильно — yecc и leex - 1

Лексический анализ (токенизация) и парсинг — одни из наиболее важных концепцпий в информатике и программировании. Эти концепции базируются на огромном количестве теоретических знаний, но сегодня мы о них не будем говорить, потому что их действительно много. Кроме того, подход к парсингу через "науку" может вызвать жёсткое отвращение и напугать. Между тем, практическое применение очень простое и прямолинейное. Если хотите знать больше о теории — идите в Википедию (лексический анализ и парсинг), или читайте восхитительную книгу дракона (рекомендовано к прочтению вообще всем программистам).

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

Читать полностью »

Информация для адмиралов космических флотилий - 1

Докладная записка

Мой Адмирал, ваш флот насчитывает сотни, а может и тысячи кораблей. Все они действуют, как единый организм, действуя в одном информационном поле. В качестве канала связи используется радиоэфир, либо лазерная связь в случае работы в условиях радиоподавления (либо радиомолчания). Вероятнее всего, в качестве базового программного обеспечения, на кораблях используется Erlang, а каждый корабль является Нодой вычислительного кластера вашей космической армады. Благодаря этому, боевые программы, выполняемые на флагманском корабле, могут управлять ресурсами любого корабля армады, как своими собственными, координируя боевое взаимодействие. В условиях ведения космической битвы в окрестностях нашей солнечной системы, такой подход показал высокую эффективность, как на испытаниях, так и в реальном бою. Однако, партия ставит перед нами новую задачу: не допускать проникновения противника в пределы нашей солнечной системы, обнаружение противника и борьбу с ним вести на дальних рубежах.

В условиях субсветовых скоростей и огромных расстояний нас подстерегает новый враг. На этот раз технический. Этого врага зовут «временной разрыв» (Time Warp). Что это такое и как с ним бороться (используя Erlang версии 18 и выше), изложено в данной докладной записке. Записка основана на технической документации — Time and Time Correction in Erlang.
Читать полностью »

Elixir: Регистрируем процессы — практическое руководство - 1

Процессы в Elixir (ну и в Erlang конечно же) идентифицируются с помощью уникального идентификатора процессаpid.
Мы используем их, чтобы взаимодействовать с процессами. Сообщения посылаются как бы в pid, а виртуальная машина сама заботится о доставке этих сообщений в правильный процесс.
Иногда, впрочем, чрезмерное доверие к pid может приводить к значительным проблемам.
К примеру, мы можем хранить pid уже мёртвого процесса, или мы можем использовать Supervisor, который абстрагирует создание процессов от нас, поэтому мы даже не знаем, какой у них pid (пер: а ещё Supervisor можете перезапустить упавший процесс с другим pid, и мы об этом не узнаем никак).
Давайте создадим простое приложение и посмотрим: с какими проблемами мы можем столкнуться и как мы эти проблемы будем решать.

Читать полностью »

Привет! Хочу немного вклиниться в цикл статей и показать как можно простым путём сделать обновление списка комментариев в ленте в режиме реального времени. Как это происходит, например, на githubЧитать полностью »

Вышел бесплатный клиент WhatsApp для Windows и OS X - 1

Самый популярный в мире мобильный мессенджер теперь позволяет общаться не отходя от компьютера, не доставая мобильный телефон из кармана. Компания WhatsApp/Facebook выпустила десктопное приложение, которое работает в операционных системах Windows 8+ и OS X 10.9+.

Таким образом, WhatsApp присоединяется к другим мессенджерам, которые запущены на компьютере коммуникабельного пользователя ПК: это Skype, Viber, Slack и др.
Читать полностью »

Всем привет!
После долгого перерыва блудный Python Meetup снова с нами. На долгожданной мартовской встрече сообщества любителей и профессионалов языка программирования Python обсуждались животрепещущие темы: противостояние Python и Erlang, а также дополнительные возможности PostgreSQL.
Видеозаписи выступлений под катом. Приятного просмотра!
Мартовский Python Meetup: Python VS Erlang и возможности PostgreSQL - 1
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js