pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Можно ли организовать скачивание торрентов на роутере Mikrotik?

Лучший ответ: Роутер предназначен маршрутизировать траффик, а не торренты качать
Нет

Худший ответ: Торрент клиент добавлен как эксперементальная фича в прошивке v7beta, можно заработает через годик) В данный момент на прошивке микротика нет торрент клиента.
Вопрос: Какая сейчас в РФ ситуация касательно лицензирования ПО от Майкрософт?

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

Что касается гос.органов, структуры Заказчиков, а так же всем тем кто работает на/с объектами критической информационной инфраструктуры закупать импортное ПО можно до 2025года только по согласованию, а с 2025года необходимо перейти на отечественное ПО в принудительном порядке (Здравствуй Линукс). Неофициально получено распоряжения и выделены деньги на закупку отечественного ПО уже сейчас, из знаковых - ВТБ закупился пакетом МойОфис на 100.000штук, Сбер объединился с Astra Linux для продвижения последней.

Основание - Указ Президента РФ
publication.pravo.gov.ru/Document/View/0001202203300001

Резюме, даже если ВЫ закоренелый Виндузятник и ничего кроме не признаете, то это не означает и не гарантирует того что через некоторое время Вам придется на работе осваивать Линукс, как и ПО под него.

Худший ответ: Ничего не буду утверждать,  вот русский сайт который может быть и поддельный, но выглядит убедительно. https://microsoft-russia.com/
За рубли продают, возможно старые запасы. 
Но чтоб легально и бесплатно, и точно можно - то это переход на линукс))

ЗЫ: я был к корне не прав.  https://microsoft-russia.com/ - не подозрительный,  а точно гомносайт. регулярно меняет доменные имена и разводит народ.
Вопрос: Почему так долго проверяют игру?

Лучший ответ: Вы под микроскопом
1. Это ваше первое приложение
2. Скорее всего еще сунулись в программу "Приложение для всей семьи"
3. В автопроверке боту что-то не понравилось  

Ждите. Дай бог за 2 недели рассмотрят.

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

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

Достаём калькулятор и считаем. 
1) 16+3.3 = 19.3
2) 19.3 * 2.828 = 54.5804 

Получили число уже почти такое же как в ответе, только к нему еще даже не прибавили второе вычисление корней, которое даст число явно больше единицы

wolframalpha

Худший ответ: С помощью моего калькулятора получается: 19,3×√8+1,7782 = 56,366843507601
Так что формула у вас правильная.
Вопрос: Локальное подключение бибилиотеки. Как это сделать?

Лучший ответ: Если я вас правильно понял, то вам нужно установить пакеты только для локальной разработки (devDependencies). Такие пакеты не попадут в общую сборку.
Для этого при установке используйте следующие параметры --save-dev или -D
npm install <package-name> --save-dev

Худший ответ: Если локально, тогда вам нужно скачать это файл или архив и подключить вручную. Ну или через npm установить не глобально
Вопрос: Совместимо ли оборудование с windows 10?

Лучший ответ: железо вполне потянет 10 без проблем, но для 10 однозначно нужен SSD. на обычном HDD тоже пойдет, но будет оооооочень медленно

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

Лучший ответ: const countWithKey = (arr, key) => arr.reduce((acc, n) => acc + n.hasOwnProperty(key), 0);
или

const countWithKey = (arr, key) => arr.filter(n => key in n).length;

Худший ответ: count totalSpecials = data.filter(i=>i.special).length;
// где data - ваш массив.
Вопрос: Какие есть альтернативы онлайн кодированию на техническом интервью?

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

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

Но онлайн кодинг - тоже нужен. Это по сути единственная возможность проверить кандидата в бою и убедится что никто ему не подсказывает. Я лично видел много студентов которые неплохо набили руку на квизах и тестах (как будто они их ради тренировки проходят каждый день) но в реальных задачах такие зазнайки - бесполезны.
Вопрос: Python Ошибка Traceback (most recent call last): Как исправить?

Лучший ответ: Python Ошибка Traceback (most recent call last)
Ошибка IndexError: list index out of range

В строке:
for url in range(int(pages_count[0])):

Но сервер отдает 503, видимо тебя забанили немножко

Как исправить?
Разобраться с причиной блокировки.

Худший ответ: Python Ошибка Traceback (most recent call last)
Ошибка IndexError: list index out of range

В строке:
for url in range(int(pages_count[0])):

Но сервер отдает 503, видимо тебя забанили немножко

Как исправить?
Разобраться с причиной блокировки.
Вопрос: Как сделать недоступным один из url адресов?

