Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Почему тормозит NGINX + NodeJS WebSocket + MySQL при 2000+ подключениях?

Лучший ответ:
Используйте pm2, если он не еще не используется.

Худший ответ:
1. Не сказана, какая нагрузка на сервер. Может быть, в этот момент процессор или диск загружен на 100% — поэтому и тормозит.
2. Если Вы уже прошлись по всем узким горлышкам, и видите, что нигде загрузки нет, вероятно, у Вас просто неправильные настройки. Например, в nginx по умолчанию стоит очень маленькое количество соединений, и как только к Вам подключится такое количество пользователей, всё начнёт виснуть. Например, если worker_processes стоит 2, а worker_connections — 1000, то nginx сможет одновременно обслуживать не больше 2000 запросов, остальные запросы будут ставиться в очередь. Решение — поставить их на максимум (сколько не жалко оперативки). Соединение отъедает где-то 10 КБ памяти, поэтому если Вы поставите 100 тыс соединений, то nginx сможет отожрать до 1 ГБ памяти.
Вопрос: Как найти вредоносный трафик?

Лучший ответ:
Берешь ип, делать реверс лукап - получаешь список DNS имен, все длинные имена из неизвестных доменов это и есть вредоносный трафик.

Худший ответ:
Какие-то жидкие вам ответы дали. Вредоносы не используют какие-то специфичные протоколы, они пользуются всем тем же, что доступно и легитимному ПО, за исключением тех зверей, которые используют обмен данными на базе протоколов OSCAR, IRC и проч.
Самый логичный ход -- использовать системы обнаружения атак. Snort, Suricata, Bro. Snort, например, уже старичок, сообщество огромное + долго и упорно развивается = легко использовать, легко настраивать, куча мануалов и гайдов. Большой плюс Snort - огромная база правил для обнаружения в трафике вредоносных пакетов, правила есть свободнораспространяемые, есть коммерческие, которые надо покупать, но в большинстве случаев, если вы не охраняете гостайну, то хватит и тех, что публикуются в открытом доступе (их надо своевременно обновлять). Для подробностей гуглить IDS или IPS и читать. 
Поскольку системы обнаружения работают на правилах, то у них имеется недсотаток - если правило не написано для чего-то конкретного, то это нечто проплывет мимо СОА. Поэтому имеет смысл периодически посматривать через анализаторы трафика, что там происходит в сети. Есть такое понятие как IOC (indicator of compromise), на их основе можно самому генерировать правила для систем обнаружения, эти индикаторы публикуются в открытом доступе на множестве ресурсов, например https://www.threatminer.org/. Отлавливаете трафик - проверяете на вхождение в него IOC, генерите соответствующее правило.
Вопрос: Как на Android 8.1 запретить выгружать приложение из памяти?

Лучший ответ:
Никак.

Худший ответ:
Android - Linux. Linux умеет выгружать файлы с ОЗУ путём создания виртуального хранилища, но, после выключения ОЗУ очищается в любом случае. Если найти умелого человека, который вам слегка поправит ядро, либо же вы найдёте нужный скрипт, то вполне можете это осуществить.
Вопрос: Как webpack'ом минифицировать не-модульный JS?

Лучший ответ:
Всё так же, как и с остальными файлами - то, что код "не-модульный", не значит, что нельзя выполнять импорт. Просто пишите что-то вроде:import './local_copies/xd_connection.js';
import './local_copies/rbadman-html5.min.js';
// ну и т.д.
Это так называемый импорт ради побочных эффектов.
Можно сократить, избавившись от необходимости указывать конкретные файлы, используя require.context:const context = require.context('./local_copies', false, /\.js$/);
context.keys().forEach(key => context(key));
Так они все окажутся в общем бандле.

Худший ответ:
Решение: нужен специальный loader: script-loader
Установить:npm install --save-dev script-loader
Использовать:import exec from 'script-loader!./script.js';
Вопрос: Как перевести проект использующий Bootstrap 3 на 4?

Лучший ответ:
Да там нет ещё и половины от третьего, так что грозит головной болью и в итоге откатыванием назад. Альфа же.

Худший ответ:
Бессмысленная работа. На четверке можете начинать новые проекты.
Вопрос: На чем лучше реализовать подгрузку страниц без перезагрузки?

