Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Включение и выключение функцыи JS?

Лучший ответ:
Лучше вместо setInterval() использовать requestAnimationFrame()
Там принцип: отрисовали кадр – запросили отрисовку следующего. Пошаговая передача эстафеты.

Завести переменную-флаг, которая будет true или false. Разрешать или запрещать анимацию.

На каждом шаге смотреть на эту переменную: и делать следующий requestAnimationFrame() только если переменная true.

Кнопка будет менять состояние этой переменной. И, при переключении из false в true, запускать отрисовку.

Ещё оптимизация: не нужно в каждом кадре искать элементы, достаточно это сделать один раз.

snippet

Худший ответ:
При условии, что у вас в принципе правильно работает функция moveByCycle, делаем следующее:

Пишем две функции

let t; // Дескриптор счетчика setInterval

function startCycle() {
 t = setInterval(moveByCircle, 0);
}

function stopCycle() {
  clearInterval(t);
}

Функцию ByCycle выкидываем нахер, ибо непонятно, что она делает.

Кнопку переписываем

<button onclick="toggleCycle">ВКЛ/ВЫКЛ<button>

И пишем последнюю функцию

function toggleCycle() {
  if (t) {
    stopCycle();
  } else {
    startCycle();
  }
}
Вопрос: Логические операторы PHP: and, or vs &&, ||?

Лучший ответ:
Поскольку у && приоритет выше, то традиционно выбирают его, чтобы потом не было неожиданностей, как во втором примере.

Я, собственно, не вижу никакого удобства во втором случае. 
Код должен читаться на лету, без необходимости вчитываться и производить логические вычисления в голове с учётом приоритета выполнения операторов. А здесь мы видим эталонный говнокод, который надо переписать на 
$x = is_good();
if($x and $y>0)
Я оставил здесь AND для наглядности, но по-хорошему я бы заменил на &&, просто чтобы следовать единому стилю.

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

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

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

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

В-третьих, продуманный интерфейс позволяет в большей степени создавать взаимозаменяемые реализации — конечные классы. Тот, кто использует интерфейс при разработке класса обязан разработать все обязательства интерфейса.

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

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

Добавлю, к слову, о внедрении зависимостей. Действительно, этот подход может использоваться и без интерфейсов, тот факт, что инверсия управления и внедрение зависимостей используются чаще всего с интерфейсами — своего рода совпадение. Хороший пример: фреймворк Yii 2 или библиотека Pimple, там в качестве маркеров для внедрения зависимостей часто используются произвольные (или основанные на иных соглашениях) строки. Это к тому, что DI — необязательно самый яркий пример использования интерфейсов (хотя и более ценный, чем другие варианты).

Худший ответ:
А где вы тут интерфейс собственно увидели?

Интерфейс – это описание public методов, которые представляют собой только название метода, описание их аргументов и возвращаемый тип. Тело метода в интерфейсе не описывается.

Т.е. вы создаёте некий класс, в котором будут предопределены некие методы, которые будут вызывать в обязательном (вроде как) порядке. Т.е., если в интерфейсе есть метод needCall(), то и в классе, где подключён интерфейс (через implements) нужно будет вызвать его.
https://www.php.net/manual/ru/language.oop5.interf...
Вопрос: Если я зайду на вредоносный сайт, могут ли с моего iPhone украсть фото и видео( я не ввожу никаких паролей и Логинов)?

Лучший ответ:
Зачем их красть с айфона, когда они уже давно все лежат в айклауде, откуда украсть куда проще?

Худший ответ:
браузер так устроен - максимальная защита пользователя от сайтов
Вопрос: Что такое #define LIN 37?

Лучший ответ:
Везде где будет LIN, будет заменено на 37
#define LIN 37
int c = LIN;
// c = 37

Худший ответ:
Везде где будет LIN, будет заменено на 37
#define LIN 37
int c = LIN;
// c = 37
Вопрос: Какая ОС может работая на голом железе, может запускать внутри себя другие операционные системы?

Лучший ответ:
Они все в качестве программы так или иначе. И называются гипервизорами

Самое простое для вас будет - установка на чистый debian/ubuntu (без графической оболочки) virtualbox и веб интерфейс к нему
Посложнее, но так же бесплатно - установка proxmox (по сути гипервизор на базе debian)
Примерно как proxmox по сложности вхождения, но в бесплатной версии больше ограничений - VMWare ESXi, но там уже консоль не привычный линукс, зато можно считать наиболее близким кандидатом к вашим требованиям


Есть еще решения от майкрософта, а так же на базе freebsd, но я не пользовался
Вариантов море, даже docker-swarm можно условно считать "может запускать внутри себя другие операционные системы"

