Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как получить Bearer токен?

Лучший ответ:
Я не знаком с реализацией Passport, но общие OAuth2 принципы везде одинаковы.
Вы аутентифицируетесь (то есть система вас узнаёт в лицо (в логин-пароль): о, да это же NNovosad !!). В ответ вам присылают access_token - на вот тебе штуку для "действия". Вы этим токеном должны заявить о намерении. То есть начинается вторая фаза - авторизации. Обычно это означает, что вы идёте на некий эндпойнт, который уже сверившись с валидностью access_token-а может подтвердить, можно вам такое действие Х выполнять или нет.

Беглый осмотр доков подсказывает, что вам необходимо реализовать провайдера, который по скоупу (scope) будет выдавать вам Bearer-токен или нет.

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

В гугл-продуктах, например, не требуется создавать своих провайдеров, а можно для указанных учетных записей задать роли, если такая учетка будет запрашивать действие (ну например, СкачатьГуглДок()), то в соответствии с настройками ролей, Bearer будет выдан или нет). Scope при этом указывается в виде url- для гугл-док-апи.

Надеюсь, работа OAuth2 стала яснее для Вас.

Худший ответ:
Разобрался.
Создал personal access token
docker-compose exec php-fpm php artisan passport:client --personal

И получаю access_token таким образом
$accessToken = $user->createToken(config()->get('here_personal_access_token')->accessToken;
Вопрос: Смена профессии IT Service Manager > ???

Лучший ответ:
женат, воспитываем сына.
Безусловно, это очень важная информация в контексте вашего вопроса. Уточните, пожалуйста, сколько лет сыну? Какого он роста? Картавит?ачал изучать JS, до этого баловался с HTML и CSS.
Это начало вашего конца.без опыта мало куда возьмут, а если и возьмут, то это будут небольшие деньги
Нет, всё гораздо хуже - вас вообще не возьмут и надо быть к этому готовым. Максимум, что может выпасть, если год-два вкалывать - бесплатная стажировка.а еще и ипотека
Ещё больше ненужной инфы!Кто-то сталкивался с такой ситуацией, мб есть опыт, какие-то советы?
Совет, который можно дать в такой ситуации - сидеть на своей хорошо оплачиваемой работе и никуда не рыпаться. Тот стек технологий, что вы перечислили, даже стеком назвать нельзя. Нереальная конкуренция на данном рынке не оставит вам никаких шансов вообще.
Не совершайте ошибку.

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

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

Либо писать макрос если это задача периодическая

Худший ответ:
Option Explicit


Sub Строки_на_Лист()
    ' не торопясь

    Dim wbk As Workbook: Set wbk = ActiveWorkbook
    Dim wsh_Temp As Worksheet
    Set wsh_Temp = wbk.Worksheets.Add(after:=Worksheets(Worksheets.Count))

    Dim wsh As Worksheet, cel As Range

    For Each wsh In wbk.Worksheets
        If wsh.Name <> wsh_Temp.Name Then
            For Each cel In Application.Intersect(wsh.UsedRange, wsh.Columns(6).Cells)
                If cel.Value < 0 Then
                    cel.EntireRow.Copy wsh_Temp.Cells(Row_Bottom_Number(wsh_Temp) + 1, 1)
                End If
            Next
        End If
    Next

End Sub


Function Row_Bottom_Number(ws As Worksheet) As Long
    ' Найти последнюю строку с данными, непустую

    Dim r As Range
    Set r = ws.Cells.Find(what:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)

    If r Is Nothing Then
        Row_Bottom_Number = 1
    Else
        Row_Bottom_Number = r.Row
    End If
End Function
Вопрос: Как решить задачку (шахматная доска, ход конем) без использования js?

Лучший ответ:
Вот ты с выделением ячейки справился. Молодец. Теперь задай для выделенной ячейки 8 теней синего цвета и позиционируй как надо.input[type="radio"]:checked + label {
    background: #FF0000;
    box-shadow: 60px 30px 0 0 blue, 60px -30px 0 0 blue;
    position: relative;
    z-index: 1;
}
Можешь даже анимацию задать для тениlabel {
    transition: ease box-shadow .3s;
}

Худший ответ:
Для ячеек, что после красного идут можно определить стили через селекторы + / ~
А вот для ячеек что идут до красного, кажется что никак нельзя стили определить, ведь селекторы соседей работают только вниз. Однако, чисто гипотетически можно наложить поверх доски ещё одну прозрачную дочку повернув на 180 градусов и тогда по идее можно. Только надо изучить как себя тут будет вести свойство pointer-events
Вопрос: Как убрать атрибут только для чтения в виндовс 10?

Лучший ответ:
Что значит "не убирается"?
Смените владельца файла и всё уберётся.

Худший ответ:
1 - унять истерику
2 - искать где "не так смотрим на проблему"
Вопрос: Как запустить в консоли Linux процесс асинхронно?

Лучший ответ:
скрипт &

Худший ответ:
nohup
Если просто & то процесс прервется, если терминал закрыть
Вопрос: HTML + CSS — законченный сайт?

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

Более того, возьми на заметку генераторы статических сайтов типа Jekyll. На них такое удобно собирать.

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

Худший ответ:
Поисковикам без разницы. Они не знают, как вы делаете сайт.

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

Лучший ответ:
Самый надежный способ - просто переехать в Москву, там зп, даже относительно расходов, выше в разы.
Более сложный - но и более перспективный и денежный - удаленка на белого господина из США, но требования гораздо выше -нужен норм (b2)инглишь и уметь что-то промычать, а главное - не быть аутистом (cultural fit). 
Удаленки искать на hackernew, weworkremotely, например. Сейчас ее много, все хотят аутсорсить в бедный страны и лучше(дешевле!) без прокладок.

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

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

Худший ответ:
до $20 если платящие страны, но мейнстрим $1,5-4
актуальные  - те, которые платят )
Вопрос: Kак проверить откуда пользователь отправил сообщение, из ЛС или беседы?