Лучший ответ:
"Что использовать для анимации: протокол передачи данных или фреймворк для одностраничников."
Я прямо даже теряюсь......

Худший ответ:
Переход са страницы на страницу без перезагрузки реализуется JS history API + fetch API но я бі посмотрел в сторону любого SPA фреймвока (angualr, vue+vuex, React на крайняк) + https://v2.wp-api.org/ если нужно мигрировать ворпресс сайт.
Вопрос: Как правильно реализовать сайт с страницами под каждый город страны?

Лучший ответ:
1. Если делать вычисление по айпи юзера, это удобно, но в таком случае необходимо будет обязательно добавлять в исключения роботов поисковых систем, чтобы им не показывался только одна страница при заходе (у яндекса айпи московские). 
2. Если делать один сайт под все города, нужна чёткая структуризация разделов. В голове без подручных средств не воспроизвести всё что необходимо. Но основываясь на описании:
  - каждый город должен быть разделом. Внутри раздела идут страницы с двумя услугами
  - на странице контактов нужны ссылки на все страницы городов
  - в зависимости от количества городов, страницы услуг должны быть перелинкованы. т.е. внутри услуг нужны ссылки на соседние города из того же региона
  - у каждого города желательно должны быть свой номер, адрес, время работы, фото персонала.
3. Самым лучшим, недорогим и быстрым способом продвинуться под регионы всё-таки остаются поддомены. Но я не знаю на счёт сложности разработки црм под поддомены, потому что фактически это разные домены. Но если поддомены не станут проблемой для црм, то это лучший вариант развития. С ними вот такая схема
  - под каждый город делаем отдельный поддомен с услугами
  - на главном сайте на странице контактов ставим ссылки на все поддомены, указывая в каких городах мы предоставляем услуги
  - на поддоменах присутствуют только по 2 страницы с разыными услугами, вся остальная информация на основном домене.
  - в вебмастере яндекса чётко указываем каждому поддомену свой регион
4. Один сайт
плюсы:
  - "вес" не размазывается, сохраняется и копится на одном доменном имени
  - удобство под разработку црм системы
  - простота программирования при необходимости (добавление услуг, изменение функционала и т.д.)
минусы
  - поисковые системы довольно долго будут определять релевантность той или иной страницы (3-6 месяцев)
  - нельзя точечно указать регион в Яндексе
  - сложность в указании ссылок на сайты организаций на яндекс/гугл картах (могут принять за спам, поскольку домен один и тот же. Время на выяснение с тех поддержкой. В итоге могут вообще запретить указывать ссылки на один домен в разных городах)
5. Поддомены
плюсы
  - чёткое разделение по городам (для пс поддомен - отдельный сайт)
  - точное указание региона в яндексе
  - нет проблем с картами яндекс/гугл
  - более быстрое определение релевантности и позиций по запросам (2-3 мес)
минусы
  - возможные проблемы в разработке црм
  - более дорогая разработка относительно одного сайта из-за более сложного функционала взаимосвязи поддоменов и основного домена

Худший ответ:
Делаю ЦРМ систему и хотелось бы все автоматизиоровать, унифицировать, но с разными сайтами будет очень сложно.
Почему, фронтов может быть много, а админ часть 1 и 1 база.Планировал купить под каждый регион домен
не вижу смысла
Разные города обычно делают на поддомене, если конечно информация там разная, если не разная, то город это всего-лишь параметр, от которого контакты меняются. Тут нет однозначного ответа, пока нет видения всего проекта.два вида услуг разных
может есть смысл сделать 2 сайта под каждую услугу,если они не пересекаются
Вопрос: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO): что делать?

Лучший ответ:
Это может быть, если пароль не был задан при установке. 
Порядок действий для установки/смены пароля root в mysql следующий: 1. Остановить mysql:sudo service mysql stop2. Запустить сервис со следующими параметрами:sudo mysqld --skip-grant-tables --user=root
Если выдал ошибку то в файле /etc/mysql/mysql.conf.d/mysqld.cnf в секцию [mysqld] добавить строчкуskip-grant-tables и выполнить sudo service mysql restart3. После этого подключиться к mysql командой:mysql -u root4. Обновить пароль root'a:UPDATE mysql.user SET authentication_string=PASSWORD('<новый пароль>'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';    
FLUSH PRIVILEGES;5. И перезапустить сервис:sudo service mysql restart
Если на шаге 2 вы добавляли  skip-grant-tables в /etc/mysql/mysql.conf.d/mysqld.cnf - удалить эту строчку.
Подробнее в Русскоязычной документации Ubuntu