Лучший ответ: Этого нельзя сделать по тому что это разные участки процесса. DNS resolve ничего не знает про uri и http. Справедливо и обратное - если мы обрабатываем http запрос то dns resolve уже успешно завершён и эту ошибку мы получить не можем

Худший ответ: Имитируйте соответствующую страницу с сообщением об ошибке. Желательно с учётом User-Agent.
Вопрос: PHP компилятор работает нативно в Visual Studio Code или нужно докачивать что-то?

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

Худший ответ: смотри для новичка по моему проще будет такая схема.
создаем на диске папку myjobs
далее под винду c:\myjobs

потом в ней будем на каждый проект делать подпапку.
c:\myjobs\myfirst

Т.е. запускаем студию и начинаем новый проект по пути c:\myjobs поддиректорию создаст сам по имени проекта

В зависимости от типа проекта в нем www рут будет иметь отдельное имя или совпадать с этой папкой.
Для проектов использующих компосер типовая структура папок
app,src,vendors,public,tmp 

Идем теперь в настройки WAMP. 
правим настройки виртуал хостс ручками или через скрипт автоматизации на локалхосте
задаем ему имя myfirst.loc и путь до wwwрут c:/myjobs/myfirst/public

правим c:\windows\system32\drivers\etc\hosts

Теперь после редактирования кода изменения можно смотреть в броузере
Вопрос: Как купить домен с возрастом?

Лучший ответ: Не путайте сайт и домен.
Аренда домена вовсе не означает, что на нём будет поднят сайт. Скажем, дата регистрации домена habradns.net - 2010-09-23T15:47:24Z, однако сайта на нём нет и не предвидится.
А вот домена qna.habr.com вообще не существует, однако сайт с таким доменным именем есть.
Датой регистрации домена всегда будет дата заключения последнего договора об аренде этого домена с регистратором. А вот дату создания сайта вообще проверить нельзя, она нигде не фиксируется.

Худший ответ: Не путайте сайт и домен.
Аренда домена вовсе не означает, что на нём будет поднят сайт. Скажем, дата регистрации домена habradns.net - 2010-09-23T15:47:24Z, однако сайта на нём нет и не предвидится.
А вот домена qna.habr.com вообще не существует, однако сайт с таким доменным именем есть.
Датой регистрации домена всегда будет дата заключения последнего договора об аренде этого домена с регистратором. А вот дату создания сайта вообще проверить нельзя, она нигде не фиксируется.
Вопрос: Как обернуть текст в строку?

Лучший ответ: А кто должен был учить основы языка?

'kagura\'s-verity'
Также не нужно забывать про остальные виды литеральных кавычек
"kagura's-verity"
`kagura's-verity`

Худший ответ: 1 "kagura's-verity"
2 'kagura\'s-verity'
3 `kagura's-verity`
3 варианта, как минимум - двойные кавычки, экранирование, обратные кавычки
Вопрос: Что означает: аргументе функции?

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

Также сама программа при желании может получить доступ к этим аннотациям. Есть библиотеки, которые этим пользуются.

Худший ответ: Это означает что аргументом являетсят класс Message из модуля types
Вопрос: Стоит ли переводить сотрудников на виртуальные рабочие места?

Лучший ответ: Эмм... Proxmox это про виртуалки... зачем их пихать по разным виртуалкам?

Не проще 1 RDP сервер сделать... с рабочими местами
Насчет 2хГб... зависит от количества вкладок в браузере и локальная БД у 1с или где то на сервере

у нас вот гл буху 8гб ток тока хватает...

Худший ответ: чтобы сэкономить раньше вроде делали, один мощный сервер и тонкие клиенты , сейсам в роли них используют совсем простые мини пк типа распери пи и им подобные
Вопрос: Как защитить прошивку Siemens S7-1200 при передаче заказчику?

Лучший ответ: В Tia Portal есть штатный механизм Know-how protection - вы блокируете паролем доступ к исходному коду блоков FB, OB, FC. 
Если у заказчика нет среды разработки, то ему необходимо передать SD-карту или ее образ. 
При этом учтите, что если вы передаете не саму SD-карту, а ее образ, то бинарный образ SD-карты вам не подойдет - при компиляции проект привязывается к серийному номеру конкретной SD-карты. Вам необходимо передать файлы "SIMATIC.S7S" и "S7_JOB.S7S"

Проконтролировать вмешательство вы можете проверкой контрольной суммы - контрольная сумма находится в свойствах контроллера (раздел Device configuration) - General - Checksums.
Программным способом ее можно получить с помощью GetChecksum.

