Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Где и как используют деревья в программировании?

Лучший ответ:
1. Нечто, действительно имеющее древовидную форму — например, деревья каталогов на дисках, деревья сцен в 3D, деревья принятия решений.
2. Деревья поиска — структуры данных, позволяющие добавлять-убирать объекты и позволяющие быстрый поиск по ключу. Например, словари всякие, индексы БД.
3. Так называемая куча — структура данных, позволяющая добавлять-убирать объекты и поддерживающая минимальный элемент в этом множестве. Используется как вспомогательная в каких-нибудь алгоритмах.
4. Двоичное разбиение пространства в 3D — известный способ сортировки от дальних к ближним.

Кроме того, деревья могут не существовать в памяти, а только подразумеваться — в синтаксических разборах, теоретико-игровых обсчётах. Хотя один из вариантов промежуточного хранения разобранной формулы, чтобы потом по ней проводить многократные расчёты — дерево (но чаще используют обратную польскую запись).

Худший ответ:
1. Нечто, действительно имеющее древовидную форму — например, деревья каталогов на дисках, деревья сцен в 3D, деревья принятия решений.
2. Деревья поиска — структуры данных, позволяющие добавлять-убирать объекты и позволяющие быстрый поиск по ключу. Например, словари всякие, индексы БД.
3. Так называемая куча — структура данных, позволяющая добавлять-убирать объекты и поддерживающая минимальный элемент в этом множестве. Используется как вспомогательная в каких-нибудь алгоритмах.
4. Двоичное разбиение пространства в 3D — известный способ сортировки от дальних к ближним.

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

Лучший ответ:
Здравствуйте!

Насколько я понял, вы разрабатываете некое консольное приложение или десктопное решение для работы с WP и вам в данном случае необходимо реализовать авторизацию.

С авторизацией при работе c REST API сталкивался на языке Java и некоторые моменты думаю, что можно применить и на пайтон тоже.
1) Базовая авторизация - логин и пароль.
2) JWT авторизацией (по токену).

Для базовой авторизации используйте плагин - 
https://github.com/WP-API/Basic-Auth

Для JWT авторизации используйте - 
https://github.com/WP-API/jwt-auth
https://wordpress.org/plugins/simple-jwt-login/

Как по мне второй метод авторизации более предпочтителен, ежели первый, но первый проще, так как не нужно возиться с валидацией, продлением токенов и т.д.
https://en-ca.wordpress.org/plugins/jwt-authentica...

Если вы заинтересованы в пайтон, то рекомендую изучить фреймворк Django для веб-разработки.

Худший ответ:
у вас проблемы с понимание что есть фронт, а что есть бэк. Фронтенда на python не бывает.
Вопрос: Стоит ли бояться wix?

Лучший ответ:
wix и ему подобные не стоит бояться...
ИХ НУЖНО ИЗБЕГАТЬ!!!

Худший ответ:
Виксофобия
По существу, лучше конечно не связываться )
Вопрос: Как перебить цвет input'а при автозаполнении в Chrome?

Лучший ответ:
Никак. Если и избавляться от этого, то только при помощи autocomplete="off"

Худший ответ:
.input-field input:-webkit-autofill{
    -webkit-text-fill-color: var(--color) !important;
}
Можно так еще перекрасить сам цвет текста
Вопрос: Как удалить их строки все слова кроме второго?

Лучший ответ:
nickname = reg.split(maxsplit=2)[1]
Почитайте дополнительно документацию к базовому типу str.

Худший ответ:
nickname = reg.split(maxsplit=2)[1]
Почитайте дополнительно документацию к базовому типу str.
Вопрос: Как соединить php и vue?

Лучший ответ:
через rest api
целесообразно

Худший ответ:
Смотря какая задача стоит. А так либо rest либо graphql
Вопрос: Объясните, плиз зачем нужен react и vue?

Лучший ответ:
Уже задавали этот вопрос не раз и не два. Правильный ответ один: если вы не понимаете зачем это вам нужно, значит оно вам и не нужно.

