Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Что происходит на рынке труда в айти?

Лучший ответ:
Вбейте в Google запрос "ИТ кадровый голод", в выдаче будет немало публикаций серьёзных изданий, объясняющих почему за лето зарплаты специалистов ИТ выросли на 30%. Например раз, два, три и четыре. Естественно, перспектива получать полмиллиона за сидение перед компом туманит головы обывателей и они ищут способ воплотить мечту. Естественно, что появилась целая куча инфоцыган, готовых окучивать эти наивные мечты. Только курсы никого не сделают программистом за полгода и старт в ИТ совсем не лёгкий.

Худший ответ:
Ничего не бойся, учи, пробуй, лезь, старайся. IT дается ни образованием, ни курсами, ни коучами, а банальным старанием и терпением. Ни один программист ни умнее тебя, он просто потратил на изучение достаточно много времени.

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

Лучший ответ:
Метод generateCalendar - убрать объявление локальной переменной currDate.

document.querySelector('.calendar-days').addEventListener('click', e => {
  if (e.target.classList.contains('calendar-day-hover')) {
    currDate = new Date(curr_year.value, curr_month.value, e.target.innerText);
    document.querySelector('.heading').innerText = currDate.toLocaleDateString('ru-RU');
    e.currentTarget.querySelector('.curr-date')?.classList.remove('curr-date');
    e.target.classList.add('curr-date');
  }
});

Худший ответ:
Готово. 
snippet
Вопрос: Как оптимизировать запрос sqlite datetime для postgresSQL date?

Лучший ответ:
Текущее время - now()
date_trunc() - округление даты
-- date('now', 'start of day')
date_trunc('day', now())

-- date('now', 'start of month')
date_trunc('month', now())

-- date('now', '-6 days')
now() - INTERVAL '6 days'

Худший ответ:
select current_date,
current_date - interval '6 day',
date_trunc('month', now()),
now();
Просто другой набор функций, выберите подходящую.
Вопрос: Почему при выключении ПК через спящий режим все процессы остаются?

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

Худший ответ:
Выключение и спящий режим это разные вещи. Спящий на то и спящий, что он не выключается, а засыпает сохраняя все работающие процессы. Выключение, это полное обесточивание с завершением всех запущенных процессов.
Так же есть гибернация, это совмещение двух этим режимов, как написали выше, содержимое ОЗУ сбрасывается на диск и питание отключается.
Вопрос: Имеет ли смысл изучать электронику и железо ПК?

Лучший ответ:
Не ходите в электронщики. Как хобби - да, как профессия - не стоит.

Я работаю инженером-электронщиком с 1998 года, с момента выпуска из университета. Работа очень интересная, относительно высокооплачиваемая, но прямо сейчас потолок зарплаты высококвалифицированного (10+ лет опыта) разработчика примерно равен зарплате программиста нижней-средней квалификации (2+ лет опыта), зарплата ремонтника еще вдвое меньше. Рынок вакансий мал, поменять работу, если что-то не устраивает, довольно проблематично.

Рассмотрите лучше такие варианты с относительно низким порогом вхождения, как изучение Python или front-end разработка на стеке JavaScript/React/Redux. Даже если живете не в Москве, через пару лет упорной практики можете рассчитывать на зарплату 120+, вкалывая на удаленке. А паяльником вечером, для души будете работать.

Худший ответ:
Поработайте в СЦ, посмотрите что и как. Там решите уже дальше. 
Неплохой вариант посоветовали протпромышл технику. 

Ну или потом уходить в конструирование робототехники...
Вопрос: Mikrotik странная ситуация?

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

Худший ответ:
В консоли Mikrotik сделать /export, и искать настройки для отваливающихся компьютеров (по IP ии MAC).

Можно отключить IP-адрес 12-го порта, а на отвалившихся компьютерах сделать arp /d *, но явно "это жу-жу - не спроста"...
Вопрос: Продажа/"аренда" трафика — стоит ли связываться?

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

