Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Какую функцию использовать правильнее?

Лучший ответ:
var a = document.querySelectorAll('.link');

Array.prototype.forEach.call(a, function(el) {
  el.addEventListener('click', function() {
    // что-нибудь делаем
  });
});
1. Метод forEach у DOM коллекции не стандартен, работать будет не везде
2. События слушаем только через addEventListener
3. Создавать инстанс объекта (массива) ради вызова метода прототипа - зло, жрущее память и такты процессора

Худший ответ:
a.forEach.call(a, function(el) {
а серьезно, в первом подходе нет необходимости т.к. "a" и так массив. и первый способ  менее читабелен.
Вопрос: Как связаны Golang и Node.js при разработке серверной части?

Лучший ответ:
Дело в том, что сейчас многие компании переписывают критичные по производительности части на Go и, в основном старые системы написаны на Node.js.
Плюс выполнить прототипирование новых продуктов проще на Node, а потом можно перейти и на Go.

Худший ответ:
К комментарию Philipp хочу добавить, что Нода используется для сборок фронта. Так что сейчас и требования PHP + Node вполне реальны.
Вопрос: Почему {}+[] === 0?

Лучший ответ:
Сам спросил, сам отвечаю.
Если фигурные скобки идут не в составе выражения, то JS считает его просто блоком. А т.к. он пустой, то он просто игнорируется. И в итоге остается только +[], что значит преобразование массива в число.

Худший ответ:
не помню рассказывают тут или нет конкретно, но в любом случае полезно будет
https://www.destroyallsoftware.com/talks/wat
Вопрос: Какой дистрибутив Linux выбрать для медиа?

Лучший ответ:
Не знаете что ставить - ставьте Debian.
UPD: Но с легковесным окружением рабочего стола, напрмер Mate, Xfce или LXDE.

Худший ответ:
Браузер не потяет этот конфиг. Надо памяти хотя бы добавить и немного спасёт SSD.
Вопрос: Как реализовать аутентификацию пользователей в открытом WiFi по электронной подписи?

Лучший ответ:
Ээээ...Вы предлагаете нам сделать за Вас работу? :)

Худший ответ:
Читал как это работает при аутентификации с телефоном. При первом коннекте весь трафик заворачивается на внутренний веб-сервер, который просит ввести номер телефона и присылает вам смс с кодом. После ввода кода сервер разрешает вашему ип ходить в интернет (просто правило в иптаблес). 
Замените в этом месте веб-сервер и сможете подтверждать что-то по клиентскому сертификату.
Вопрос: Где почитать про проектирование баз данных(nosql) с практическими примерами?

Лучший ответ:
используя nosql-базы
Шаг 1. Убрать из лексикона термин "NoSQL". Хотя бы временно.как наиболее правильно хранить пользовательские данные, комментарии, лайки, медиа-данные.
Шаг 2. Выписать или запомнить три важнейших свойства любой СУБД: модель данных: что является элементом данных, что является коллекцией элементов, чего в СУБД должно быть постоянное количество, есть ли схема и в каком виде, как обеспечиваются связи между элементами данных на уровне модели;
Пример: MongoDB, элемент данных - документ, описывается как JSON-документ с некоторыми специфичными для Монги расширениями. Коллекция элементов - коллекция документов. Количество коллекций более-менее постоянное, количество документов растёт. ограничения и гарантии физической реализации модели данных - какие операции какую сложность имеют, какую цену (в плане пространства на устройстве хранения и процессорного времени) имеет каждая используемая структура данных или алгоритм; какие параметры как будут расти во время эксплуатации БД.
Пример: графовые БД, имеющие "настоящий" графовый движок, т.е. такой, который хранит физические ссылки из одной вершины на другую, гарантируют константное время выборки связанных вершин. В связи с этим их выгодно использовать для сильносвязанных нечасто изменяющихся данных (графы друзей в социалочках и т.п.) инструментарий логического и физического уровня: по сути это предыдущие пункты более подробно - какие структуры данных доступны, в частности какие есть индексы, какие способы выборки/фильтрации/сортировки присутствуют; для чего гарантируется транзакционность (особо важный вопрос); где находится база в CAP диаграмме; какие есть средства логического уровня, например представления (view);Вспомните любую социальную сеть, где над каждым постом есть куча комментариев, лайков, репостов
Шаг 3. Научиться ставить задачу с точки зрения обрабатываемых данных: какие данные будут иметь постоянный объем или расти медленно, а какие - быстро и постоянно; какие будут запросы к данным, что будет выбираться как есть, а что нужно будет дополнительно агрегировать; какие запросы будут плановые, а какие придётся выполнять внепланово; какой нужен уровень доступности, какова ценность хранящихся данных и цена простоя.
Шаг 4. Ознакамливаться с СУБД здесь: nosql-database.org и выбирать нужную с учётом: вашей задачи; порога вхождения;  наличия доступных специалистов.

Худший ответ:
Читал на хабре подобное и девелопер опускал нереляционки там, где может потребоваться фильтрация , анализ, группировки и тп. В результате из той статьи я для себя сделал вывод, что не стоит пытаться из документной бд выстроить реляционную. Ссылку к сожалению сейчас не найду.
Вопрос: Где хранить датасет для опен-сорс проекта?

Лучший ответ:
А почему "неиспользование"? Или датасет не будет обновляться вашим софтом?
Можно накостылить скриптик, который будет курлом по расписанию раз в несколько дней заливать/удалять маленький файлик из публичного облака. На тот же Я.Диск курлом точно можно файлы отправлять. Тогда активность на учётке будет постоянно :-)