Инструменты создаются, чтобы решать определённые проблемы. Если вы с этими проблемами не сталкивались, то и понять смысла инструментов не сможете. 

Сначала вы должны открыть для себя проблематику. Столкнуться с какими-то сложностями. Наткнутся на задачу, которая потребует от вас много сил и времени. И только человеку попрыгавшему на граблях, имеет смысл рассказывать, как эти грабли обойти, показать, какие инструменты помогли бы ему решить его проблему проще или быстрее. Иначе смысла не будет.

UPD:
 вопрос был о практической легкости внесения изменений. 

martin_eden_msk, Вот, набросал простенькую демку:
snippet

Поклацайте, попробуйте повносить изменения. 

Обратите, внимание, здесь нет ни файлов-шаблонов, ни jsx, ни препроцессоров, ни webpack, ни чего-то ещё. Этот код можно просто вставить в любой документ, хоть в сайт на php и он будет работать.

Я даже больше скажу, многие воспринимают Vue, как маленький, простенький фреймворк, для написания таких вот сложных виджетов, которые потом будут интегрированы в сайт написанный на чем-то ещё.

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

Лучший ответ:
2019 год
Бюджет 16 тыс руб (250 USD)
С добрым утром!
Проснулся...

Худший ответ:
Майнинг на gpu? Сервер? Что? 16 тыщ? Да даже на 1 asic толком не хватит. А нужна фермочка, ну хотябы в 30 штук устройств, в особенности если хочется официально размещаться
Вопрос: Помощь в решении проблемы с ключами массива php?

Лучший ответ:
https://www.php.net/manual/ru/function.array-combi...
Я похожую задачу решал при парсинге csv

Худший ответ:
https://www.php.net/manual/ru/function.array-combi...
Я похожую задачу решал при парсинге csv
Вопрос: Ошибка You should not use NavLink outside a Router?

Лучший ответ:
В итоге решил проблему заменив импорт:
import NavLink from "react-router-dom/modules/NavLink";
На:
import {NavLink} from "react-router-dom";
Спасибо всем за помощь.
Буду благодарен если кто то подробно пояснит в чём разница между двумя импортами?!??

Худший ответ:
Компонент switch нужен который оборачивает роуты.
Вопрос: Случайный рандом с коэффициентом шанса, как сделать?

Лучший ответ:
И это вприницпи работает. Как мне сделать так, что бы у каждого предмета можно было выставлять определённый коофицент выпадения? Или хотя бы подскажите куда копать, в каком направлении.
Смотри:
В урну поместили 2 шара: черный и белый, какова вероятность того, что первый наугад вынутый шар окажется белым?

Дальше

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

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

Учитывай что полная вероятность равна 1.0

Вот так это работает, а все остальное вздор... .

Другими словами тебе нужно N штук каждого элемента пропорционально твоему коэфиценту выпадения. Потом https://en.cppreference.com/w/cpp/algorithm/random...

А дальше рандомно дёргать из контейнера, оставлять их там или удалять зависит от задачи. 

Использовать распределения или нет аналогично. https://en.cppreference.com/w/cpp/numeric/random

Более сложные варианты я описывать не возьмусь.

Худший ответ:
Можно типа такого
double getRand(){//возвращает рандом от 0 до 1
    return (double)rand()/(double)RAND_MAX;
}

string ChanceItemDrop(){
        string itemsRandom[] = {
            "a", "b", "c", "d", "e"
        };
        
        float itemsChance[] = {
            .30f, .80f, .50f, .30f, .40f //шансы от 0 до 1,  1 -100% , 0 - 0%
        };
        int arrLen = sizeof(itemsChance)/sizeof(*itemsChance);
        double r;
        int arrSize;
        do{
            r = getRand();
            arrSize = 0;
            for(int i=0;i < arrLen;i++)
                arrSize += r <= itemsChance[i]?1:0;
        }while(arrSize == 0);
        int* inxs= new int[arrSize];
        for(int i=0,p = 0;i < arrLen;i++)
            if(r <= itemsChance[i])
                inxs[p++] = i;
        string result = itemsRandom[inxs[(int)floor(getRand()*arrSize)]];
        free(inxs);
        return result;
    }