денег в обоих случаях не будет, ну - доходов, расходы будут конечно

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

Лучший ответ:
Силиконовый герметик

Худший ответ:
Силиконовый герметик
Вопрос: Z-index головоломка — как расположить фигуры внахлест одну за другой?

Лучший ответ:
Как вариант:snippet

Худший ответ:
Окей, включаем математику. Если предположить, что z-index 1-го (Красный) элемента x, тогда z-index 2-го элемента (Зеленый) y должен быть y > x. Теперь интересное. Если брать z-index 3-го (Синего) элемента z относительно 1-го элемента (Красного), тогда он должен быть z < x, а если брать относительно 2-го (Зеленого) элемента, тогда он должен быть z > y

Если подставить это всё в уравнение, тогда получается как-то так:
z > y => y > x => z > x, но
z < x

А действительно тут может быть способ просто сделать фигуры не целостными, т.е. тот же красный элемент разделить на две элемента, значение одного больше z-index'а 3-го (Синего) элемента, а второго меньше чем в зеленого
Вопрос: JS в качестве БД?

Лучший ответ:
javascrip - это инструмент, json - это формат, а база данных - это место хранения, инструмент и формат одновременно.
Т.е. тебе нужно еще понять где ты будешь хранить данные, и вот от сюда и полезут проблемы.

Интернет магазин - значит участвует как минимум браузер (вырожденные случаи вида - магазин в telegram/wechat не рассматриваем), хранить данные браузер умеет только локально, для клиента, а у интернет магазина как минимум есть еще продавец, с которым клиент должен связываться для получения списка и цен на товары в наличии и указаний к пожеланию купить (корзина)... т.е. нужен еще и сервер (варианты с децентрализованной сетью так же не рассматриваем ибо это хардкор не для новичков).

Если твой сервер однопоточный (например если речь идет про javascript то бакэнд серверный можно писать на nodejs, с оговорками про асинхронность) то в принципе можно хранить все данные в файлах, и не сильно заморачиваться с блокировками и транзакциями, а из-за них основные проблемы возникают, зачем люди к готовым базам данным идут.
Если тебя это все еще интересует,веди работу с базой данных из отдельных функций (например объединив их в класс), по окончанию работу каждой чтобы данные в файлах были в консистентном - правильном состоянии, перезапись делать через временный файл с переименовыванием в оригинальный после всех изменений, это аналог транзакций, это даст гарантии по сохранности данных при смерти внезапной скрипта, например окончилась память или место на диске, само собой проверять это при следующем запуске и давать возможность вручную разрулить. Если сумарный объем базы больше мегабайтов, то не храни все в одном файле, первый уровень разделения - по типам данных, например раздели данные для редких изменений и постоянных - списки товаров и корзина, кстати цены можно так же отдельно хранить, само собой тебе тогда придется идентификаторы заводить и следить за их уникальностью - вот уже сиквенсы пошли (кстати есть алгоритмы uuid где каждый новый гарантированно уникальный без необходимости централизации и чего либо хранения), если же данных совсем много и часто меняются случайные из них то храни каждый объект в своем файле, файловая система справится, но лучше все же освой нормальные БД
Поэтому тебе правильно посоветовали, используй sqlite, минимум усилий на обслуживание и настройку (база данных = файл, никакого сервера и при этом полноценный sql с почти бесплатной миграцией на любую sql базу данных в будущем)

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

Лучший ответ:
Я пользовался VVV который можно было прикрутить к FAR в качестве виртуального архиватора.
Суть - вместо архивации файлов, создается "архив", где есть только список и аттрибуты (размер, тип).

Можно поискать аналоги. Софт старый, может он не очень хорошо дружит сейчас.
Но мне было удобно, что я для каждого HDD просто создавал архив, и если что, просто заходил в него FAR и делал поиск или просто браузил

