Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как в live режиме отслеживать изменение в бд?

Лучший ответ:
Как мне кажется - вы не в том направлении мыслите.
А при чем тут вообще БД? Вы каким скриптом запись статьи обрабатываете - в том же месте и шлите уведомления в удобном вам виде. База данных тут вообще не при чем. Максимум, как в данной задаче должна участвовать БД - это сообщить методу рассылки пушей - смогла новость записаться или не смогла. (Если новость не записалась, то и пуши кидать не нужно, ведь статья еще не существует)

Худший ответ:
В вашем случае это называется Событие, Event, Триггер. Т.е. вы должны запустить определенное событие после того, как случится определенное действие. 
Сокет не следит за изменением БД. Он делает то, что ему скажут, поддерживая RT соединение между клиентом и сервером. ВК не работает на сокетах. ВК работает на longpoll запросах. 
Для PHP есть библиотека для запуска сокетов (одна из немногих) - Ratchet . Запускайте, экспериментируйте с примерами. Серверная часть желательно на php, что бы проект можно было установить на обычный хостинг.
Не припоминаю хостинги, поддерживающие WS.  Так что все ручками. 
В общем случае - 
1) Человек оставляет комментарий. 
2) создается событие - разослать пользователям уведомление о новом комментарии. Отправляем его в сокет, и он рассылает пользователям уведомления. 
В вашем случае вместо сложных ws уведомлений, я бы использовал сравнительно простой метод - push уведомления. к примеру onesignal .
Вопрос: Написать программу, сильно тормозящую Windows?

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

Худший ответ:
запусти while (true) ;
в потоках по количеству ядер
Вопрос: Как веренуть ключи из массива?

Лучший ответ:
Познавательный факт нумеро уно: Эта структура данных называется не массив.
Эн сегундо, можно проще:for (String key : jsonObject.keys()) {
    String value = jsonObject.getString(key);
}
Нет никакого getNames(), есть names()

