Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как идет оплата на upwork?

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

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

Лучший ответ:
Наверное нужно поискать jquery.maskedinput-1.2.2.js на другом ресурсе.
Так как на ruseller неверно настроен SSL.
А на https сайте подгружать скрипты http не следует.
Это что касается jsfiddle, а какая у вас на сайте ошибка?
Если ваш сайт https - то причина та же.

Худший ответ:
Вместо точек - девятки
https://jsfiddle.net/ProjectSoft/hukquyvs/
Тутор digitalbush.com/projects/masked-input-plugin
Ссылка была в исходном коде плагина. Иногда, всё-таки, нужно заглядывать.
Вопрос: Как быстро разобратся в сишном коде?

Лучший ответ:
Вы пишите Так как с C я "на вы" 
Не не намного сложнее, чем тотже php или js.Сейчас там 3ляма+ строк
Зачем переписывать столько? Не проще найти ошибки?Люди решили всё переписать и выбор технологий оставили за мной
Люди решили всё переписать доверили человеку, который с С на вы...Последний программист который мог объяснить как оно работает уволился с год назад
Проблема в менеджменте. Не стали платить человеку за поддержку готового кода, а заплатили похоже в несколько раз больше, чтобы переписать всё с нуля... Неужто так всё плохо? )))
Если присмотреться, то пхп и си - очень похожие по синтаксису языки. Читаю в википедии: "Синтаксис PHP подобен синтаксису языка Си." А вот что пишут тамже про Javascript "который, по замыслу разработчиков, должен был стать достаточно мощным, чтобы заменить макросы, сохраняя при этом схожесть с Си"
Моё мнение, лучше изучить Си и просто доделать, исправить ошибки. Возможно двигаться в сторону С++, может быть Qt и т.д..

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

Лучший ответ:
Асинхронная функция потому и асинхронная, что возврат из неё (return) происходит существенно быстрее, нежели заканчивает выполняться исходный код запущенных изнутри неё операций и callbacks.

Следовательно, обёртывать такую функцию в конструкцию try-catch бесполезно (когда возврат из функции случился, тогда никакие ошибки ещё не могли произойти — а значит, ловить ещё нечего), и для обработки ошибок поневоле приходится применять передачу их callback-функциями, а не бросание оператором throw.

Для такой передачи, как правило, применяется первый же параметр callback-функции, то есть вызов её имеет вид «callback(err, data)», где error — ошибка или null, а data — данные, передаваемые при отсутствии ошибки. (Параметров с данными может быть несколько.)

Смысл такого порядка, при котором параметр ошибки идёт первым по счёту, заключается в том, что вместо «throw new Error()» используется простой вызов callback-функции с единственным параметром: «callback(new Error()); return;» — в общем-то, это не слишком-то сложнее, чем throw.

Чтобы соответствовать этому порядку, внутри такой callback-функции сперва происходит сравнение первого параметра с величиною null (что позволяет при их неравенстве сразу заметить произошедшую ошибку, при необходимости тотчас же обработать её или передать родительской callback-функции), и лишь затем приступают к обработке данных, полученных через последующие параметры функции.

Я не разделяю мнения , согласно которому библиотеки таких функций, которые специально предназначены для обработки ошибок в асинхронных функциях, являются кривыми, и сделаны худо, и чрезмерно наполнены, и не могут служить подспорьем. Я держусь противоположного мнения: библиотека async представляется мне удобным средством для управления асинхронными функциями и вообще, и в частности — для обработки ошибок в них.

Да это и не только моё мнение: мне доводилось ужé подмечать в январе нынешнего (2012) года, что пакет async вошёл в десятку наиболее используемых модулей для движка Node по свéдениям сайта «The Node Toolbox», основывающимся на статистике пакетного менеджера npm.

Худший ответ:
Не совсем ответ на вопрос, но лично мне удобнее console.log() вместо alert()
Вопрос: Почему не удаётся подключить сетевой диск?

Лучший ответ:
Диск точно отшарен и виден?
Попробуй так:
net use \\192.168.50.8\drive$ /user:user *