Худший ответ:
Вам нужен гипервизор первого уровня (а VB - гипервизор второго уровня). Насчет вирутализации мака я правда вовсе не уверен, что она есть и, если есть запускается на уровне чайника.
Для работы обычно ставят либо KVM, либо ESXI
Фанаты винды используют виндовый Hyper-V
Есть еще XEN, но он какой-то донельзя специфичный
Играть нельзя (что бы там ни дудонили некоторые здешние обитатели)
Вопрос: Можно ли сделать файл подкачки Убунту не на системном диске ssd, а на hdd который в optibay?

Лучший ответ:
Поддержу оратора из комментариев, что все эти "страдания SSD от свапа" остались где-то далеко. Сейчас ресурс дисков настолько увеличился и фирмварь настолько поумнела, что те (честно сказать, небольшие) объёмы данных, которые при своей работе гоняет браузер, приведут к выводу его из строя ещё крайне нескоро.

А свап на чём-то медленном - это вообще изврат, поскольку всё будет люто тормозить из-за него при нехватке памяти. Оно вам надо?

Худший ответ:
поставь zram
Вопрос: Как обновить данные в одной таблице, после обновления данных в другой?

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

Худший ответ:
на некоторые связные изменения в sql базах данных есть встроенный функционал, например foreign key index - это та самая связь между двумя таблицами по значению в поле или нескольких

при создании индекса можно указать, что делать со связанными записями в таблице, например каскадно удалять при удалении записи или прописать null
смотреть on delete и on update statements

любые более сложные условия делают с помощью тригеров
Вопрос: Из-за чего не работает JS?

Лучший ответ:
"Бессплатный" хостинг-то, поди, на localhost не отзывается, у него какой-то IP адрес есть.
Достаточно просто fetch('/test.txt');

При использовании await, функция должна быть помечена как async.

"Просто не работает" и "ничего не выходит" - это не описания ошибок. Вот вы console.log сделали - что он выводит? Может, там красненькие буковки какие ещё есть, которыми ясно написано, в чём проблема?

Худший ответ:
Uncaught SyntaxError: await is only valid in async functions, async generators and modules
Для использования await функция должна быть объявлена как async.
Вопрос: GRAPHQL подписки, как правильно реализовать?

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

Худший ответ:
Это же на каждое событие открывается соединение и слушает. Это же сколько соединений нужно делать и сколько событий слушать. Я про то не будет ли это серьёзной нагрузкой.
Зависит от железа.

Подписки в GraphQL через вебсокеты и реализуются.

К примеру клиент вошёл во вкладку заказы, и начинает слушать её напрямую из GRAPHQL?
Можно и так, почему нет?
Вопрос: Куда ведет интернетный провод из стены?

Лучший ответ:
Сначала идёт ваша зона ответственности до стены.
От стены кабель идёт в маршрутизатор провайдера в щитке. Оттуда идёт в подземную кабельную канализация в подвале. Это зона провайдера.
Оттуда кабель по канализации идёт до дома провайдера. Это зона оператора канализации.
Далее из канализации аналогичным образом кабель подключается к серверу провайдера. Это опять зона провайдера.
Далее аналогичным образом кабель идёт до сервера районного/городского провайдера. Соответственно, зоны вашего провайдера, оператора канализации, районного/городского провайдера.
Далее аналогичным образом кабель выходит на городской уровень, региональный, национальный, межнациональный.
Нижестоящий оператор подключается к вышестоящему.
Операторы равного уровня взаимно подключаются через центры межоператорского взаимодействия.
С межнациональный уровня кабель аналогичным образом "спускается" до сервера поставщика услуги. Аналогично, сервер и кабель от него до стенки - это зона ответственности поставщика услуги.

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

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

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

В общем, помогите наконец разобраться в этом. Нигде не нашла никакую информацию или я ищу неправильно. Спасибо.

Эта информация - внутренняя инфраструктура провайдеров. Она сложная.

есть элекропроводка - это провод по которому проходит ток, как я понимаю. а есть провод-по которому проходит интернет - это другой провод получается? Или это одно и тоже? Или интернет в электропроводку входит? 
Интернет, телефон, телевизор, электричество, радио - все это разные провода. Разве что у вас IPTV которое по инету идет.
Вопрос: Что учить дальше после основ c# для unity?

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

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

Лучший ответ:
Потому что хп зомби у тебя статик поле. Всё, что статик - принадлежит классу, всё что не статик принадлежит конкретному объекту, класс - фабрика объектов, существует в единичном экземпляре => твое хп одно для всех => если хп == 0, то оно 0 у всех зомби. Убирай статику, делай TryGetComponent(out Zombie zombie) в OnCollisionEnter в Bullet и отнимай хп у конкретного зомби.

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

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

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

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