Худший ответ:
вопрос решил так:
Сначала поставьте это где-нибудь:private <T> Iterable<T> iteratorToIterable(final Iterator<T> iterator) {
    return new Iterable<T>() {
        @Override
        public Iterator<T> iterator() {
            return iterator;
        }
    };
}
Затем просто перебирайте ключи объекта и значения:for (String key : iteratorToIterable(object.keys())) {
    JSONObject entry = object.getJSONObject(key);
    // ...
Вопрос: Как более эффективно работать с dom javascript?

Лучший ответ:
Имхо экономия на спичках. Чтобы эффективнее работать с DOM, используйте Vritual DOM.

Худший ответ:
Если родитель пустой, то innerHTML самое быстрое
Если в нем что-то уже есть, то вставка через documentFragmentvar frag = document.createDocumentFragment();
for(let i = 0; i < 10; i++) {
  let newLi = document.createElement('li');
  newLi.className = "alert";
  newLi.innerHTML = "<strong>Ура!</strong> Вы прочитали это важное сообщение.";
  frag.appendChild(newLi);
}
list.appendChild(frag);
Вопрос: Чем руководствуется работодатель?

Лучший ответ:
Всё просто - вы лезете не в своё дело. Это не в обиду и не в оскорбление, просто вы реально можете не понимать, что именно делают эти люди. Вполне вероятно, что делают они очень много и очень ценное, просто вы этого не видите. Может, они вообще консультанты и кодом не занимаются.
На прошлой работе я сидел в одном отделе с эникеями и 1С-никами (а я сисадмин), которые бегали, обсуждали, постоянно куда-то звонили, шумели и двигались и у каждого ужасно бомбило, что я молча "сижу за компом весь день и ничего не делаю", получая много больше, чем они.

Худший ответ:
Никакого профита
Просто плохая организация труда
Вопрос: Как создать простую форму подписки на рассылку?

Лучший ответ:
Надо создать форму с одним полем ввода "адрес" и одной кнопкой "отправить".
Подтверждение в виде ссылки или ответа на адрес reply-to на почту.

Худший ответ:
Находите любой сервис рассылок. Какой нибудь СмартРеспондер...Получаете код. Вставляете на сайт.
Вопрос: Счётчик клиентов на сайте?

Лучший ответ:
В чём именно у вас затык? Если алгоритм, то тут вариантов не многоif (данные счетчика хранятся в БД || файле ) {
   отправляем ajax-запрос || обычный запрос на сервер;
   увеличиваем значение на 1 в хранилище;
} elseif (счетчик для каждого клиента свой && данные необходимо хранить на клиенте) {
   используем localStorage/sessionStorage || cookie;
} else {
   // а тут бы неплохо уточнить, что и как у вас построено
}Если же техническая сторона вопроса, то рассказывайте, что не получается

Худший ответ:
Как то так:var $btn = $('.btn'),
	localStorageButtons = JSON.parse(localStorage.getItem('buttons')) || {};

if (localStorageButtons) {
	$btn.each(function(i) {
		$btn.text(localStorageButtons[i]);
	});
}

$btn.on('click', function() {
	var v = parseInt($(this).text(), 10),
		i = $(this).index();
	v++;
	localStorageButtons[i] = v;
	$(this).text(v);
	localStorage.setItem('buttons', JSON.stringify(localStorageButtons));
});
Вопрос: Существует менеджер конфигурации для одного сервера?

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

Худший ответ:
Puppet манифесты можно запускать без сервера, это может быть вариантом.
chef тоже можно запускать локально, это может быть вариантом.
ansible плэйбуки можно запускать с локалхоста по ссш до сервера, это может быть вариантом.
Докер может быть ещё одним вариантом.
bash скрипты могут быть вариантом.
Сохраненные конфиги в гите со структурой каталогов и маленьким скриптиком могут быть вариантом.
gitlab-ci может быть вариантом.
С остальными не работал - не могу сказать.
Выбирайте что сердцу мило)
Я бы именно для вашего варианта рекомендовал бы больше всего ansible+gitlab-ci. В пайплайнах ci описать варианты что ставить, редактируем hosts, делаем пуш и в пайплайнах просто нажимаем кнопку что надо с этим сделать. И получаем полный вывод результата в читабельном виде, в реальном времени (если надо можно цепочку тестов делать например). Гитлаб воркер ставится на машину с ансиблом. Да и сразу версионирование получите и историю.
Вопрос: Почему переменная объявленная в цикле сохраняется и за его пределами?

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

Худший ответ:
Вот вам пример того, что происходит на самом деле:function doSmth()
{
  var i; // будучи определенной через var, i объявляется за пределом блока for.
  for (i = 0; i < 10; i++)
     document.write(i);
alert(i); 
}
Чтоб такого не получалось, делайте иначе:for (let i = 0; i < 10; i++)
 document.write(i);
alert(i); // будет ошибка undefined
Вопрос: Добавить класс элементу, найденному по классу (js)?

Лучший ответ:
Вы находите "элементы", а не один элемент. 
Правильно например так:document.querySelector('.body').classList.add("test2");
Если у вас много таких классов и всем надо добавить ещё, то придется воспользоваться циклом for:var elements = document.getElementsByClassName("body");
for (var i = 0; i < elements.length; i++) {
    elements[i].classList.add("test2");
}

Худший ответ:
getElementsByClassName
getElementById
https://www.w3schools.com/jsref/met_document_getel...
третий пример
Вопрос: Как правильно называется ситуация когда два свича соединены витой парой одновременно через два порта(для увлечения скорости)?

Лучший ответ:
Агрегирование

Худший ответ:
Etherchanel, так еще можно.
Вопрос: Как создать массив объектов?

