Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Почему PHP теряет популярность?

Лучший ответ:
PHP не мода, php - классика, а классика никогда не умирает. Если умрет php, то умрут все остальные языки backend разработки потому что появится что-то такое, что сможет в разы превзойти пхп в простоте, скорости и удобстве, на данный момент что джава, что питон, что руби +- одинаковые, каждый подходит для своих целей. Тот же питон выбирают из-за простоты интеграции нейронных сетей, но если говорить не о узких, а о главных параметрах (функционал, скорость и тд) все популярные бэк языки более или менее одинаковые смотрите те же сухие графики. 
А о уменьшении вакансий - глупость несусветная. трын тут приведена статистика за 2018 год и обоих графиках по вакансиям лидирует в сравнении с java/python PHP, при том на первых двух пишут как бэкэнд, так и миллион других штук. А на втором графике и вовсе пхп опережает js (единственный язык в самой популярной сфере разработки).

А вот если речь идет о реально крупных компаниях (amazon, google...) там как раз предпочитают python из-за выше упомянутой простоты интеграции нейросетей, а java из-за стабильной поддержки сверх высоких нагрузок.

Меньше слушайте диванных экспертов, пхп предрекают смерть с 00-х годов, что то он слишком долго дергается для мертвеца.

Худший ответ:
но с каждым месяцем вижу как JavaScript, Python набирают +50-100 новых вакансий (говорю про Москву и Санкт-Петербург), а PHP на ~10% за год уменьшилось. PHP имеет более простой "вход" в язык, поэтому освоение - происходит гораздо быстрее.
За счёт быстрого освоения происходит быстрое насыщение рынка вакансий и создаётся впечатление, что PHP - теряет популярность.
А теперь, посмотрим на два момента для: PHP, JS, Python.
1. Набор готовых библиотек
2. Качество кода
И увидим, что по п.1 у нас лидеры: JS и Python.
А по п.2: все более-менее равны.
Из чего делаем выводы:
1. Чем меньше кодер должен кодировать готовые алгоритмы с нуля (умение искать готовые модули/библиотеки и их использовать), тем больше он востребован.
2. Чем более простой "вход", тем хуже качество кода кодера и тем меньше ему нужно платить (потому, что вот так, а не иначе).
Согласно п.2 - на новые проекты набирают исключительно "своих" до тех пор, пока не придёт осознание того, что "что-то пошло не так". А именно: незнание построения архитектуры и паттернов проектирования (а что это?! нафига оно?!).
Поэтому и нет вакансий на PHP...
Вопрос: Можно ли запустить Windows и Ubuntu Server одновременно?

Лучший ответ:
На windows Server поднимите  роль Hyper-V
В  консоли управления выберите быстрое создание виртуальной машины, в списке доступных выберите 18.04 lts
Через 20 минут она установится

Худший ответ:
Да можно - самый удобный вариант это установить гипервизор и в нем создать две виртуальные машины.
Это может быть VMWare ESXI, Windows hyper-v server, либо что-то еще.
Вопрос: Как написать Trait для контроллера UserController.php, который вернет информацию о сотруднике по его id?

Лучший ответ:
Причём тут Trait? Вам в модели надо описать связи. В контроллере вызвать User::with('roles')->find(1);

Худший ответ:
Информация о сотруднике по ид возвращается черезUser::find($id);
Для ролей нужна связь manytomany 
Ролей мало, нужны конкретные разрешения. Например, просмотр определенного раздела. Это действие может совпадать для разных ролей. Поэтому нужно сделать perms и связать с ролями через многие ко многим. Проверка через gate/can.
Вопрос: Как организовать корзину товаров на VueJS, Vuex?

Лучший ответ:
Удивительно, но в официальном репозитории есть пример прям про это.
А ещё есть курс для начнинающих на основе этого примера.
И всё про корзину продуктов! Радость, счастье!

Худший ответ:
Массив товаров, при нажатии кнопки "в корзину" добавляете плюс один к реквизиту orderedCount - заказанное количество...В левую колонку выводите только товары, у которых orderedCount > 0, в правую - все.
Вопрос: Как делать рассылку в Telegram [Python]?

Лучший ответ:
Нужно использовать конструкцию try except:for user in user_ids:
    try:
        send_message()#Отправляешь сообщение, как там это делается
    except:
        pass #Тут что делать в противном случае
Почитай про эту конструкцию.

Худший ответ:
https://youtu.be/ouOBf2LvK_A
Могу такой предложить на питоне
Вопрос: Как вытащить окно windows на передний план?