сходу вот нашел для любителей окошек
https://rutracker.org/forum/viewtopic.php?t=179374

Худший ответ:
Всем спасибо!

Нашел вот такое кроссплатформенное решение -- filelistcreator
Вопрос: Какой курс выбрать для нуля в дизайне?

Лучший ответ:
Увы в современном мире это так не работает. В айти огромнейшая конкуренция среди новичков (как в дизайне, так и в разработке).

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

Единственная разумная стратегия для взрослого человека - работать где-то еще и параллельно заниматься образованием.

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

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

Зарабатывать вы сможете только тогда, когда сможете удовлетворять запросы рынка, а не когда курс пройдете.
Вопрос: Не могу установить npm install, выдает ошибку npm ERR! code EINVAL, кто сможет помочь разобраться?

Лучший ответ:
Не благодари

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

Лучший ответ:
первая ссылка в гугле: https://learn.javascript.ru/arrow-functions


Худший ответ:
Все в контексте. Привязывая функцию к объекту, this будет объект. У стрелочной функции this всегда будет parent - родитель, если он есть.
Это очень удобно. 
const obj = {
   count: 0,
   start() {
      this.intId = setInterval(() => {
     	   if (this.count < 5) {
            this.count++;
            console.log('count', this.count);
     	   } else {
     	   	clearInterval(this.intId);
     	   }
      }, 1000);
   }
};
obj.start();
Вопрос: Как работают алгоритмы выбора лидера в распределенных системах?

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

Худший ответ:
для капитанов военных кораблей есть такая штукенция типа арифмометра: при торпедной атаке повернуть на столько то градусов - градус штукенция и выбирает

чтобы  капитаны не умничали против строгой математики уже за них просчитанной
Вопрос: Насколько актуально ставить ядро xanmod на сервер с миниальной конфигурацией?

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

Худший ответ:
VPS не позволит этого сделать, как написали выше.
кроме того, если процессор забивается под завязку, проще добавить ядер процессора на VPS черех апгрейд, нежели так рисковать, выжимая остатки.
Современный софт замечательно параллелится.
Вопрос: Как сделать прошивку смартфона Huawei Y5 2017 MYA-U29 на Android 7.0/7.1?

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

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

Лучший ответ:
меняй opacity

snippet

Худший ответ:
Ну я и заморочился конечно :D click
Пожалуйста.
Вопрос: Клон telegram аккаунта, зачем?

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

поддержка молчит ибо сказать ей нечего, кроме как вежливо послать.

Худший ответ:
Если вы достаточно важная(относительно) личность:
Человек прикидываясь вашим фейком может продавать ваши услуги(или товары) под вашим видом, получать ту-или иную конфиденциальную информацию.

Если вы не важная(опять таки относительно) личность: 
Сбор данных о вас

Ну или просто человек недостаточно креативен чтобы придумать свой nickname и поставить туда аватарку.
Вопрос: Какой можете посоветовать хороший 3D игровой движок под C++?

Лучший ответ:
godot - там плюсы вполне first class

Худший ответ:
Кокос, например.
Вопрос: Как происходит всплытие переменной?

Лучший ответ:
Внутри функции наверх выплывает только объявление локальной переменной var foo;

var foo = 1; // можно стереть
function bar() { 
    var foo; // всплыло сюда. Этот foo – иной, чем верхний foo!
    if (!foo) { // тут foo undefined,  !foo === true
        foo = 10; // выполняется, назначается 10
    } 
    console.log(foo); // вывели 10
} 
bar(); //--> 10

Худший ответ:
Объявления переменных и функций всплывают на верх области видимости, у var и function (та что declaration) - это внешняя функция или модуль (если на верхнем уровне дело происходит), у let и const - блок, то есть после всплытия, внутри движка Ваш код будет выглядеть так:var foo; 
function bar() {
    var foo; // эта foo перекрывает foo из внешней области видимости, и поэтому в функции используется она
    if (!foo) { 
        foo = 10; 
    } 
    console.log(foo); 
}
foo = 1;
bar(); //--> 10