Лучший ответ:
$example = json_encode(
    [
        [
            'id' => [
                1,
                2,
                3,
            ],
        ],
        [
            'phone' => [
                '12312312',
                '423423',
                '555',
            ],
        ],
    ]
);
Результат[
    {"id":[1, 2, 3]},
    {"phone":["12312312", "423423", "555"]}
]

Худший ответ:
Это по факту и есть массив объектов.
Вопрос: Какую CMS выбрать под сайт на котором будет более 100к рецептов еды?

Лучший ответ:
я думаю любая CMS в этом случае будет мучением
тут нужен мощный фреймворк (сильный бэкенд) + хороший сервер с администратором

Худший ответ:
WordPress или ImageCMS (не популярная, но очень простая под капотом)
Вопрос: Как сделать ховер на ссылку, что бы менялся фон ее родительского блока?

Лучший ответ:
Но если захотите обойтись средствами html+css, то лучше так:
https://codepen.io/anon/pen/mmYPVG
Другой вопрос кроссбраузерность.

Худший ответ:
Может быть не совсем то, но как-то так:
https://jsfiddle.net/en6ny1hf/
Вопрос: Как сделать такое в Adobe Muse?

Лучший ответ:
Лайфхак. берешь в фш и делишь картинку на две части, слева свою картинку справа белый фон. 
Перфект.

Худший ответ:
не знаю как в muse, но вам нужно указать эту картинку бэкграундом и сделать ей background-position: center;
Вопрос: Добавить 3 часа к времени?

Лучший ответ:
Можно использовать DateInterval, чтоб не считать количество секунд самому, а то с этим бывает проблема, как показывает практика$now = new \DateTime();
$now->add(new \DateInterval('PT3H2M30S'));
echo $now->format('H:i:s');

Худший ответ:
Используй магию (умножение).echo date("H:i:s", time() + (2+30+60)+(2*60*60));
И кстати (2+30+60) - не 2 с половиной минуты ))
Вопрос: Как определить нужный F_CPU для МК?

Лучший ответ:
UL это явное указание, что константа типа unsigned long, входит в стандарт самого языка.
F_CPU нужно, чтобы компилятор знал частоту работы вашего процессора и чтобы, например, sleep(1) ждал секунду, а не две. Частоту можно узнать из документации на процессор. (гуглить <название проца> datasheet)

Худший ответ:
UL это явное указание, что константа типа unsigned long, входит в стандарт самого языка.
F_CPU нужно, чтобы компилятор знал частоту работы вашего процессора и чтобы, например, sleep(1) ждал секунду, а не две. Частоту можно узнать из документации на процессор. (гуглить <название проца> datasheet)
Вопрос: Что делает оператор new?

Лучший ответ:
Добавлю к вышенаписанному, что  работу оператора new можно симитировать следующей функцией:
function newExpression(constructor) {
  if ( typeof constructor !== 'function') {
    throw new TypeError(constructor + 'is not a constructor');
  }

  var args = Array.prototype.slice.call(arguments, 1);
  var obj = Object.create(constructor.prototype);
  
  return constructor.apply(obj, args) || obj;
}
Демо.
В отличии такой имитации настоящий оператор new успешно создаст экземпляр даже по забинженому на другой контекст конструктору (по факту, возвращенной привязанной функции), так как оператор new игнорирует преданное значение this. Аргументы же будут применены из [[BoundArguments]]:
var User = function(name) {
  this.name = name;
}

User.prototype.getName = function() {
  return this.name;
}

const obj = {};

User = User.bind(obj, "Sarah");

var john = new User('John');

console.log(john.getName()); // 'Sarah'

Спецификации new и [[Construct]]

