Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Ошибка PHP: string-string?

Лучший ответ:
Потому что вы из одной строки пытаетесь вычесть другую.
Ну это примерно как "кузябрики - быбрики = ?" фиг знает какой результат толжен быть.
Можно преобразовать строку в timestamp и оперировать числами.
Еще лучше использовать специальную штуку: DateTime::diff

Худший ответ:
функция содержит несколько ошибок:

Переменная $now содержит только сегодняшнюю дату в формате Y-m-d, а не объект DateTime, который можно использовать для вычисления разницы между датами. Чтобы получить объект DateTime, нужно использовать функцию new DateTime().

Переменная $date содержит строку с датой рождения, которую нужно преобразовать в объект DateTime, прежде чем можно вычислить разницу между датами.

Переменная $datediff содержит результат вычитания двух объектов DateTime, которое возвращает объект DateInterval, а не целочисленное значение разницы в днях между датами.

При выводе значения переменной $datediff в атрибуте value у элемента input используется не тот формат, который требуется для отображения возраста в годах.

вот исправленный код:

$now = new DateTime();
$nothing = '';
$date_str = get_the_author_meta( '_birthday', $user_id ); // получаем дату рождения как строку
if ( empty( $date_str ) ) {
    $age_str = $nothing; // если дата рождения не указана, возвращаем пустую строку
} else {
    $date = new DateTime( $date_str ); // преобразуем дату рождения в объект DateTime
    $diff = $now->diff( $date ); // вычисляем разницу между датами
    $age_str = $diff->y; // получаем количество полных лет
}
?>
<input type="text" name="_age" id="_age" placeholder="Возраст" value="<?php echo $age_str; ?>">
Вопрос: Можно ли заряжать macbook по док-станции от монитора через HDMI?

Лучший ответ:
HDMI не предусматривает подачу мощности для зарядки.

Худший ответ:
HDMI не предназначен для зарядки
Используйте type-c
Вопрос: Не проверяет тип при object spread?

Лучший ответ:
EntityReturn - более общий тип относительно Entity, поэтому в EntityReturn можно передавать объекты Entity.

Ошибку про лишнее поле будет показывать, если ты передаешь в EntityReturn литерал с лишними полями:

const entitie: EntityReturn = {
    id: "1",
    filename: ""
};

Худший ответ:
Должно выдать ошибку на наличия поля id
Чего это ради? TS немного не так работает. Если своими словами объяснять, то как-то так:
interface ITestA {
  id: number
  name: string
}

interface ITestB {
  name: string
}

const test = {
  id: 1,
  name: "test"
};
Переменная test соответствует обоим интерфейсам, так как набор полей объекта test соответствует наиболее большому из них. Лишние поля TS ошибкой не считает. А вот если поля не хватает, то получим несоответствие интерфейсу.
Вопрос: Почему болят глаза от iMac 2017?

Лучший ответ:
Ну дело явно не в ОС. По крайней мере, ни разу не слышал, чтобы операционная система кого-то до офтальмолога доводила. Вам бы этот вопрос в больнице задать)

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

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

Худший ответ:
Подкрасить подкраской для маков.
Первая попавшаяся ссылка https://www.ebay.co.uk/itm/Touch-up-paint-for-APPL...
Но если рукожоп, то сделаешь ещё хуже.
Вопрос: Сколько занимает в памяти Struct{}{}?

Лучший ответ:
Всё верно, она занимает 0 байт.
Можно проверить:
package main

import (
    "fmt"
    "unsafe"
)

type S1 struct {
    f1 int
}

func main() {
    s1 := S1{}
    s2 := struct{}{}

    fmt.Printf("s1 size: %v\n", unsafe.Sizeof(s1))
    fmt.Printf("s2 size: %v\n", unsafe.Sizeof(s2))
}
Вывод
s1 size: 8
s2 size: 0

Там, где в мапе нужны только ключи - я всегда делаю значение struct{}{}

Худший ответ:
не смотря на то что сама структура занимает 0 байт, конечно же есть накладные расходы на ее объявление, хранение указателя, ссылки и т.п. Так что это совсем не 'ничего', но использование struct{} имеет наименьшее потребление памяти https://medium.com/easyread/golang-series-empty-st...

P.S. https://www.reddit.com/r/golang/comments/om990a/ho...
Там есть интересное пояснение как работает empty struct в golang.
Вопрос: Трудоустройство без диплома, но с сертификатом об окончании курсов программирования. Можно ли?

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

Худший ответ:
Можно. Но очень желательно иметь публичное портфолио со своим кодом. 
Это может быть:
1) Участие в Open Source. 
2) Профиль на leetcode с >30 решёнными задачами оттуда. 
3) Своя софтина или сайт в продакшене т. е. делающий что-то полезное для людей.
4) Самое простое, но в последнюю очередь pet-проект на github.