Худший ответ: Слово "прошивка" подразумевает что-то уже скомпилированное и готовое к работе.
Если у вас эта штука компилируется, то ничего делать и не надо.
Вопрос: Почему mysql запрос с php медленный?

Лучший ответ: В MySQL 8 по-умолчанию включен бинлог. У меня при переходе на него тоже замедлилась работа с БД. Отключите его.
[mysqld]
skip-log-bin
sync_binlog = 0

Худший ответ: В MySQL 8 по-умолчанию включен бинлог. У меня при переходе на него тоже замедлилась работа с БД. Отключите его.
[mysqld]
skip-log-bin
sync_binlog = 0
Вопрос: Почему мое решение задачи не работает и переполняется стек?

Лучший ответ: Вероятно, клонируемый объект содержит циклические ссылки, типа const a = {};
const b = {};
a.b = b;
b.a = a;

cloneDeep(a); // бесконечный цикл
Попробуйте подсмотреть реализацию cloneDeep() в loDash. В реале там вызывается baseClone()

Можно сохранять каждый обработанный ранее объект в Map – и проверять, не имели ли с ним уже дела ранее – тогда вместо изготовления ещё одной копии просто вставлять ранее сделанный клон.

Худший ответ: Вероятно, клонируемый объект содержит циклические ссылки, типа const a = {};
const b = {};
a.b = b;
b.a = a;

cloneDeep(a); // бесконечный цикл
Попробуйте подсмотреть реализацию cloneDeep() в loDash. В реале там вызывается baseClone()

Можно сохранять каждый обработанный ранее объект в Map – и проверять, не имели ли с ним уже дела ранее – тогда вместо изготовления ещё одной копии просто вставлять ранее сделанный клон.
Вопрос: Как выбрать все querySelectorAll(&amp;quot;table tr&amp;quot;) кроме тех у кого стить display:none?

Лучший ответ: Фильтровать по свойству style.display.
А вообще, подход не самый правильный. Лучше добавлять элементу класс (например, hidden) и уже в css ставить display: none для этого класса. Тогда выбирать можно будет через псевдоселектор :not.

Худший ответ: const selector = 'table tr:not([style*="display:none"]):not([style*="display: none"])';
	var rows = document.querySelectorAll(`${selector}, ${selector} *`);

 получилось так
Вопрос: Почему HDD SATA II определяется как SATA I?

Лучший ответ: Проверьте, изъят ли джампер ограничивающий скорость? Скриншот из официального руководства.


Худший ответ: Проверьте, что диск подключен к порту sata 2, проверьте кабель.
Вопрос: Как разделить терминальный сервер и сервер 1С?

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

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

Лучший ответ: Потому что литерал [] объявляет новый список, а оператор * копирует ссылку на тот же список.

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

Лучший ответ: А как вы его хотите использывать? Так и используйте

Худший ответ: Вставьте в консоли браузера во вкладке Console:
(async function() {
    response = await (await fetch('https://opentdb.com/api.php?amount=10&category=23&difficulty=easy&type=boolean')).json();
    console.log(response);
})();
В переменной response будет лежать ответ сервера. Чтобы получить доступ к каким-то конкретным свойствам используйте квадратные скобки, например response['result'] или response['response_code']

Для перебора массива, что лежит в свойстве response['result'] можете использовать цикл for
Вопрос: Зачем нужен декоратор @dp и все в этом духе, типо @dp.message_handler() в aiogram?

Лучший ответ: На пальцах: чтобы бот работал, его функции должны вызываться при наступлении определённых событий (например, входящего сообщения). Проблема в том, что aiogram знает о возможных событиях, но ему нужно сказать, какие функции когда вызывать. Обычно это называется "зарегистрировать обработчик".
В питоне функции - объекты первого рода, т.е. их можно сохранять в переменные, передавать как параметры, возвращать как результат и вообще поступать с ними как с любым другим значением.
Т.е. по идее можно было бы сделать так: 
async def echo(message: Message):
    text = f"Привет, ты написал {message.text}"
    await bot.send_message(chat_id=message.from_user.id, text=text)

dp.register_function_for_message(echo)  # это не настоящий метод aiogram, только пример
Тогда каждому объявленному обработчику событий соответствовал бы вызов метода, ответственного за регистрацию этого обработчика.

Но то же самое можно сделать через декораторы. Декоратор - это сокращённый вызов функции, которая принимает в качестве параметра другую функцию.
Т.е. вот это
@dp.message_handler()
async def echo(message: Message):
    text = f"Привет, ты написал {message.text}"
    await bot.send_message(chat_id=message.from_user.id, text=text)
абсолютно эквивалентно вот этому
_decorator = dp.message_handler()