Худший ответ:
Когда исполняется new Foo(...) , происходит следующее:
1. Создается новый объект, наследующий Foo.prototype.
2. Вызывается конструктор — функция Foo с указанными аргументами и this, привязанным к только что созданному объекту. new Foo эквивалентно new Foo(), то есть если аргументы не указаны, Foo вызывается без аргументов.
3. Результатом выражения new становится объект, возвращенный конструктором. Если конструктор не возвращет объект явно, используется объект из п. 1. (Обычно конструкторы не возвращают значение, но они могут делать это, если нужно переопределить обычный процесс создания объектов.)https://developer.mozilla.org/ru/docs/Web/JavaScri...
И да, new - это не конструктор. Конструктор обычно объявлен внутри класса или прототипа.
Вопрос: Как правильно выделить объект и класс в ООП?

Лучший ответ:
В том, чтобы разбить большую задачу на классы, сильно помогает база данных. Проводя нормализацию таблиц, вы проектируете почти полностью подходящие для вас сущности.
Но если начать с проектирования кода, то смотрите: класс Info это слишком общее название. У вас всё - info.
Должен быть класс Driver который содержит информацию о водителе(если водитель не выделен в класс Person). Есть класс Bus, который знает про марку авто. Возможно, он будет содержать list of drivers - с инфой о том, кто обычно управляет этим авто, а может вам нужен driver - ссылка на один объект класса Driver, если нужно знать, кто управляет автобусом именно сейчас.
Направление понятно?

Худший ответ:
Ваши доменные объекты будут примерно такими:class Bus{
    public string Model {get;}
    public string Number {get;}    
    public Driver Driver {get;}   
    public Line Line{get;}
    public Bus(string model, string number, Driver driver, Line line){
        Model = model;
        Number = number;
        Driver=driver;
        Line=line;
    }
}

class Driver{
    public string Name {get;}    
    public Driver(string name){
        Name = name;        
    }
}

class Line{
    public DateTime GoTime {get;}
    public string Number {get;}    
    public Line(DateTime goTime, string number){
        GoTime = goTime;
        Number = number;
    }
}
Вопрос: Шрифт подключен правильно, но не работает. В чем причина?

Лучший ответ:
У вас в ttf-версии русские символы есть, а в woff, например, нету.

Худший ответ:
Постарайся через https://fonts.google.com подключать..
Вопрос: Как затормозить выполнение javascript до получения callback?

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

Худший ответ:
findPage = function(req, json, cb) {
    db.pages.find({
        url: req
    }, function(err, docs) {
        if (err) cd(err);
        console.log(docs);
        json = docs; // Искомые данные для страницы
        cb(null, json)
    });
};

app.use(function *() {
    'use strict';
    var json, req;
    req = this.request.url;
    console.log(req);
    findPage(req, json, function(err, data) {
        if (err) throw err;
        page = this.render('index', {page: data}, true) // рендер страницы
    });
});
И вы тут используете async, его бы юзали для последовательного выполнения задач.
https://github.com/caolan/async#seriestasks-callback
Вопрос: Как постепенно перекочевать из Web в Machine Learning максимально безболезненно?

Лучший ответ:
Что-то ты не с того конца собираешься дом строить...образно выражаясь. Ты по выбору молотка загоняешься, а нужно по проектированию, архитектуре, инженерным коммуникациям, технологиям строительства и т.д. А молоток покупается в последний момент на строительной оптовке. 
Машинное обучение/нейроинженерия - это область научной деятельности. Специалист по машинному обучению - ученый-математик (часто и вовсе с докторской степенью). Программирование/владение Python - лишь прикладной навык к научным изысканиям. В научные лаборатории путь явно лежит не через изучение применяемых там языков/программ. 
Без основательного вузовского и научного базиса (математика, биология, биоинформатика, психология и т.д.) в этой теме делать нечего. По курсам на ютубе из веб-кодеров в нейроинженеры не прыгнешь, тем более, безболезненно. 
А со знанием других языков (php, js, go) python осваивается за 10 дней. Он потому и используется так интенсивно в науке, чтобы на программирование, как на прикладной навык, тратить минимум телодвижений и времени, а максимум на нейроинженерию.

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

