Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как лучше работать с базой данных?

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

Худший ответ:
Обычно разработка происходит так:
Сначала всегда все читается из бд и сохраняется в бд сразу. Так проще сделать, сложнее наплодить ошибок, быстрее получится первый прототип, сразу видны узкие места и кривые запросы к бд.
Если в какой-то момент возникает ситуация с очень частым обращением в бд, то данные начинают кешировать в памяти. 
Кто-то делает ленивый кеш (На примере сундука и вещей в нем: если в памяти есть данные о вещах этого сундука, то используем их. Если нет, то подгружаем из бд).
Кто-то инициализирует кеш при старте приложения (Грузим данные при старте сервера обо всех сундуках и вещах в них).
Насчет непосредственно работы с бд могу посоветовать глянуть https://github.com/aaberg/sql2o
Вопрос: Как снять статику с пылесоса?

Лучший ответ:
Пылесос на пластиковых колесах с резиновыми шинами - заряд с него никуда не стекает.
Вы в тапочках на резиновой подошве - аналогично, заряд с вас никуда не уходит.
Когда пылесосите, держите пылесос за пластиковую ручку - потенциалы не выравниваются.
Задача: МЕДЛЕННО выровнять потенциалы вас и пылесоса (медленно, чтобы искра не проскакивала)
Решение: организовать "токопроводность" между пилесосом и пылесосольщиком.
Реализация: обработать антистатиком шланг, рукоятку и сам пылесос. Появится небольшая токопроводность, потенциалы выровнятся. Правда, может шибать статикой после пылесошенья от холодильника или стиралки, но это уже совсем другая задача.
P.S. Перечитал вопрос. Если бьется ТОЛЬКО вода - перед тем, как ее касаться, нужно с ней выровнять потенциалы - коснуться воды через резистор 1М или его аналог - влажная деревяшка, палочка, обработанная антистатиком и т.п., но не кусок металла.

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

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

Худший ответ:
В основном да. Самое сложное тут не в изображениях иконках, а в фонах. Вот хорошая статья, которая предлагает несколько способов реализации подмены изображения для фона. А так все ждут реализации полноценной image-set, вроде как apple и mazila работают над более граммотной спецификацией.
Вопрос: Что конкретно мне нужно знать в с#, чтобы создать игру на unity?

Лучший ответ:
Как говориться "нужны уверенные знания языка". В моем понимании - это когда при реализации задачи язык вам не мешает, а помогает. Т.е. вы не задумываетесь над тем КАК выразить алгоритм на языке c#. А думаете именно над самим алгоритмом.

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

Худший ответ:
Согласен с GavriKos, но хочу добавить своё, что знаний о C# до ООП включительно, сполна хватит в UnityEngine, а там уже книгу найдёте с её библиотеками.
Советую прочитать Язык программирования C# 7 и платформы .NET и .NET Core до части с ООП включительно, извините за тавтологию.
Вопрос: Стоит ли учить JS для PHP?

Лучший ответ:
Не надо. Но лишним не будет.

Худший ответ:
JS нужно учить в любом случае без привязки к PHP. Судя по тенденциям в WEB-разработке этот язык может стать главным, вытеснив PHP.
Вопрос: Как работают учетные записи в Windows 10?

Лучший ответ:
Да. 
Все программы запущенные в учетной записи продолжают работать и нагружать систему.

Есть некоторые тонкости связанные с GUI - рабочий стол и вся графика не прорисовывается. Нет пользователя, нет графики.

Худший ответ:
Частично да.
Вопрос: Перспективы ue4 и unity?

Лучший ответ:
Будущее туманно. А о настоящем - открываем hh.ru и ищем. 
Вопрос поднимался много раз.

Худший ответ:
Unity чуть более популярнее, я по количеству игр на DEVGamm и WN. Но и то и то актуально.
Вопрос: Почему хром жрет время процессора?

Лучший ответ:
Почему хром жрет время процессора?Потому что может.

Худший ответ:
Вирусов в системе не
Может майнер все же подцепился.
Вопрос: Как пройти собеседование на Junior разработчика?

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

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

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

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

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

Худший ответ:
Дешёвый блок питания, тонкие провода или из некачественного металла с высоким сопротивлением.
Меняйте БП.
Вопрос: Invalid datetime format. Как решить?

Лучший ответ:
Дай обезьяне микроскоп, она им будет орехи колоть.
Родимый, зачем тебе RedBean, если ты его используешь как муэскуэль_квери() из прошлого века?
Документацию для кого пишут? Ну ты бы хоть базовые примеры посмотрел перед тем, как за это поделие браться.
А если не понимаешь как им пользоваться, то вообще не трогай, посмотри видеокурсы от руселлера и лепи обычный гуанокод, ORM для этого не нужен<?php
require("connect.php");