async def echo(message: Message):
    text = f"Привет, ты написал {message.text}"
    await bot.send_message(chat_id=message.from_user.id, text=text)

echo = _decorator(echo)
Как видишь, очень похоже на "простую" регистрацию обработчика, но записывается чуть короче.

Худший ответ: У подобных библиотек, обычно, множество событий, которые они регистрируют (получение текста, картинки, видео и т.д.). При этом сама по себе библиотека содержит лишь регистрацию этих событий, но никак на них не реагирует (кроме внутренних манипуляций). Чтобы написать какое-то кастомное поведение в ответ на определенные события (в данном случае при получении сообщения) необходимо дополнить обработчик событий (message_handler) своим кодом. В python'e  для этого удобно использовать декораторы (см. гугл).
Вопрос: Какая разница между типами vlan?

Лучший ответ: 802.1Q VLAN
Базовый, объемлющий, протокол.
К пакету при отправке добавляется информация (дополнительный заголовок) с номером VLAN. Такой пакет называется/является маркированным номером VLAN (тегованным). Соответственно при приёме номер VLAN сверяется с разрешённым, при несовпадении пакет отбрасывается. Мест добавления/контроля, как и способов, существует несколько.

Port-Based VLAN
Разновидность протокола, при котором номер VLAN жёстко связан с физическим портом устройства. Входящий нетегованный пакет маркируется именно тем номером, который зарегистрирован на порте, входящий/исходящий тегованный пакет проверяется на то, что номер соответствует зарегистрированному на порте, иначе пакет отбрасывается. К порту может быть привязано несколько номеров как разрешённые входящие/исходящие для тегованного трафика, но строго один для нетегованного трафика. Исключение - вторым может быть Voice VLAN, но эту ситуацию обслуживает отдельный протокол-надстройка (к тому же он всегда MAC-based).

802.1Q Management VLAN
Номер VLAN, к которому привязан IP-адрес внутреннего интерфейса управления. Из другого VLAN интерфейс по этому адресу недоступен. Внутренний интерфейс может иметь несколько адресов из разных непересекающихся подсетей, тогда каждый будет привязан к своему Management VLAN.

Худший ответ: 802.1q - стандарт vlan. В пакет добавляется заголовок, в котором хранится номер влана и qos флаги. Соответственно этот пакет на соседнем коммутаторе будет обрабатываться согласно номеру влана...
Port-based vlan - это влан для бедных ) Ничего никуда не добавляется, просто на уровне коммутатора часть портов отделяется. Грубо говоря - вместо одного физического коммутатора вы можете сделать 2-3 виртуальных. Например порты 1-4 - один коммутатор, 5-8 - второй коммутатор, 9-10 - третий коммутатор... Ну и т.п.
Вопрос: Почему мобильник может не видеть интернет по WiFi?

Лучший ответ: Проверить подключение телефона к другим роутерам/точкам доступа. Если не работает - заводской брак телефона или кривизна его прошивки. Если работает с другими устройствами  - менять роутер провайдера на что-то приличное.

Худший ответ: Возможно проблема в том что телефон определяет сеть как общественную и ждёт от роутера формы  подтверждения регистрации.  
Я сталкивался с подобным. 
У вас открытая сеть?
Вопрос: Можно подружить bootstrap и mpdf?

Лучший ответ: Нет. Парсер у mpdf очень примитивный. Там не работают гриды, флексы. Не поддерживается box-sizing и вообще всё довольно плохо.
Готовые сетки специально для mmpdf скорее всего отсуствуют.

Пишите сами. Варианта всего два – флоаты и таблицы.

Худший ответ: Сергей delphinpro, ThunderCat поддержка css просто феноменальная, имеется ввиду эронично
Вопрос: Можно ли написать полноценную 3D игру (ну наподобие WoT) на js?

Лучший ответ: Уже давно в юнити нельзя использовать JS (по факту его там и никогда небыло - но оставим это).
Язык - всего лишь инструмент.  С точки зрения реализации алгоритма JS, С++, Java - равны. Тем боле еопд капотом юнити они переварятся во что то другое.

Так что ответ - на JS можно написать WoT

Худший ответ: Поддерживая GavriKos - да, можно.
Но не нужно)