Худший ответ:
А в логах есть чо по этому поводу?
Вопрос: Правильно ли создавать структуру страниц контроллером?

Лучший ответ:
Правильно — читать документацию и использовать view composer'ы (или view creator'ы).

Худший ответ:
В Laravel используются наследовательные шаблоны. Почитайте что это такое, и вам не придётся строить велосипед. И да. View Composers тоже вам в помощь, как сказал JhaoDa
Вопрос: Как изменить массово адрес сайта во всех файлов скрипта?

Лучший ответ:
Я бы сделал так:
1) Создать переменную, присвоить ей значение "адрес сайта"
2) Заменить вхождения адреса на эту переменную (в 30 файлах)
3) при нужде - менять адрес только в значении переменной (в одном файле, в одном месте..)...

Худший ответ:
В главном файле который ты подключаешь ко всем остальным файлам, определяешь константу со своим адресом сайта, а затем везде заменяешь адреса на константу.
Почему константа а не переменная? Она выразительней смотрится и она видна в любой области видимости
Вопрос: Прерывания Arduino и шаговый двигатель?

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

Худший ответ:
Самый важный ответ: обязательно возобновляется.
На борту Arduino Leanardo arduino.ru/Hardware/ArduinoBoardLeonardo" находится МК ATmega32u4 www.atmel.com/images/atmel-7766-8-bit-avr-atmega16u4-32u4_datasheet.pdf 
Timer0 лучше не трогать. Остальные можно использовать на свое усмотрение, разумеется с учетом отсутствия ШИМ на определенных выводах
Вот https://cloud.mail.ru/public/JV2F/3FdQsvdZU ссылка на на класс работы с аналоговой клавиатурой linksprite.com/wiki/images/thumb/d/d2/Lcd-button-l...
Вопрос: Быстрый софт для работы с большими базами?

Лучший ответ:
Загрузить в Postgres, выучить SQL.

Худший ответ:
Благодарю всех за ответы, но я ищу win 32/64 приложение которое будет выполнять одну или все из перечисленных функций. Написание макросов, скриптов, работа с *nix, базами данных, питоном, с командной строкой Powershell не входит в фокус моего вопроса. 
Спасибо за понимание.
Вопрос: Вопросы по CDN?

Лучший ответ:
200 запросов в секунду статики для nginx — детский лепет

Худший ответ:
Ну для СНГ особо выбора-то нет, ngenix + ещё поменьше компании типа cdnvideo.
Вопрос: Что такое расстояние Хемминга?

Лучший ответ:
Фиг знает как объяснить доступно, но попробую.
К примеру, есть два вектора A1 и A2.
Длина  A1 равна 10 и длина A2 равна 10.
Расстояние будет одинаковым, т.к. нет никаких расхождений.
Если увеличить длину одного из векторов, то разница в длинах как раз и будет расстоянием Хемминга.
Но это пример плохой, но подходит для начала.
Другой пример поближе к жизни.
Возьмем две строки (там же длина везде сравниваемых объектов должна быть одинакова).
К примеру, пусть будет вот так:
$a = "abcdef";
$b = "abcdfe";
Длины строк у нас одинаковые, но побитово - разные, поэтому можно найти расстояние.
Оно будет равно двум: в первой и второй строке последние два байта разные.
То есть имея две одинаковые по длине строки мы сравниваем их побайтово и количество различающихся байт и есть расстояние Хемминга.
Я не очень уверен, что это прям вот совсем правильное объяснение, но надеюсь суть оно донесет.

Худший ответ:
https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D...
Что тут не ясно?
Вопрос: Как избавиться от подобных предупреждений в тимсити?

Лучший ответ:
Пользоваться NuGet для работы с зависимостями (https://www.nuget.org/packages/CompareNETObjects/ как раз то что вам нужно), а если уже пользуетесь - очевидно, нужно пофиксить список зависимостей в packages.config, или же сделать nuget restore перед вызовом MSBuild.
Раз сборка не находится, то либо: а) путь к ней неверный; б) путь верный, но она не выкачивается nuget-ом при сборке;
Еще может быть в) косяк с версиями/токенами, но это маловероятно.
Ну и само собой, если у вас код компилится и работает без проблем, удалите вообще этот референс из проекта.