Худший ответ:
Есть варианты с облаками (Yandex.Disk, Google Drive, OneDrive, Mail.ru Cloud, Mega), но у меня там все битком забито (создавать новый - через год удалят за неиспользование), ну и, по моему мнению, это не самый лучший вариант для хранения датасетов.Публичный набор данных как раз имеет смысл хранить и раздавать в облаке.
Вопрос: BASH: как удалять файлы, названия которых содержит пробелы?

Лучший ответ:
выполняю:
    find "$path" -type f -mmin +9 | xargs rm
...
Ага. xargs не умеет в пути с пробелами.
Идиома для обработки имён файлов с пробелами/другой ерундой: find ... -print0 | xargs -0 ... -- т.е. использовать нулевой символ в качестве разделителя полей при выводе из find и при вводе в xargs.

Худший ответ:
1. меняем для xargs и find разделитель на символ null, обе эти команды про него знают:find "$path" -type f -mmin +9 -print0 | xargs -0 rm
2. Удаляем файлы самой командой find:find "$path" -type f -mmin +9 -delete
3. Сохраняем список файлов в переменную и считываем построчно:A=$(find "$path" -type f -mmin +9)
while read; do rm "$REPLY";done<<<"$A"
Вопрос: Как корректно закрывать tcp соединение?

Лучший ответ:
Не отрабатывает вызов:defer conn.Close()
из-за бесконечного цикла.

Худший ответ:
Закрывай соединение в конце первого цикла conn.Close(), так как defer выполняется только при завершении метода.
.....
      d := time.Duration(kpi.current * float32(time.Second))
      time.Sleep(d)
    }//end for
    conn.Close()
    log.Println("error, when connect or receive data", stDesc, "wait 60seconds")
    time.Sleep(time.Minute) //Ждем 1 минуту, прежде чем выполнить повторное подключение
  }
}
Или сделать отдельный метод внутри первого цикла, в котором можно использовать defer conn.Close()
Вопрос: PHP PDO Как добиться синхронной работы COMMIT?

Лучший ответ:
Для приложения commit синхронен. Если вы вышли из commit() - значит транзакция уже зафиксирована.
Проверяйте код приложения #2. Может быть вы уже в транзакции и потому не видите изменения. Может быть вы подключаетесь к асинхронной реплике

Худший ответ:
Если кому-то будет интересно, то сообщаю, что использование PDOStatement::execute вместо PDO::commit в моем случае решило проблему.
На примере фреймворка yii2/
Было:$transaction = \Yii::$app->db->beginTransaction();
try {
    ...
    $transaction->commit();
} catch (\Exception $exception) {
    $transaction->rollBack();
    throw $exception;
}
Стало:\Yii::$app->db->createCommand('BEGIN TRANSACTION')->execute();
try {
    ...
    \Yii::$app->db->createCommand('COMMIT TRANSACTION')->execute();
} catch (\Exception $exception) {
    \Yii::$app->db->createCommand('ROLLBACK TRANSACTION')->execute();
    throw $exception;
}
Не совсем конечно красиво, и до конца не уверен, что это работает во всех случаях. Но все равно лучше чем искусственная задержка
Вопрос: БЭМ. Можно ли так миксовать?