$task = R::dispense( 'tasks' );
$task->task = strip_tags( $_POST['tasks'] );
$task->date = date('Y-m-d');
$task->time = date('H:i:s');
$id = R::store($task);

Худший ответ:
Используйте NULL, а не пустую строку для значения id.
Вопрос: Как учить и выучивать английские слова?

Лучший ответ:
Зубрежка в принципе бесполезна. Если ты не применяешь данные слова или не встречаешь их на постоянно основе то они 100% забудутся. Только практика, только хардкор

Худший ответ:
1) думать по-английски (добавлять слова, которых не хватает. Посмотрите Полиглот с ТВ Культура, как несколькими фразами говорить)
2) пересказывать (книги, о своей работе, жизни, хобби) устно
Вопрос: Почему return не возвращает значение?

Лучший ответ:
Потому что значение функции test не возвращается при рекурсивном вызове. Должно быть так
<?php
function test($a) 
{
    if($a === 5) {
        return 'не возвращает значение';
    }
    
   return test($a + 1);    // Здесь нужен return 
}

echo test(1);
sandbox.onlinephpfunctions.com/code/3473fa114823e1...

Худший ответ:
echo — Выводит одну или более строк
https://www.php.net/manual/ru/function.echo.php

return возвращает управление программой модулю, из которого была вызвана функция. Выполнение программы продолжается с инструкции, следующей за местом вызова. 
https://www.php.net/manual/ru/function.return.php

Улавливаешь разницу?
Вопрос: Как создать 2 или более независимых рабочих стола на одном мониторе?

Лучший ответ:
используй виртуальную машину.

Худший ответ:
Неттоп (или виртуалку).
Вопрос: Ajax или websocket для отправки сообщений?

Лучший ответ:
А куда Вы дели идентификатор соединения клиента?! :))

Худший ответ:
Делал многопользовательскую игру с браузерными клиентами. Преимущество ajax - гарантия протокола запрос-ответ, проще поддерживать консистентность. С websocket вы пуляете в воздух, вы не знаете принято сообщение или нет, не знаете какое принято раньше, не знаете состояние принимающей стороны. В отсутствии гарантий консистентности сложней прописывать логику. Во всех остальных аспектах websocket лучше - современней, быстрее, асинхронней, непрерывней и при этом ресурсно дешевле. В результате делал на websocket, надстраивал текстовый протокол, вкладывал и парсил метаданные на сервере и клиенте для синхронизации состояния.
Вопрос: Есть ли у apt-get команда для сборки пакета для chroot?

Лучший ответ:
качать через apt-get с параметром -d (download only)
скачает  пакеты в локальную директорию.
ставить через dpkg --root=/path/to/dir

Худший ответ:
насколько я знаю apt-get так не может, зато у dpkg есть опции --instdir=dir и  --unpack возможно это позволит сделать то что вам нужно.
Вопрос: Как грамотно «поднять» запущенную IT-инфраструктуру в бюджетной организации?

Лучший ответ:
Увольняться. Готов поспорить, что ко всему вами перечисленному 1) "дених нету, ты там как-нибудь сам что-нибудь придумай" 2) зарплата пробивает дно.
Делать там нечего от слова "совсем", как это когда-то было модно говорить. Максимум чего вы добьётесь - это ж в мыле и никакого профессионального развития. Вы думаете, там спроста такая текучка, и вы единственный, кто на белом коне и в доспехах пытался привести в порядок инфраструктуру?

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

Лучший ответ:
Возможно DNS ещё не обновились, они обновляются в течение 24 часов.
Так же может быть в браузере кэш сохранен, попробуйте почистить.

Худший ответ:
Если пинг домена показывает верный ip, смотрите в сторону кеша.
Кеш надо сбросить как в браузере, так и в ОС. 
Не мешает также перезагрузить роутер, а желательно его отключить на время перезагрузки компьютера.
Вопрос: Занесение пользователя ВКонтакте в базу данных MySQL скриптом PHP?

Лучший ответ:
Нужно разбить задачу на несколько подзадач:
1) Вызвать скрипт и передать туда нужные данные
2) Проверить в скрипте эти данные
3) Подключиться к базе данных
4) Положить при помощи запроса эти данные в базу данных

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

Лучший ответ:
Если вам этот коммит не нужен - что он вообще делает в репозитории и зачем его было мержить?
Ну делаешь себе ветку и в нее cherrypick все коммиты, какие хочется (можно не делать ветку, а в условно dev ветку счерипикать все нужные коммиты)

так стоп...перечитал еще раз внимательно.
Зачем у вас файлы environment-специфичной конфигурации вообще лежат в общем репозитории с кодом? Наймите себе девопса чтоль.