Худший ответ:
Привет. Спасибо за совет. restore NuGet помог избавиться от основной массы предупреждений. ))
Вопрос: Как сделать резиновый svg?

Лучший ответ:
может быть так? preserveAspectRatio="none"

Худший ответ:
Если svg прописан в HTML как код или через object.
Тогда пропиши в css следующее...
svg {
width: 100%;
}
Вопрос: Односторонняя система уведомлений для Win XP/7 клиентов по локальной сети — подскажете?

Лучший ответ:
Такая программа называется "почтовый сервер" и не надо велосипедов придумывать. Ну или Jabber.

Худший ответ:
Это внутри конкретной организации? Если так - то административные методы + что угодно. Можно виджет на рабочий стол сделать, можно хоть виртуальные листочки на обои вешать.
Технически задача несложная, проблема будет в плоскости "я всё равно не читал" или "оно само". Именно тут и нужны административные меры.
Вопрос: Асинхронная отрисовка на vue.js. Как не блокировать приложение?

Лучший ответ:
Медленный не vue.js или angular а dom  
Выход тут только один:
добавлять только то что пользователь может увидеть прям сейчас и удалять то что он не видеть

Худший ответ:
vuejs.org/guide/list.html#track-by
еще вот это можно попробовать использовать
Вопрос: Какой скрипт используют на этом сайте?

Лучший ответ:
Вот эта функция<script>
    jQuery('.work-item-move').each(function(){
        var thisElem = jQuery(this);
        var k=1.36;
        k = (thisElem.attr('class').indexOf('full-width')!=-1) ? 3 : 1.36;
        var getElemWidth = thisElem.width();
        var getElemHeight = getElemWidth/k;
        var centerX = getElemWidth/2;
        var centerY = getElemHeight/2;

        thisElem.css({'height' : getElemHeight});
        thisElem.mouseenter(function(){
            thisElem.on('mousemove', function (e) {
                var mouseX = e.pageX - thisElem.offset().left;
                var mouseY = e.pageY - thisElem.offset().top;
                var mouseDistX = (mouseX / centerX) * 100 - 100;
                var mouseDistY = (mouseY / centerY) * 100 - 100;
                thisElem.find('img').css({
                    'left': -(mouseDistX/6.64) - 15 + "%",
                    'top':  -(mouseDistY/6.64) - 15 + "%"
                });
            });
            thisElem.find('a').fadeIn('fast');
        }).mouseleave(function(){
            thisElem.find('a').fadeOut('fast');
        });
    });
</script>

Худший ответ:
Обычно это делает этот
Вопрос: Что почитать про программирование 3D графики?

Лучший ответ:
Почитайте цикл статей на Хабре https://habrahabr.ru/post/248153/
Там все основы алгоритмов рендеринга с нуля описываются.

Худший ответ:
Если про DirectX, то с самих основ неинтересно, т.к. версии меняются очень быстро. Из самых последних это 9 (и то, за какой-то месяц, сейчас не помню), 10, 11, 12.
Вы должны знать C++, COM-объекты (интерфейсы), язык шейдеров (раньше был ассемблер, теперь похож на C: HLSL, опять же, версии растут как грибы во время дождя), приложения DXUtil (почти все примеры даются на этой библиотеке, к тому же у неё версия тоже меняется).
Так что сначала определяйтесь с версией (от этого зависит версия Windows), а потом ищете книги. Кстати, как с английским? Т.к. большинство книг на английском.
Вопрос: Как сделана защита от копирования, даже DevTools не открывается?

