Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как правильно оценить свой скилл в web программировании?

Лучший ответ:
Устроиться на работу.

Худший ответ:
Как правильно оценить свой скилл в web программировании?
Изучаю php больше годаОколо нулевой. 
Можешь, кстати, код предоставить, посмотрим. 

.Было бы очень интересно узнать что должен знать Web-программист middle-senior уровня. это все бред сумасшедшего - все эти разделения на джунов/сеньеров/мидлов.
Ибо нет и никогда не будет четкой градации, в одной компании человек может быть сеньером, перейдя в другую, где сильная и более опытная команда команда - он будет ниже всех мидлов.
Вопрос: Можете оценить код на python?

Лучший ответ:
Даже не так хорошо зная python:
- код трудно читать: слишком много повторяющихся мест (принцип DRY - Don't Repeat Yourself хотябы примени, разбей на функции)
- дикое число if! да, в python нет switch-case, но есть куча примеров как это лучше сделать
- а еще есть такая классная штука как паттерн state-machine, который позволяет работать с такими вот сценариями

Худший ответ:
Я бы создал через класс
Вопрос: Куда развиваться ручному тестировщику?

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

Худший ответ:
Либо в автоматизированное тестирование, либо в девопс (очень хорошие там зарплаты нынче), либо в разработчики.
Вопрос: Как объявлять компоненты в React?

Лучший ответ:
Классовые компоненты никуда не уходят. Для них осталось несколько удобных кейсов. Например:
1. Удобное получение предыдущих значений свойств и состояний в componentDidUpdate.
2. Доступ к экземпляру компонента в хандлерах, передаваемых в браузерные API.
3. Сложные компоненты с большим количеством методов. Например VideoPlayer.
Производительность может и отличается, но вы и ваши пользователи это вряд ли заметите. Стоит понимать, что инициализация хуков и переопределение всех колбеков в функциональных компонентах при перерисовке - операция позатратней, чем вызов render классового компонента у которого все хандлеры определены за пределами render в свойствах экземпляра или в прототипе. Поэтому если в теле функционального компоннета много чего происходит, то, возможно, его стоит переписать в классовый, ну или по возможности вынести из него логику, тут в помощь кастомные хуки.
Оптимизация это отдельный вопрос, которому стоит посвятить время. Сейчас разве стоит предупредить вас, что преждевременная оптимизация - зло.
Попробуйте использовать в коде преимущественно функциональные компоненты и хуки. Сейчас почти все популярные библиотеки имеют в API довольно удобные в использовании хуки. Там, где покажется, что будет удобней использовать класс, не бойтесь использовать классы.

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

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

Худший ответ:
Советую зарегистрироваться на Upwork, разобравшись предварительно как выводить деньги, как платить налоги.
После этого нужно много и упорно браться за разные проекты, не обязательно помпезные и обильно оплачиваемые.
Основной задачей будет набивание кармы и, самое главное, приобретение опыта программирования. Как говорит мой знакомый - опыт не триппер, сразу не подхватишь. Думаю через годик, когда вы прокачаете скилл и выйдете на полтора-два килодоллара в месяц не выходя из квартиры, то сможете сам ответить на свой собственный вопрос.
Ну а там как всегда - трактор, Канада или загнивающая Америка, хотя я бы конечно рекомендовал Европу - домой в гости летать ближе и дешевле. И как-то европейцы к нам ближе по менталитету. Особенно в какой-нибудь Польше или Чехии.
ЗЫ. Только ничего не бояться. Половина индусов которых выгоняли из проектов, в которых я работал, трудились получая $15-$20 в час и при этом не смогли бы и половины от того, что вы описали.
Вопрос: Как сократить число C# Unity?

Лучший ответ:
Если число больше миллиона, то поделить на миллион и добавить букву "М", иначе если больше тысячи ... и т.д.

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

Лучший ответ:
Переменные окружения хранятся в памяти процесса, в вашем случае это bash - командный интерпретатор, который в терминала или в консоли.
Чтобы установить переменную среды используйте команду export.export DB_HOST=localhost
Маленькое замечание, переменная устанавливается ТОЛЬКО в текущем интерпретаторе, и если запустить второй терминал, то ее там уже не будет!
Чтобы установить переменную для всех интерпретаторов используйте файл .bash_profile в корневой папке пользователя.
Но! Если запускать например из systemd как системный сервис, то нужно передавать переменные отдельно!
В общем и целом, переменные среды хранятся в памяти, а аак они туда попадают - зависит от вызывающей программы или сервиса.
В частном случае легче всего написать скриптовый файл для запуска и установки переменных среды типа start.sh (тоько сделайте его исполняемым #!/bin/bash

export MYENV=myvalue
python myscript.pychmod +x start.sh
./start.sh

Худший ответ:
Вообще-то, понятие "переменные окружения" - очень многозначное. Например, есть переменные окружения в каждом процессе - как Вам сказали, при fork и exec они копируются от родителя к ребёнку, потом оба могут их менять. В шеллах есть два экземпляра таких переменных: один для наследования, второй для внутреннего использования.
А есть переменные окружения в ядре. Этот набор - один на всю систему (хотя в вирт.машинах он м.б. свой).
Попробуйте погуглить по " os.environ" - там хорошо разжёвано.
Вопрос: Не заносятся данные в БД с регистрации?

Лучший ответ:
Выкини тот учебник, в котором тебе показали этот код, он никогда не работает.
Вот как правильно:
$stmt = $connection->prepare("INSERT INTO `users` (`username`, `email`, `password`) VALUES (?,?,?)");
$stmt->bind_param("sss", $username, $email, $password);
$stmt->execute();
$smsg="Регистрация прошла успешно";

Худший ответ:
`name` - поле с именем name
'name', "name" - строка name
А лучше использовать подготовленные выражения с плейсхолдерами.
https://ru.wikipedia.org/wiki/%D0%92%D0%BD%D0%B5%D...
Вопрос: Почему возникает ошибка 403 Apache?

Лучший ответ:
А симлинку в /etc/apache2/sites-enabled/ сделали?

Худший ответ:
Читаю в конфиге: <IfModule mod_dir.c>
	DirectoryIndex index.php index.pl index.cgi index.html index.xhtml index.htm
</IfModule> А модуль mod_dir.c Вы точно подключили?
Вопрос: Какие кавычки правильные в Python — ‘ ’ vs “ ”?

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

In Python, single-quoted strings and double-quoted strings are the same. This PEP does not make a recommendation for this. Pick a rule and stick to it. When a string contains single or double quote characters, however, use the other one to avoid backslashes in the string. It improves readability.
For triple-quoted strings, always use double quote characters to be consistent with the docstring convention in PEP 257.
Это официальная документация pep8 на счет кавычек:
https://www.python.org/dev/peps/pep-0008/#string-quotes
Вот так на данном этапе.

Худший ответ:
Пофиг.
В других языках это не так, например в Go строка - "abc", а символ - 'c', и ты можешь перенять эту безобидную чушь, но - пофиг.
Вопрос: В локальной сети отстает время на секунды, в чем причина или это просто нормально?

Лучший ответ:
причина - отсутствие настроенной соответствующим образом синхронизации времени на оборудовании.

Худший ответ:
Камеры смотрят в интернет? Если да, пропишите им серверы времени, пусть они синхронизируют время с интернетом. Если нет -включите сервер ntp на любом  windows-пк в сети и камеры заставьте синхронизироваться с этим ПК. В windows встроен ntp- сервер, просто он выключен по умолчанию. Включается ключом в реестре.
Вопрос: Go — замена PHP в плане многопоточности и производительности?

Лучший ответ:
Как и руби, go - это write only language...
Легко и быстро прототипировать. Когда нужно опробовать бизнес идею и выбросить на рынок MVP еще вчера - лучше языка и придумать сложно. Но вот поддерживать потом это больно и дорого...
Очередной раз скопипастив проверку на ошибку или проброс ее дальше, начинаешь молиться на тех людей, кто придумал DRY и проклинать авторов go, за дизайн этого языка.
И вот вроде лучик хорошего, вместо наследования нам пытаются продать композицию, только сделана она через одно место и Вы легко потеряете за ней контроль.
Полиморфизм? Я их знаю 3 вида. И я считаю, что полиморфизм - это как раз тот инструмент, который позволяет делать нам по с учетом DRY, SOLID и прочих красивых аббревиатур... Вот только в go нет ни одного из них... Вместо него Вам дают ужасную утиную типизацию. Серьезно... Когда мне говорят, что в JS утиная типизация, я смеюсь и говорю, что в JS прекрасная система типов и предлагаю посмотреть на go, так как если Вы хотя бы 10 минут изучаете чужой код, то Вы уже как минимум 3 раза спросили себя, какой калека написал здесь interface{} вместо типа...
PHP хороший язык. Он позволяет писать как говнокод, так и весьма красивое и правильное ООП. Мне лично не хватает в нем ФП, но жить без него там можно. PHP7+ весьма быстр, а с некоторыми аддонами может в многопоток... Не так просто как в go, но может...
Стоит ли та простота прототипирования и верчения горутинами нескольких человекожизней поддержки кодовой базы чуть сложнее хелловорлда? Решать Вам...

P.S. Если Вы действительно уперлись по производительности не в IO (БД, диск, сеть и т.д.), а в Ваш любимый php/js/python/java/C# - go Вам не поможет, Вы словите абсолютно те же stop-the-world от gc, в добавок Вы словите издержки на работу шедулера, рулящего Вашими 5 тысячами горутин на 4 потоках cpu... (вы еще не знали, что гипертрединг зло? посчитайте ченить cpu-зависимое на go в нескольких потоках...). Если Вы действительно уперлись в производительность своего ЯП - посмотрите в сторону C++ или Rust. Если не уперлись - переписывать все на хайповый go точно не стоит.

Худший ответ:
Почему не .Net Core ?
Рантайм весит ок 100мб Освоить после PHP будет относительно легко. 
И нормальная IDE вам  не даст сильно накосячить. 
Из плюсов нормальная многопоточность и ассинхронность из коробки.
Вопрос: Из-за чего может загореться материнская плата?

Лучший ответ:
и перепутал разъем usb и 1394. 
USB рассчитан на 5В, IEEE 1394 - на 12В и распиновка у них ну вот совсем разная. Не наводит ни на какие мысли?

Худший ответ:
единственное заметил, что не подключил питание от БП 8 пин для видеокартыНу не совсем - она бы попыталась запуститься используя дорожки питания на плате, и возможно даже спалила бы их.
Но это не ваш случай - нужна нагрузка на видеокарту.и перепутал разъем usb и 1394Питание на сигнальные линии пустили и все дела. Они и сгорели. 
Не надо ничего путать, и включать нужно все что положено.
Вопрос: Почему медленно удаляются файлы и с паузами на серверных SSD Samsung centos 6?

Лучший ответ:
Вы упёрлись в ограничение rm Воспользуйтесь find.
find /path/to/folder -name "*" -type f -print | xargs /bin/rm -f
В этом случае find будет передавать на вход rm файлы по одному и затыки пропадут. Можете ещё попробовать к xargs ключ -P x где x -- количество одновременно удаляемых файлов. Поставьте по количеству ядер процессора, например. -P 0 автоматически будет запускать максимально возможное число процессов.

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

Лучший ответ:
кто учил JS с ментором, как его нашел, а главное где? 
Лучший ментор - это коллеги на работе, в данном случае ваш КПД в плане роста в программировании увеличивается по экспоненте.

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

Как выучить JS - Алгоритм:
1. Учите базу;
2. Не решая ненужных задач сразу начинаете делать какой нибудь пет проект(можно даже воровать идеи, и переписывать - изучая архитектуру, и подходы). Переписали код, проанализировали, стерли его в 0, пишите тоже самое сами, и так по кругу. Главное что бы вы писали не по памяти, а понимали что вы делаете.
3. Плавно наращивать скилл уметь решать задачи и максимально гуглить и коспектировать всё что видите - условно незнакомый вам spread оператор - загуглили, ответили на вопрос самому себе: как, с какой целью, какие подводные камни(Вот тут может быть полезент ментор(но нет, коллеги лучше), что бы сказать какие подводные камни могут быть)  - скачем дальше
4. ???????? - год
5. Профит.

Худший ответ:
кто учил JS с ментором, как его нашел, а главное где? 
Лучший ментор - это коллеги на работе, в данном случае ваш КПД в плане роста в программировании увеличивается по экспоненте.

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

Как выучить JS - Алгоритм:
1. Учите базу;
2. Не решая ненужных задач сразу начинаете делать какой нибудь пет проект(можно даже воровать идеи, и переписывать - изучая архитектуру, и подходы). Переписали код, проанализировали, стерли его в 0, пишите тоже самое сами, и так по кругу. Главное что бы вы писали не по памяти, а понимали что вы делаете.
3. Плавно наращивать скилл уметь решать задачи и максимально гуглить и коспектировать всё что видите - условно незнакомый вам spread оператор - загуглили, ответили на вопрос самому себе: как, с какой целью, какие подводные камни(Вот тут может быть полезент ментор(но нет, коллеги лучше), что бы сказать какие подводные камни могут быть)  - скачем дальше
4. ???????? - год
5. Профит.
Вопрос: Как перевести лицо в цифровое значение?

Лучший ответ:
В библиотеке dlib есть функция определения дескриптера лица.

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

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

Худший ответ:
Можно строить в threejs и менять цвет на клиенте (https://threejs.org/examples/#webgl_geometry_teapot)
Вопрос: Как определить наличие голоса в файле?

Лучший ответ:
Есть плагины к ffmpeg для определения/удаления тишины.
https://ffmpeg.org/ffmpeg-filters.html#silencedetect

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

Лучший ответ:
Любую, какую лучше знаете. На таких количествах любая БД будет работать без проблем.

Худший ответ:
А зачем вообще файлы и база данных? Эту задачу можно решить гораздо проще. Юзер запускает тяжелую задачу, которая строит отчет. Отчет кладется в кеш с временем жизни 30 дней (ну или сколько нужно). Ключом в кеше является  уникальное значение, которое юзер получает в ссылке в письме. То есть задача сильно упрощается:

Нет базы
Не нужно писать логику удаления отчетов, потому что они будут удалятся автоматически при протуханиии кеша
Не нужно хранить файлы
Вопрос: HTML верстка Когда использовать Bootstrap/FlexBox/CSS Grid?

Лучший ответ:
Вы сравниваете очень разные вещи.

Bootstrap - CSS фреймворк с адаптивной сеткой и набором готовых компонентов (кнопки, табы, аккордеон и т.д.).
Flexbox - набор CSS свойств для позиционирования элементов.

Вы можете использовать эти все вместе. Более того, в самом Bootstrap сейчас уже используются флексы (и в сетке, и в компонентах).

Если есть задача по быстрому сделать страницу \ лэндинг или сделать прототип интерфейса, то Bootstrap вполне подойдет.

Выбирайте технологии которые лично вам помогают в работе.

Худший ответ:
Когда использовать Bootstrap/FlexBox/CSS Grid?
Когда хочешь. Я серьезно, используй что больше нравится.
Вопрос: Что за ошибка в товарах product.php on line 432 — 436?

Лучший ответ:
Объявите переменную $result = [] перед конструкциями if, foreach и т.д.$result = [];
if(...) {
     foreach(... as ...) {
          $images = $this->model_catalog_product->getProductImages($result['product_id']);
          if(isset($images[0]['image']) && !empty($images)){
               $images = $images[0]['image']; 
          } else {
               $images = $image;
          }
}

Худший ответ:
Переменная $result не существует. Возможно $result объявляется внутри foreach или if, поэтому не существует.
Вопрос: Почему убирает пробелы?

Лучший ответ:
Первую строку заменить на :
nicks = list(set(open("names.txt", encoding="utf-8").read().split('\n')))

Худший ответ:
.split() в первой строчке разбивает текст по пробелам. Возможно тебе нужен splitlines() там
Вопрос: Как увеличить число пользователей по RDP?

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

Худший ответ:
Как увеличить число пользователей по RDP?В диспетчере лицензирования рабочих столов указать нужное количество лицензий.Windows Terminal - дорого, может есть бесплатный аналог? Бесплатного нет, и быть не может, лицензия на Windows не разрешает работу более одного пользователя, кроме сервера терминалов.
Поэтому либо покупать, либо активировать терминальные службы без покупки или ставить сторонний софт, но сторонний софт это уже другой протокол, не RDP.
Вопрос: Доменная зона .su (Soviet Union), причем верхнего уровня. — стоит ли связываться?

Лучший ответ:
Есть домены .it, .cc, .io
Это все региональные домены, но использует их кто хочет. Сейчас нет никому дела до названия и уж тем более домена. Если сервис классный — им будут пользоваться в любом случае.

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

Лучший ответ:
Очередной "я не читал мануалы, памагити" вопрос. 

Читайте Снейдер, Й. "Эффективное программирование TCP/IP".

Кратко - функции send() и recv() не гарантируют, что будет записано или прочитано столько байт, сколько вы в них передали. Нужно анализировать возвращенное этими функциями значение - если оно 0 или < 0 - что-то поломалось и нужно анализировать errorno, в противном случае, вот столько байт и передалось.

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

Лучший ответ:
Дисплей, кнопки и микросд можно прикрутить к arduino (atmega, attiny) или к esp, stm или к другому микроконтроллеру, в зависимости от задач. Микроконтроллеров много разных, они заметно отличаются по энергопотреблению, "мощи" железа и цене, и при выборе нужно бы понимать что вы вообще хотите сделать.
С зарядкой тоже все довольно просто, можно прикрутить что-то типа таких чипов
А вот со звуком все сложнее. Если "пищалку" можно сделать на любом хламе, то для воспроизведения качественного звука понадобятся и хороший ЦАП, и возможно процессор помощнее.
Лучше всего нанять/уговорить помочь кого-то, кто шарит в проектировании электроники. Если интересно именно самому - ищите схемы похожих устройств, идите на форумы электронщиков и начинайте задавать свои вопросы.

Худший ответ:
все зависит от вашей задачи.
Может вам нужен "микрокомпьютер" (а что это?)
Может вам достаточно недорогого планшета, который существенно дешевле и удобнее и лучше чем связка  Raspberry + дисплей и там уже есть " дисплей, 4 кнопки, динамик, разъем для наушников, съемный микросд"
Может вам не нужен экран, но требуется в реальном времени решать несколько задач и управлять сложной системой то вам нужен Raspberry или аналог. Опять же их очень много вариантов.
Если задача одна и не сложная, может вам достаточно платы STM32 или даже Arduino.
Опять же не понятно, если ваша "легковесная программа" уже существует то она написана под конкретную платформу и оборудование, а если программы нет, то не понятно кто ее будет создавать
Вероятность пайки в случае использования STM32/Arduino выше чем с Raspberry. Но можно обойтись и без пайки.
Короче. Опишите задачу, а там будет видно
Вопрос: Как повернуть див на 90 градусов?

Лучший ответ:
transform: rotate(90deg); контейнеру

Худший ответ:
уже выше ответили
https://codepen.io/anon/pen/gJdqow
Вопрос: Почему нужно отделять два в подсчете количества устройств подсети?

Лучший ответ:
Потому что адресов в маске /24 всего 256 ip адресов. Из них 2 "служебных". В вашем примере, адрес 192.168.1.0 является адресом сети, а 192.168.1.255 - адресом широковещательной рассылки, а 254 адреса остаются доступными для узлов сети.

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

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

Худший ответ:
UPD: пожалуй, правильнее всего проверять сессию при помощи session_status().

Ошибка не выдается, потому что создать массив с именем $_SESSION - вполне легальная операция :)

Сделайте echo ini_get('session.auto_start');

А еще проверьте что возвращает session_id()
Вопрос: Что делать если деньги по договору перевели, а самого договора так и нет?

Лучший ответ:
Есть договор, в договоре указано, что Заказчик производит предоплату.
Есть деньги, но договора - нет. => деньги не относятся к договору.
Когда появится договор (подписанный), с даты его подписания он начнет действовать. Заказчик должен произвести предоплату, тогда высланные деньги станут относиться к договору (если Вы так решите).
Сейчас ваши взаимоотношения имеют уровень устного договора, который очень трудно доказывать с каждой из сторон: о сроках, условиях, суммах и т.п.
Вообще: сообщите Заказчику, что его предоплата не имеет смысла и Вы готовы ее вернуть. Ждете\требуется подписания договора, что бы ваши взаимоотношения имели юридический характер. И только после получения подписанного с двух сторон договора, ваши взаимоотношения имеют место быть.
Ваши сомнения обоснованы - ни кто просто так деньги не дает => Вас хотят "поиметь"

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

Лучший ответ:
В русло Steam API, очевидно.

Худший ответ:
Статейка https://habr.com/ru/post/172223/
Документация https://steamapi.xpaw.me/