Лучший ответ:
Мыслите рационально: блог нужен для привлечения дополнительного трафика и увеличения поведенческих характеристик сайта. Зачем его тогда делать на отдельном домене или сабдомене, что для поисковых машин - отдельный сайт.
Делайте блог на вашем основном сайте, чтобы он был вида сайт.ком/блог. 
Это будет полезно для общего seo сайта, поскольку полезные материалы с блога будут помогать ранжировать выше весь сайт (также получить репост или упоминание на статью из блога гораздо больше).
Использовать отдельный домен или сабдомен типа блог.сайт.ком - пустая трата времени + продвижение нужно начинать с нуля.

Худший ответ:
Блог - поднимаете на отдельном домене и позиционируете как личный блог.
С сайта тематики игр - делаете все линки через webmaster.site.com и привязываете это имя к площадке вашего блога.
Теперь при заходе на любой адрес через webmaster.site.com - будут открываться страницы с Вашего блога.
А при удалении сайта с игровой тематикой (site.com) - Ваш блог останется нетронутым.Обязательно указывайте тег rel=canonical на домен своего личного блога в страницах с домена webmaster.site.com !
Вопрос: Как безопасно вести разработку?

Лучший ответ:
1) Можете приватный гитхаб-репозиторий сделать для паролей, можете закрытую папку на гугл-диске, можете в чате в WoT писать, ... Безопаснее всего брать разработчика в офис, а пароли просто распечатать для него на А4. 
2) Да, если вы не Гугл какой-нибудь. Всем всё равно, что вы разрабатываете)
3) Паранойя. Можно закрыть доступ к USB-портам и браузеру, но разработчик не хомяк в клетке) Да и всё равно можно сфотографировать что угодно. Мораль - доверяйте.
4) Не совсем понятно... от чего защищаться будем? Антивирус + пароль на учётке - недостаточно?)

Худший ответ:
1) Переписку по почте можно шифровать с помощью PGP (GPG) , более чем надёжно от угона/перехвата
2) конечно можно, если уж совсем страшно можно свой мессенджер поднять с шифрованием, тут вопрос готовы ли вы пойти на усложнение
3) Интернет через прокси и только на выход, а то и вообще убрать с компов внешний доступ (был кейс такой, даже браузер через терминальный сервер работал с отключенным буффером обмена и проч.), внутрь сети попадать по VPN
Вопрос: Как организовать работу с git-репозиторием в команде?

Лучший ответ:
Новички работают каждый под своим аккаунтом.
2 основные ветки - dev и master.
Новичок ветвится от dev, делает работу и пушит на сервер.
Старший делает код ревью и мержит в dev.
Тестируют код в ветке dev.
Если тесты прошли - мерж в master.
Естественно новичкам режем доступ к слиянию и запрещаем прямой пуш в master.
Еще можно настроить запуск линтера и автотестов перед коммитом, чтоб не залить случайно что-то нерабочее.

Худший ответ:
1. Аккаунты платные? почему новички не могут работать каждый под своим аккаунтом ? 
2. ИМХО форки избыточны, отдельной ветки вполне достаточно.
Вообще-то что-то подобное git flow можно реализовать в любой команде, вне зависимости от опыта участников.
Вопрос: В чем разница между 127.0.0.1 и 0.0.0.0?

Лучший ответ:
Лучше что бы были 0.0.0.0, так как этот адрес не существует.
А вот 127.0.0.1 ссылается на твой компьютер, и он может что-то ответить, если на компе сайт работает. Или веб-интерфейс какой-нибудь программы, например.

Худший ответ:
127.0.0.1 это специальный адрес, указывающий на loopback интерфейс локального компьютера.
0.0.0.0 это специальный немаршрутизируемый адрес, указывающий на несуществующий хост. Но иногда это также все локальные IP адреса всех интерфейсов.
Особой разницы что именно вписывать в hosts - нет.
Вопрос: Выбор ПК для дизайнера: i7 или Ryzen 5/7? какое видео? сколько памяти?