Так же важно знать, что хотя let и const всплывают наверх блока, но использовать их до фактического места объявления нельзя, так будет ошибка:{
    console.log(x); // ReferenceError: Cannot access 'x' before initialization
    let x;
}Это механизм защиты "от дурака" и называется он "мертвое всплытие". По этому всегда лучше использовать let или const, притом const предпочтительнее если переменная не меняется, так как дает больше гарантий.
Вопрос: Как достать текст из игры?

Лучший ответ:
Так каждая игра по сути требует индивидуальный подход. Особенно это касается старых игр. Какое то обобщение можно сделать для игр на одном движке.

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

Худший ответ:
Можно поискать так называемые экстракторы ресурсов. В 2000е издавались целые диски этого софта.
По названиям утилит можно здесь посмотреть https://wiki.xentax.com/index.php/Extraction_tools
Будь осторожен. Многие эти тулзы были с "сюрпризом" внутри. Я-бы их ставил только на виртуалку и после одноразового исопльзования удалял.

Иногда можно просто догадаться что ресурсы игры - это по сути архив приаттаченый к экзешнику.
Например Quake3 просто использовал zip для упаковки своих ресурсов. А в игре Mortal Kombat я находил звуки просто просматривая байты как 8-битные амплитуды на wave-редакторе. Находил довольно быстро. Звук видно визуально. Так-же с текстурами.
Вопрос: Как разбить код на файлы в aiogram?

Лучший ответ:
Можно функции написать, а потом подключить через register_message_handler.  Так, например, система диалогов красиво подключается, если используется fsm. 
Вот тут пример есть ПРИМЕР

Худший ответ:
Можно функции написать, а потом подключить через register_message_handler.
Вопрос: Как правильно определять тип объекта в Typescript (React)?

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

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

const isHtmlElement = (v: any): v is HTMLElement => v instanceof HTMLElement;

далее мы можем использовать эту функцию для проверки нашего таргета:

const eventHandler = (e: Event) => {
  if (!isHtmlElement(e.target)) {
    return;
  }
  // Вот здесь мы можем смело работать с таргетом как с ДОМ Элементом
  e.target.classList.toggle('active');
}

УПД

Еще информация к размышлению.

Финальный код, сгенерированный тайпскриптом, не содержит информации о типах. В рантайме нельзя узнать тип интерфейса, выполнив, например `peremennaya instanceof VashInterfeis`. Но всегда можно создать type guard функию, которая будет определять что объект именно нужного типа по каким-то косвенным признакам (например по наличию определённых полей в объекте). Так как код guard функции невозможно провертить статическим анализватором, тайпскрипт не может гарантировать того что ваша guard фунция верна и не пропускает всё подряд. Поэтому, хорошим тоном является писать такой код, который не нуждается в подобных проверках. Это возможно. Код при таком подходе становится стройнее и легче для осмысления.

Худший ответ:
Действительно, почему?
Вопрос: Cloudflare не справляется с ddos атакой, какие варианты?

Лучший ответ:
1. Under Attack Mode или captcha (помогает в некоторых случаях)
2. Rate Limiter + banip (пробрасываешь ip юзеров через cloudflare и банишь через api cloudflare) (можно сделать при помощи самописов на питоне или же на чем угодно или же при помощи модуля fail2ban и его дополнения для cloudflare)

Далее нужно понять что именно грузит сервак. Скорее всего это даже не nginx, а бекэнд (php или что там у тебя).

Советую использовать php8.0-fpm и nginx. Также нужно оптимизировать. Как минимум отрубить gzip на nginx. (это создает нагрузку на проц). PHP 8.0 выдает ощутимый прирост производительности.