А чисто с нуля или после курсов заскочить наврят-ли. Таких желающих и без вас очень много. 
IMHO если человек программирует без курсов и вышки значит он очень умён и мотивирован. Таких надо брать.
Вопрос: С чего начать изучение «информационной безопасности»?

Лучший ответ:
 связан с пейнтестингом
Ох, просто шикарная оговорочка по Фрейду! Да, чувак, да - безопасник может заниматься пейнтестингом (от слова pain - боль), но обычно оставляет это на долю соответствующих органов - у них опыта больше :)

А тебе - советую поставить Kali :) После парочки вопросов здесь о зависшей установке, когда тебя оборжут со всех сторон- поймешь, что лучше идти в доставку...

И еще - насчет устаревшей информации. 

Двоичная и шестнадцатеричная арифметика - основа всех хакерских наук - существует уже с 1605 года! Теория вероятностей - с середины 17-го века! Психология - которая ИБ-шнику крайне необходима, ибо работаешь с людьми, а не с компьютерами - вообще черт знает с какого времени! Английский язык - основной язык тырнета (как это ни грустно для ламеров, не желающих его знать) - ему полторы тысячи лет :)

И еще один момент.

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

Почему?

Потому что ИБ - это Северный Полюс конторы. В том смысле, что когда ты на Северном Полюсе - то во все четыре стороны - юг и компас там не действует. Так и в ИБ - там могут не действовать различные регламенты и правила (потому что ИБ же их и придумывает), там невозможно контролировать людей (разве только старшими коллегами). 

Поэтому со стороны туда не попасть - от слова совсем. Хотя есть разумеется специализированные конторы, где ИБ - это основной персонал :) или же специализированные отделы крупных систем.

Худший ответ:
"Пентестингом", а не "пейнтестингом". От слова penetration а не от pain. Хотя паяльником можно и те и другие тесты проводить. :)
Это шутка. А если серьёзно, то "информационная безопасность" слишком широкое понятие. Может поэтому и не находите книг или ресурсов именно по "информационной безопасности". Сначала разберитесь что в это понятие входит (даже здесь многократно обсуждалось). Возможно Вас интересует только какая-то конкретная область. И информацию нужно искать по этим отдельным областям. Операционные системы, программирование, законодательство, и т.д. и т.п.
Вопрос: Как правильно строить крупный проект?

Лучший ответ:
Называется, услышал звон, да не знаю где он.

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

2. CategoryQuery - это вобще дичь дикая.
Ты опять создаёшь дубликат, потому что услышал о репозиториях, и даже интерфейс. Вот я угараю с людей, кто везде пихает интерфейсы. Интерфейсы нужны там, где они нужны. Где будет 2+ наследователей интерфейса.
Откуда у тебя тут наследники, если ты завязан на элокуент?
А ноги от индусов репозитаристов. Не нужен репозитарий, Query и интерфейсы при работе в элокуент. Он сам в себе это всё уже содержит и все повторяющиеся вещи обёрнуты уже. find, first, firstOrNew и т.д.
Так что используй элокуент и не переусложняй проект напрасно. Не надо делать сложно, делай просто.

3. CategoryAction.
Опять интерфейс...
Вот это Экшн по сути у тебя сервис. Тут ты имеено перенёс бизнес логику создания и редактирования и возвращаешь ответ данного метода. Вот удали свой CategoryAction и перенеси методы в сервис.

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

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

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

Лучший ответ:
Добавьте в ссылки rel="noreferrer" и тогда заголовок Referer по идее не будет включаться браузером в HTTP-запрос, отправляемый к стороннему сайту при переходе по внешней ссылке, и сторонний сайт не узнает, откуда на него пришли. Должнжо работать в подавлющем большинстве случаев.

См. документацию например здесь: https://developer.mozilla.org/en-US/docs/Web/HTML/...

Насчёт плагинов для WordPress не смогу подсказать, но уверен, что такой плагин скорее свего уже был создан кем-нибудь.

Худший ответ:
Попробуйте No External Links
Вопрос: В чем актуальность псевдо 3D графики (для исследовательского проекта)?

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

Худший ответ:
Могу привести пример применения: отображение техпроцессов для диспетчера (SCADA). 3D там практически не применяют, даже между плоскими схемами и изометрией идёт холивар, но многим заказчикам (особенно Умного дома) нравятся объёмные проекции.
Вопрос: Как получить понимание разработки игры?