Вопрос: Как часто нужно перепроверять винчестер, чтобы файлы НЕ размагнитились?

Лучший ответ:
Как часто нужно перепроверять винчестер, чтобы файлы НЕ размагнитились?Перепроверка не поможет.
Только перезапись. Контроллер HDD сам ничего не будет перезаписывать.С какой периодичностьюА никто не знает.
Некоторые старые HDD, которым по 20 лет отлично читаются.
Но сейчас технологии шагнули далеко вперед, и плотность записи сильно выросла, поэтому современные неизвестно сколько будут держать информацию в актуальном виде. 
Может и пять лет не протянут.

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

Лучший ответ:
Я разобрался, все банально я не правильно интерпретировал вывод htop, он при отрисовки дерева процесса выводит суммарную информацию по потреблению CPU в главном процессе. 

Всем спасибо.

Худший ответ:
А сама база то справляется? А то вы вполне могли в неё упереться.
Вопрос: С чего начать и продолжить изучать Assembler?

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

Худший ответ:
Полно информации на русском и тем более на английском, просто поищите в гугле.
В wikibooks есть неплохие статьи на русском и на английском
За информацией про OS вам на OSDev

За примерами открытых Ос на Ассемблере (написаны на fasm) сюда и сюда
Вопрос: Как подобрать ибп на зоопарк коммутаторов?

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

Худший ответ:
Свет пропал свитч питается от аккума, свет дали и что, блок ибп нонстопом заряжает аккум. это не вредно для аккума, или зависит от типа аккума?Ну так и должно быть.
Для свинцовых аккумуляторов -  они должны всегда быть заряжены на 100%, не должны хранится разряженными, сразу же после нагрузки нужно подавать заряд.  
Для лития  - они должны быть заряжены на 30-40%,  вредно заряжать до 100%. 
А вообще без разницы - никто не смотрит вредно там или не вредно, просто меняют и все.
Вопрос: Живы ли вэб-компоненты?

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

Технология была многообещающей и интересной на старте. Для ее поддержки гугл даже придумал отдельную спецификацию HTML Imports: https://w3c.github.io/webcomponents/spec/imports/i... (можете не ходить, там 404), что позволяло подключать однофайловые компоненты прямо в документ так:
<link rel="import" href="my-component.html">
Классно же да?

Но технология не приобрела популярности, возможно так как была слишком простой и понятной, а именно в это время на пик славы вышел npm, gulp и вот это всё. В моду входила непонятная магия, утрата контроля над кодом и всякие оптимизаторы позволявшие сделать для одного слайдера на главной страницы бандл в полтора, а иногда 2-3 Мб. кода, и всё это без всяких там jQuеry.
Ребята одумались и убрали спецификацию HTML Imports, предлагая разбивать компоненты на 3 отдельных файла - js, css и html с шаблоном. Причём js надо было подключать на странице, css тоже, а html должен был загружать по задумке создателей уже в само js. Такой подход позволял резко усложнить работу с web-components и сделать код снова неуправляемым, но было поздно - технология уже уступила позиции конкурентам.
Конечно это был сарказм, если кто-то не понял.

Жизнь в этой идее еще теплится, но теперь нам предлагается писать код в трех файлах или помещать его целиком в js, или использовать со специальными загрузчиками, что сопоставимо с использованием какого-нибудь фреймворка, того же Vue, дающее теме же усилиями гораздо большие возможности и смысл использовать веб-компоненты отпадает окончательно.

Короче технология по задумке хорошая, но на практике не применимая, поэтому широкого распространения и не получает.

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

Лучший ответ:
Почитай про конструкторы

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

class Car:
    def __init__(self, model, color):  # Этот метод выполняется при создании объекта, в него передаются все аргументы
        self.model = model
        self.color = color
        
        print('The model is %s, color is %s' % (self.model, self.color))
Вопрос: Как найти угол между средней линией и катетом в треугольнике?

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