Лучший ответ:
Intel i5-i7 частоту повыше.
Памяти от 32Гб
SSD достаточного размера под систему и желательно под своп фотошопа и обрабатываемые данные.
Видеокарты чаще всего хватает встроенной, в некоторых специфических  задачах может помочь хорошая видеокарта, но это уже смотреть надо, насколько часто такие задачи возникают, и есть ли смысл, как правило если нет пакетной обработки особого смысла нет.

Худший ответ:
Главное учти - Афтер Эффекту плевать на твоё железо! Он тяжёлый сам по себе...
Вопрос: WebSocket vs TCP socket?

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

Худший ответ:
WebSocket - это протокол поверх TCP.
То, что вы имеете ввиду скорей всего просто socket
Вопрос: Gamedev — боль?

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

Худший ответ:
Почему многие говорят что Gamedev - боль?
Потому что многие подходят к выбору работы просто как к источнику денег. Соответственно многие не испытывают никаких чувств к тому, что делают.
P.S. В геймдеве не работаю, работаю в вебе - из ~10 знакомых в этой области только у одного есть свои сайты. Но у меня в голове не укладывается, как можно работать с сайтами, и не пробовать создать что-то свое.
Вопрос: Почему не работает forEach в ie10+, edge14+ ??

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

Худший ответ:
добавьте этот полифиллif (typeof Array.prototype.forEach != "function") {
    Array.prototype.forEach = function(callback) {
        for (var i = 0; i < this.length; i++) {
            callback.apply(this, [this[i], i, this]);
        }
    };
}
Вопрос: Будет ли жить Phalcon?

Лучший ответ:
Он весьма и весьма интересный. Пусть он не обладает таким же большим сообществом, как Laravel, но это ни о чем, в принципе, не говорит.
Laravel по архитектуре и скорости работы не превосходит Phalcon, то же самое, в принципе, можно сказать и о Yii c Zend и многих других.
Пожалуй, одна из причин относительно малой распространенности Phalcon - то, что на обычный хостинг его не поставишь (а многим ведь нравятся такие извращения). Под него, как под Laravel, не написано множество модулей типа (собери конструктор)...
Будучи расширением, написанным на C и Zephir, он обладает приемлемой скоростью работы и потребляет значительно меньше ресурсов, чем если бы это был чистый PHP (framework).
Phalcon + PHP7 = Must Have.
Архитектура мне очень нравится, писать "легко и удобно", именно с Phalcon я немного полюбил php.
Интересно - "ковыряйте", понравится - используйте! Можно попробовать заинтересовать начальство - многим это удавалось. Удачи.

Худший ответ:
Жить будет, но скорее даже существовать.
Он именно интересный, но перспективы Zephir весьма туманны.
Вопрос: Как работать с делением и типами в Си?

Лучший ответ:
Если хотите, чтобы деление "учитывало" возможную дробную часть, то:
- всегда в делении одно из чисел должно быть float (double)
- всегда результат помещать в float (double)

Худший ответ:
В C любая константа имеет тип. 23 и 4 это две целочисленные константы, к ним применяется операция деления, в результате арифметической операции над целыми числами всегда будет целое число. Чтобы константа была с плавающей точкой, она должна содержать точку. Т.е. правильно 23./4. - перечитайте про задание констант.
Вопрос: Как правильно скопировать сайт для другой страны при открытии представительства?

Лучший ответ:
1- Достаточно поменять контакты и все что связано с доставкой.
2- Если в вебмастере четко указана региональность обоих сайтов, у одного уа у второго ру, то скорее всего проблем не будет.
3- Стартуете практически с нуля. Буст может дать количество упоминаний в сети и продвинутые акки в соц сетях, если есть.

Худший ответ:
Я не спец в сео, но мне кажется лучше делать всё на одном домене, например com или club или top - благо выбор есть. И уже в зависимости от региона выводить контакты итп. Мне кажется в таком случае будет выше ранжирование.