Лучший ответ:
Нужно ставить Pywin32 (win32api)FindWindowSetForegroundWindowShowWindowhwnd = win32gui.FindWindow(None,"Telegram")
win32gui.ShowWindow(hwnd, win32con.SW_NORMAL)
win32gui.SetForegroundWindow(hwnd)

Худший ответ:
А что если мне нужно например просто вывести на "Передний план" окно с названием например "notepad" в windows 10, если не сложно напишите пожалуйста весь код а не вырезку из кода (как написал Александр в первом ответе), если это вообще возможно на языке Питон (То что очевидно для профессионалов, не очевидно для новичков, а профессионалы не станут искать ответы на такие вопросы)
Вот этот код ни как не разворачивает окно "Блокнота", что делаю не так? 
import win32gui
import FindWindow
import SetForegroundWindow
import ShowWindow
hwnd = win32gui.FindWindow(None,"notepad")
win32gui.ShowWindow(hwnd, win32con.SW_NORMAL)
win32gui.SetForegroundWindow(hwnd)
Вопрос: Платиновый вопрос: Изучение английского языка?

Лучший ответ:
каждое слово мне приходится переводить
свой уровень оцениваю в pre-intermediate
Ваш уровень определённо выше - post-intermediate, может даже post-post-intermediate.
Наша вам критика - вы себя недооцениваете.
зы Для изучения языка впахивать надо, а не сопли разливать на форумах.

Худший ответ:
Мне - внезапно - помогает чтение визуальных новелл :) Причем, я думал, будет хуже - перевод технических текстов-то у меня вообще без проблем, а вот с бытовой лексикой, с устойчивыми оборотами проблемы есть. Хотя конечно, гуглопереводчик открыт постоянно.
Надо смотреть/читать не абы что, а то, что нравится, чтобы был дополнительный стимул :)
Вопрос: Как настроить таймер на javascript — время до открытия магазина?

Лучший ответ:
Можно всё считать в локальной временной зоне. Известно смещение от UTC времени магазина. Текущее смещение посетителя от UTC получаем через getTimezoneOffset(). 
Задача получить два объекта времени: открытия и закрытия магазина, во временной зоне браузера посетителя.
Если какой-то из двух оказался в прошлом, добавляем ему один день, чтобы оба оказались в будущем. Который из двух оказался меньше – подскажет, открыт сейчас магазин или закрыт.Решениеfunction tillItOpens() {
  const D = new Date();
  const shopOffsetMin = 5 * 60; // GMT+5
  const myOffsetMin = D.getTimezoneOffset();
  const diffMin = shopOffsetMin + myOffsetMin;
  

  function futureDate(hours, fixMin) {
    const d = new Date();
    d.setHours(hours);
    d.setMinutes(0 + fixMin);
    d.setSeconds(0, 0);
    if (d < new Date()) d.setDate(d.getDate() + 1);
    return d;
  }

  
  const dOpens = futureDate(9, diffMin);
  const dCloses = futureDate(21, diffMin);

  if (dOpens < dCloses) {
    // скоро откроется
    const hours = Math.floor((dOpens - D) / 36e5);
    const minutes = Math.floor((dOpens - D) / 6e4) - 60 * hours;
    
    return `до открытия ${hours}:${minutes}`
    
  } else {
    // сейчас открыто
    return "Сейчас открыто!";
    // хорошо ещё посмотреть, сколько остаётся до закрытия - успеет ли чел.
    // ближайшее закрытие – объект dCloses
  }
}
Если сейчас закрыт, запускайте таймер обратного отсчёта до объекта dOpens – он означает время открытия в текущей таймзоне.

Худший ответ:
https://megatimer.ru/ Воспользуйся сервисом и не морочь себе голову
Вопрос: Как обратиться к функции через $this в цикле?

Лучший ответ:
Чтобы это работало надо при вытаскивании из базы как-нибудь превратить массив данных в объект Product.
И собирать массив объектов.
А у вас пока какая-то каша малаша получается.
Вот это бессмысленно и беспощадно$all_products = SELECT * FROM ...

    foreach($all_products as $products) {
        $this->comission = 5;
        $this->base_price = 500;
    }

    return $this;

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

Лучший ответ:
Откуда шум? Активное шумоподавление не спасет от высоких частот. Куда лучше, беруши а сверху полноразмерные наушники с хорошей шумоизоляцией. 
Если судить по вашим тегам, то шум дома? Тогда выселить шумных, либо выселиться самому (съемная однушка под офис, коворкинг, кафе, парк и.т.д.).