Для разработки приложений с графикой (а тем более игр) есть много библиотек, в т.ч. и на JS - Three.js, например. Даже целые движки, готовые ко всему - например Babylon.js. Но следует помнить об удобстве разработки, наличии редакторов, безопасности и производительности кода. Unity (C#) и Unreal(C++) не просто так стали индустриальными стандартами - С# прост, удобен и сравнительно безопасен, С++ - мощен, производителен и не накладывает почти никаких ограничений на полёт фантазии. Да и наличие редактора, позволяющего сделать кучу настроек и собрать сцены удобными инструментами, а не задавать из кода все позиции - тоже очень сильно облегчает жизнь.

Ещё один момент (и пусть меня закидают тапками) - JS язык по большей части для веба, и большинство решений для графики оптимизированы для работы в браузере. Если бы танки запускались в браузере - это была бы либо БОЛЬ либо Танки Онлайн:)
Вопрос: Какую базу выбрать для bigdata?

Лучший ответ: Звучит как задача для ClickHouse, Вроде как они недавно пофиксили производительность при отдельных инсертах без буфера. Даже если нет, есть схема с записью всех событий в Kafka и вычитыванием оттуда с помощью Materialized view в таблицу КликХауса. Эта схема точно рабочая и указанные нагрузки выдержит.  Плюс отличное сжатие данных.
Чистый PostgreSQL по производительности не сильно отличается от MySQL, а вот с дополнением TimescaleDB вставка становится очень быстрой, возможно вам его хватит. Там полноценный SQL и возможность редактировать данные без проблем. Неплохо сжимает.
Про ScyllaDB уже написали.

Худший ответ: Строжайше рекомендую ScyllaDB - решит все ваши вопросы.
Вопрос: Как найти расстояние между двумя отрезками?

Лучший ответ: Назовём концы отрезка как A1-A2 и B1-B2
Для начала проверьте вариант, когда отрезки пересекаются. В этом случае расстояние между ними равно нулю.
Берём первый конец первого отрезка (A1). Опускаем перпендикуляр на прямую, построенную на втором отрезке. Получаем точку пересечения O. Если точка O лежит внутри второго отрезка, то берём расстояние A1O. Если нет, то берём минимальное из A1B1 и A1B2.
Повторяем для точек A2, B1 и B2.
Из четырёх полученных расстояний выбираем минимальное. Это и будет расстоянием между непересекающимися отрезками.

Худший ответ: Как найти расстояние между отрезками
Какое расстояние? 
1. Между срединами отрезков или межу вершинами отрезков?
Если взять вариант между срединами, а формат записи
X11 Y11 X12 Y12
X21 Y21 X22 Y22
то получим значение 1,414213562 что ровно в два раза больше чем ваше
Вопрос: Почему Ubuntu 22 Desktop не видит подключенные HDD и SSD диски через корзину?

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

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

Лучший ответ: Просто: pointer-events: none;
Сложнее: повеситься на событие transitionEnd, явно убирать блок из DOM при скрытии после конца анимации.

Худший ответ: Добавить 

visibility: hidden / visibility: visible

И еще можно использовать свойство pointer-events: none;

Оно отменяет "рабочесть" блока (на него нажать, выделить и т.п.)
Вопрос: Как скрыть пароль в php-коде?

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

Худший ответ: ..но, если разработчики будут иметь доступ на ФТП, то никак не скрыть.
Вопрос: Как настроить два и более локальных домена nginx?

Лучший ответ: Гугл не особо помог.
Ха-ха, классика. В интернете категорическая нехватка информации (с)

Несколько доменов делаются отдельными секциями server с разными директивами server_name и root. Ну и в hosts их надо добавить, разумеется.

Худший ответ: А в Raspberry PI Nginx какой-то особенный?
Если нет, что скорее всего так и есть (в смысле не особенный), то в гугле полно инфы.
Потом еще в DNS это прописать. Не знаю как и чем в вашем случае это реализуется.
Вопрос: Проблема с сетью за клиентом OpenVPN?

Лучший ответ: на домашнем роутере укажите маршрут до подсети модема, потому что роутер то не вкурсе что там за дачным роутером...

или сделайте проброс порта (вам же веб интерфейс нужен?)

Худший ответ: Маршруты на самом модеме можно посмотреть? 
Вы можете достучаться до клиентов в сети 192.168.5.0/24, т.к. роутер для них GW и у него есть маршрут в сеть VPN. Но ваш модем не имеет маршрута в вашу VPN сеть, а GW у него провайдер. Тут два варианта, прописать маршрут на модеме (если он это позволяет) или настроить NAT на роутере в сторону модема (хотя тут странность, клиенты локальной сети могут зайти на модем, а VPN не могут, значит клиенты локальной сети натятся при доступе к модему и модем всех видит под одним адресом).
Вопрос: Как собрать портфолио если предыдущие работодатели ругаются за коммерческую тайну?

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

Худший ответ: ругается даже за публичные линки)

А поисковикам и прочим ресурсам он тоже что-то ругается?

Исходники показывать не можешь. А линкт спокойно.