Лучший ответ:
если поле peer_id больше двух миллиардов, то из беседы

Худший ответ:
peer_id = 2000000000 + id беседы. - то беседа. Если же равно айди юзера то личные сообщения
Вопрос: Как рисовать красивые GUI?

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

Худший ответ:
1. Приоритеты индикаторов в местах расположения сетки отображения
2. Цветовой дизайн.
3. Корректировка с добавлением элементов управления.
4. После - уже графический дизайн.
Вопрос: Как вызвать метод внутри класса?

Лучший ответ:
self.get_address('2')?
Вызов метода класса в другом методе этого же класса

Худший ответ:
Уже решил - просто вынес метод за пределы класса
Вопрос: Почти 8GB ОЗУ для работы браузера. Это нормально?

Лучший ответ:
Нормально.
У вас просто памяти мало, поэтому он и потребляет мало, поставьте хотя бы 32Гб, будет потреблять больше.Совсем недавно я добавил ещё 4GB памяти (итого получилось 8GB) и... она снова почти заполнена всё тем же браузеромНу кроме браузера память нужна и другим программам.8Gb это необходимый минимум для комфортной работы офисного пользователя - ворд, эксель, легкий серфинг в браузере, никаких тяжелых приложений. Там расклад примерно такой - 2гб для ОС, 4гб для браузера, и еще два для дискового кэша. В итоге для офисной работы вполне оптимально.
Если что-то ресурсоемкое  запускаете- памяти нужно больше. программисты до сих пор вероятно не могут оптимизировать потребление ресурсов обычным браузеромВы не совсем правильно понимаете ситуацию.Современный браузер это не программа для отображения форматированного текста.
Это по сути операционная система - контейнер для запуска программ.
А современный сайт это не просто форматированный текст, это программа которая исполняется на компьютере пользователя, в браузере пользователя, и требует кучу процессорных ресурсов и памяти!
Поэтому память потребляет не браузер, а программы которые вы исполняете в браузере.
Откройте исходный код любого сайта и посмотрите сколько там скриптов - и все они исполняются на вашем процессоре, размещаются в памяти вашего компьютера, и еще и на ваш диск кэшируют данные. не могут оптимизировать потребление ресурсовЧем меньше потребление ресурсов, тем меньше скорость работы.
Можно сделать так чтобы программа потребляла 10килобайт памяти, а можно сделать так чтобы эта же программа потребляла 3гигабайта памяти.
От этого зависит скорость работы - медленно, зато памяти мало.  Или быстро, но с большим потреблением памяти.
Вот и приходится оптимизировать - чтобы и работало быстро, и памяти потребляло не больше чем можно поставить в современный компьютер.