Худший ответ:
А Вы, пардон, гдже находитесь? Дома, на работе, коворкинг там или еще чего? Если дома - не спасут ни наушники ни даже ОЗК с противогазом :D Нужно всем домашним обьяснить - что если Вы за компом - Вы "на работе" и беспокоить в этот момент не стоит. Хотя все равно ничего не получится, особенно если в доме маленькие дети.
Вопрос: Почему пропадает SSH на Raspberry при подключении USB 3.0?

Лучший ответ:
Скорее всего дело в питании. 
У вас есть изьян в тесте с другим БП, 85W блок от макбука отдает эти 85W только на технику Apple, сторонние устройства получают не более 1А, не используйте любые БП от Apple для тестирования сторонней техники, в большинстве случаев они подводят. 

По сути дела, просто отключается USB3.0 мост или вся плата? Можно проверить через uptime.

Худший ответ:
Совершенная мистика - SSh относится к сетевой подсистеме, а USB - к локальной. Т.е. я доже не вижу, где они могут пересекаться.

Надо смотреть логи - что-то типа /var/logs/messages : там sshd должен писать, почему он рухнул во время работы или не запускается при старте.
Вопрос: Почему регулярка ищет все символы в таком случае?

Лучший ответ:
Должна же работать до первого случая.Не должна.Как ето исправить?Убрать флаг глобального поиска, который вы зачем-то добавили: learn.javascript.ru/regexp-introduction#flagi

Худший ответ:
мне нужно чтоб здесь вывелось "card, s, s" и всеstr.replace(reg, (sp, match) => {
  console.log(sp,match) // card, s, s 
})const str = "card's ff bal s fdfgbal dkjgkjsff others";
const reg = new RegExp('(card).*(s).*(s)', 'g');
str.replace(reg, (match, p1, p2, p3, offset, string) => {
  console.log(match, p1, p2, p3, offset, string)
})
Вопрос: Как сделать что бы модальное окно исчезало после того как уводишь мышку в сторону?

Лучший ответ:
Слушайте событие mouseout на модалке.

Худший ответ:
можешь через css повесить hover на родительский элемент.#child {
display: none;
}

#parent:hover #child {
display: block;
}
и обернуть форму в родителя:<div id='parent'>
 <div id='child'>Child</div>
</div>
Вопрос: Как правильно перенести файлы в Google Диск?

Лучший ответ:
1. Создаешь в приложении Google Drive на твоем компе папку для этих файлов.
2. Закидываешь туда свои 50 гб, и затем ждешь, когда они синхронизируются с облаком.
3. В настройках приложения Google Drive снимаешь синхронизацию с этой папки с файлами на компе.
4. Удаляешь папку с файлами в приложении Google Drive . Они остаются только в облаке.

Худший ответ:
но насколько я понял то Google Drive Sync работает в две стороны, т.е. если я после синхронизации файлов файлы удалю с ноутбука, то либо в облаке удалится или же вновь скачается на ноутбук. 
Переносишь в Google Диск.
Удаляешь саму программу Google Диск.
Вопрос: Кто первым получает IP адрес по DHCP и почему?

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

Худший ответ:
тот, кто первым спросит
Вопрос: Обмен Cookie между поддоменами?

Лучший ответ:
нет
Но можно сделать куку в домен .example.com
и кука будет видна в обоих доменах

Худший ответ:
Может ли api.example.com отправить Cookie на dev.example.com? Т. е. возможен ли обмен Cookie меджу поддоменами?
С чего это невозможен? Может! Домен 1 example.com !!! Значит можно связать все поддомены его.
Если на пыхе то в php.ini:session.cookie_domain = .example.com
но как выше заметили куку надо от example.com создавать. Это проблема?
Вопрос: Учить ли первым языком c/c++?

Лучший ответ:
В 15 лет можно и попробовать. Причем все, и си/си++, и хаскель. Остановиться на том, что вкатывает, набрать опыта. А потом уже и база для своего мнения появится, чтоб действительно выбирать.

Худший ответ:
Нет.
Вопрос: Как установить образ CentOS 32-битную на VDS, на котором уже есть 64-битная ОС?

Лучший ответ:
Что значит "предназначен"? Если нужны какие-то 32-битные пакеты - установите их. Для этого не обязательно сносить ОС.

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

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

eye360.ru - можно использовать для выполнения упражнений для глаз. Стоит запомнить упражнения и выполнять их регулярно.
wakeupbro.xyz - онлайн будильник с интервальным таймером. Завожу его на интервал в 40 минут, а звук можно вообще убрать - поставить уведомлялку на рабочий стол


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

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