Худший ответ:
Он пишет что пароль не нужен.
Вопрос: Ошибка в Android studio, что делать?

Лучший ответ:
NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference 
1)Это ошибка не в андроид студио а в коде
2)android.widget.EditText.getText() возможно не инициализирован но это не точно, обратите внимание на 34 строку, а так нужен код самой активити что-бы точно сказать

Худший ответ:
Приложение не может запустить активити. Без кода  сложно понять в чем проблема.
Вопрос: Где лучше разместить текст оптимизированный под SEO?

Лучший ответ:
Имеет смысл оптимизировать всю статью целиком и распределить ключи равномерно.

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

Лучший ответ:
Вот тут ответ на ваш вопрос You-Dont-Know-JS Если не можете читать на Английском, значит ваш ответ "Английский язык".

Худший ответ:
Ну я в свои времена начинал со знаменитого ресурса Ильи Кантора. Там довольно-таки структурированно подается материал, освещается много различных тем. Но знать все необязательно, главное, понимать, как это работает, и где искать инфу в случае чего.
Вопрос: Какой метод перебора массивов JS использовать и как?

Лучший ответ:
map/filter:arr.map((n, i) => n ? i : null).filter(n => n !== null)
// или
arr.map((n, i) => n ? i : NaN).filter(n => n === n)
// или
arr.map((n, i) => !!n && i).filter(Number.isInteger)
// или
arr.map((n, i) => !n || i).filter(n => n !== !0)
reduce:arr.reduce((acc, n, i) => n ? [ ...acc, i ] : acc, [])
// или
arr.reduce((acc, n, i) => (n && acc.push(i), acc), [])
или, если надо изменить текущий массив, а не создавать новыйfor (let i = arr.length; i--; ) {
  if (arr[i]) {
    arr[i] = i;
  } else {
    arr.splice(i, 1);
  }
}
// или
arr.reduceRight((_, n, i, a) => n ? a[i] = i : a.splice(i, 1), 0)

Худший ответ:
Самое нормальное решение — через reduce, он для этого и существует. Но там технически есть второй массив.arr.reduce((arr, n, i) => {
  if (n === 1) {
    arr.push(i);
  }

  return arr;
}, []);
Если использовать цепочку map + filter, там тоже, технически, используется промежуточный массив.
В чем смысл вашей задачи? Или это теоретическое упражнение?
Вопрос: Как победить увеличение высоты страницы на мобильных устройствах?

Лучший ответ:
https://stackoverflow.com/questions/23164503/disab...
P.S. Возможно кому-то пригодится

Худший ответ:
Как решение, задать контейнеру страницы:.wrapper {
  position: fixed;
  top:0;
  bottom:0;
  left:0;
  right:0;
  overflow:auto;
}
Т.о., скроллиться будет содержимое контейнера, а не body. При этом, адресная строка не скрывается.
Вопрос: Как научится давать сроки по проекту?

Лучший ответ:
Прикидываешь.
И умножаешь на 2. Это и будет реальный срок.
О том, что разработчики занижают сроки работ - замечено еще лет 40 назадФ. Брукс. Мифический человеко-месяц

Худший ответ:
Я когда даю оценку на back, обычно понимаю по тз, сколько времени нужно что-бы сделать определенный пункт. Если есть сомнения, просто доплюсовываю несколько часов. 
+ после полной оценки еще могу докинуть несколько, что бы прям верочка)
А по ходу проекта, если ты сделаешь на несколько или прям на много часов быстрее, все будут только и рады. Будет жопа? Тогда ты славно себя обезопасил. Тут главное не боятся выставлять больше времени, так как впервую очередь это твои нервы и твое здоровье
Вопрос: Вторая по счету книга по алгоритмам и структурам данных?

Лучший ответ:
У Н. Вирта есть "Алгоритмы + структуры данных = программы", несколько переизданий. Написана на примерах языков ПЛ/0, Модула-2, и затем Обероне.