Лучший ответ:
В хроме открываете view-source:http://openssource.biz/zima-na-openssource-pozdravlenie-s-nastupayushhimi-prazdnikami-ot-strimershi-kariny.html и все замечательно видно.
Практически в начале документаdocument.onkeypress = function(event) {
    event = (event || window.event);
    if (event.keyCode === 123) {
        //alert('No F-12');
        return false;
    }
};
document.onmousedown = function(event) {
    event = (event || window.event);
    if (event.keyCode === 123) {
        //alert('No F-keys');
        return false;
    }
};
document.onkeydown = function(event) {
    event = (event || window.event);
    if (event.keyCode === 123) {
        //alert('No F-keys');
        return false;
    }
};

function contentprotector() {
    return false;
}

document.oncontextmenu = contentprotector;
document.onmouseup = contentprotector;
var isCtrl = false;
window.onkeyup = function(e)
{
    if (e.which === 17)
        isCtrl = false;
}

window.onkeydown = function(e)
{
    if (e.which === 17)
        isCtrl = true;
    if (((e.which === 85) || (e.which === 65) || (e.which === 80) || (e.which === 88) || (e.which === 67) || (e.which === 83)) && isCtrl === true)
    {
        return false;
    }
}
isCtrl = false;
document.ondragstart = contentprotector;
Табличка keyCode  https://www.cambiaresearch.com/articles/15/javascr...  123 это как раз F12

Худший ответ:
Можно открыть через меню.
А вообще отлавливается нажатие кнопки на клавиатуре и заменяется действие.
Вопрос: Как получить GET-данные после решетки?

Лучший ответ:
1. Это не get-данные. Это называется "фрагмент"
2. Браузеры не передают фрагмент на сервер, поэтому, в общем и целом, в пыхе его никак не получить.
3. Можно получить фрагмент в JS и передать на сервер AJAX-запросом.
4. Или с помощью JS составить новый url и сделать на него перенаправление.
5. Фрагмент в таком формате обычно предназначеначается для обработки именно JS'ом.

Худший ответ:
никак
Вопрос: Что если удалить все фото и залить их заново?

Лучший ответ:
 но как мы знаем, у одной картинки несколько вариантов... Получается проще перезалить все картинки.
Не вариантов, а миниатюр. Перегенерировать их  не проблема.
Но!! Как ты собрался перезаливать? Если просто по ФТП с заменой имен файлов- ничего не выйдет. Если вручную в каждом посте, тогда получиться.
Но когда я заменил все HTTP://условнобесплатный сервер.ru/ на HTTP://mysite.ru/ (открыв файл БД в notepad++), то все картинки перестали вообще отображаться 
Потому что такими действиями ты поломал сериализованные массивы. А если ещё и сменил хостера или иным путём изменились пути, то всё ещё хуже.
А ведь я же тебе говорил про дубликатор..

Худший ответ:
Но когда я заменил все HTTP://условнобесплатный сервер.ru/ на HTTP://mysite.ru/ (открыв файл БД в notepad++), то все картинки перестали вообще отображаться (кроме стандартной темы).
Нельзя так делать. Выполняйте замену запросами к БД. Еще лучше - есть тулза для переезда вордпресса.
По поводу картинок - если имена файлов будут совпадать - то все по идее будет нормально.
Вопрос: Prepared Statements

Лучший ответ:
По-моему вы код неправильно понимаете (проблема где-то в другом месте). Удалена строка или нет, цикл все равно будет завершен. Из результата (result) записи не удаляются в процессе выполнения тела цикла (даже в случае добавления SQL с DELETE в транзакцию). А вот при следующем вызове метода SendExternalMails строки опять будут выбраны и опять попадут в result, если они не были удалены ранее.

Худший ответ:
Господи какой же я критин — благодарю за подсказку!
Вопрос: NW.js vs Electron?

Лучший ответ:
С точки зрения производительности, они не сильно отличаются, собранные программы, будут занимать примерно одно и тоже количество памяти, тут скорее дело вкуса, NW.js связывается через package.json с главным *.html файлом, к которому подключается конфигурационный *.js, помоему все так если мне не подводит память, в elecnton связь тоже через *.json но ссылается непосредственно на конфигурационный *.js, который в свою очередь открывает окна и т.д.
грубо говоря в NW.js главный .html файл, а в Electon .js
я уже не помню особенностей первого, но знакомился в одно время с обоим платформами, и Electron мне показался на порядок логичнее, поэтому выбрал его, но чисто теоретически, один и тот же функционал можно реализовать и там и там.