Худший ответ:
Смените браузер, например на ту же Opera, меньше ОЗУ тратит(намного меньше)
Хром сам по себе не оптимизирован, как и все остальные их сервисы.
Вопрос: Как писать программы с Linux для Windows что бы потом протестировать?

Лучший ответ:
> что бы
https://chtoby-pravilno.ru/chtoby/
> отсутствует какой то файлик для запуска
Экстрасенсы в отпуске. Вангую "Visual C++ Redistributable Runtime", но без имени файла версию не угадаю.

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

Лучший ответ:
Незачем что-то парсить.  ipinfo.io предоставляет API, есть бесплатный план (до 50 тыс. запросов в месяц)
Например, с помощью jQuery, без авторизации можно получить IP, страну:$.get("https://ipinfo.io", function(response) {
  console.log(response.ip, response.country);
}, "jsonp")
Response содержит больше полей:{
  "ip": "134.209.xxx.xxx",
  "city": "Clifton",
  "region": "New Jersey",
  "country": "US",
  "loc": "40.8344,-74.1377",
  "org": "AS14061 DigitalOcean, LLC",
  "postal": "07014",
  "timezone": "America/New_York",
  "readme": "https://ipinfo.io/missingauth"
}

Худший ответ:
Так должно работать:let xhr = new XMLHttpRequest();
xhr.open("GET", "https://ipinfo.io");
xhr.send();
xhr.addEventListener("load", function() {
	if (xhr.status != 200) {
		alert(`Ошибка ${xhr.status}: ${xhr.statusText}`);
	} else {
		let rawHTML = xhr.response;
		let parsedDOM = new DOMParser().parseFromString(rawHTML, 'text/html').documentElement.childNodes[2]; // получаем сразу body
		console.log(parsedDOM.querySelectorAll(".json-widget-entry")[3]); // поиск внутри тега body
	}
});
З.ы. возможно вы не сможете достучаться до нужного вам элемента, т.к. просто напросто в результате xhr его может и не быть
Вопрос: Как изменить элемент в нужную дату и время?

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

Таким образом, если заход будет после события, то то условие сразу будет выполнено и покажется 39 990

Худший ответ:
Храните этот setTimeout в localStorage или на сервере, точнее дату, проверяйте при каждом входе текущую с установленной и обрабатывайте.
Вопрос: Регистратор reg.ru присваивает домены себе при проверке на занятость?

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

Худший ответ:
Не сталкивался с таким. Бывало даже через несколько дней регистрировал домены после первой проверки
Вопрос: На ровном месте крашится explorer.exe без автовосстановления, в чём проблема?

Лучший ответ:
> Крашится explorer.exe, просто падает, без ошибок, без окошек ошибок, без логов и вообще каких либо следов, на 4 разных компах, в одной сети.
Как минимум в системном журнале должна быть запись, если оптимизациями не отключали.
> Переустановка винды(чистые ентерпрайс)
И обновлены до актуального состояния через WU/WSUS?

Худший ответ:
Домен есть? к админ учеткам у многих есть доступ?
локальные админы пароли одинаковые на всех?
может кто то по сети запускает скрипт какой. 
проверь наличие на компах PsExec64.exe/PsExec.exe
Вопрос: Есть ли возможность с помощью библиотеки discord.py на языке Python реализовать идею зачисления баллов за сообщение?

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

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

@client.event
async def on_message(message):
    with open('data.json', mode='r') as file:
        data = json.load(file)

    client_id = str(message.author.id)

    # The function checks users in 'data' variable.
    async def update_data(user):
        if user not in data:
            data[user] = {}
            data[user]['lvl'] = 1
            data[user]['exp'] = 0

    # The function gives exp to users, when they send messages.
    async def add_exp(user):
        data[user]['exp'] += 0.1

    # The function gives a new level once exp reaches new level-milestone.
    async def add_lvl(user):
        if data[user]['exp'] >= data[client_id]['lvl']:
            data[user]['exp'] = 0
            data[user]['lvl'] += 1
            emb = discord.Embed(description=f'{message.author} Повысил свой уровень!', color=0xf2db0a)
            await message.channel.send(embed=emb)

    await update_data(client_id)
    await add_exp(client_id)
    await add_lvl(client_id)

    with open('data.json', mode='w') as file:
        json.dump(data, file)