Худший ответ:
Однозначно Кормен.
Скиену и Седжвика конечно никто не отменял, тоже хорошие книги.
Вопрос: Как правильно вынести header и footer во внешний файл в HTML шаблоне?

Лучший ответ:
1) Шаблонизаторы - например Jade
2) Плагины для сборщика - например gulp-rigger

Худший ответ:
Когда я был полным новичком, то использовал для этого PHP, как в WordPress. Создаются нужные файлы : footer.php, header.php, index.php и т.д.  Потом подключаются  через инклюды <?php include 'header.php';?> Code goes here... <?php include 'footer.php';?>. Разумеется, это все должно быть запущено через веб-сервер. Плюс такого подхода, что не нужно изучать что-то новое. Gulp и jade требуют времени (и желания) хотя  и немного. 
Если время есть, то ответ Serj-One в  самую точку. Сам пользуюсь Jade, рекомендую.

UPD 2022 : Сейчас использую gulp-file-include.
1) Есть возможность передать данные в виде JSON.
2) Кроме того этот плагин "клеит"  не только HTML, но и JS скрипты.
Вопрос: Как протестировать ноутбук в магазине?

Лучший ответ:
1) тестировать можно диск, память, монитор, видеокарту, процессор.
Первая ссылка в гугле
pcpro100.info/monitoring-i-diagnostika-kompyutera-...
2) вопрос к магазину.
Удачной покупки.
Смотрите следующие ответы.

Худший ответ:
Мало кому можно верить в интернетах? А советам как протестировать значит веришь?
Берешь свой типовой проект под Андроид который покупаешь компьютер.
И компилируешь. 
Только я бы не дал непонятно что ставить на ноутбук. Может ты вирусы хочешь установить.
Дал бы попробовать ровно 1 - который ты окончательно выбрал и уже начинаешь оформление покупки.
Вопрос: Нужно сделать comparator, помоги, как его сделать?

Лучший ответ:
1. Причём тут a, если на вход функции подаётся num?
2. Зачем print, если требуется вернуть сообщение, как результат исполнения функции, а не напечатать его?
3. Знаки < и > у вас перепутаны.
В итоге, должно получиться как-то так:def comparator(num: float) -> str:
    """
    Compare the given number with 5 and return message depending on the number's value.
    
    :param num: input number
    :return: message regarding the number value compared to five.
    """
    if num > 5:
        return "The input number is bigger than 5!"
    elif num < 5:
        return "The input number is smaller than 5!"
    else:
        return "The input number is 5!"

Худший ответ:
def comparator(num):
    if num > 5:
        print("The input number is bigger than 5!")
    elif num < 5:
        print("The input number is smaller than 5!")
    else:
        print("The input number is 5!")
проверка print(comparator(3))
print(comparator(6))
print(comparator(5))
Вопрос: На каком железе поднять интернет через тоннель( При условии, что на шлюзе нужен гигабит)?

Лучший ответ:
Отменная охинея. Если мы пустим в интернет второго клиента через впн ... то как у него станет из 2 мегабит аж 20? Допустим пустим через украинскую локальную сеть все 100 мегабит через гигабит. То как в первом случае останется гигабит а не 900? Mikrotik hEX RB750Gr3 жмёт 400 мегабит айписек

Худший ответ:
Железка, умеющая гигабит впн - стоит столько, что вам дешевле будет прокопать кабель на UA-IX самостоятельно ;)
Вопрос: Книги по электронике с нуля?

Лучший ответ:
Рудольф Сворень "Электроника. Шаг за шагом". И спать не сможете совсем, так как паяльник врастет в руку :-)

Худший ответ:
shop.oreilly.com/product/9780596153755.do
Для самых новичков, продается вместе со электроникой. Есть на русском и даже можно скачать для ознакомления. 
eax.me/electronics-first-steps
Ну и физику школьную вспомнить https://cloud.mail.ru/public/5ZK7/Yjhb5DJBf
Вопрос: Можно ли соединять платы через HDMI?

Лучший ответ:
Здравый смысл подсказывает, что если бы у этого подхода были хоть какие-то шансы в соревновании с нормальными решениями, он бы был реализован. Здравый смысл подсказывает, что если бы он был реализован, об этом знал бы гугл. Здравый смысл подсказывает, что если бы вы умели пользоваться гуглом, то не задавали бы этот вопрос.
Как у вас со здравым смыслом, коллега?

