Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Быстрее ли несколько параллельных запросов одного последовательного?

Лучший ответ:
Есть ли в распараллеливании запросов рациональное зерно?
Есть, если треды не дерутся за одно и те же ресурсы. Например, ходят в физически разные кластеры БД.Получается, что один последовательный запрос, что несколько параллельных, имеют сопоставимую продолжительность.
Или вы неверно описали наблюдаемый результат или же параллельное выполнение медленнее в 2 раза и дальше ухудшается при конкурентной нагрузке.На каком-то этапе параллельные запросы также выстраиваются в очередь.
Запросто. Но на вашу наблюдаемую картину не похоже, у вас время выполнения работы выросло в несколько раз.
Значит процессы дрались за ресурсы и очень сильно мешали друг другу.Если в то же время подать аналогичные запросы с другого клиента, то время ожидания ещё больше растягивается.
Что подтверждает диагноз. Ресурсов для параллельного выполнения нет.
Поскольку вопрос затрагивает субд и вы не называете, что там происходит - самое очевидно - вы упёрлись в диски. Возможно даже в механические диски. Добавление новых io задач на диски ожидаемо и очень сильно замедляет весь остальной io.

Худший ответ:
В распараллеливании смысл, конечно, есть. Просто это должно делаться на всех уровнях. Апач не использовал уже несколько лет, поэтому тут ничего сказать не могу, но судя по описанным симптомам, затыком у тебя является БД.
Конкретно с firebird не работал, но наверняка её можно распараллелить через репликации.
Т.е. сейчас у тебя получается 3 php-скрипта делают запросы к бд. Бд обрабатывает запросы синхронно, поэтому никакого выйгрыша в скорости не получается. Можно либо в настройках бд поискать асинхронную обработку запросов, но врядли там такое есть, либо реплицировать бд по типу мастер-слейв и запрашивать с разных слев-серверов бд данные, тогда прирост в скорости будет.
Вопрос: Как грамотно обрезать изображение?

Лучший ответ:
<div class="crop">
   <img>
</div>.crop {
   position: relative;
   width: 100px;
   height: 100px;
   overflow: hidden;
   display: inline-block;
}