Из точки M опускаем перпендикуляр на сторону BC. Точку пересечения назовём M'.
Рассмотрим треугольники АВС и MM'C.
∠BCA = ∠M'CM, так как это общий угол треугольников.
∠ABC = ∠MM'C, так как эти углы прямые.
Значит эти треугольники подобны.
CM = 1/2 CA => CM' = 1/2 CB
То есть, точка M' делит CB пополам, а значит перпендикуляр MM' одновременно является и медианой треугольника BMC.
Значит треугольник BMC - равнобедренный и ∠MBC = ∠BCM = ∠BCA = atan(AB/BC).

Худший ответ:
без многобукв: гипотенуза совпадает с медианой, т.к. две гипотенузы пересекаются в своих серединах.
Вопрос: Как сменить аккаунт GitHub?

Лучший ответ:
Если под Windows - То через Панель управления -> Диспечтер учётных данных

Худший ответ:
Нужно не аккаунты переключать, а давать права на репозиторий. Зачем вам несколько аккаунтов? Достаточно одного.

Либо работать через SSH, тогда аккаунты не понадобятся в принципе.
Вопрос: Какой Macbook Pro лучше взять сейчас?

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

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

Лучший ответ:
Браузер по умолчанию задаёт отступ странице: цсс-свойство margin для хтмл-тега body.
Чтобы убрать ненужный отступ, считается плохой практикой писать следующий цсс:* {
    margin: 0;
    padding: 0;
}
Причина — добавляет ненужного кода элементам. У большинства и так нулевые дефолтные отступы, а у других (например, заголовков, списков) обычно задаются свои.
Опытные ребята обнуляют отступы и другие стили c помощью reset.css или normalize.css. Минусы такого похода:Не делается ничего из того, что хочет ваш дизайнер.Половина описанных элементов не используется.Повышается сложность чтения и объём байтиков: браузер добавляет стили по умолчанию, рисет всё обнуляет, вы добавляете своё. В инспекторе — портянка зачёркнутых свойств.Неуниверсально. Если захотите использовать блоки повторно, на другом проекте всё сломается. Чтобы починить, нужно будет искать старый рисет.
Яндекс советует не использовать селекторы на звёздочку, не сбрасывать стили, а писать универсальные блоки. Ваш случай:.page {
    margin: 0;
}<body class="page">Источник

Худший ответ:
* {
margin:0;
padding:0;
}
У браузера по умолчанию есть свои стили которые нужно сбрасывать
Вопрос: Какую базу данных лучше использовать на Python?

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

Худший ответ:
ВК сам предлагает простое key-value хранилище: storage.set
Вопрос: Блокировка функциональности мобильного телефона?

Лучший ответ:
 возможно ли создание мобильного приложения или сервиса которое в определенном помещении или зоне будет блокировать функции телефона, а именно камеру и диктофон?
Теоретически возможно, ноРаботать это будет через Ж... Легко обойтиКто добровольно согласится ставить подобное приложение?Проще запретить устройства административными мерами.
Либо использовать аппаратный Speech Jammer/Audio Jammer для препятствия записи голоса.
Для видео можно предложить использовать мощный  инфракрасный прожектор(ы) в определенном спектре.
Но тут вопрос как это скажется на здоровье людей, в данном помещении?UPD:Уточняю вопрос: блокировка нужна принудительной и если это возможно без установки приложения. 
Это только на уровне ядра ОС, либо аппаратно. 
Но такое вам вряд ли под силу.

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

Лучший ответ:
1. Меню должно быть одно - финты с двумя меню для разных устройств - признак криворучки.
2. Отображение менять через и только и исключительно через CSS+media.
Хотя судя по тексту вопроса, знаний три процента, тогда в репозитории искать среди 624'498 плагинов мобильных меню, хуже не будет)))

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

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

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

Лучший ответ:
Евгений, свой фв это отличная практика, но возможно с первого раза конфетка не получится. Создайте репо , подключите инспекторы кода и пишите следуя их наставлениям
https://scrutinizer-ci.com/
https://codeclimate.com/
https://insight.symfony.com/
Вешаете их бэйджики на репу и следите за оценками и рекомендациям