Получается такая реализация,  что когда пользователь что либо пишет, у него прибавляется exp, если exp == lvl, то lvl обновляется, а exp  обнуляется.
Вопрос: Почему на продакшене из базы возвращается строка а не число?

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

Худший ответ:
Если нет возможности изменить настройки сервера, что актуально в случае в виртуальным хостингом, проблему можно решить настройкой приведения типов в модели. Гугли Laravel model attributes casting
Вопрос: Как дать доступ к сайту только по VPN?

Лучший ответ:
Возможно, такое решение будет самым простым: если у пользователей вашего VPN есть выход в интернет и внешний IP-адрес, вы можете через htaccess htaccess.ru/info/ip-filtering разрешить доступ к сайту только с этого IP-адреса.

Худший ответ:
Добавьте пользователям VPN маршрут на внешний IP-адрес сайта через VPN. Это не будет работать, если сайт и VPN-сервер расположен на одном и том же IP-адресе.
Вопрос: Как правильней сделать авторизацию в Laravel?

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

Худший ответ:
Просто добавь поле в таблице пользователей group_id и записывай там айдишник группы. Группы будут хранится в отдельной бд.
Разрешения будут привязываться к группе. А группы это и есть твои роли, типы пользователей.
Таким образом ты получишь много гибкости наряду с универсальностью, как например, повышение/понижение прав/роли, перевод пользователя в другой статус, контроль безопасности, разделение для рассылок, ...
Вопрос: Как удалить фон без потери информации?

Лучший ответ:
Задача довольно частая, поэтому к ней есть множество решений и подходов. И специализированные инструменты в редакторах и плагины. Одной из трудных считается задача отделить волосы/шерсть от сложного фона. И тоже решается.
Надо сделать хорошую маску – картинку в оттенках серого, где чем светлее пиксель, тем виднее будет исходная. Где пиксели черные – полная прозрачность.
Предложу один из вариантов решения, на основе стандартных инструментов почти любого редактора.
Рассмотрите каждый из каналов, R, G и B – где наиболее контрастно выглядит разница между объектом и фоном?
В данном случае это в канале красного, R. Возьмём его за основу для будущей маски.
Скопируйте его, и Уровнями поднимите контраст, глядя на гистограмму, чтобы от чёрного до белого были пиксели. Потом инвертируйте маску и примените к слою с исходной картинкой.результат

Худший ответ:
Вам сняло надо избавиться от градиенты, простые способы, например считайте производную яркости по каждому каналу, не обязательно rgb, лучше предлагать в cmyk или hsv... Или пример, замыльте изображение с большим шагом, таким, чтобы объекты на итоговом изображении исчезли и осталась только общая градиента. Затем высчтете из исходного изображения это замыленное ( лучше использовать деление). В итоге вы избавитесь от градиенты и бонусом получите доп выделение границ. Этот метод идеален например при получении скана бумаги с текстом при неравномерном освещении.
Вопрос: Как получить самый последний самый вложенный элемент?

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

const walk = (el, level = 0) =>
  [...el.children].reduce((p, c) => {
    c = walk(c, level + 1);
    return p.level > c.level ? p : c;
  }, { el, level });

const getLastDeepestElement = root => walk(root).el;
Если же под последним самым вложенным подразумевается элемент, получаемый постоянным выбором последнего вложенного элемента, то тогда так:

const getDeepestLastElement = el =>
  el.lastElementChild
    ? getDeepestLastElement(el.lastElementChild)
    : el;

// или, без рекурсии
const getDeepestLastElement = el => Array
  .from(el.querySelectorAll('*'))
  .pop() || el;

Худший ответ:
Выбираешь элементы с помощью querySelectorAll, проходишь по ним, смотришь их потомков, если у потомков нет потомков, то выбираешь последнего.
А если структура не меняется, то вбей CSS селектор нужного элемента в document.querySelector("div div div ....")
Вопрос: Автоматическое удаленное администрирование windows-клиентов?