Лучший ответ:
Тебе же прямо сказали. Нужно изучить язык программирования.
Не на уровне "почитал книжку". Не на уровне интерн/джуниор. А на уровне уверенного разработчика.

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

Поэтому правильный путь - это потратить МНОГО времени и МНОГО усилий.
Ты же сам сказал, что все что ты изучил - там давали базовое понимание что это такое.

Поэтому вместо того, чтобы делать крутую 3д игру, сперва начни делать приложения попроще.
Добейся, чтобы у тебя просто двигался персонаж. Потом сделать лабиринт, чтобы со стенками взаимодействовал. Потом может быть попробуй добавить прыжок и высоту. И так потихоньку сделаешь основу для игры. Потом будешь добавлять и добавлять. Может через года два будет демо-версия с одним рабочим уровнем.

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

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

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

Надеюсь помог :D
Вопрос: Стоит ли переписать gulp на webpack?

Лучший ответ:
webpack - это помойка. Медленная, грязная и монструозная. Попробуй лучше https://vitejs.dev/ или https://parceljs.org/

Ну или можно остаться на gulp, только тормознутый babel заменить на esbuild или swc, а sass компилировать dart-sass

Худший ответ:
Вот что у меня получилось

const path = require('path');
const miniCss = require('mini-css-extract-plugin');
const BrowserSyncPlugin = require('browser-sync-webpack-plugin');
const url = "http://bsbase.local/";

module.exports = {
    mode: 'development',
    // mode: 'production',
    entry: './assets/src/js/main.js',
    output: {
        path: path.resolve(__dirname, 'assets/js'),
        filename: 'webpack.js'
    },
    devtool: 'source-map',
    module: {
        rules: [
            {
                test: /\.(scss|css)$/,
                use: [
                    miniCss.loader,
                    {
                        loader: 'css-loader',
                        options: {
                            url: false,
                            sourceMap: true
                        },
                    },
                    {
                        loader: "sass-loader",
                        options: {
                            sourceMap: true,
                        },
                    },
                ],
            },
            {
                test: /\.js$/,
                exclude: /node_modules/,
                loader: 'babel-loader',
            }
        ],
    },
    plugins: [
        new miniCss({
            filename: '../css/my.css',
        }),
        new BrowserSyncPlugin(
            // BrowserSync options
            {
                // browse to http://localhost:3000/ during development
                host: 'localhost',
                port: 3000,
                // proxy the Webpack Dev Server endpoint
                // (which should be serving on http://localhost:3100/)
                // through BrowserSync
                proxy: url,
                open: false,
                notify: true,
                reloadDelay: 500,
                injectChanges: true,
                files: [
                    {
                        match: [
                            '**/*.php',
                            '**/*.js',
                            '**/*.css',
                        ],
                        fn: function (event, file) {
                            if (event === "change") {
                                const bs = require('browser-sync').get('bs-webpack-plugin');
                                bs.reload();
                            }
                        }
                    }
                ]
            },
            // plugin options
            {
                // prevent BrowserSync from reloading the page
                // and let Webpack Dev Server take care of this
                reload: false
            }
        )
    ]
};
Вопрос: Почему регистрация домена и сам домен стоит денег?

Лучший ответ:
Блин, во имя Белого Солнца!

Опять какой-то прости-Господи-умнечег, не желающий гуглом пользоваться (я уже не говорю про здешний поиск). Регистрация домена стоит денег потому что есть некто, кто соберет у тебя нужные для включения в базу данных данные (а DNS, еслиф че - просто огромная распределенная база данных) и передаст их кому-то другому, кто сопровождает свою часть этой базы. Это все работа и она должна быть оплачена.
Например за домен "******.com " я должен оплатить 10 USD. Кто получит эти 10 USD? 
Регистратор, которому подаете данные. Из этих данных он что-то отдаст техрегистратору (который собственно сопровождает зону .com), но может и ничего не давать - отношения между регистратором и техрегистратором могут строиться как угодно, вплоть до расчета борзыми щенятами :)
Возможно ли получить домен .com навсегда чтобы домен передавался по наследству)))
домен получить невозможно. Вообще, от слова совсем. Вы не получаете его, а арендуете. А из этого следует, что передать его по наследству невозможно, потому что он Вам не принадлежит. (но есть маленький лайфхак - как правило регистратору совершенно поуху - жив ты или помер, ему главное, чтобы деньги капали за аренду. Закинь на счет регистратора сумму, равную ста годовым платежам (в примере 10 * 100 = 1000 баксов) и если регистратор, техрегистратор, ICANN или вообще весь тырнет не провалятся за это время в тартарары - аренда будет удерживаться за тобой)
Кому принадлежат все не занятые доменные имена .com?
Никому, их не существует
Кому принадлежат доменные имена до их покупки или регистрации?
Никому, их не существует.
Как обьект права доменное имя начинает существовать в тот момент, когда ты берешь его в аренду у регистратора. Если ты не продлеваешь аренду и регистратор прекращает договор - в этот момент доменное имя, как обьект права существовать перестает.
Кто устанавливает цену на доменные имена?
Регистратор. Он волен устанавливать абсолютно произвольную цену и никто ему не указ.
И как создать свою собственную доменную зону?
В самом общем случае - обратиться в ICANN. Но для этого ессно надо иметь много-много денег, много-много юристов и много-много знания английского делового-переписочного, потому как общаться придется на нем. Как правило, крупные конторы могут позволить себе "корпоративный" TLD типа .google, .xerox и т.д. Обычному человеку - никак (впрочем "для себя и своих друзей" или "для конторы" можно просто поднять свой DNS, на котором настроить свою зону - проблема в том, что никто этим DNS пользоваться не будет, кроме тех, кто будет об этом знать)

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