Да, могут быть моменты, когда вы захотите манипулировать пикселями на единицу. Если у вас есть лист плитки размером 16x16 плиток, вы можете подумать о том, чтобы установить количество пикселей на единицу равным 16, чтобы, например, вы могли легко соединять плитки вместе в сцене.

Худший ответ:
У вас в мире есть куб размером 1 юнит на 1 юнит и на 1 юнит. Если на него натянуть спрайт, то на одну грань влезет только 100 пикселей.
Вопрос: Низкий фпс в играх. Что не так?

Лучший ответ:
Что за игра? Может у вас монитор 60гц. Игра может ограничивать fps именно до частоты монитора. Т.к. выше fps нет смысла гнать.

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

Лучший ответ:
Т.е у всех элементов в списке перезаписываются id на id текущей итерации.
У вас всего 1 элемент - Checker checker = new Checker();

Худший ответ:
Решение
class Checker
    {
        public int id;
        public List<Checker> list = new List<Checker>();

        public void add(Checker check)
        {
            list.Add(check);
        }
    }

    class Check
    {
        Checker checker = new Checker();
        public void test()
        {
            int[] ints = { 1, 2, 3 };
            foreach (int i in ints)
            {
                var checkerChild = new Checker();
                checkerChild.id = i;
                checker.add(checkerChild);
            }
        }
    }
Вопрос: Кто и как подключает скрипты и стили на своем wordpress?

Лучший ответ:
is_home() — проверяет показывается ли страница с последними постами

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

В качестве версии файла, четвертым параметром удобно передавать время последнего его изменения с помощью filemtime(). Это нужно, чтобы браузер не кешировал измененные файлы и всегда показывал только актуальную версию

Т.к. я часто меняю что-то программно, то и id у меня могут измениться, а вот за слагами я слежу для SEO, поэтому во всех проверках типа is_page() проверяю слаги постов. Но это уже вкусовщина

function custom_scripts_init() {

	// общие стили
	wp_enqueue_style( 'common-styles', get_theme_file_uri( 'assets/css/common.min.css' ) , array(), filemtime( get_theme_file_path( '/assets/css/common.min.css' ) ) );

	// общие скрипты 
	wp_enqueue_script( 'common-scripts', get_theme_file_uri( 'assets/js/common.min.js' ), array( 'jquery' ), filemtime( get_theme_file_path( '/assets/js/common.min.js' ) ), true );

	// скрипты для страницы постов
	if ( is_home() ) {
		wp_enqueue_script( 'home-scripts', get_theme_file_uri( 'assets/js/home.min.js' ), array( 'jquery' ), filemtime( get_theme_file_path( '/assets/js/home.min.js' ) ), true );
	}

	// скрипты для массива страниц
	if ( is_page( ['sample-page', 'contacts'] ) ) {
		wp_enqueue_script( 'page-scripts', get_theme_file_uri( 'assets/js/page.min.js' ), array( 'jquery' ), filemtime( get_theme_file_path( '/assets/js/page.min.js' ) ), true );
	}

}
add_action( 'wp_enqueue_scripts', 'custom_scripts_init' );

Худший ответ:
Делаю так же, разделяю ифами в functions, только еще использую - is_singular is_front_page и т.д
Вопрос: Как можно редактировать тг бота и держать его онлайн?

Лучший ответ:
Имеешь 2 бота в ТГ. Один для тестов, другой для прода.
Прод останавливаешь только на долю секунды, предварительно загрузив новую версию бота на сервер и подготовив команду для запуска. Skip updates сделай false и будет тебе бесшовный деплой.

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

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

Если же вам нужно чтобы background появлялся только при наведении на кнопку, то можете попробовать поменять порядок кнопки и картинки в разметке, а при помощи css развернуть их обратно чтобы остался прежний порядок - картинка, кнопка. И далее можно использовать комбинацию селекторов
.image:hover + .button::before {
    content: "";
    background-color: tomato;
}

Почему нужно использовать в селекторе + ? Потому что этот селектор выбирает следующий элемент с указанным селектором в разметке, а в css можно обратиться к следующим соседям которые лежат в разметке после элемента, но не перед. Таким образом в разметке, визуально и в стилях у нас всё будет так, как нам нужно.

Худший ответ:
почти получилось через селектор ~ тильда. Почти потому что пришлось картинку и кнопку местами поменять в разметке. А как развернуть их обратно в css не знаю))
Вопрос: Как правильно передать несколько параметров data в AJAX функцию?