Лучший ответ:
Кто ж вам запретит?
Посмотрите код яндекс сервисов, прозреете с миксов типа
class="link image image_name_googleplay footer-market__promo-image i-bem link_js_inited"
Никто не запрещает менять методологию на свое усмотрение, главное чтобы вам было удобно верстать объемные сайты и вам (или не вам) было просто править свой код через некоторое время.
Я использую БЭМ со своими вариациями.

Худший ответ:
Да, подобный микс допустим.
Подробнее о миксах: https://ru.bem.info/methodology/key-concepts/#Микс
и примеры применения: https://ru.bem.info/methodology/block-modification...
Можно ещё воспользоваться БЭМ-валидатором: https://www.npmjs.com/package/bem-validate
Вопрос: Как отделить этот малеьнкий вентилятор?

Лучший ответ:
Доброго дня. Сдираете наклейку - если есть резиновая/пластиковая заглушка, внутри которой вал, то вам повезло и куллер разборный. Можете туда смазку заложить силиконовую, либо от швейных машин, либо специальную для куллеров. 
Если под наклейкой всё глухо, то куллер не разборный - на помойку.
Ну и в любом случае, если куллер засвистел, то это говорит об износе подшипников и долго он даже после смазки, скорее всего, не проработает (зависит от типа подшипника).

Худший ответ:
Снять наклейку.
IMHO, смазывать бесполезно, надо менять на новый.
Вопрос: Настроил сервер, пробросил порт, уехал — не работает SSH. В чём может быть проблема?

Лучший ответ:
Настроил сервер, пробросил порт, уехал — не работает SSH. В чём может быть проблема? Такие вещи надо  сначала проверять.
А насчет причин - с вероятностью 85% причина в том, что у вас нет белого IP адреса.

Худший ответ:
смотреть логи почему порт не пробросился.
постоянно захожу по ssh на работу, стоит zyxel на нем проброшен tcp внутрь lan.
Вопрос: Прозрачный блок на фоне картинки как сделать?

Лучший ответ:
Если вам нужен размытый полупрозрачный блок, то без JS не сделать, пока backdrop-filter, который вам нужен, поддерживается только в Safari 9 и на Safari iOS.
Если рассматриваете JS решения, копайте в сторону плагинов, например blur.js.

Худший ответ:
Я не понял что хочет автор - прозрачный блок или не прозрачный блок?
Картинка, которая над непрозрачным блоком - она под непрозрачным блоком или прозрачнолвлфзз лзфцвщлзфз фц
Вопрос: Почему сервер останавливается при закрытии Putty?

Лучший ответ:
1. Добавить "&" в конце команды
2. Использовать  screen
3. Использовать для этого такие средства как systemd, supervisor и пр.

Худший ответ:
Запускай скрипт ноды через forever
Вопрос: Какие навыки нужны для открытия своей веб-студии?

Лучший ответ:
Как уже верно сказали другие, это, в первую очередь, навыки не технического характера, а навыки менеджера, управленца.
Необходимо уметь находить клиентов, создавать их поток. Уметь выстраивать всю цепочку создания/продвижения продукта в своей компании и следовать ей. Уметь взаимодействовать с людьми: со своими клиентами, со своими работниками, с фрилансерами, с государством.
Нужно грамотно распоряжаться ресурсами. Как финансовыми, так и человеческими. Чтобы не было ситуаций простоя работников, не было минусовых балансов (хотя, тут нереально, они всегда будут), не было долгов (аналогично).
Нужно уметь смотреть со стороны клиента. Ставить себя на его место, думать о его потребностях. Выстраивать свою рекламную политику так, чтобы попадать прямиком в ЦА. Нужно уметь правильно выбирать свою нишу, позиционировать свои услуги на эту нишу и взаимодействовать с клиентами из этой ниши.
И самый главный навык, который пригодится, вообще, в жизни, я считаю. Нужно уметь отличать адекватного человека от неадекватного. Этот навык сразу избавит новоиспечённую веб-студию от кучи проблем, типа миллионной правки на сайте-визитке, согласования текстов с уборщицей бухгалтера жены заказчика и "гениальной инновационной идеи стартапа, под названием "вычтонехотитестатьмиллионерами?" или "давайтеподпишемNDAатовывсеукрадете" за 10000 рублей.
P.S. А, вообще, можно ничего не делать, а просто снять обшарпанный офис, поставить туда убитый домашний ноут, быстро нарезать сайт для студии на украденном с TM шаблоне, закупить настройку Директа у очередного "молодого и перспективного таргетолога" студента, бухнуть туда 5-6 тысяч рублей, сесть на стул в пустом офисе и наслаждаться тем, что вы бизнесмен :) А когда позвонит потенциальный клиент, то заломить ему ценник в сотку за сайт-визитку и отдать выполнение на аутсорс первому попавшемуся человеку из группы Вконтакте "Вёрстка сайтов HTML/JS/CSS".
Так, по моему личному мнению, работают 80% маленьких студий в провинции.