Худший ответ:
Может, просто взять 10 гигабит ethernet?
Вопрос: Cтоит ли учить flex? препроцессоры LESS/SASS?

Лучший ответ:
CSS: flexbox, grid
Препроцессор: SASS (scss)

Худший ответ:
сверстал сайт используя только html5 и css3 (float)
От float'ов сейчас стараются избавляться, да и вообще они не совсем для этого нужны.нужно ли учить LESS/SASS
Там особо нечего учить, хватает беглого прочтения документации за пол дня. Использовать или нет, зависит от вас, но по факту от величины проекта это не сильно зависит.стоит ли учить flex
Определенно Да, по факту за флексом будущее. Хотя лично я с ним знаком бегло и пользую бутстраповские сетки.
Вопрос: Почему не работают ссылки React в продакшн?

Лучший ответ:
Перенаправляй все запросы на hostname.сomnginxlocation / {
  try_files $uri /index.html;
}apacheRewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]

Худший ответ:
Потому что нужно настроить роутинг на сервере. Когда идет обращение типа hostname.сom/admin, то ресурс admin ищется на сервере, и он не существует, потому что ваши клиентские роуты существуют только в js, и доступны они только после того как загрузится html по адресу hostname.com, скачается и обработается js файл.
Вопрос: Браузер тормозит, если одновременно много видео на экране, что делать?

Лучший ответ:
Сделайте, чтобы птички двигались только при наведении курсора. Когда все двигается, глаза не понимают на чем задержаться.

Худший ответ:
Запускать 1 по требованию пользователя.
Предыдущую запущенную останавливать в это время.
Вопрос: Как назначить цену на разработку электронного оборудования?

Лучший ответ:
Есть три основных ориентира, которые нужно использовать при определении стоимости:
1. себестоимость - материалы, ресурсы, подрядчики, собственные трудозатраты и т.п.
2. выгода, которую получает заказчик;
3. стоимость аналогичного продукта/услуги у конкурентов.
Стоимость не должна быть ниже 1, иначе это не бизнес, а меценатство.
Стоимость должна быть соразмерна 2, иначе заказчик получит сильно больше, чем исполнитель.
Стоимость должна быть соразмерна 3, иначе это будет странно выглядеть с обеих сторон.
Как-то так

Худший ответ:
Стоимость зависит только от стоимости вашего рабочего времени и от его количества.
Оцените количество своего рабочего времени, сколько его понадобится на проект - это сложнее всего.
Оцените стоимость своего рабочего времени - это те деньги, от которых вы откажитесь (не участвуя в других проектах, пока будете заняты этим проектом).
+ материалы за счет заказчика, разумеется.
Это нижняя планка. Так сказать "себестоимость" для вас.
Верхняя планка - зависит от вашей наглости (ваших психологических умений) и возможностей заказчика. В частности тут можно учесть другие предложения на рынке труда.
Нижнюю планку можно снизить, если проект лично вам необычайно интересен и/или профессионально перспективен.
P.S.:
Не знаю как у вас, но у меня оценки времени слишком оптимистичны, поэтому я свою оценку всегда умножаю на 2 или 3. Так это ближе к реальности получается.
Вопрос: Как узнать что не дает загрузиться сайту?

Лучший ответ:

вот тут  что-то одно будет длиииинной зеленой линией, это как раз то что долго грузится

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

Лучший ответ:
мультифон.box {
background: 
  url('boxBg.png') center, 
  url('img1.png') top left no-repeat, 
  url('img2.png') top right no-repeat, 
  url('img3.png') bottom left no-repeat, 
  url('img4.png') bottom right no-repeat
;
}
Вот, уже 4 угла и фон есть)) и никакие псевдоэлементы с дивами не нужны

Худший ответ:
про 4 угла как-то так
css.yoksel.ru/assets/demo/border-image/demo_1.html
Вопрос: Как сделать интерактивное графическое поле в приложении на Python?

Лучший ответ:
Делайте.

Худший ответ:
Помогла графическая сцена на PyQt5
Вопрос: Какое облачное хранилище посоветуете?

Лучший ответ:
Seafile может?

Худший ответ:
Знаю еще только https://syncthing.net/
Вопрос: Стоит ли разбивать диск на 2 тома в debian для веб-сервера?