Худший ответ:
Гос.пошлина
за регистрацию ИП 800 руб.
за регистрацию прекращения ИП - 160 руб.
Взносы на пенсионное страхование за 2 месяца для ИП (без работников)
26 545 / 12 * 2 = 4424,17 руб.
1 % от суммы превышения дохода 300000 руб.
Взносы на медицинское страхование за 2 месяца для ИП (без работников)
5 840 / 12 * 2 = 973,33 руб.
Налоги в зависимости от системы УСН, патент, ОСНо
---------------------------------------------
Нормативка ст.333.33 НК РФ (п.1 пп.6 и 7), ст.430 НК РФ
Существенные расходы будут банковские: открытие и ведение счетов (в т.ч. валютного), комиссии при продаже валюты, перечислении и т.д.
Вопрос: Верно ли утверждение что любой сайт начинается с семантического ядра?

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

Худший ответ:
Любой проект начинается с вопроса "а оно нам нужно?". И что значит начинается? Начинается с index.php. Или с идеи. Или с ТЗ. Или с рождения основателя проекта.
Вопрос: Идентификация поситителя сайта? Часть 1?

Лучший ответ:
То есть человек заходит на сайт, что он несет с собой? Куки с других доменов? И как эти данные можно получить.
Мечтайте.Не могу нагуглить в какую сторону читать и смотреть
Спецификации HTTP/HTTPS

Худший ответ:
Без действий пользователя - вы ничего не получите.  Точнее можете получить, но может уже пофиксили скрытый пиксель. Да и давно поисковики банили за такое. 
Для того чтобы идентифицировать пользователя, используйте oauth. пример для вк -  https://vk.com/dev/access_token
Вопрос: Стоит ли переходить на Percona server с MariaDB/MySQL?

Лучший ответ:
Вопрос не тривиальный и переход должен делать специалист.
Выбор всего движа должен происходить в том числе из реалий вашего бизнеса/проекта, команды специалистов и прочего.
Таким образом, если сейчас всё работает и устраивает и вы сами лично не видите плюсов/минусов, и даже не сильно разбираетесь в настройках, то я бы рекомендовал сосредоточится на улучшении, развитии других частей проекта, в которых вы в теме. 
А для переезда, масштабирования БД выделить бюджет на специалиста, когда бюджет появится. А так, работает не трогай, тк переезд это всегда подводные камни, время, нервы и возможные простои. Оно вам надо? Я думаю нет. 
Поэтому не спешите.
И в первую очередь составьте список, лёгкое ТЗ, проблем и задач администрирования БД в вашем случае. Затем его можно наложить на ваш текущий движ, и может быть всё не так уж и плохо. И скорее всего, есть много инструментов облегчающих, автоматизирующих работу и в MariaDB.
А может вам вообще в самом sql функций не хватает, может вам нужен PostgreSQL? 
Нет, так дела не делаются, вопрос побольшому счёт вообще бессмысленный, разве что в комменты вы ждете любителей холиваров ради холиваров.

Худший ответ:
Для начала можно обновить до новой версии 10.4
Версия 5.5 уже давно выпущена была.
Если хочется оптимизировать, то это надо делать на запросах, при помощи проверки Slow Queries, EXPLAIN и мониторинга.
Вопрос: Я могу просто на мощном пк развернуть пару серверов?

Лучший ответ:
Я могу просто на мощном пк развернуть пару серверов?Неизвестно.
Я например могу. А вот насчет вас не знаю.

Худший ответ:
Workstation не умеет headless, т.е. вы вынуждены будете всегда входить в свой аккаунт - запускать виртуалки.
Вопрос: Анализ логов сервера на Python. Зависает скрипт при logrotate, как бороться?

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

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

Лучший ответ:
Соучастие.

Худший ответ:
Вы ищете пруфы? Их есть у меня! 

УК 205.1 Пособничество террористической деятельности

Внимательно читаем статью до конца.
Вопрос: Payoneer закрывается в РФ. Как теперь выводитьс upwork деньги официально, если до этого снимал в пионере?

Лучший ответ:
Учите, что Сбербанк и несколько других находятся под санкциями, и вывод с Upwork на них невозможен. 
Под санкциями: «Сбербанк», «Банк Москвы», «Газпромбанк», «Россельхозбанк», «Внешэкономбанк», банк ВТБ

Худший ответ:
Про старое забыть, старые счета закрывать
Вылодить на ооо на упрощенке
Вопрос: Как легко перейти с jQuery на VUE?

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