Лучший ответ:
Человеку фотография может понравиться из-за:
тематики, художественного стиля, набора цветов (розовый пингвин), необычности, актуальности и прочих факторов.
Та или иная фотография может оказывать психическое воздействие. Не думаю, что это можно как-то замерить без сканирования деятельности мозга во время показа.
Иными словами, не представляю как можно обучить искусственную нейронную сеть отбирать что-либо или, тем более, дать ей самой решать.
Но в рамках исследования - попробуйте. Расскажите потом как получилось.

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

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

Если лень включать VPN для JSFiddle, то результат такой:


Либо можно сделать примерно то же самое, но с абсолютно позиционированными элементами, расположенными под картинкой.

Либо можно геморроится с множественными box-shadow.

Худший ответ:
Вот что-то похожее, честно скажу, сам не пробовал, но что-то тут описано
https://lospirata.ru/blog/webdev/sozdanie-effektno...
Вопрос: Думаю что на моем ноуте майнят. Что делать?

Лучший ответ:
Просканировать антивирусом

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

Лучший ответ:
blabs, однозначного ответа, скорее всего нет. Я бы предположил, что документация должна идти к коду при разработке и от кода - при поддержке. Т.е. в конечном итоге сначала у вас есть ТЗ на которое ссылается Confluence (оставаясь точкой отправления), а потом у вас есть код с должным набором комментариев и документов в самой кодовой базе, на которые Confluence ссылается как на результат работы, а код ссылается на некоторые паблики (например, статьи дополнительных описаний).

Автоматизировать в этом месте можно до потери пульса. Тут главное не стараться ради стараний. Поэтому, если бы я выбирал, то остался с Документами Гугл на уровне вводного описания и абстракции.

Пример проблемной автоматизации. Вот эта страница https://oshliaer.github.io/qna?target=labs/apps-sc... генерируется из Документа Гугл. И все бы ничего, но только вначале это был небольшой скрипт на 5 строк в Apps Script, а теперь это приложение на Go, которое еще и контрибьютить иногда хочется. Как вообще такое получилось!? я уже сказать не могу, но то, что это были большие переоцененные надежды на Документы Гугл - факт. Т.е. вы рискуете нарваться на автоматизацию того, что вам вообще не нужно.

Я бы Jire ничего не предпочел, но добавил бы документацию REST в OpenAPI с предложениями на изменения через git с реверс ссылками на паблик, генерируемый в Confluence. Плюс такого подхода в полнейшей и тотальной уже готовой автоматизации (подкрутить пару Docker конфигов) вплоть до тестов, проверки типов и кросс-ссылок. Обратите внимание, что ссылки должны иметь общий характер. Или же необходимо просто встроить файлы репозитория в нужный контекст статьи.

Применимо ли это к вашим задачам миграции - это отдельный вопрос. Возможно, там какие-то невероятные многоходовки, которые просто невозможно указать в комментариях в коде OpenAPI. Тогда тут нужен более системный подход. Возможно, хранение и связывание большого количества параметров через Гугл Таблицы (используя их как первоисточник) будет как-то оправдано.

Худший ответ:
Официальный ответ от службы поддержки

I recommend having a look at the Page Properties and Page Properties Report macros in Confluence. They allow you to create a small table on a page with key and value pairs, which you can report in a larger table using the Report macro. You can watch the videos below by StiltSoft on how that works: 

Reports in Confluence (3 Parts): Page Properties a...

Alternatively, that same vendor offers an app on Marketplace that would allow you to include table excerpts. See Table Filter and Charts for Confluence. Read through their documentation to see how that app works: How to use Table Excerpt and Table Include Macros.