Худший ответ:
от твоих навыков это никак не зависит. ты можешь вообще не шарить в создании сайтов (часть бизнесменов так и живут в сфере веба) - главное тут работники, которых ты должен найти. хотя бы по одному на каждую должность - манагер, дизайнер, фронт, бэк.
ну и стартовый капитал чтобы эта четверка работала первое время. нахаляву вряд ли кто согласится.
Вопрос: Как начинающей студии платить ЗП фрилансеру?

Лучший ответ:
Имея опыт работы с фрилансерами могу сказать, скучно вам не будет точно)
Обычно фрилансеры насколько я знаю работают попроектно или позадачно. Т.е. закрыл этап/задачу/проект получил олату. По проценту прибыли решаете только вы. Лично я делаю чтобы и мне было интересно и клиенту и фрилансера толкового можно было нанять (либо сразу закладываю цену знакомого уже мне специалиста). Ну и естественно выгодно искать постоянных исполнителей, т.е. поработали с кем-то, понравился - берете на заметку. Следующую задачу кидаете, и так далее. После нескольких проектов уже можно обсуждать условия постоянного сотрудничества. Работать со случайными людьми каждый раз труднее и почти всегда затратнее.
По оплате думаю более-менее опытные фрилансеры всегда берут предоплату, часто от 30 до 50 процентов, и это нормально. Т.е. будьте финансово готовы что проект еще не закрыт и клиенты не заплатили. а работникам нужна 100% оплата, т.к. их не очень волнует согласование с клиентом, т.к. их этап уже завершен. 
Как вариант еще, искать знакомых разрабов которые будут всегда на связи и в ними легко договориться об оплате по факту сдачи проекта. 
Вообще нюансов масса, с опытом придет понимание как лучше строить процесс работы. Наверняка рано или поздно придете к полноценной студии с офисом, т.к. с управленческой точки это пока наиболее эффективный вариант.

Худший ответ:
По ходу, тут начался холивар, не относящийся к теме. Прошу вас, уточните, что значит для вас "оплата"? Если вы хотите отчислять официально , то вам придется иметь дело только с ИПшниками, отсекая 80% реально годных парней, которые ИП не имеют, но пашут дай боже. 
Если вы хотите упорядочить самое перечисление денег, то документируйте в проекте, что оплачиваете ТОЛЬКО на карту такого-то банка, ЯД, ВебМани и все. Или сами список составьте. Так вы сможете контролировать деньги, точно знать, что и где было перечислено, не распыляясь на тыщщи сервисов. 
Другими словами вам надо просто централизовать платы так же, как и траты.
И как вы уже поняли вам не помешает совет бухгалтера и юриста.
Вопрос: Утилита для переименования в глубину во всех файлах?

Лучший ответ:
for i in `find /yourdirectory -type f`;do sed -i 's/чтоменять/начтоменять/g' $i;done
с gui вот скрипт:
a=`zenity --entry --text="Что меняем" --entry-text=""`
b=`zenity --entry --text="На что меняем" --entry-text=""`
for i in `find /yourdirectory -type f`;do sed -i "s/${a}/${b}/g" $i;done

Худший ответ:
stackoverflow.com/questions/6758963/find-and-repla...
замена текста внутри ,или нужно имя заменить?
Вопрос: WordPress | ЧПУ отображается на русском языке. Как сделать транслит, желательно без плагина?

Лучший ответ:
Забавно так, без плагинов...
А чего вы так их боитесь то не понимаю?
Плагин - это тот же самый код который вы тоннами вставляете в функцион.пхп
Кто этот бред в сеть то занес, что типа плагин тормозит, а ваша километровая портянка кода в функцион.пхп не тормозит? Это одно и тоже!!! 
Если много чпу уже есть поставь cyr to lat переведи их в транслит и отключи этот плагин, чтобы глаза не мозолил. 
Разница между портянкой в функцион.пхп и плагином в том, что плагин можно отключить на время, а в портянке, мало того, что не найдешь сразу ничего, так ещё и текстовых файлов придется создавать мильён, чтобы не потерять их если придется удалять.