.crop img {
   position: absolute;
   left: 50%;
   top: 50%;
   min-height: 100%;
   min-width: 100%;
   height: auto;
   width: auto;
   transform: translate(-50%, -50%);
   /* max-height: 100% - для горизонтальной версии (слева)
  // или
  /* max-width: 100% - для вертикальной версии (справа)
}
Ну или картинку делать background'ом для div'a и делать background-size: cover;

Худший ответ:
D=min(height,width) - сторона квадрата
x0=(width-D)/2     //X, левый верхний угол
y0=(height-D)/2    //Y, левый верхний угол
x1=x0+D               //X, правый нижний угол
y1=y0+D               //Y, правый нижний угол
Вопрос: Почему в Arduino int 2 байта, а не 4?

Лучший ответ:
Зря привыкли. Стандарт C++ регламентирует только минимальные диапазоны значений для типов , так что ардуинская реализация в стандарт прекрасно вписывается.
Хотите использовать типы гарантированной длины - используйте int32_t

Худший ответ:
Дело не в языке, а в стандарте С++ (на котором основан ардуиновский Wiring), который предполагает тип int равный некоторому размеру, зависящему от целевой платформы:Plain ints have the natural size suggested by the architecture of the execution environment
Причина - оптимальность размера типа для процессора.
С большой долей вероятности там отличаются размеры и остальных типов, включая указатели (void*).
Вопрос: Есть ли метод «this» у «while»?

Лучший ответ:
Есть ли метод «this» у «while»?
this - это не метод.Можно ли к внутри цикла «while», как-нибудь обратиться к найденному [в условии] результату?
Нет.
Решение вашей задачи:[].forEach.call(document.querySelectorAll('article p'), function(node) {
  node.remove();
});

Худший ответ:
Есть ли метод «this» у «while»?
this - это не метод.Можно ли к внутри цикла «while», как-нибудь обратиться к найденному [в условии] результату?
Нет.
Решение вашей задачи:[].forEach.call(document.querySelectorAll('article p'), function(node) {
  node.remove();
});
Вопрос: Отключить доступ по ssh от имени «root», но?

Лучший ответ:
Никак.
Root определяется по ID равному 0, а не по имени пользователя.
PermitRootLogin запрещает доступ именно пользователю с ID 0

Худший ответ:
Давать нескольким юзерам ID 0 - это хак и вообще адЬ с точки зрения ИБ. Используйте sudo, а логин рутом должен запрещаться сразу же после установки системы и настройки sudo, потому что несколько юзеров с ID 0 это примерно то же, что всей семьей работать на винде под единственной учеткой Administrator и потом удивляться, что это систему переставляем раз в месяц, а все равно глючит...
Вопрос: Почему ресурс у видюх ниже чем у процессора? И как его продлить?

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

Худший ответ:
чуть добавлю, структура кремния начинает активно деградировать выше 140 градусов.
Но кроме кремния там много составляющих, отрицательно относящихся к температурным нагрузкам.
К примеру известная проблема - "отпаивание" процессора от платы.
Одну нвидия видюху после такого оживил - аккуратно "прожарив" на пром.фене.
Проблема универсальна для многих элементов. К примеру таким же образом восстановил жутко заглючивший роутер dlink dir-615 :)
относитесь аккуратно к оборудованию и оно прослужит долго.
в общем не греть выше 60...70 градусов и проживут они долго и счастливо. температура тротлинга лежит где-то в этих пределах. неавторизированное заявление по этому поводу здесь
Вопрос: Куда запихнуть второе меню при адаптивной верстке?

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

Худший ответ:
В то же самое меню?
home
...
accessories
----
other menu items
Но вообще это не должно быть проблемой верстальщика. Дизайнер, менеджер, заказчик - аж вот сколько народу есть, кому скорее это стоит поручить.
Вопрос: Индексируются ли ответы на форуме?

Лучший ответ:
Ну Вы хотите, чтобы я рассказал лучше, чем я это сделал в Вашем предыдущем вопросе?
Я могу это сделать еще раз: 
Если Вы будете следить за КАЧЕСТВОМ контента в вопросах и ответах посредством автоматического фильтра (спама, линков, нецензурной лексики, рекламы и т.д.), а также они будут полезны для других людей, там не будет "перегрузки" (читай "накрутки") тэгами и ключевиками, форум будет удобен в стилистически-визуальном плане и при поиске информации, а также им будет удобно пользоваться на любых устройствах, позволяющих смотреть веб-страницы с интернета, будет корректная JSON-LD-разметка и своевременное оповещение поисковиков о появлении нового контента... 
...тогда шансы есть выбраться на 1-ю страницу по тем темам, ответы на которые у Вас достаточно точнее и полнее, нежели на ресурсах-конкурентах.
(про платную рекламу - это отдельная тема)Ну и кратко про "SEO-золото": НЧ-запросы отсутствующие еще в ПС, но уже набирающие интерес публики к этой теме: нужно всегда позиционировать ресурс на опережение старта интереса к теме и давать максимально достоверную и подробную информацию. (сфера и направление - любое)
Почитайте по SEO-оптимизации ключевые пункты: здесь.

Худший ответ:
на КАКОМ из них?
Вопрос: Есть ли такой алгоритм и как он называется?

Лучший ответ:
Есть такой алгоритм.

Худший ответ:
Этот алгоритм называется подбиратель. Реализовать можно, например, прописав все условия вручную.
Вопрос: Инет на винде есть — на линухе нет... Магия?

Лучший ответ:
Похоже на высокий MTU
Подберите правильный MTU такой командой:ping -c 4 -M do -s 1500 ya.ru
Вам нужно будет менять цифру "1500" на более низкие значения, пока не перестанет отображаться что-то вроде Frag needed and DF set или ping: local error: Message too long, mtu=1500
и станут идти нормальные пинги, после чего зайдите в Ваш network-manager и впишите туда значение которое Вы подобрали
вот значения, которые Вы должны перебирать по очереди, сверху вниз:Значения1500   The biggest-sized IP packet that can normally traverse the Internet without getting fragmented. Typical MTU for non-PPPoE, non-VPN connections.
1492   The maximum MTU recommended for Internet PPPoE implementations.
1472   The maximum ping data payload before fragmentation errors are received on non-PPPoE, non-VPN connections.
1460   TCP Data size (MSS) when MTU is 1500 and not using PPPoE.
1464   The maximum ping data payload before fragmentation errors are received when using a PPPoE-connected machine.
1452   TCP Data size (MSS) when MTU is 1492 and using PPPoE.
576   Typically recommended as the MTU for dial-up type applications, leaving 536 bytes of TCP data.
48   The sum of IP, TCP and PPPoE headers.
40   The sum of IP and TCP headers.
28   The sum of IP and ICMP headers.

Худший ответ:
ip v6 - интерфейс - поднят на линухе?
Вопрос: Почему может исчезать папка в samba шаре?

Лучший ответ:
Духи Марипупу скрывают папку от вас.
Логи включите уровнем подетальней и посмотрите.

Худший ответ:
Вероятно, самба-клиент пытается авторизоваться не под пользователем, а под анонимусом, которому, естественно, папка не видна. Дальше действительно копайте security log, настраивайте аудит доступа к конкретной папке, чтобы события о доступе падали, и воспроизводите проблему.
Вопрос: Как сделать шапку на весь кран?

Лучший ответ:
если вы не понимаете, что нужно для начала открыть панель разработчика в браузере и посмотреть как выполнены в данном сайте меню и слайдер, то как можно еще что-то объяснить или подсказать как такое делается на весь кран!!!

Худший ответ:
Ctrl+U, F12 - смотрим исходник и стили и делаем так же.
Вопрос: C чего начать первый шаг в бездну программирования?

Лучший ответ:
веб-программирование проще любого другого в разы
падавану юному говорить для начала свободно надо на основных языках веб-программирования -
js css html
js фирст, потом css и html 
надо понять что ты при желании можешь совсем не использовать возможность декларативного программирования стилей оформления и структуры дерева документа
js - очень простой язык, проще некуда, «Лисп в шкуре Си»
и самый кросплатформенный - новичкам самое то
не забываем принцип KISS - ценим минимализм-простоту-легкость
учебник Фленагана надо полностью переварить
и php немного для начала - только  основные серверные функции для работы с папками и файлами 
или лучше - изучить api node.js - и делать сервер на js
в процессе учебы надо написать свое простое клиент-серверное приложение - 
чат, рисовалку, текстовый редактор, игру и тд...
главное - без использования чужого кода - без  библиотек, фреймворков и готовых БД  
ты должен уметь самостоятельно создавать-обрабатывать-сохранять нужные тебе данные
программирование это решение поставленной задачи -
сам придумай себе задачу в интересной области и решай ее несколько лет пока учишься
клиент толстый, сервер тощий -
сервер используй только для простых функций - чтение-запись файлов, сканирование папок, авторизация ...
офлайн и мобайл фирст -
надо понять, что мобильный сенсорный экран - это основное средство ввода 21го века
и что браузер работает в песочнице
велосипайд фирст -
чтобы научиться - делать ты должен сам
три-пять лет надо грызть гранит
просветление неизбежно после этого обретешь 
и настоящим веб-мастером станешь 
или даже джедаем или нинзем, если пребудет с тобой СИла
и есть другой путь - темная сторона программирования:
работа по чужому готовому стандартному шаблону-фреймворку 
бесконечный круговорот в сансаре капиталистической индустрии
общение с дебилами, психопатами, жуликами, лентяями и тд
офисное или фриланс страдание
легкая заменяемость программиста
вечная доделка-переделка чужого кода
неспособность делать нужный функционал самостоятельно
постоянное гугление готовых решений
депрессия и уныние
//а самые ленивые становятся верстальщиками-недопрограммистами))
нормальные программисты делятся на два типа:
1) инженеры - те кто могут написать шаблон для себя или для других
2) слесари-монтажники и чесальщики-мотальщики - те кто работают в рамках готового шаблона
- оба типа нужны, всё зависит от твоих способностей и талантов

Худший ответ:
Гугл создавали ребята, которые закончили то ли Stanford, то ли Cambridge, другими словами очень умные ребята.
На мой взгляд вам есть смысл посмотреть на php, sql, html, css, javascript. И если это покажется сложным то можно попробовать курсы системного администрирования  или курсы 1С (есть в Бауманке). Если курсы сис. администрирования или 1С покажутся сложными, то можно попробовать выучиться на оператора станков с программным управлением. Если это покажется сложным то можно попробовать устроиться продавцом сотовых телефонов или на тому подобную работу продавцом где не нужен опыт, но нормально платят.
Вопрос: Подходящие ли характеристики ПК?

Лучший ответ:
В порядке приоритета: SSD 256Gb/i7/GTX 1060/.... остальное - ОК.

Худший ответ:
если Adobe Premier, то лучше i7.
SSD возможно имеет смысл посмотреть 256 GB
Материнку и слоты памяти посмотрите так, чтобы потом могли докупить еще 16 GB. То есть или память возьмите одной планкой, или чтобы на материнке было 4 слота, и 2 осталось свободными на будущее.
Вопрос: Как называется этот сниппет и как его получить?

Лучший ответ:
Какой блок? Если тот что справа - в картах зарегить организацию...

Худший ответ:
Этот блок формируется автоматически при добавлении организации в Гугл Мой Бизнес.
Вопрос: Почему может не включаться ПК после добавления ОЗУ?

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

Худший ответ:
Выключить комп
Вынуть первую планку и всунуть туда новую:
1) Если не заведется -  планка сгорела.
2) Если заведется - сгорело второе гнездо для памяти.
Вопрос: Как задокументировать parent в IDE на примере YII2?

Лучший ответ:
Мне кажется никак.
Трейт должен реализовывать общие функции. И может быть внедрен в любой класс. С чего вы взяли, что у класса, который внедрит трейт, будет наследован от нужного Вам класса и иметь соответствующую функцию?
Единственный совет - использовать тот же $this.
Или использовать не трейт, а промежуточную модель, поскольку Вы явно подразумеваете использование данной функции только в модели и только в ActiveRecord

Худший ответ:
Я бы сделал это через behavior а не через trait, что решит много проблем, но будет незначительнее медленнее работать.
Советую почитать вот эту статейку:Поведение или трейт
Вопрос: Как сделать прелоадер на сайт в %?

Лучший ответ:
демонстрация мокапов, очень много изображений которые очень высокого разрешения для ретины
Подгружайте картинки js'ом(lazy load). Пусть вся станица будет 10%, то каждая загруженная картинка будет 90% / n-image. Вот и обновляйте статус после каждой картинки.
Но изначально подход какой-то странный. Вы заставляете клиента ждать загрузки картинок всех? Почему не использовать lazy load? Под каждой картинкой pre-loader и по мере загрузки страницы меняйте pre-loader на картинку.  Пусть клиент смотрит на 1 пока остальные грузятся.
Ну и если уж совсем 'правильно', то делайте адекватную preview-картинку(маленького размера). Если ему понравится, то он перейдет на странице с полноразмерной картинкой

Худший ответ:
Может кто делал
Не встречал и вряд ли тут может быть полноценное решение даже в теорииЕсть идея замерить за сколько загрузится один файл с сервера и потом на основании этого
Файлы бываю разного размера, могут храниться на разных серверах, могут грузиться из кеша браузера, соответственно скорость загрузки 1 файла не скажет Вам ни о чем.
Добавим сюда асинхронно подгружаемые ресурсы, время на срабатывание js скриптов и т.д. В итоге логика, которая это все отследит, будет замедлять работу сайта больше чем все остальное.
Многие думали на этот счет и всегда правильный выход - эмуляция прогресса загрузки, а не его точное определение.
Вопрос: Как грамотно настроить AWS Amazon?

Лучший ответ:
касательно "закрытия" сетей можно глянуть этот официальный пример (референсный темплейт от AWS)
https://github.com/awslabs/ecs-refarch-cloudformation
он разворачивает VPC, Subnets, и ECS кластер в закрытой сети, все с балансингом и дублированием для отказоустойчивости на две зоны доступности - разобравшись можно развернуть вместо ECS кластера что угодно другое.
касательно SQS - ну это все специфично - если вы решили "плотно" сидеть на AWS - тут просто вопрос интерграции под это самого приложения, если же не хотите вендор-лока - то разверните себе RMQ как обычно и всё.

Худший ответ:
Начать стоит с официальной документации https://aws.amazon.com/ru/documentation/.
В первую очередь нужно начать изучение с VPC, EC2 и ELB.
Для базовой безопасности достаточно минимального понимания VPC. Грубо говоря VPC - это ваша личная сеть внутри AWS. По умолчанию машинки добавленные в вашу VPC не доступны снаружи. Входящий трафик можно прокидовать через ELB.
Для конфигурирования посоветую https://www.terraform.io/. Настраивая AWS через него конфигурацию всегда можно будет воспроизвести. И легче будет окинуть взглядом инфраструктуру.
Вопрос: Вылетают игры и 3dmark?

Лучший ответ:
несите обратно в магазин. как только нагрузку делаете - видеокарта вылетает.

Худший ответ:
может у вас игры не на дискретной видео карте запускаются? погуглите "запуск игр на внешней/дискретной видеокарте на ноутбуке"
Вопрос: Как правильно разбивать проект на компоненты?

Лучший ответ:
Всё просто.
* Если кусок кода выглядит, как отдельная сущность — выделяй в компонент
* Если кусок кода используется в более чем одном месте — выделяй

Худший ответ:
В плане организации компонентов лично мне  БЭМ нравится
Вопрос: А зачем вообще покупать SSL-сертификат для сайта у GlobalSign/Comodo/etc, если можно подписать самому?

Лучший ответ:
Вам подойдет https://letsencrypt.org/

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

Лучший ответ:
не надо хранить фото в базе

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

Лучший ответ:
Вообще вы конечно нагородили. Все проще.<select>
    <option value="0" <?=$data['active'] == 0 ? 'selected="true"' : null;?>>Не активен</option>
    <option value="1" <?=$data['active'] == 1 ? 'selected="true"' : null;?>>Активен</option>
</select>

Худший ответ:
Вопрос концептуальный: зачем это делать селектом, вместо более очевидного checkbox?
А в селектах обычно переключают аттрибут selected, а не извращаются со значениями. Одинаковый порядок следования option - это бонус для использования, а не баг.<option value="1" <?= $data['active'] ? ' selected="selected":'''?>>Активен</option>
<option value="0" <?= !$data['active'] ? ' selected="selected":'''?>>Не активен</option>
Вопрос: CMYK уродует цвета. Есть ли компромисс?

Лучший ответ:
Выбрать другой профайл. Но нужно спросить типографию о требованиях к печати. В идеале - типография должна предоставить свой профайл, вот его-то и нужно применять - тогда не придется мучаться эстетическими дилеммами: выбора-то не будет.
А вообще не переживай сильно, если картинка не такая красивая, как в RGB. Отпечатанный макет - это совершенно другой опыт и переживания от его восприятия, монитор лишь может дать представление об этом восприятии, но реальность он передает крайне посредственно.

Худший ответ:
В случае с CMYKом надо подбирать цвет не по тому как у вас на экране цвет отображается/выглядит, а по так называемому атласу цветов CMYK. Это такая книжечка в которой распечатаны цвета на бумаге, вы выбираете максимально подходящий вам цвет, и задаёте именно его, а не просто тупо переводите/конвертите из RGB в CMYK.
Вы же для печати переводите в CMYK? Значит и образцы нужно смотреть не на мониторе, а на бумаге(не плохо было бы и про её тип и плотность заранее поинтересоваться).
Как вам посоветовали выше, изучите мат часть, там не сложно и сразу бОльшая часть вопросов отпадёт.
Вопрос: Как правильно прописать alias для запуска webstorm с консоли?

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

Худший ответ:
my_storm() {
    bash $HOME/WebStorm-162.1812.21/bin/webstorm.sh &!
}

alias my_storm="bash $HOME/WebStorm-162.1812.21/bin/webstorm.sh &!"
& - запустить в бекграунде
! - отвязать от текущего терминала
Вопрос: Как вы дефрагментируете свои знания?

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

Худший ответ:
я даже не думаю о этом , если надо ( без всякого КАК ) применю и всё
Вопрос: Как побороть css !important?

Лучший ответ:
1) подключать свои стили после них
2) обращаться точно также как и там
к примеру есть:#mydiv ul li a.link {font-size: 16px;}
чтобы его побороть нужно написать путь такой же(ну или длиннее, а вообще прочитай про приоритеты в css):#mydiv ul li a.link {font-size: 14px;}
с important тоже самое. стили#mydiv ul li a.link {font-size: 16px !important;}
перебъют такие же стили#mydiv ul li a.link {font-size: 14px !important;}

Худший ответ:
Есть такое понятие как "вес" css правила. Вот здесь я рассматривал его https://codeseller.ru/forum/product-13876/vidoizme...
Вам нужно перебить весом - добавив класс или id. Тогда и порядок загрузки не важен будет
Вопрос: Новичок в C# / Правильно ли я написал вывод ошибки?

Лучший ответ:
Добрый день. 
0. Блок if-else надо помещать в блок try. Так как зачем сравнивать если произошла ошибка?
1. В вашем случае лучше использовать ReadKey, так как по условию один символ от 1 до 5.
2. Желательно использовать блок finally, но в вашем случае не обязательно. 
3. На мой взгляд много лишних проверок 
Обработка ошибок в принципе реализована правильно, но надо помнить, что это достаточно тяжелая операция и в данном случае избыточная. В данном случае можно проверять через TryParse. Я бы решил так - static void Main()
{
   int number_user1 = 0;

   while (true)
   {
      Console.Write("Player 1 write number from 1 to 5: ");

      string inputChar = Console.ReadKey().KeyChar.ToString();

      if(int.TryParse(inputChar, out number_user1) && number_user1 <= 5 && number_user1 > 0)
      {
         break;
       }
       else
       {
          Console.WriteLine($"\nEnter only NUMBERS from 1 to 5 (you input {inputChar})");
       }
    }

   Console.WriteLine($"\nYou input {number_user1}");
   Console.Write("Press any key to close"); Console.ReadKey();
}
Также почитайте - https://docs.microsoft.com/en-us/dotnet/standard/e...
https://habrahabr.ru/post/221723/
https://habrahabr.ru/post/178805/
и
https://stackoverflow.com/questions/14973642/how-u...

Худший ответ:
else
                {
                    repeat = true;
                }
этот блок не нужен, можно удалить, так как если условие if не выполняется, то repeat = true.
И в блоке try в цикле while не нужна строка number_user1 = Convert.ToInt32(Console.ReadLine());
И цикл while в блоке try поменяй на условие iftry
                {
                    Console.Write("Player 1 write number from 1 to 5: ");
                    number_user1 = Convert.ToInt32(Console.ReadLine());
                    if (number_user1 > 5 || number_user1 == 0)
                    {
                        Console.Write("ERROR: Player 1 PLEASE write number from 1 to 5: ");
                    }
                }
Вопрос: Как принять из формы только русский язык?

Лучший ответ:
Regex.IsMatch("[А-Яа-я]", Surname);

Худший ответ:
Regex.IsMatch("^[А-ЯЁ]{1}[а-яё]+$", Surname);
В таком формате проверяем и корректность набора символов, и правильность введённой фамилии - с заглавной буквы.
Вопрос: Как перенести строку в value?

Лучший ответ:
Попробуйте input[type="submit"] {
  white-space: normal;
}

Худший ответ:
<button type="submit">Любая<br>HTML-разметка</button>