Если безопасность особо не важна - отключай ssl на своем сервере и возложи задачу терминирования ssl на cloudflare (сделать Flexible режим ssl во вкладке SSL\TLS cloudflare)

===========
Больше ничего сказать не могу, т.к. нет конкретики от тебя. Нужно глянуть как минимум что грузит проц. Проблемы могут быть разные (тяжелый и неоптимизированный код, старые версии ПО и прочее)

Худший ответ:
Cloudflare не справляется с ddos атакой, какие варианты?Ну главная задача сloudflare и подобных сервисов - не дать злоумышленникам положить канал до вас.

Если канал работает, пакеты идут - значит прекрасно справляется.
А то что процессор загружен на 100% это уж не к сloudflare, а к вашему админу.
Почему определенный вид трафика кладет систему, почему этот трафик не фильтуете.
Вопрос: Я так никогда не выучу React. Что это за ошибка?

Лучший ответ:
Нельзя выучить Реакт не выучив Джаваскрипт, рекомендую начать с JS, иначе дальше тебя ждет еще очень много сюрпризов

Худший ответ:
В 3 строке компилятор не понял написанной конструкции и предположил, что вы объявили Header как неприсвоенную константу, а после нее анонимная функция, поэтому предположил, что это не наследование, а перечисление констант и предложил поставить запятую после Header, но в вашем случае вы не написали знак присвоения (равно) для константы Header анонимной функции. 
const Header = () => {…}
Вопрос: Почему за просмотр резюме HR необходимо платить деньги, а на биржах фриланса наоборот?

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

Биржа не занимается поиском исполнителей. Это такие услуги по рекламе на максималках с кабальными условиями. Кто будет исполнителем вообще не важно, его личность должна быть скрыта, ведь только хозяин должен видеть его паспорт. Исполнители хозяина должны слушаться и говорить с гостем Биржи должны так, как говорит хозяин и держать голову ниц. За лишние слова хозяин наказывает, вплоть до выгона на мороз без права вернуться. При выполнении поручения от гостя исполнитель обязуется платить дань на доход. В некоторых биржах есть ещё оброк раз в месяц. Каждый хозяин ведёт учёт лучших исполнителей. Прикол в том, что эти звёздочки ничего не дают при выходе из этой биржи. Совершив Юрьев день, исполнителю придётся начинать всё сначала, ибо звать вас никак. Ведь внутри любой биржи, личности вашей нет.

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

Свободные люди не зависят от работодателей и соответственно их внимание привлечь сложнее. Чтобы привлечь внимание такого человека, необходимо немного поделиться золотом. У кого больше золота, тот имеет больший выбор и может выбрать себе подходящего кандидата.

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

Лучший ответ:
Так 11я еще сырая. Вполне может быть глюк самой винды
Тем более если на вин10 всё ок

Худший ответ:
WHQL драйвер попробуйте после зачистки через Display Driver Uninstaller

проверьте и всё остальное "железо" на сбои
Вопрос: Как правильно построить mesh на mikrotik?

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

В данном случае можно использовать CAPsMAN для идентичной и централизованной конфигурации точек.

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

Нужно делать не mesh а просто точки доступа подключенные проводом развесить в нужных местах.
В идеале под управлением контроллера Capsman.
Вопрос: Как физику подключить оплату на сайт?

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

После оплаты с юмани придет коллбек по которому можно произвести нужные действия
Лично я пользовался https://github.com/leonardjke/omnipay-yoomoney

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

Ах да, криптовалюты же. Других способов нет, только в серой зоне и быть неуловимым никомуненужным Джо, только так.
Вопрос: Никак не работает RedBeanPHP?

Лучший ответ:
if(isset($data["send__button"])) {
И откуда, спрашивается, в $_POST возьмется send__button? С чего вы решили, что данные отправляются исходя из класса?
<button class="send__button" type="submit">Send</button>

Худший ответ:
Возможно, вы словили 500 ошибку. Смотрите error.log