Худший ответ:
Например прочитав эту замечательную статью https://www.smashingmagazine.com/2018/02/jquery-vu...
Вопрос: Есть ли пайтон библиотека распознавания речи с поддержкой формата ogg файлов?

Лучший ответ:
Потребуется ffmpeg установить из ffmpeg
Распаковать и прописать в PATH
from subprocess import Popen
from speech_recognition import (Recognizer, AudioFile)
from speech_recognition import (UnknownValueError, RequestError)


class SpeechOggAudioFileToText:
    def __init__(self):
        self.recognizer = Recognizer()

    def ogg_to_wav(self, file):
        args = ['ffmpeg','-i', file, 'test.wav']
        process = Popen(args)
        process.wait()
    @property
    def text(self):
        AUDIO_FILE = 'test.wav'
        with AudioFile(AUDIO_FILE) as source:
            audio = self.recognizer.record(source)
        try:
            text = self.recognizer.recognize_google(audio, language='RU')
            return text
        except UnknownValueError:
            print("Не удаётся распознать аудио файл")
        except RequestError as error:
            print("Не удалось запросить результаты: {0}".format(error))

def main():
    speech_ogg = SpeechOggAudioFileToText()
    speech_ogg.ogg_to_wav('test.ogg')
    print(speech_ogg.text)

if __name__ == '__main__':
    main()

Худший ответ:
Воск, например, вместе с ffmpeg, работать будет без сети:

https://github.com/alphacep/vosk-api/blob/master/p...

from vosk import Model, KaldiRecognizer
import sys
import os
import subprocess

if not os.path.exists("model"):
    print ("Please download the model from https://github.com/alphacep/vosk-api/blob/master/doc/models.md and unpack as 'model' in the current folder.")
    exit (1)

sample_rate=16000
model = Model("model")
rec = KaldiRecognizer(model, sample_rate)

process = subprocess.Popen(['ffmpeg', '-loglevel', 'quiet', '-i',
                            sys.argv[1],
                            '-ar', str(sample_rate) , '-ac', '1', '-f', 's16le', '-'],
                            stdout=subprocess.PIPE)

while True:
    data = process.stdout.read(4000)
    if len(data) == 0:
        break
    if rec.AcceptWaveform(data):
        print(rec.Result())
    else:
        print(rec.PartialResult())

print(rec.FinalResult())
Вопрос: Апгрейд пк 2012г за 15к?

Лучший ответ:
Фотошоп, игры: хотелось бы в новинки поиграть, но вряд ли получится.
на эти деньги даже половинку видеокарты не купишь для новых игр=) Не говоря о всём компе уже=)
Забей. Не выкидывай деньги. Тут уже ничего не апгрейдишь. Фотошоп вытянешь но не так как хотелось бы и то=) 
Но для игр то что тебе щас насоветуют i5 2x i7 начальные всё это днище 2016 года. И даже для fullhd игр самый минимум надо gtx 1070 которая стоит от 36К.

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

Лучший ответ:
Я думаю вам подойдёт такое решение, как Clonezilla Server Edition
Данный способ позволит заливать обновленный образ в пределах локальной сети.
В данной статье описан опыт по созданию бекапов https://habr.com/post/128558/
Однако, не сложно адаптировать конфигурацию сервера под разворачивание бекапов.
Если не хочется каждый раз перезаливать образы, то можно использовать какую-либо систему оркестрации, совместимую с Windows (к примеру, Ansible) и выполнять переконфигурацию и обновление софта скриптами и установочными пакетами.

Худший ответ:
Смотря что Вы хотите обновить, если системы, то почему не WSUS&? Вы не упомянули есть ли домен. При вводе AD Вам достаточно было запулить msi в установку, и пр. политики обеспечивающие закладки и пр...
Вопрос: Командная строка не воспринимает русские символы в пути к файлу, что делать?

Лучший ответ:
Возьмите Notepad++, создайте файл в кодировке OEM 866 и скопируйте туда текст батника. Я в свое время так решил проблемы с кириллицой.

Худший ответ:
Просто не пиши chcp 1251.
Вопрос: Как закоммитить файлы подпапок в Git?

Лучший ответ:
Это удивительно, потому что вообще-то git не умеет коммитить пустые каталоги. Там должен быть хотя бы один файл. 
Если вы хотите закоммитить вообще все  - сделаейте git add . (обратите внимание на точку) перед git commit.
И убедитесь что ваш .gitignore не заставляет git игнорировать новые файлы.

Худший ответ:
git add --all если влоб