Лучший ответ:
Этим кодом создадим формаду для запроса:
let data = new FormData($('form'));
Потом передаёшь в data эту переменную и у тебя там будет всё, что тебе нужно

Худший ответ:
крч все оказалось намного проще, если кому-то пригодится то используйте метод .serialize() в передаче переменных
var data = $('form').serialize();
p.s. , спасибо за вариант с чистым js, я согласен что лишние библиотеки не нужны, но возможно кому-то пригодится вариант с jquery
Вопрос: Как настроить root в nginx в моем случае?

Лучший ответ:
Указывая root в location ты его переопределяешь в рамках location, на уровне server и в других location (если в них нет переопределений) root останется прежний. Что тебя не устраивает?

root /home/max/www/project;

location / {
    root /home/max/www/project/pages;
    # [...]
}

# можешь хоть для каждого location переопределить root,
# но нет нужды в этом в твоём случае - достаточно переопределить root
# только для location / { ... }
PS
Про root и alias

Pitfalls and Common Mistakes

PPS
root /pages; - означает искать файлы в директории pages, которая размещена в корне диска.

Худший ответ:
Указывая root в location ты его переопределяешь в рамках location, на уровне server и в других location (если в них нет переопределений) root останется прежний. Что тебя не устраивает?

root /home/max/www/project;

location / {
    root /home/max/www/project/pages;
    # [...]
}

# можешь хоть для каждого location переопределить root,
# но нет нужды в этом в твоём случае - достаточно переопределить root
# только для location / { ... }
PS
Про root и alias

Pitfalls and Common Mistakes

PPS
root /pages; - означает искать файлы в директории pages, которая размещена в корне диска.
Вопрос: SFP — присоединить коммутатор (см. набросок схемы). Правильно ли я понимаю?

Лучший ответ:
Надеюсь, такую банальность, что гнездо TX надо соединить с RX и наоборот, вы учли :)

Худший ответ:
На картинке SFP модуль одномодовый (Single Mode). Это также видно по длинам волн. Имейте ввиду, на всякий случай.
Вопрос: Не верная разметка разделов Linux?

Лучший ответ:
да просто в консоль зайдите и выполните
; echo -e "label:dos\nstart=1M,bootable" | sudo sfdisk /dev/sdX
создаст таблицу разделов dos (ака mbr) и один раздел на весь диск с отступом от начала диска в 1 метр
где /dev/sdX (X может быть a,b,c...) это ваш диск куда ставите, какие диски в системе глянуть можно командой
; lsblk
не заморачивайтесь с разделами если не понимаете для чего они вам нужны, swap можно потом закинуть в файл, а хомяку и в корне живется неплохо

Худший ответ:
Выключите Legacy режим же
Вопрос: Можете дать советы по первой it работе?

Лучший ответ:
Есть солидная роадмап по бекенду: https://roadmap.sh/backend

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

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

Худший ответ:
А ещё оперативная память и SSD.
Вопрос: Как построчно обрезать текст?

Лучший ответ:
<?php
$text = 'Это первая строка текста.
А это вторая строка.
А здесь третья строка.';

// split to rows
$rows=explode(PHP_EOL, $text);

//get first 2 rows
$first2rows = array_slice($rows, 0, 2);

//implode to new text
$newtext = implode(PHP_EOL,$first2rows);

var_export($newtext);

Run PHP here

Худший ответ:
Нашел только методом СSS (может кому-то понадобится). Мне и  CSS подходит, но интересна реализация на PHP Как обрезать текст по количеству строк?
Вопрос: Можно ли командой удалить все метаданные у файлов?

Лучший ответ:
да можно
Вт так
sudo apt-get install libimage-exiftool-perl
find . -type f -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)"  -exec grep -rl base64 {} \; -exec exiftool -all= {} \; -exec rm '{}_original' \;
соответствено вместо find .  можно поставить  путь до сайта  find /var/www/site.ru ну или запустить команду внутри  папки.
и  на сладкое
Оптимизация картинок 

Худший ответ:
без использования доп.софта 
А команды это что по твоему?
Вопрос: Как запускать крон задачи из python virtual env?

Лучший ответ:
Я делал так: cd python/project && source venv/bin/activate && python3 main.py

Худший ответ:
Ну наверное потому во-первых - что путь нужно продолжить - что-то вроде:
/opt/Python-3.8.7/proj/bin/python
до бинарника который ваш скрипт запускать будет

Во-вторых учесть что ваше окружение и окружение кронтаба - разные..
Возможно будет нужно кой-какие пути прописать и прочее...