Худший ответ:
Как по мне дело вкуса, об основных изменения можно почитать в доках electron
Вопрос: Вопрос про SSH ключ в Bitbucket?

Лучший ответ:
sim3x и Сергей в принципе правильно написали. Напишу более подробно.
Для того, чтобы работать с репозиторием с авторизацией по ключу у вас должен быть приватный ключ, а на сервере, где вы авторизуетесь (в данном случае bitbucket) - публичная "пара" этого ключа.
Вам нужно:
1. В puttygen сгенерировать SSH-2 RSA (выбран по умолчанию). Сохранить его куда угодно, в том числе можно в папку `$HOME/.ssh/`. ($HOME - домашняя папка пользователя). Это приватный ключ, в формате putty.
2. Нажать Conversions -> Export OpenSSH key и сохранить его в папке  `$HOME/.ssh/` с именем `id_rsa`. Это важно сохранить его именно туда и с этим именем, так как это стандартное расположение и имя, которое ожидается многими программами. Его можно изменить, но для этого требуются дополнительные телодвижения.
Это будет ваш приватный ключ в формате OpenSSH.
В некоторых gui вам нужно будет выбирать ключ в первом формате, а в консоли используется ключ во втором формате.
3. Нажимаете save Public key. Сохраняйте куда угодно. У меня все лежат в одной папке. Этот файл вы регистрируете в bitbucket.
Все. Через git bash у вас должен быть доступ к вашему репозиторию. Обращаю внимание, что ваши приватные ключи никому не передавайте. А публичный можно раздавать сколько угодно.

Худший ответ:
Добавить свои паблик ключи в
https://bitbucket.org/account/user/%USERNAME%/ssh-keys/
Вопрос: Как передать поток видео веб-серверу?

Лучший ответ:
Может поможет

Худший ответ:
Есть такой пример webrtc захвата, вдохновлённый вот этим.
Данное веб приложение представляет собой страничку для захвата видео из браузера, с опциями выбора разрешения.
На стороне сервера подразумевается флюссоник, на котором есть поток с именем "ololo", для которого разрешена публикация.
После того, как пользователь отдаст видео с вебки, оно польётся на сервер, а там его можно записать, и раздать разными способами.
На сервере всё должно быть в порядке с сертификатами, для того, чтобы принять поток.
"ololo" -  имя потока.
"Имя сервера" - хостнейм сервера.
Собственно сам пример.
UPD: код сюда не влез.
Вопрос: Как сделать ротацию логов?

Лучший ответ:
По-простому: писать лог в файлик "текущая_дата.log" и помощью find удалять логи старше энного количества дней ( например, удалить все файлы старше недели: find /path/to/logs/dir/ -mtime +7 -delete ).

Худший ответ:
хранить в базе?
Вопрос: Одно подключение к интернету через два 3G модема

Лучший ответ:
Буду краток: нет.

Худший ответ:
Если взять например оборудование от cisco с поддержкой EtherChannel и ваши 3G модемы должны быть с RJ45 выходом. В данном случаи с помощью EtherChannel вы сожмите объединить несколько каналов в один. 

Но это будит очень дорого. И судя по тому, что речь идет о 3G модемах, могу предположить что у вас рядом нет хорошего провайдера и вы хотите за счет 3G добиться большей скорости без значительных вложений…
Вопрос: Как забэкапить линуксовый сервер?

Лучший ответ:
«Взрослое» решение — это система управления конфигурациями, вроде Chef, Puppet, Ansible и др. Учитывая, что кроме собственно конфигурации Вам ничего бэкапить не надо (машина не хранит данных), то это почти идеальное решение.
Почти, потому что в некоторых случаях перекачать и записать на диск байт в байт сотню гигов может быть быстрее, чем скачать и установить сотню пакетов. Не говоря уже о нестандартном софте, который не пакетирован.