Худший ответ:
ЧПУ руками ставится, как вам угодно.
Вопрос: Где хранить данные об уровне доступа пользователя, в Сессии или в Базе данных?

Лучший ответ:
Как правило, информацию о доступе пользователя проверяют каждый раз при поступлении от него нового запроса. Делается это из-за того, что с момента предыдущего запроса пользователя могли блокировать, или изменить его права. Если хранить информацию об уровне доступа в сессии, то до её истечения заблокированный пользователь будет продолжать пользоваться всеми разрешениями, которые у него были на момент начала сессии. А при умелом пользовании запросами сессия может жить очень долго )))

Худший ответ:
- В сессии хранить только ID пользователя, и уровень доступа пользователя проверять, обращаясь каждый раз к базе.
это
Вопрос: Программы C++, скомпилированные в TDM-GCC, кроссплатформенные?

Лучший ответ:
Если вы скомпилировали их в .exe, то нет - компилировать нужно под конкретную платформу.
Кросс-платформенно означает, не то, что один и тот же бинарник будет работать везде, а что код написан таким образом, что его можно скомпилировать под разные платформы в соответствующие бинарники.

Худший ответ:
Не бывает кроссплатформенной компиляции, если у языка нет виртуальной машины. Форматы исполняемых файлов у линукса и винды абсолютно разные, рантайм у них тоже разный.
Кроссплатформенным бывает код, который можно собирать под разные системы.
На сайте этого тулчейна написано же:A compiler suite for 32- and 64-bit Windows based on the GNU toolchain
Значит, что он умеет только винду.
Вопрос: Можно аппаратно подключить клавиатуру PS/2 к STM32?

Лучший ответ:
Протокол похож на USART только в самом общем виде. Можно использовать аппаратный USART контроллера, но всё равно остаётся много жонглирования отдельными битами, и полностью автоматизировать обмен данными (например, через DMA) вряд ли выйдет.
Есть уже готовые библиотеки PS/2 под STM32. Вот, например: https://github.com/gandro/stm32-ps2
И не забудьте про согласование уровней, PS/2 - пятивольтовый!

Худший ответ:
почитай протокол обмена информацией.
сколь помню там точно не uart.
Вопрос: Как искать по массиву?

Лучший ответ:
foo = {
    'Лес' : 2134,
    'Дача' : 872343,
    'Хлеб' : 8734,
    'Аккуратность' : 4343
}
print(foo['Хлеб'])    #вывод: 8734
foo['Котики'] = 12345
print(foo['Котики'])  #вывод: 12345

Худший ответ:
libArray = {
	"Лес": 1234,
	"Дача": 872343,
	"Хлеб": 8734,
	"Аккуратность": 4343
}
findIt = "Лес" #Значение, которое ищется
if findIt in libArray:
	print(libArray[findIt])
Вопрос: Возможно ли в linux-системе(ubuntu) установить php 7.х сразу со всеми доступными расширениями?

Лучший ответ:
apt-get install php7.2-*
Какие там постоянно разные пакеты нужны? Штук 5 наверно используется из тех что не из коробки идут.
Ставится php7.*-common и всякие sql/mbstring/xml/intl
И этого достаточно для 99% случаев.куча времени уходит чтоб понять какой же конкретно модуль им нужен и пляски чтоб его установить
А читать ошибку не пробовали? Композер прям вот буквами пишет что нужно расширение ext-bcmach или ext-mbstring и т.д. (Типа вот прямо вот так просит ext-mbstring, никаких непонятностей)

Худший ответ:
да, есть куча панелей управления в которых уже вшиты автоинсталяторы модулей.
Все ставить не нужно поскольку от них идет нагрузка на веб сервер, чем больше загружено мдулей тем  медленней он работает, это конечно не сильно влияет на производительность но хорошим тоном считается запускать по минимуму а потом добавлять то что нужно.  Так же доставляют как правило основных 3-5 модулей  остальное как правило не требуется.  В некоторых веб панелях их можно включать и отключать через админку
Вопрос: Как разослать push-уведомления?

