MoscowStyle, strongswan - это ходячий глюк. Его используют только там, где есть уже готовый VPN-сервер с ipsec и чаще всего как обёртка вокруг l2tp (который требует ещё более глючного xl2tpd). Когда нужно развернуть решение с нуля, это плохой выбор.
Очень сильно зависит от данных и как они используются. Если в таблице миллиард строк и у 0.1% true, у 99.9% false, то запрос по условию value=true будет хорошо работать с индексом, а при фильтре value=false вместо индекса намного эффективнее будет работать full scan таблицы (поскольку запрос и так выбирает таблицу почти всю).
Это остаётся на откуп клиентскому приложению. Скажем, если чат не открыт прямо сейчас, то когда придёт пачка сообщений, открытие чата будет в большинстве клиентов на первом непрочитанном сообщении. А если чат открыт, то чат будет крутиться до последнего сообщения по мере поступления.
Никакой "довольно простой сервис" никому не нужен, если нет своей аудитории, рекламы, продаж, технической поддержки и ещё много чего. Ну, скажем, что мешает сделать "довольно простой сайт" типа такого, где мы сейчас находимся? А кому он нужен, если на нём не будет сотен ежедневных посетителей, среди которых будет немало опытных специалистов в разных областях деятельности?
Есть стопицот сервисов эдаких чат-коллцентров, где можно подключить своего бота, работать с разными каналами в едином интерфейсе и смотреть какую душе угодно статистику.
Master Ruby, если это задача, то скорее всего подвох в том, что это надо решать не прямым делением факториалов.
Поясню (m>n):
1*2*3*...*m
-------------
1*2*3*...*n
Тут всё с 1 до n сокращается, и остаётся (n+1)*(n+2)*(n+3)*...*m. То есть вместо n+m-2 умножений и 1 деления можно выполнить m-n-1 умножений. Кроме того, в таком варианте уменьшается риск потери точности (например, 10-байтный long double имеет не более 20 значащих цифр в мантиссе, чем больше чисел перемножено в факториале, тем выше шанс потерять некоторые из цифр и сделать результат менее точным).
by_EL, я кстати потом вспомнил что если в image нужные каталоги описаны как VOLUME то они становятся томами в docker volume ls. Но называться они скорее всего будут невнятными наборами символов, не разберёшься где что.
by_EL, нужно достать из контейнера данные, которые в каталогах, перечисленных через -v, например с помощью docker cp. И в дальнейшем никогда больше так не делать, ведь любое пересоздание контейнера означало бы потерю всех данных сразу и навсегда.
ettaluni, vagrant это про раскатывание виртуалок. Виртуалки это само по себе для задачи раскатывания всяких тестовых сайтов чересчур, а тут ещё виртуалки в виртуалке, зачем эти излишества?
Использовать docker и ansible полезно, если есть готовые почти не изменяющиеся разработки или если используемые наработки делаются для прода. Просто ради использования этих инструментов возиться не особо есть смысл. Зачастую проще на хосте делать git pull и запускать сборку скриптом. Конечно, очень много зависит от сложности и состава проекта, тут никогда нет универсальных рецептов.
wideShift, микросервисы это не про используемый язык, а про способ организации. Тут можно на любом языке делать. При этом можно сделать как отказоустойчивую хорошо масштабируемую систему, так и полную хрень, разваливающуюся по первому чиху и тратящую ресурсы на бессмысленные действия.