Худший ответ:
приложение может разворачиваться под разной версией одного файла у каждого, чья ветка 3,4,5... 
Т.е. это, по сути, конфигурационный файл и он не должен присутствовать в репозитории.

удалить этот коммит из удаленного репозитория и просто не пушить его в дальнейшем, добавив в гит-игнор
Думаю, наилучший вариант. Не следует пушить то, что потом будет мешать сливаться с основной веткой. Удалять коммит из удаленного репозитория не всегда лучший способ, предпочтительнее сделать Revert коммита с пометкой почему он убирается.
Вопрос: Что из фронтэнда должен знать бакэнд разработчик?

Лучший ответ:
Прям должен - да никаких. 
Хорошим бонусом будет иметь представление о том, как во фронте удобно принимать данные и работать с ними, чтобы отдавать в удобном виде. 
Также бонусом (лично для вас) будет умение сверстать что-то простенькое - хоть на том же бутстрапе. 
Сноска про бутстрап
Ни одному профильному специалисту никогда не буду советовать использовать бутстрап (только для ознакомления), но бэкендщику - позволительно, так как бутстрап фактически изначально задумывался для тех, кто особо вникать не хочет, а страничку набросать надо. Но потом что-то пошло не так >.< 

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

А вообще пересечений никаких, если не метите на позицию фулстака :)

Худший ответ:
Если делать rest api то ничего.
Если по старинке, то нужно уметь нарезать html на шаблон, делать ajax отправку форм и подобное, доку по jquery стоит полностью прочитать.

Тут есть html, css и js
https://roadmap.sh/backend

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

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

В каждой команде, выделяют абстракции по-своему, поэтому если вы вообще понимаете что выделять абстракции нужно, то чего вам стоит сейчас вынести в src/utils, а потом, если вашей команде не понравится, вынести куда-то ещё - смысл тот же.

Худший ответ:
Если у некоторых ваших компонентов много одинаковых методов, вы можете посмотреть в сторону HOC
Вопрос: Можно ли настроить KDE так, как я настроил GNOME?

Лучший ответ:
Вы просто не знаете, где копать.
Верхняя панель: стандартная, через настройки выкинуть App Launcher и воткнуть нужные виджеты, а также выставить автоскрытие.
Нижняя панель: пустая, в настройках выставить нужную ширину если не нравится на весь экран, включить автоскрытие и поставить Latte Dock (даже в Debian Sid есть пакетированный и всего лишь на 2 месяца протухший☺).

Худший ответ:
В любой из основных DE это можно реализовать, в некоторых правда придется установить док отдельно, но это не проблема.
Вопрос: Xamarin для IOS и Android?

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

Худший ответ:
Отвечу за Xamarin Forms
1. Для андройд есть эмуляторы,  для ios есть симуляторы, но нужен мак в качестве билд сервера. Возможна отладка удаленно из windows. Так же есть новая фича Hot restart, позволяющая собрать и дебажить приложение на айфоне без мака (пока в превью со всеми вытекающими)
2. UI и бизнес логика пишется один раз, отдельно пишутся специфичные для платформы вещи (рендеры, фоновые сервисы итд).
3. Все зависит от разработчика. То что вы описали можно реализовать не влезая в нативный проект, средствами Xamarin Forms и уже готовых плагинов. В случае чего можно без особых проблем писать платформозависимый код и использовать все те возможности которые доступны для нативных разработчиков, но только на языке C#.
4. Зависит от дизайна и опыта исполнителя, но как показывает практика такое возможно.
Вопрос: Как правильно размещать текст или изображения по центру блока?

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

Худший ответ:
Как вариант что бы поместить элемент по центру можно использовать position absolute..wrap{
   position: relative;
}

.content{
   position: absolute;
   left: 0;
   top: 0;
   bottom: 0;
   right: 0;
   margin: 0;
}
Вопрос: Почему стала очень быстро разряжаться батарея, после установки Linux?

Лучший ответ:
Почему разряжается батарея после установки Linux?
Она и на винде разряжается - __-
Или может где-то что-то повредили в ноутбуке и смена Ось только совпадение. Может перегрев, оставили ноут на зарядке на ночь и т.д

Худший ответ:
Посмотрите износ батареи, в том же AIDA.
Батарею можно "кончить" и за 1 день ))
Думаю вопрос тут не в ОС, попробуйте BIOS обнулить, может режим какой-то сменили, например на производительный, хотя вряд ли, так как разброс в разы.
Вопрос: Почему появляется звук подключения usb у компа, когда меня бьет током, например одежда?

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

Решение - если ПК разобран (сняты крышки) - собрать. Заземление - восстановить. Подключить через хороший сетевой фильтр.

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

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