Лучший ответ:
Лучше слать через PushAll
Но если самому - то копайте в сторону Push API. https://github.com/chrisdavidmills/push-api-demo
Но надо понимать что бесплатно у вас получится лишь на хроме, ff и что на них основано. На Safari нужно сертификат делать через аккаунт разработчика Apple, для мобильных платформ приложения надо писать.
Ну и самое сложное - надо поддерживать актуальные токены, обновлять их, следить за актуальностью подключенных устройств.
Если понятнее - при закрытом сайте оно отправляется через сервисы браузера, далее он вызывает ваш код в Service Worker и он уже отображает уведомление.
-----------
Получил данный вопрос через IT вопросник
https://pushall.ru/?fs=927

Худший ответ:
Делал на основе статей
https://mobiforge.com/design-development/web-push-...
https://developers.google.com/web/updates/2015/03/...
Там достаточно подробно рассказано про Service Worker, фоновый режим поддерживаемые браузеры и т д.
Вопрос: Выбор ноутбука для учебы?

Лучший ответ:
Ноутбук это то, с чем работать именно ВАМ.
Сходите в магазин, потрогайте, пощупайте, примерьтесь к клавиатуре, к весу.
Никто на тостере не знает, вам его носить каждый день или раз в месяц, нужен вам 13" или 17", с чемоданом или без, с цифровой клавиатурой или без. Вы же даже требований своих собственных не указали.
Оба выбранных вами ноутбука совершенно одинаковы по характеристикам. Поэтому идите в магазин и примерьтесь какой больше нравится лично вам внешне и по клавиатуре.

Худший ответ:
Купите самый дешовый Lenovo ThinkPad. Там есть: Удобная клавиатура(что важно для учебы), очень легкий, если упадёт где-то с уровня парты, то не разобьётся в хлам, для фильмов, сериалов и прочей не сильно требывательной студентческой радости подойдёт.
Вопрос: Как просмотреть скомпилированный код из jQuery в чистый js?

Лучший ответ:
Выше верно подметили, что компиляция тут не причем. 
Думаю, будет полезно: youmightnotneedjquery.com

Худший ответ:
Попробуйте поискать в интернете реализации тех или иных функций, которые вас интересуют. В самом коде библиотеки тоже можно, если он не минифицирован. Просто найдите нужную функцию и посмотрите как она устроена и выполнена. По другому никак
Вопрос: Работа с фреймворком? Правка?

Лучший ответ:
Создавайте свой файл с стилями и спавте его после основных. Он будет перебивать стили. Или делайте !important. В исходниках ничего править не надо. Это дурной тон.
Если будете использовать пакетный менеджер, то поймёте почему.

Худший ответ:
Путь 1 - переопределять стили фреймворка подгрудая свой файл стилей позже него.
Путь 2 - кастомизировать фреймворк. Обычно css frameworks имеют less и/или sass версии. И в них есть файл с переменными переопределив которые можно получить желаемый результат
Путь 3 - зависит от фреймворк, bootstrap например имеет онлайн форму для кастомизации getbootstrap.com/customize
Вопрос: Нужна ли 32 и более колонная сетка?

Лучший ответ:
Не дробите сетку на большое число колонок, это не поможет. Управлять такой сеткой будет тяжело, но всё равно попадутся сайты, которые в неё не лягут.
Я для себя сделал генератор flexbox-сеток на LESS: под каждый конкретный проект я могу сгенерить сетки с разным количеством колонок, гуттерами разной ширины и разными media брейкпоинтами. Всё настраивается при помощи 5 переменных. По-умолчанию моя сетка старается быть похожей на бутстраповскую 12-колоночную, как самую привычную. Но некоторые фишки я утянул из сетки Zurb Foundation 6.
paulradzkov.com/flxgrid.css 
К тому же, flexbox настолько гибкий, что колонки могут распределять между собой ширину автоматически. 
Посмотрите пример paulradzkov.com/flxgrid.css/#auto-width-columns
Можно смешивать колонки с явно заданной шириной (фиксированной или в процентах) и автовыравнивающиеся колонки. Т.е. дизайн сайта не обязан быть выровнен строго по вертикальным направляющим, как с float-сетками.
Flexbox-cетку можно подстроить под почти любой дизайн, дописав немного кастомного кода.

Худший ответ:
Прекратите уже мучить себя этими вычислениями, используйте susydocs.oddbird.net и создавайте хоть 50 различных layout-ов.