Лучший ответ:
Во первых задумайтесь, нужна ли вам эта помойка
Чтобы сломить (пусть даже и немного) политику "экономим на всем кроме гелика гендира" нужно время и терпение:
Первое: разводим бюрократию, фиксируем все проблемы пользователей, замены компов, количество походов к пользователям в неделю на человека, особо отмечаем проблемы с безопасностью - сколько времени потребовалось чтобы вычистить комп менеджера Васи от вирусни которую он нахватал, какие риски могут возникнуть если менеджер Петя откроет письмо от "дяди Мнглуи" из Южной Африки.
Сколько простаивал складской комп пока вы удаляли с компа кладовщика Иннокентия порнографию.Сколько литров чая было выпито за общением с бухгалтером Таней, пока показывали как печатать на новом принтере и т.п.
Это, по сути - работа начальника IT отдела, но одновременно - деньги бизнеса, потому что именно бизнес платит вам вашу зарплату (за которую вы почему то держитесь)
Второе: самообразование. Я бы не советовал вам,в отличие от других отвечающих, на говнокомпах(сервер же не купят) поднимать такие ключевые для инфраструктуры вещи как контроллер домена (будь он на линуксе или windows) или вообще любой центральный сервер - однако их подъем, настройка и, впоследствие, починка прибавят вам как опыта так и ценности в профессиональном плане и дадут шансы покинуть  этот дом боли впоследствие.
Как быстрые решения: 
- ставьте агент удаленного управления на каждую машину - поможет меньше между ними бегать
- стандартизируйте ПО и способы его установки (пусть это будуть хоть cmd скрипты, пофиг - лишь бы вы не сидели и не ждали очередного окошка визарда с кнопкой "NEXT" пока он там что-то затупил
- в общем и целом придумывайте как минимизировать всю беготню чтобы заняться самообразованием и улучшением ситуации качественно, а не количественно

Худший ответ:
Экономия на семечках... На 500 пк есть деньги, на контроллер домена нет? Вы объясните начальству, что чтобы это всё поддерживать нужно нанять больше людей. А что дешевле? Каждый месяц платить специалисту (может даже не одному), который будет заниматься мартышкиным трудом и бегать по всем пк или автоматизировать, поставить сервера для ad, sccm и прочее?
puppet более-менее нормально на винде работает, но настраивать и траблшутить боль. Особенно если список ПО будет большим. С такими артефактами столкнётесь, что вам и не снилось. По моему опыту. С другой стороны со знанием puppet вы сможете уйти на контору, где и платят скорее всего поболее.
Вопрос: Почему я получаю ошибку «Error: JavaFX runtime components are missing, and are required to run this application» при запуске JAR файла?

Лучший ответ:
Вот официальная статья от Intellij IDEA, как создать проект с JavaFX: https://www.jetbrains.com/help/idea/javafx.html

p.s. После установки библиотеки JavaFX нужно настроить виртуальную машину в IDEA, всё описано в статье, ничего особо сложного в этом нет.

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

Лучший ответ:
Задание на знание работы с контекстом функции и методов call и applyfunction alertThis() {
  alert(this);
}
alertThis.call('text');

Худший ответ:
С какой проблемой столкнулись?

напишите toString метод, и будет вам преобразование в текст )
Вопрос: Как прописать проверку для защиты от дублирования данных?

Лучший ответ:
Сохраняйте введенные данные в массив и перед вставкой проверяйте их наличие в этом массиве.

Худший ответ:
Вот, допилил ваш вариант, чтобы работал:
let dataArray = [];
let someData = document.getElementById('fieldForData');

let ul = document.createElement('ul');
document.body.appendChild(ul);

let actionButton = document.querySelector('button');
actionButton.addEventListener('click', function() {
    let data = someData.value.toUpperCase();
    //если значение пустое или есть в массиве, то ничего не делаем
    if (!data || dataArray.indexOf( data ) != -1) return;
    dataArray.push(data);
    let li = document.createElement('li');
    li.textContent = data;
    ul.appendChild(li);
});
Вопрос: Отправка JSON с сервера на клиент?

Лучший ответ:
Вариант 1. Сделать как написано в документации . Вместо echo json_encode($customers);
Делаем так:return $response->withJson($data);
Вариант 2.header('Content-Type: application/json'); //HTTP загловок
echo json_encode($customers);
die(); //Стоп. Не возвращаем стандартный response от слима

Худший ответ:
Ну если вы принципиально не хотите отдавать результат через $response, то допишите exit(); в конец функции.