Худший ответ:
Снять образ диска через Acronis.
Вопрос: Почему Angular 4 говорит что не знает атрибут компонента, не смотря на то, что он указан?

Лучший ответ:
Нашёл ответ, проблема не в атрибуте, а в том, что Angular не компилировался с данным компонентом вообще, оказывается компонент может быть размещён только в одном модуле в принципе и если нужно использовать один компонент в разных, то его нужно вынести в свой собственный модуль, а затем подключить в тех, где он будет использоваться.persons.module.tsimport { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { PersonsComponent } from "./persons.component";

@NgModule({
    imports: [
        CommonModule
    ],
    declarations: [
        PersonsComponent
    ],
    exports: [
        CommonModule, PersonsComponent
    ]
})
export class PersonsModule { }
Как-то я невнимательно читал документацию

Худший ответ:
Может стоит передавать данные в компонент через Subject?
То есть пусть будет message.service умеющий только sendMessage, getMessage, clearMessage глобальный для всех модулей.
А конкретно для вашего модуля и-компонента пусть будет persons.service, создающий новые экземпляры классов message.service. В одном компоненте мы делаем sendMessage в другом get Message.subscribe
https://bitbucket.org/furrya_black/cake-shop
Для примера, как я это делал.
В папке app/services сервис message.service
Посмотрите как он используется. Там же есть loader.service и в папке app/containers. Для каждого узконаправленного message сервиса создается новый инстанс message сервиса.
Вопрос: Зачем писать в ООП стиле в JS?

Лучший ответ:
Мои пять копеек. 
В принципе незачем. Для маленьких проектов самое то.
Но есть одно но. Когда ваш проект будет расти, управляться со всей этой коллекцией функций будет ох как сложно.
Представьте, что помимо простого вызова пользователей и лайков, вам надо будет считать их, производить множество других манипуляций.
Что вам больше понравится?
1. Длиннющий список функций
getUsers
getLikes
calculateUserRating
moveUser
copyUser
saveUser
saveLike
getLike
userLikes (это список лайков или пользователь ставит лайк?)
... и еще стопицот или
2. Небольшой список объектов
User
Like
Rating
и простые, понятные вызовы типа
User.getList
User.calculateRating
User.copy
User.getLikes
User.doLike
Заметна разница?

Худший ответ:
Чтобы реализовать сложную, хотя на самом деле любую, бизнес-логику.
А не поняли вы преимущества ООП, только потому, как мне кажется, что создали класс, накопипастили туда функций которые писали до этого, и довольные остались.
Если подходить к разработке со стороны предметной области и сущностей (объектов), то ООП сам собой образовывается.
Что нибудь про SOLID почитайте, что ли.В чем же преимущество ООП? На конкретном примере
По поводу примера, попробуйте реализовать подобный органайзер: https://www.wed-expert.com/organizer.
Как по мне, тут сразу же видно сущности: категория и элемент (от него наследуются: задача, гость, затрата).
После того как вы опишите данные сущности, весь код будет представлять из себя оперирования этими объектами (добавить, удалить, редактировать).
Если говорить про какой-нибудь React, то с его компонентной "идеологией", используя сущности очень реализовать.
Вопрос: Зачем двоеточие в python?

Лучший ответ:
Ему напиши https://gvanrossum.github.io//

Худший ответ:
Истиной в последней инстанции здесь может быть только ответ Гвидо. А ответ Гвидо на этот вопрос вы можете прочитать ТУТ
Вопрос: Регулярное выражение для поиска слов из заглавных букв?

Лучший ответ:
/\b[A-ZА-ЯЁ]+\b/u

Худший ответ:
preg_replace_callback(
    '~[А-ЯЁA-Z]{2,}~u',
    function ($match) {
        return mb_strtolower($match[0], 'utf-8');
    },
    'Товар "Диван Амстердам" МИКС, акция, ОГРАНИЧЕННАЯ ПАРТИЯ'
);