Худший ответ:
Можно попробовать использовать скрытую страницу кастомных типов постов "сотрудники" и создать учетки обычные для модеров админка и потом дать им ссылку куда заходить и там будет цикл рекомендаций и сам поиск. 
В название поста кастомного типа записи "Сотрудник" пишите вот эти цифры типо 1,2,3.. и потом поиск по цифрам.
И также карточка при клике на которую будет отправляться письмо на заранее подготовленное поле с почтой карточки сотрудника. Последнее я хз пока как сделать, ну а выше вроде все норм.
Вопрос: C или С++, с чего начать?

Лучший ответ:
В общем то сразу нужно брать С++ чтобы потом не переучиваться. 
С++ это как бы более расширенная версия С но есть принципиальные отличия. потому вопрос в предыдущем опыте:
Если ОН (опыт программирования) есть то тогда точно лучше сразу С++ .
Если его НЕТ то тогда тоже С++ потому, что все равно. Учить так сразу на С++ ориентироваться, но процесс изучения будет не простым.

Худший ответ:
Для embedded - C. Небольшие устройства, ограниченные ресурсы - куда там плюсы...
Вопрос: Постройка Wifi сети в школе?

Лучший ответ:
Решение у Вас как говорят - "На коленке" собрано. Можно попробовать поиграться с OpenWRT, но я бы рекомендовал перейти на что-то более продвинутое. С минимальным бюджетом у Вас должно получится построить все на Mikrotik.
Купить роутер, несколько точек доступа и организовать это все в одну сеть с помощью CapsMan.
Требования к сети будут постоянно расти, а ваше решение не масштабируется. И специалисты по костыльным решением на рынке не востребованы, а знание микротика пригодится. 
Я вас прошу, не надо строить из говна и палок, а потом делать виноватый вид перед руководством объясняя очередную проблему. Давите на обновление оборудования!!!
Если есть домен (ActiveDirectory) - прикрутите eap-mschap-v2, сразу станет понятно кто раздает пароли)
Или попробуйте настроить FreeRadius.
https://mikrotik.com/product/rb4011igs_rm
https://mikrotik.com/product/cap_ac

Худший ответ:
Суть проблемы: не удобно ...... TpLink N840 это SOHO роутер.
Т.е роутер предназначенный для дома или небольшого офиса.
И там все довольно удобно для небольшой сети -на 2-5хостов. Например два компьютера и три телефона.
В более крупных сетях не применяется.
В общем нужно покупать соответствующее оборудование, не обязательно дорогое.
Вполне можно построить и на бюджетном, вроде Mikrotik.
Вопрос: Как изменить число внутри строки с сохранением ведущих нулей?

Лучший ответ:
const add = (str, val) => str.replace(/\d+$/, m => `${+m + val}`.padStart(m.length, 0));

add('string0001',    1) // 'string0002'
add('string1010',   99) // 'string1109'
add('string2345', 6789) // 'string9134'
Если при переполнении не должно происходить увеличения количества разрядов (т.е., string99 + 1 должно быть равно string00, а не string100), то после вызова padStart добавьте .slice(-m.length).

Худший ответ:
Вручную:
s.replace(/\d+$/, str => {
  const num = String(parseInt(str) + 1);
  return '0'.repeat(Math.max(str.length - num.length, 0)) + num;
});
Вопрос: Браузер для чувствительной инфы в виртуальной машине, имеет ли смысл?

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

1) Сеть гостя можно защитить с помощью VPN, но с кучей оговорок, т.е. в общем случае - нельзя.

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

3) Иметь дополнительный комп, с которого можно подключиться к гостю по RDP (+VPN), чтобы не использовать клавиатуру, мышь и экран хоста. Тут можно было вернуться к пункту 1)... Но если есть дополнительный чистый (не скомпрометированный) комп, то вся затея теряет смысл, просто используйте этот комп для работы с чувствительной информацией.

Короче: если хотите работать с непроверенными исполняемыми файлами, то эта работа должна быть на госте, а не на хосте. И даже в этом случае остаются такие вещи, как Meltdown и Spectre и ещё куча найденных после них. Эксплуатировать эти уязвимости очень сложно, но теоретически они позволяют пробиться из гостя, перехватить хостовую информацию. А еще уязвимость Rowhammer (и родственные ей), которая позволяет на физическом уровне менять данные в оперативной памяти... А ещё... Ну вы поняли.

Худший ответ:
Браузер для чувствительной инфы в виртуальной машине, имеет ли смысл?НЕТ.
Т.к. хост управляет гостём: перехват и управление всем виртуальным "железом".

Всего 2 варианта.
1. Физически отключаете диск с системой, грузитесь с лайв-флешки, работаете, выключаете комп, вытаскиваете флешку и возвращаете всё в первоначальное состояние, включаете снова жёсткий диск с системой.
2. Отдельный комп.

PS: не рассчитывайте на 100% защищённость, но в принципе можете воспользоваться "песочницей": sandboxie.