Лучший ответ:
Стоит ли вообще разбивать диск?
Почему бы и нет? Еще стоит сделать отдельный раздел под /var.Сколько места оставить для самой ОС для комфортной ее работы?
Для самой ОС много места не нужно - там нескольких гигабайтов с головой обычно хватает.И какой raid лучше программный или аппаратный в данном случае?
Это тема для холивара. Однозначный ответ сложно дать. Плюсы и минусы обоих вариантов на тостере уже обсуждались. К ним можно добавить те возможности, которые у вас есть (у меня, например, был "сервер" из обычного пк и аппаратно он умел только raid0 и raid1, что не было лучшим выбором на тот момент - пришлось использовать программную реализацию).Возможно ли потом расширить пространство диска за счет добавления дополнительных дисков
Смотрите в сторону LVM (всмысле смотрите заранее, перед установкой)

Худший ответ:
spotifi: простите за резкость, но swap - 2 объема оперативки. 
это явно перебор! У него же 16 Гб оперативки, а не 512 Мб.
Если планируете всю машину отдавать под веб-сервер, то я бы сделал так:Программный RAID1 из двух винтовLVM - только учтите, что при разбиении диска раздел /boot не должен быть на LVM/boot - 512MB (ext2 с флагами noatime,nodev,nosuid,noexec,roswap - 1...2GB/tmp - 2...3GB (тоже ext2 (незачем там потом что-то восстанавливать), так как на LVM то не составит потом труда изменить размер раздела) /var/log - 2...3GB ext4/var - уже обсуждалось, что надо смотреть потом по ходу дела. Но раздел www я бы вынес в папку /home/user/home - см. выше/ - 8...10GB
Никаких автообновлений, всё ручками.
Вариант второй, можно поднять этот самый веб-сервер на виртуальной машине. Тем лучше, потому что наверное на этой машине будете работать сами в графическом интерфейсе.
Тогда всё немного по другому.
Шаги с первого по четвертый такие же.
Вся структура будет такая:
3TB - RAID1
/boot - 512MB
LVM:
vg-system/ - ~15BG/home - ~50GBswap - 1...2GB
vg-data
остальное дисковое пространство, например
VirtualMachine1 - 15GB
VirtualMachine2 - 50GB
... etc.
Рулить виртуалками на KVM можно virtmanager'ом. Вполне удобно.
PS: если интересно скину вам видео с процессом установки debian на LVM.
Надеюсь, что немного прояснил вашу ситуацию.
Вопрос: Есть ли инструмент защиты от установки рекламных приложений?

Лучший ответ:
Есть.
Просто отбираете у пользователя права администратора -и он не сможет установить никаких программ.

Худший ответ:
Только разъяснение и просвещение в плане компьютерной грамотности. Больше никак.
Если начинается нытьё типа "Ты сделай, не надо меня учить, а то я уже старый", то даже "коллекционные звездюли" не помогут.
KIS умеет галки снимать в популярный установщиках, но срабатывает далеко не всегда по моему опыту. Да и всяких установщиков вагон. В том же Auslogics Disk Defrag сначала была страница с галками для остановки всякого шлака, потом сделали по странице на каждую дополнительную какаху с галкой, сейчас вместо галки кнопка прямо на месте "Next", а кнопка для попуска левее.
Вопрос: Как в Python 3 вызвать функцию чьё название написано в строке?

Лучший ответ:
Вообще, сама постановка вопроса кагбе намекает на архитектурные проблемы такого подхода. Но, если решать вопрос «в лоб», то вот самый логичный вариант:call_func = input("Введите название функции чтобы её вызвать: ")
locals()[call_func]()
Это я подразумеваю, что функции определены в том же неймспейсе, что и call_func. Если они определены в неймспейсе модуля, а call_func − глубже, в функции или методе, то поможет globals(). А если они вообще где-то в других модулях, которые могут не быть импортированы заранее, то нужно копать в сторону importlib.import_module, но это уж точно оверкилл.
Ну и, конечно, использовать пользовательский ввод тут небезопасно. Не так опасно, как eval, но тоже нехорошо.

Худший ответ:
def func1(text):
    return text

def func2():
    return ""

functions = {'func1':func1, 'func2':func2}

functions['ваш input']()