Худший ответ:
В работе, сделали, перечитали, поняли что можно сделать "более ООП" - сделали.
На моем опыте, лучше всего закрепляется информация, которая была применена на реальном проекте и принесла пользу. А не в примерах, которые в реальной работе редко встречаются.
Вопрос: Можно ли обойтись без PHP на бэкэнде используя лишь JavaScript (+node.js)?

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

Худший ответ:
Слона едят частями. Для начала разберитесь с версткой, без less/stylus/pug/... потом беритесь за js, потом либо за один из фронт фрймворков и уже потом за средства сборки. До бэка вы можете не дойти так как фронт будет интересен.
Вопрос: Как можно определить последнюю открытую вкладку сайта в браузере, на JS?

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

Чтобы на стороне клиента мониторить события, которые им хочет сообщать сервер, вам нужны websocket или хотя бы long pooling (устаревшая технология на тот случай, если вебсокеты не доступны).

Первое очень просто - клиент держит специальное подключение к специальному websocket серверу, который вы должны поднять на сервере (реализация вебосокет есть на всех популярных языках, начиная с php).
Пример сервера - https://reactphp.org/
На клиенте - штатный https://developer.mozilla.org/en-US/docs/Web/API/W...

Второе - специальный запрос к бакенд серверу на файл, который сервер не отдает до тех пор пока ему не понадобится что то сообщить клиенту (причем каждому клиенту сервер по своему отдает это файл), это реализуется на любом языке очень просто, но не так эффективно как через вебсокет сервер.
Пример -https://github.com/panique/php-long-polling

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

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

Лучший ответ:
Прямая зависимость от ресурсов хост машины.

Худший ответ:
Только опытным путём.
Вопрос: Как скрыть msorder на странице msGetOrder?

Лучший ответ:
Тоже столкнулся с данной проблемой и не нашел решение на просторах интернета.
Удалось решить проблему с помощью сниппета.
$mainPage = $modx->makeUrl(1);
$resource = $modx->resource;
$orderPage = $modx->makeUrl($resource->get('id')) . $get;
switch ($step) {
    case "clear":
        setcookie ("myOrder", "");
        break;
    case "check":
        if(!isset($_COOKIE["myOrder"])){
            setcookie ("myOrder", $value);
            $modx->sendRedirect($orderPage,array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
        }
        if($_COOKIE["myOrder"] != $value){
            $modx->sendRedirect($mainPage,array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
        }
        break;
}
Вставил в tpl msOrder (с режимом "clear") и в tpl msGetOrder (с режимом "check").
&step - режим работы
&value - что писать в cookie / с чем сравнивать (генерируем маску с использованием данных заказа, например, {$order.id}{$order.num}%{$order.cost})
&get - GET параметр заказа (?msorder={$order.id})

Логика работы:
1. На странице оформления заказа чистим печеньки myOrder.
2. На странице благодарности проверяем нет ли чего в печеньках. Если печеньки myOrder пусты, то записываем в них наше секретное значение. Если не пусты - сравниваем и либо оставляем пользователя на странице, либо перенаправляем на главную.

Может решение и костыльное, но самое главное, что работает. Другое в голову пока не пришло.

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

Лучший ответ:
Евгений Лернер,
"СДЕЛАТЬ"?

ну основать технологическую компанию, нанять инженеров, придумать и развести свою плату с нужными возможностями, нанять разработчиков, написать драйвера для материнки.
Или что вы хотите?

Вот купить - можно поискать готовые серверные платы, но это узкоспециализированная ниша, поэтому дорого, долго.

Ищите с ключевым словом mining motherboard, например

https://www.newegg.com/p/1JW-00FB-00001?Descriptio...

https://www.techradar.com/news/best-mining-motherboards

https://cryptomining-blog.com/tag/16x-gpu-motherboard/

Худший ответ:
Они пишут что до 8
https://www.nvidia.com/ru-ru/data-center/virtual-c...

Больше только кластеризируя.